synapse-react-client 4.0.19 → 4.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SWC.index.d.ts +1 -1
- package/dist/SWC.index.js +1 -1
- package/dist/SWC.index.js.map +1 -1
- package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
- package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
- package/dist/assets/DefaultColorfulPortalCardBackground.js.map +1 -1
- package/dist/assets/GoogleIcon.js.map +1 -1
- package/dist/assets/GoogleIcon24.js.map +1 -1
- package/dist/assets/homepage/BlinkingLiveIcon.d.ts +1 -1
- package/dist/assets/homepage/BlinkingLiveIcon.js.map +1 -1
- package/dist/assets/homepage/aacr.js.map +1 -1
- package/dist/assets/homepage/cri.js.map +1 -1
- package/dist/assets/homepage/ctf.js.map +1 -1
- package/dist/assets/homepage/egress.js.map +1 -1
- package/dist/assets/homepage/facebook.js.map +1 -1
- package/dist/assets/homepage/fisma.js.map +1 -1
- package/dist/assets/homepage/gff.js.map +1 -1
- package/dist/assets/homepage/github.js.map +1 -1
- package/dist/assets/homepage/gray.js.map +1 -1
- package/dist/assets/homepage/hipaa-compliant.js.map +1 -1
- package/dist/assets/homepage/instagram.js.map +1 -1
- package/dist/assets/homepage/linkedin.js.map +1 -1
- package/dist/assets/homepage/ml-commons.js.map +1 -1
- package/dist/assets/homepage/nih-aging.js.map +1 -1
- package/dist/assets/homepage/nih-heart.js.map +1 -1
- package/dist/assets/homepage/nih-nci.js.map +1 -1
- package/dist/assets/homepage/nih-nimh.js.map +1 -1
- package/dist/assets/homepage/ntap.js.map +1 -1
- package/dist/assets/homepage/plan-item.js.map +1 -1
- package/dist/assets/homepage/powered-by-synapse-feature.js.map +1 -1
- package/dist/assets/homepage/precision-governance-feature.js.map +1 -1
- package/dist/assets/homepage/python.js.map +1 -1
- package/dist/assets/homepage/r.js.map +1 -1
- package/dist/assets/homepage/research-credit-feature.js.map +1 -1
- package/dist/assets/homepage/seamless-integration-feature.js.map +1 -1
- package/dist/assets/homepage/sloan.js.map +1 -1
- package/dist/assets/homepage/twitter.js.map +1 -1
- package/dist/assets/homepage/users.js.map +1 -1
- package/dist/assets/homepage/youtube.js.map +1 -1
- package/dist/assets/icons/AccessDataAnywhere.js.map +1 -1
- package/dist/assets/icons/AccessPending.js.map +1 -1
- package/dist/assets/icons/AccessPendingCloud.js.map +1 -1
- package/dist/assets/icons/AddAd.js.map +1 -1
- package/dist/assets/icons/AddToList.js.map +1 -1
- package/dist/assets/icons/Alert.js.map +1 -1
- package/dist/assets/icons/Arrow.js.map +1 -1
- package/dist/assets/icons/AwardScroll.js.map +1 -1
- package/dist/assets/icons/Baseline.js.map +1 -1
- package/dist/assets/icons/Cavatica.js.map +1 -1
- package/dist/assets/icons/CertifiedUser.js.map +1 -1
- package/dist/assets/icons/Challenge.js.map +1 -1
- package/dist/assets/icons/Checkbox/Checked.js.map +1 -1
- package/dist/assets/icons/Checkbox/Checked2.js.map +1 -1
- package/dist/assets/icons/Checkbox/Indeterminate.js.map +1 -1
- package/dist/assets/icons/Checkbox/Indeterminate2.js.map +1 -1
- package/dist/assets/icons/Checkbox/Unchecked.js.map +1 -1
- package/dist/assets/icons/Checkbox/Unchecked2.js.map +1 -1
- package/dist/assets/icons/ClappingHands.js.map +1 -1
- package/dist/assets/icons/CloudWarning.js.map +1 -1
- package/dist/assets/icons/CommunicateFindings.js.map +1 -1
- package/dist/assets/icons/CreateVersion.js.map +1 -1
- package/dist/assets/icons/DNA_Two.js.map +1 -1
- package/dist/assets/icons/Data2.js.map +1 -1
- package/dist/assets/icons/DoubleQuotes.js.map +1 -1
- package/dist/assets/icons/EmailAddressAdornment.js.map +1 -1
- package/dist/assets/icons/FileWithShield.js.map +1 -1
- package/dist/assets/icons/FileWithShield2.js.map +1 -1
- package/dist/assets/icons/FrontHand.js.map +1 -1
- package/dist/assets/icons/HandWithMoney.js.map +1 -1
- package/dist/assets/icons/IconCopy.js.map +1 -1
- package/dist/assets/icons/IconMinus.js.map +1 -1
- package/dist/assets/icons/IconPlus.js.map +1 -1
- package/dist/assets/icons/Java.js.map +1 -1
- package/dist/assets/icons/MintDoi.js.map +1 -1
- package/dist/assets/icons/MultiFile.js.map +1 -1
- package/dist/assets/icons/MultiFile2.js.map +1 -1
- package/dist/assets/icons/NoData.js.map +1 -1
- package/dist/assets/icons/NoSearchResults.js.map +1 -1
- package/dist/assets/icons/ORCIDIcon.js.map +1 -1
- package/dist/assets/icons/OpenBook.js.map +1 -1
- package/dist/assets/icons/Podium.js.map +1 -1
- package/dist/assets/icons/Python.js.map +1 -1
- package/dist/assets/icons/QueryStructuredData.js.map +1 -1
- package/dist/assets/icons/RLogo.js.map +1 -1
- package/dist/assets/icons/RecordProvenance.js.map +1 -1
- package/dist/assets/icons/RosetteRibbon.js.map +1 -1
- package/dist/assets/icons/SageFullLogo.js.map +1 -1
- package/dist/assets/icons/SearchImage.js.map +1 -1
- package/dist/assets/icons/ShareYourResearch.js.map +1 -1
- package/dist/assets/icons/Sort.js.map +1 -1
- package/dist/assets/icons/StarTrophy.js.map +1 -1
- package/dist/assets/icons/SynapseFullLogo.js.map +1 -1
- package/dist/assets/icons/SynapseIconWhite.js.map +1 -1
- package/dist/assets/icons/SynapseLogoName.js.map +1 -1
- package/dist/assets/icons/TasksIcon.js.map +1 -1
- package/dist/assets/icons/Terminal.js.map +1 -1
- package/dist/assets/icons/ThreeStars.js.map +1 -1
- package/dist/assets/icons/UnpackagableFile.js.map +1 -1
- package/dist/assets/icons/UnpackagableFile2.js.map +1 -1
- package/dist/assets/icons/ValidatedProfile.js.map +1 -1
- package/dist/assets/icons/account-certified.js.map +1 -1
- package/dist/assets/icons/account-enabled-mfa.js.map +1 -1
- package/dist/assets/icons/account-validated.js.map +1 -1
- package/dist/assets/icons/bioChemicalPhysical.js.map +1 -1
- package/dist/assets/icons/chart2.js.map +1 -1
- package/dist/assets/icons/columns.js.map +1 -1
- package/dist/assets/icons/columnsDarkTheme.js.map +1 -1
- package/dist/assets/icons/computationalTool.js.map +1 -1
- package/dist/assets/icons/dataReuse.js.map +1 -1
- package/dist/assets/icons/emailAddressAdornment2.js.map +1 -1
- package/dist/assets/icons/emailWithNotification.js.map +1 -1
- package/dist/assets/icons/error_page/maintenance.js.map +1 -1
- package/dist/assets/icons/error_page/no-access.js.map +1 -1
- package/dist/assets/icons/error_page/unavailable.js.map +1 -1
- package/dist/assets/icons/file.js.map +1 -1
- package/dist/assets/icons/inSilicoModel.js.map +1 -1
- package/dist/assets/icons/institution.js.map +1 -1
- package/dist/assets/icons/json-form-tool-no-submissions.js.map +1 -1
- package/dist/assets/icons/modelSystem.js.map +1 -1
- package/dist/assets/icons/mouse.js.map +1 -1
- package/dist/assets/icons/organizations.js.map +1 -1
- package/dist/assets/icons/person.js.map +1 -1
- package/dist/assets/icons/spatialProfiling.js.map +1 -1
- package/dist/assets/icons/standardDataModel.js.map +1 -1
- package/dist/assets/icons/study-active.js.map +1 -1
- package/dist/assets/icons/study-complete.js.map +1 -1
- package/dist/assets/icons/subscribe_plus.js.map +1 -1
- package/dist/assets/icons/synapse-logo.js.map +1 -1
- package/dist/assets/icons/terms/CheckIcon.js.map +1 -1
- package/dist/assets/icons/translational.js.map +1 -1
- package/dist/assets/icons/tree_horizontal.js.map +1 -1
- package/dist/assets/illustrations/acknowledgement_statements_illustration.js.map +1 -1
- package/dist/assets/illustrations/challenges_illustration.js.map +1 -1
- package/dist/assets/illustrations/cohort_builder_illustration.js.map +1 -1
- package/dist/assets/illustrations/data_access_management_illustration.js.map +1 -1
- package/dist/assets/illustrations/datasets_illustration.js.map +1 -1
- package/dist/assets/illustrations/diagonalLinePattern.js.map +1 -1
- package/dist/assets/illustrations/discussions_illustration.js.map +1 -1
- package/dist/assets/illustrations/docker_illustration.js.map +1 -1
- package/dist/assets/illustrations/donation_illustration.js.map +1 -1
- package/dist/assets/illustrations/favorites_illustration.js.map +1 -1
- package/dist/assets/illustrations/files_illustration.js.map +1 -1
- package/dist/assets/illustrations/following_illustration.js.map +1 -1
- package/dist/assets/illustrations/index.js.map +1 -1
- package/dist/assets/illustrations/left_dot_blob_dark_illustration.js.map +1 -1
- package/dist/assets/illustrations/left_dot_blob_illustration.js.map +1 -1
- package/dist/assets/illustrations/projects_illustration.js.map +1 -1
- package/dist/assets/illustrations/right_dot_blob_dark_illustration.js.map +1 -1
- package/dist/assets/illustrations/right_dot_blob_illustration.js.map +1 -1
- package/dist/assets/illustrations/tables_illustration.js.map +1 -1
- package/dist/assets/illustrations/teams_illustration.js.map +1 -1
- package/dist/assets/illustrations/trash_can_illustration.js.map +1 -1
- package/dist/assets/illustrations/underconstruction_illustration.js.map +1 -1
- package/dist/assets/illustrations/wikis_illustration.js.map +1 -1
- package/dist/assets/logos/other/ad-workbench-logo.js.map +1 -1
- package/dist/assets/logos/other/cavatica-logo.js.map +1 -1
- package/dist/assets/logos/other/pluto-logo.js.map +1 -1
- package/dist/assets/logos/other/terra-logo.js.map +1 -1
- package/dist/assets/mui_components/AccessManagement.js.map +1 -1
- package/dist/assets/mui_components/AccountCertified.js.map +1 -1
- package/dist/assets/mui_components/AccountRegistered.js.map +1 -1
- package/dist/assets/mui_components/AccountValidated.js.map +1 -1
- package/dist/assets/mui_components/ActionKey.js.map +1 -1
- package/dist/assets/mui_components/BioChemicalPhysical.js.map +1 -1
- package/dist/assets/mui_components/Chromatin.js.map +1 -1
- package/dist/assets/mui_components/Clinical.js.map +1 -1
- package/dist/assets/mui_components/ComputationalTool.js.map +1 -1
- package/dist/assets/mui_components/Data.js.map +1 -1
- package/dist/assets/mui_components/DataLocked.js.map +1 -1
- package/dist/assets/mui_components/DataReuse.js.map +1 -1
- package/dist/assets/mui_components/Dataset.js.map +1 -1
- package/dist/assets/mui_components/DatasetCollection.js.map +1 -1
- package/dist/assets/mui_components/Docker.js.map +1 -1
- package/dist/assets/mui_components/GeneExpression.js.map +1 -1
- package/dist/assets/mui_components/GeneVariants.js.map +1 -1
- package/dist/assets/mui_components/HelpChatBubble.js.map +1 -1
- package/dist/assets/mui_components/Imaging.js.map +1 -1
- package/dist/assets/mui_components/InSilicoModel.js.map +1 -1
- package/dist/assets/mui_components/Kinomics.js.map +1 -1
- package/dist/assets/mui_components/LineGraph.js.map +1 -1
- package/dist/assets/mui_components/ModelSystem.js.map +1 -1
- package/dist/assets/mui_components/Other.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile2.js.map +1 -1
- package/dist/assets/mui_components/Proteomics.js.map +1 -1
- package/dist/assets/mui_components/Rat.js.map +1 -1
- package/dist/assets/mui_components/SpatialProfiling.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition1.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition2.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition3.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition4.js.map +1 -1
- package/dist/assets/sustainability/dialPosition1.js.map +1 -1
- package/dist/assets/sustainability/dialPosition2.js.map +1 -1
- package/dist/assets/sustainability/dialPosition3.js.map +1 -1
- package/dist/assets/sustainability/dialPosition4.js.map +1 -1
- package/dist/assets/themed_icons/Active.js.map +1 -1
- package/dist/assets/themed_icons/Chart.js.map +1 -1
- package/dist/assets/themed_icons/Close.js.map +1 -1
- package/dist/assets/themed_icons/Collapse.js.map +1 -1
- package/dist/assets/themed_icons/Columns.js.map +1 -1
- package/dist/assets/themed_icons/ColumnsDark.js.map +1 -1
- package/dist/assets/themed_icons/Database.js.map +1 -1
- package/dist/assets/themed_icons/Download.js.map +1 -1
- package/dist/assets/themed_icons/Expand.js.map +1 -1
- package/dist/assets/themed_icons/Explore.js.map +1 -1
- package/dist/assets/themed_icons/ExternalLink.js.map +1 -1
- package/dist/assets/themed_icons/Filter.js.map +1 -1
- package/dist/assets/themed_icons/Program.js.map +1 -1
- package/dist/assets/themed_icons/Project.js.map +1 -1
- package/dist/assets/themed_icons/Publication.js.map +1 -1
- package/dist/assets/themed_icons/Search.js.map +1 -1
- package/dist/assets/themed_icons/Settings.js.map +1 -1
- package/dist/assets/themed_icons/SortDown.js.map +1 -1
- package/dist/assets/themed_icons/SortUp.js.map +1 -1
- package/dist/assets/themed_icons/SqlEditorIcon.js.map +1 -1
- package/dist/assets/themed_icons/Study.js.map +1 -1
- package/dist/assets/themed_icons/ToolClinical.js.map +1 -1
- package/dist/assets/themed_icons/ToolComputational.js.map +1 -1
- package/dist/assets/themed_icons/ToolExperimental.js.map +1 -1
- package/dist/assets/themed_icons/VerticalDots.js.map +1 -1
- package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js.map +1 -1
- package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
- package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js.map +1 -1
- package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +10 -11
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +73 -76
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/AuthenticatedRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/CertificationRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/LockAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/ValidationRequirement.js.map +1 -1
- package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
- package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
- package/dist/components/AccountLevelBadge/AccountLevelBadge.js.map +1 -1
- package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
- package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgement.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
- package/dist/components/AclEditor/AclEditorSkeleton.js.map +1 -1
- package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
- package/dist/components/AclEditor/ReadOnlyPermissionLevel.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js +2 -4
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessItem.js.map +1 -1
- package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
- package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
- package/dist/components/AdaptiveTwoColumnLayout/AdaptiveTwoColumnLayout.js.map +1 -1
- package/dist/components/AddToDownloadListV2.js.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
- package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
- package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
- package/dist/components/Authentication/LoginFlowBackButton.js.map +1 -1
- package/dist/components/Authentication/LoginForm.js.map +1 -1
- package/dist/components/Authentication/LoginMethod.js.map +1 -1
- package/dist/components/Authentication/LoginMethodButton.js.map +1 -1
- package/dist/components/Authentication/Logout.js.map +1 -1
- package/dist/components/Authentication/OneTimePasswordForm.js.map +1 -1
- package/dist/components/Authentication/PasswordField.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
- package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
- package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
- package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
- package/dist/components/Authentication/TOTPForm.js.map +1 -1
- package/dist/components/Authentication/TwoFactorAuthSettingsPanel.js.map +1 -1
- package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
- package/dist/components/Authentication/TwoFactorSecretDialog.js.map +1 -1
- package/dist/components/Authentication/UsernamePasswordForm.js.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/components/CTASectionWrapper/CTASectionWrapper.js.map +1 -1
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
- package/dist/components/CardContainer/CardContainer.js.map +1 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Desktop.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.js.map +1 -1
- package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
- package/dist/components/CardGridWithLinks/CardGridWithLinks.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationAnswer.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
- package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
- package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js.map +1 -1
- package/dist/components/ChallengeRegisterButton/ChallengeRegisterButton.js.map +1 -1
- package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
- package/dist/components/ChallengeSubmission/AddExternalRepo.js.map +1 -1
- package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +62 -64
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionCommitList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamSearch.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +96 -102
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/OpenMembershipInvitation.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/RegistrationSuccessful.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
- package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
- package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopover.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
- package/dist/components/CitationPopover/useCitation.js.map +1 -1
- package/dist/components/ColorGradient/ColorGradient.js.map +1 -1
- package/dist/components/ColoredBulletListItem/ColoredBulletListItem.js.map +1 -1
- package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
- package/dist/components/ComponentCollapse.js.map +1 -1
- package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiePreferencesDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.d.ts.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.js +9 -9
- package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
- package/dist/components/CopyToClipboardIcon.js.map +1 -1
- package/dist/components/CopyToClipboardInput/CopyToClipboardInput.js.map +1 -1
- package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizardUtils.js.map +1 -1
- package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
- package/dist/components/CreateProjectModal/ProjectVisibilityRadioGroup.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableTypeSelection.js.map +1 -1
- package/dist/components/CreateTableViewWizard/ViewTypeSelection.js.map +1 -1
- package/dist/components/CrispChat/CrispChat.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.js +28 -31
- package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
- package/dist/components/DataGrid/DataGrid.js +72 -72
- package/dist/components/DataGrid/DataGrid.js.map +1 -1
- package/dist/components/DataGrid/DataGridTypes.js.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.d.ts +2 -0
- package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.js +9 -10
- package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
- package/dist/components/DataGrid/StartGridSession.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts +3 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +219 -211
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/GridAutocompleteChip.js.map +1 -1
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
- package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js.map +1 -1
- package/dist/components/DataGrid/components/GridSessionSelectionField.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
- package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
- package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +2 -0
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
- package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridReplicaUsers.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
- package/dist/components/DataGrid/hooks/useRemoteSelections.js.map +1 -1
- package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
- package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts +2 -0
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js +12 -2
- package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
- package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
- package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
- package/dist/components/DataGrid/utils/MessageCounter.js.map +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/calculateColumnWidth.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
- package/dist/components/DataGrid/utils/convertActionToModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/createTestModel.js.map +1 -1
- package/dist/components/DataGrid/utils/enrichRowsWithChangeInfo.js.map +1 -1
- package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellAuthorSid.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
- package/dist/components/DataGrid/utils/getChangeTooltipText.js.map +1 -1
- package/dist/components/DataGrid/utils/getEmptyValue.js.map +1 -1
- package/dist/components/DataGrid/utils/getReplicaCategory.js.map +1 -1
- package/dist/components/DataGrid/utils/isValidationUpToDateForRow.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxMessage.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxNotification.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxRequest.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxRequestComplete.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxResponse.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
- package/dist/components/DataGrid/utils/logicalTimestampToString.js.map +1 -1
- package/dist/components/DataGrid/utils/mapOperationsToModelChanges.js.map +1 -1
- package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
- package/dist/components/DataGrid/utils/replicaSelectionToGridSelection.js.map +1 -1
- package/dist/components/DataGrid/utils/schemaAwarePasteValue.js.map +1 -1
- package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
- package/dist/components/DatasetJsonLdScript.js.map +1 -1
- package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
- package/dist/components/Dialog/ConfirmCloseWithoutSavingDialog.js.map +1 -1
- package/dist/components/DialogBase.js.map +1 -1
- package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
- package/dist/components/DirectDownload/FileEntityDirectDownload.js.map +1 -1
- package/dist/components/DirectDownloadButton.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
- package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
- package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
- package/dist/components/DownloadCart/DirectProgrammaticDownload.js.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
- package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListStats.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
- package/dist/components/DownloadCart/EnableTwoFaRequirementCard.js.map +1 -1
- package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
- package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
- package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
- package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
- package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
- package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
- package/dist/components/DynamicForm/DynamicForm.js.map +1 -1
- package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemCard.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemLayout.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
- package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
- package/dist/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditorModal.js.map +1 -1
- package/dist/components/EntityAclEditor/InheritanceMessage.js.map +1 -1
- package/dist/components/EntityAclEditor/OpenData.js.map +1 -1
- package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +68 -70
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js +32 -35
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
- package/dist/components/EntityFinder/Breadcrumbs.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinder.js +134 -136
- package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinderModal.js.map +1 -1
- package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
- package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
- package/dist/components/EntityFinder/details/EntityDetailsList.js +20 -20
- package/dist/components/EntityFinder/details/EntityDetailsList.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ReferenceDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/SearchDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.js +67 -67
- package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
- package/dist/components/EntityFinder/details/view/VersionColumnHeader.js +1 -1
- package/dist/components/EntityFinder/details/view/VersionColumnHeader.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/DateCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityBadgeIconsCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityFinderCheckboxCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityFinderVersionCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityNameCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityTypeCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityDirectDownloadCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/UserBadgeCell.js.map +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.js +80 -80
- package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
- package/dist/components/EntityFinder/tree/VirtualizedTree.js +31 -31
- package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
- package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
- package/dist/components/EntityForm/EntityForm.js.map +1 -1
- package/dist/components/EntityHeaderTable/DebouncedInput.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTableCellRenderers.js.map +1 -1
- package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
- package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
- package/dist/components/EntityIcon.js.map +1 -1
- package/dist/components/EntityLink.js.map +1 -1
- package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
- package/dist/components/EntityTreeTable/EntityTreeTable.js.map +1 -1
- package/dist/components/EntityTreeTable/components/AutoLoadMore.js.map +1 -1
- package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityBadgeIconsCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableContext.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableRow.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
- package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
- package/dist/components/EntityUpload/EntityUploadModal.js +29 -31
- package/dist/components/EntityUpload/EntityUploadModal.js.map +1 -1
- package/dist/components/EntityUpload/EntityUploadPromptDialog.js.map +1 -1
- package/dist/components/EntityUpload/ExternalObjectStoreCredentialsForm.js.map +1 -1
- package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
- package/dist/components/EntityUpload/LinkToURL.js.map +1 -1
- package/dist/components/EntityUpload/ProjectStorageLimitAlert.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewScopeEditor.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewScopeEditorModal.js.map +1 -1
- package/dist/components/Evaluation/CreatedOnByUserDiv.js.map +1 -1
- package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -1
- package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditorPage.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditorDropdown.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditorList.js.map +1 -1
- package/dist/components/Evaluation/input_models/models.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
- package/dist/components/EvaluationFinder/EvaluationFinder.js.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.d.ts.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js +24 -30
- package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
- package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataPlots.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
- package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
- package/dist/components/FeaturedResearch/FeaturedResearch.js +16 -18
- package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolCard.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
- package/dist/components/FilePreview/EntityPreview.js.map +1 -1
- package/dist/components/FilePreview/FileEntityPreview.js.map +1 -1
- package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
- package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
- package/dist/components/FilePreview/PdfPreview.js.map +1 -1
- package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
- package/dist/components/FilePreview/PreviewUtils.js.map +1 -1
- package/dist/components/FileUpload/FileUpload.js.map +1 -1
- package/dist/components/Forum/DiscussionReply.js.map +1 -1
- package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
- package/dist/components/Forum/DiscussionThread.js.map +1 -1
- package/dist/components/Forum/ForumPage.js.map +1 -1
- package/dist/components/Forum/ForumTable.js.map +1 -1
- package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
- package/dist/components/Forum/SubscribersModal.js.map +1 -1
- package/dist/components/ForumSearch/ForumSearch.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearch.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
- package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
- package/dist/components/GenericCard/BioregistryRules.js.map +1 -1
- package/dist/components/GenericCard/CardUtils.js.map +1 -1
- package/dist/components/GenericCard/CollapsibleDescription.js.map +1 -1
- package/dist/components/GenericCard/CroissantButton/CroissantButton.js.map +1 -1
- package/dist/components/GenericCard/GenericCard.js.map +1 -1
- package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
- package/dist/components/GenericCard/GenericCardIcon.js.map +1 -1
- package/dist/components/GenericCard/GenericCardTitle.js.map +1 -1
- package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -1
- package/dist/components/GenericCard/Linkify.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/GenericCard/useResolvedSynapseEntity.js.map +1 -1
- package/dist/components/Goals/Goals.Desktop.js.map +1 -1
- package/dist/components/Goals/Goals.Mobile.js.map +1 -1
- package/dist/components/Goals/Goals.js +25 -27
- package/dist/components/Goals/Goals.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.js +14 -16
- package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Desktop.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.js +14 -16
- package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
- package/dist/components/GoogleAnalytics/GoogleAnalytics.js.map +1 -1
- package/dist/components/GoogleMap/GoogleMap.js.map +1 -1
- package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
- package/dist/components/HasAccess/AccessIcon.js +10 -10
- package/dist/components/HasAccess/AccessIcon.js.map +1 -1
- package/dist/components/HasAccess/HasAccessV2.js.map +1 -1
- package/dist/components/HasAccess/useHasAccess.js.map +1 -1
- package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
- package/dist/components/HeaderCard.js.map +1 -1
- package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
- package/dist/components/HexGrid/HexGrid.js.map +1 -1
- package/dist/components/IDUReport/IDUReport.js.map +1 -1
- package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
- package/dist/components/Icon/Icon.js.map +1 -1
- package/dist/components/IconList.js.map +1 -1
- package/dist/components/IconSvg/IconSvg.js.map +1 -1
- package/dist/components/IconSvgButton.js.map +1 -1
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js +7 -9
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
- package/dist/components/ImageFromSynapseTable.js.map +1 -1
- package/dist/components/InteractiveCopyIdsIcon.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditorModal.js.map +1 -1
- package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
- package/dist/components/JsonLdScript.js.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTitleTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/DescriptionFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ErrorListTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldDescriptionTable.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldErrorTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/BooleanWidget.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/DateTimeWidget.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
- package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
- package/dist/components/Markdown/GovernanceMarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
- package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.js +75 -106
- package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.d.ts +14 -4
- package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.js +38 -37
- package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
- package/dist/components/Markdown/MarkdownWidget.js.map +1 -1
- package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
- package/dist/components/Markdown/UserMentionModal.js.map +1 -1
- package/dist/components/Markdown/widget/Bookmarks.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownEntityPreview.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownIDUReport.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapseImage.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapseTable.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownTableOfContents.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownUserOrTeamBadge.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownVideo.js.map +1 -1
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.FormSchema.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
- package/dist/components/MuiContainer.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
- package/dist/components/OAuthClientManagement/CreateOAuthClient.js.map +1 -1
- package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
- package/dist/components/OrientationBanner/OrientationBanner.js.map +1 -1
- package/dist/components/PageProgress/PageProgress.js.map +1 -1
- package/dist/components/Plot/BarPlot.js.map +1 -1
- package/dist/components/Plot/DotPlot.js.map +1 -1
- package/dist/components/Plot/Plot.d.ts +12 -1
- package/dist/components/Plot/Plot.d.ts.map +1 -1
- package/dist/components/Plot/Plot.js +5 -1
- package/dist/components/Plot/Plot.js.map +1 -1
- package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
- package/dist/components/Plot/SynapsePlot.js.map +1 -1
- package/dist/components/Plot/SynapseSankeyPlot.d.ts +12 -0
- package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -0
- package/dist/components/Plot/SynapseSankeyPlot.js +54 -0
- package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -0
- package/dist/components/Plot/ThemesPlot.js.map +1 -1
- package/dist/components/Plot/UpsetPlot.js.map +1 -1
- package/dist/components/Plot/index.d.ts +3 -1
- package/dist/components/Plot/index.d.ts.map +1 -1
- package/dist/components/Plot/index.js +2 -1
- package/dist/components/Plot/safe-react-plotly-factory.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditorModal.js.map +1 -1
- package/dist/components/PortalFeatureHighlights/PortalFeatureHighlights.js.map +1 -1
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js +4 -6
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
- package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
- package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
- package/dist/components/PortalList/PortalCard.js.map +1 -1
- package/dist/components/PortalList/PortalList.js.map +1 -1
- package/dist/components/PortalSectionHeader/PortalSectionHeader.js.map +1 -1
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js +69 -69
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
- package/dist/components/Programs/Programs.Desktop.js.map +1 -1
- package/dist/components/Programs/Programs.Mobile.js.map +1 -1
- package/dist/components/Programs/Programs.js.map +1 -1
- package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
- package/dist/components/ProvenanceGraph/ActivityNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/EntityNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/EntityPlaceholderNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ExpandGraphNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ExternalGraphNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceEntityIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js +13 -13
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/UndefinedNodeLabel.js.map +1 -1
- package/dist/components/QueryContext/QueryContext.js.map +1 -1
- package/dist/components/QueryCount/QueryCount.js.map +1 -1
- package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
- package/dist/components/QuerySortSelector.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/NoContentPlaceholder.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationContext.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapper.js +27 -27
- package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapperLoadingScreen.js.map +1 -1
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
- package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
- package/dist/components/QueryWrapper/ViewMoreQueryResultsButton.js.map +1 -1
- package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
- package/dist/components/QueryWrapper/useComputeRowSelectionPrimaryKey.js.map +1 -1
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
- package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
- package/dist/components/QueryWrapper/useHasFacetedSelectColumn.js.map +1 -1
- package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
- package/dist/components/RORInstitutionField/RORInstitutionField.js.map +1 -1
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js +6 -8
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
- package/dist/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCard.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardMedium.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
- package/dist/components/RenderIfInView/RenderIfInView.js.map +1 -1
- package/dist/components/ResizableContainer/ResizableContainer.js.map +1 -1
- package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
- package/dist/components/Resources/Resources.Desktop.js.map +1 -1
- package/dist/components/Resources/Resources.Mobile.js.map +1 -1
- package/dist/components/Resources/Resources.js +8 -11
- package/dist/components/Resources/Resources.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
- package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
- package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/SynapseAnnotationsWrapIfAdditionalTemplate.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/widget/TextWidget.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessRequirementTextInstructions.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
- package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
- package/dist/components/ShowMore/ShowMore.js.map +1 -1
- package/dist/components/SignInButton.js.map +1 -1
- package/dist/components/SignInRequiredModal/SignInRequiredModal.js.map +1 -1
- package/dist/components/Skeleton/SkeletonButton.js.map +1 -1
- package/dist/components/Skeleton/SkeletonInlineBlock.js.map +1 -1
- package/dist/components/Skeleton/SkeletonParagraph.js.map +1 -1
- package/dist/components/Skeleton/SkeletonTable.js.map +1 -1
- package/dist/components/SmartLink/SmartButton.js.map +1 -1
- package/dist/components/SmartLink/SmartLink.js.map +1 -1
- package/dist/components/SmartLink/useSmartLink.js.map +1 -1
- package/dist/components/SourceAppImage.js.map +1 -1
- package/dist/components/SpinnerButton/SpinnerButton.js.map +1 -1
- package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditor.js.map +1 -1
- package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.js.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
- package/dist/components/StatisticsPlot.js.map +1 -1
- package/dist/components/StepperDialog/StepperDialog.js.map +1 -1
- package/dist/components/StorybookComponentWrapper.js.map +1 -1
- package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.js.map +1 -1
- package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.js.map +1 -1
- package/dist/components/SubscriptionPage/ForumTopic.js.map +1 -1
- package/dist/components/SubscriptionPage/SubscriptionItem.js.map +1 -1
- package/dist/components/SubscriptionPage/SubscriptionPage.js.map +1 -1
- package/dist/components/SubscriptionPage/ThreadTopic.js.map +1 -1
- package/dist/components/SubscriptionPage/Topic.js.map +1 -1
- package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
- package/dist/components/SustainabilityScorecard/Dial.js.map +1 -1
- package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardUtils.js.map +1 -1
- package/dist/components/SynapseChat/AccessLevelMenu.js.map +1 -1
- package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatDialog.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
- package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
- package/dist/components/SynapseChat/useChatState.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseLinksColumn.js.map +1 -1
- package/dist/components/SynapseForm/DataDebug.js.map +1 -1
- package/dist/components/SynapseForm/Header.js.map +1 -1
- package/dist/components/SynapseForm/NavButtons.js.map +1 -1
- package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
- package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
- package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormCheckboxWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormCheckboxesWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormRadioWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormSubmissionGrid.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormUtils.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
- package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
- package/dist/components/SynapseForm/types.js.map +1 -1
- package/dist/components/SynapseForm/useGetFormPropsFromSearchParams.js.map +1 -1
- package/dist/components/SynapseHomepageV2/FloatingBlobsBackground.js.map +1 -1
- package/dist/components/SynapseHomepageV2/HomepageStyles.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbers.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasets.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatures.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +18 -21
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageV2.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHotdrops.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHotdropsItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInAction.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlan.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlanContent.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlansPage.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +78 -78
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HasAccessChip.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageRouter.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/chipStyles.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControlButton.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControlPanel.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControls.js.map +1 -1
- package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
- package/dist/components/SynapseTable/ExpandCollapseButton.js.map +1 -1
- package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
- package/dist/components/SynapseTable/NoContentAvailable.js.map +1 -1
- package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
- package/dist/components/SynapseTable/SearchResultsNotFound.js.map +1 -1
- package/dist/components/SynapseTable/SearchV2.js.map +1 -1
- package/dist/components/SynapseTable/SqlEditor.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/EntityIdList.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/EvaluationIdRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/ComplexJSONRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONArrayRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONObjectRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONPrimitiveRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONRendererUtils.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONTableCellRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/UserIdList.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableConstants.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableContext.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
- package/dist/components/SynapseTable/TableIsEmpty.js.map +1 -1
- package/dist/components/SynapseTable/TablePagination.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorCheckboxCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorUtils.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +131 -133
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/components/SynapseTable/datasets/EntityFetchErrorCell.js.map +1 -1
- package/dist/components/SynapseTable/export/ADDiscoveryPortalInstructions.js.map +1 -1
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +48 -51
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformDisclaimer.js.map +1 -1
- package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadLoginModal.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
- package/dist/components/SynapseTable/useTableSort.js.map +1 -1
- package/dist/components/SystemUseNotification/SystemUseNotification.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +4 -4
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +9 -9
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DefaultValueValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EnumValuesValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js.map +1 -1
- package/dist/components/TableFeedCards/TableFeedCards.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/TableBody.js.map +1 -1
- package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
- package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
- package/dist/components/TeamBadge.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
- package/dist/components/TemplateComponent.js.map +1 -1
- package/dist/components/TemporaryBanner/TemporaryBanner.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditionsItem.js.map +1 -1
- package/dist/components/TextField/TextField.js.map +1 -1
- package/dist/components/TextField/TextFieldWithWordLimit.js.map +1 -1
- package/dist/components/TextToComponentCollapse.js.map +1 -1
- package/dist/components/ThemeGallery/ThemeGallery.js.map +1 -1
- package/dist/components/TimelinePlot/TimelineLegendItem.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
- package/dist/components/TimelinePlot/phasesQueryResponseData.js.map +1 -1
- package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
- package/dist/components/TotalQueryResults.js.map +1 -1
- package/dist/components/UserCard/Avatar.js.map +1 -1
- package/dist/components/UserCard/UserBadge.js.map +1 -1
- package/dist/components/UserCard/UserCard.js.map +1 -1
- package/dist/components/UserCard/UserCardContextMenu.js.map +1 -1
- package/dist/components/UserCard/UserCardLarge.js.map +1 -1
- package/dist/components/UserCard/UserCardMedium.js.map +1 -1
- package/dist/components/UserCardList/UserCardList.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.js.map +1 -1
- package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
- package/dist/components/UserOrTeamBadge/UserOrTeamBadge.js.map +1 -1
- package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
- package/dist/components/UserProfileLinks/UserChallenges.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProfileLinks.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
- package/dist/components/UserProfileLinks/UserTeams.js.map +1 -1
- package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
- package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
- package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
- package/dist/components/Webhook/WebhookVerificationDialog.js.map +1 -1
- package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
- package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButton.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButtonDescription.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButtonGroup.js.map +1 -1
- package/dist/components/WordPress/WordPressLatestPostChip.js.map +1 -1
- package/dist/components/WordPress/useWordPressCategories.js.map +1 -1
- package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
- package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
- package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementSearchBox/AccessRequirementSearchBox.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
- package/dist/components/dataaccess/RejectDataAccessRequestModal.js.map +1 -1
- package/dist/components/dataaccess/RejectProfileValidationRequestModal.js.map +1 -1
- package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
- package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/SubmissionSortStateTranslator.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
- package/dist/components/doi/DoiFormSchemas.js.map +1 -1
- package/dist/components/doi/PrivateEntityDoiWarning.js.map +1 -1
- package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUI.js +30 -32
- package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
- package/dist/components/download_list/DownloadDetails.js.map +1 -1
- package/dist/components/download_list/index.js.map +1 -1
- package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
- package/dist/components/entity/metadata/EntityAnnotationKey.js.map +1 -1
- package/dist/components/entity/metadata/EntityModal.js.map +1 -1
- package/dist/components/entity/metadata/MetadataTable.js.map +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
- package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
- package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
- package/dist/components/entity/page/title_bar/CitationsDialog.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js.map +1 -1
- package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
- package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
- package/dist/components/error/ErrorBanner.js.map +1 -1
- package/dist/components/error/ErrorChip.js.map +1 -1
- package/dist/components/error/ErrorPage.js +24 -24
- package/dist/components/error/ErrorPage.js.map +1 -1
- package/dist/components/error/RouteErrorBoundary.js.map +1 -1
- package/dist/components/error/SendMessageToEntityOwnerDialog.js.map +1 -1
- package/dist/components/error/SynapseObjectDOIInfo.js.map +1 -1
- package/dist/components/favorites/FavoriteButton.js.map +1 -1
- package/dist/components/favorites/FavoritesPage.js.map +1 -1
- package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
- package/dist/components/file/upload/MultiFileUploadProgress.js.map +1 -1
- package/dist/components/file/upload/UploadFilePanel.js.map +1 -1
- package/dist/components/form/RadioGroupWithOtherString.js.map +1 -1
- package/dist/components/home_page/ExpandableContent.js.map +1 -1
- package/dist/components/index.js +48 -47
- package/dist/components/layout/InfiniteTableLayout.js.map +1 -1
- package/dist/components/layout/SWCHeader.js.map +1 -1
- package/dist/components/layout/SWCPageLayout.js.map +1 -1
- package/dist/components/menu/ComplexMenu.js.map +1 -1
- package/dist/components/menu/DropdownMenu.js.map +1 -1
- package/dist/components/row_renderers/Dataset.js.map +1 -1
- package/dist/components/row_renderers/Funder.js.map +1 -1
- package/dist/components/row_renderers/ObservationCard.js.map +1 -1
- package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
- package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
- package/dist/components/styled/HoverPopover.js.map +1 -1
- package/dist/components/styled/InlineBadge.js.map +1 -1
- package/dist/components/styled/InputSizedButton.js.map +1 -1
- package/dist/components/styled/LargeButton.js.map +1 -1
- package/dist/components/styled/LeftRightPanel.js.map +1 -1
- package/dist/components/styled/LightTooltip.js.map +1 -1
- package/dist/components/styled/StyledFormControl.js.map +1 -1
- package/dist/components/styled/StyledPopover.js.map +1 -1
- package/dist/components/styled/StyledTableContainer.js.map +1 -1
- package/dist/components/styled/WideButton.js.map +1 -1
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +39 -42
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -1
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -1
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js +11 -11
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -1
- package/dist/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm.js.map +1 -1
- package/dist/components/trash/TrashCanList.js.map +1 -1
- package/dist/components/utils/Blocker.js.map +1 -1
- package/dist/components/utils/ConditionalWrapper.js.map +1 -1
- package/dist/components/utils/VisibilityObserver.js.map +1 -1
- package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
- package/dist/components/widgets/EntityColumnImage.js.map +1 -1
- package/dist/components/widgets/FileHandleLink.js.map +1 -1
- package/dist/components/widgets/ImageFileHandle.js.map +1 -1
- package/dist/components/widgets/LoginAwareButton.js.map +1 -1
- package/dist/components/widgets/Range.js.map +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/components/widgets/SynapseImage.js.map +1 -1
- package/dist/components/widgets/SynapseVideo.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainerSkeleton.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPill.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
- package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
- package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetChip.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterHeader.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterSkeleton.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.js +3 -3
- package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +41 -41
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
- package/dist/features/curator/GridPage/GridPage.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageRouter.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
- package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
- package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
- package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
- package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
- package/dist/features/curator/dashboard/components/UserOrTeamChip.js.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +5 -0
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +227 -181
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +3 -0
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.d.ts +5 -0
- package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.js +2 -2
- package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getLatestGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/taskHasAssignee.js.map +1 -1
- package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
- package/dist/index.js +54 -53
- package/dist/index.js.map +1 -1
- package/dist/mocks/MockAccessApprovals.js.map +1 -1
- package/dist/mocks/MockSynapseContext.js.map +1 -1
- package/dist/mocks/accessRequirement/mockAccessRequirementAcls.js.map +1 -1
- package/dist/mocks/accessRequirement/mockAccessRequirements.js.map +1 -1
- package/dist/mocks/applicationSessionContext/MockApplicationSessionContext.js.map +1 -1
- package/dist/mocks/challenge/mockChallenge.js.map +1 -1
- package/dist/mocks/chat/mockChat.js.map +1 -1
- package/dist/mocks/curation/mockCurationTask.js.map +1 -1
- package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
- package/dist/mocks/dataaccess/MockResearchProject.js.map +1 -1
- package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
- package/dist/mocks/dataaccess/mockAccessRequest.js.map +1 -1
- package/dist/mocks/discussion/mock_discussion.js.map +1 -1
- package/dist/mocks/doi/MockDoi.js.map +1 -1
- package/dist/mocks/entity/index.js.map +1 -1
- package/dist/mocks/entity/mockDataset.js.map +1 -1
- package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
- package/dist/mocks/entity/mockEntity.js.map +1 -1
- package/dist/mocks/entity/mockEvaluationQueue.js.map +1 -1
- package/dist/mocks/entity/mockFileEntity.js.map +1 -1
- package/dist/mocks/entity/mockFileEntityACLVariants.js.map +1 -1
- package/dist/mocks/entity/mockFileView.js.map +1 -1
- package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
- package/dist/mocks/entity/mockProject.js.map +1 -1
- package/dist/mocks/entity/mockProjectView.js.map +1 -1
- package/dist/mocks/entity/mockReleaseCardsTable.js.map +1 -1
- package/dist/mocks/entity/mockRootEntity.js.map +1 -1
- package/dist/mocks/entity/mockTableEntity.js.map +1 -1
- package/dist/mocks/faker/fakerUtils.js.map +1 -1
- package/dist/mocks/faker/generateDiscussion.js.map +1 -1
- package/dist/mocks/faker/generateEvaluation.js.map +1 -1
- package/dist/mocks/faker/generateFakeEntity.js.map +1 -1
- package/dist/mocks/faker/generateSubscription.js.map +1 -1
- package/dist/mocks/mockAnnotationColumns.js.map +1 -1
- package/dist/mocks/mockCertificationQuiz.js.map +1 -1
- package/dist/mocks/mockDataCatalogQuery.js.map +1 -1
- package/dist/mocks/mockFileViewQuery.js.map +1 -1
- package/dist/mocks/mockOAuthClientAcls.js.map +1 -1
- package/dist/mocks/mockQueryResponseData.js.map +1 -1
- package/dist/mocks/mockQueryResponseDataWithManyEnumFacets.js.map +1 -1
- package/dist/mocks/mockSchema.js.map +1 -1
- package/dist/mocks/mockSearchQueryData.js.map +1 -1
- package/dist/mocks/mockShortIo.js.map +1 -1
- package/dist/mocks/mockSourceAppConfigQuery.js.map +1 -1
- package/dist/mocks/mockSubscription.js.map +1 -1
- package/dist/mocks/mockWiki.js.map +1 -1
- package/dist/mocks/mockWikiPageKey.js.map +1 -1
- package/dist/mocks/mock_drug_tool_data.js.map +1 -1
- package/dist/mocks/mock_file_handle.js.map +1 -1
- package/dist/mocks/mock_file_statistics.js.map +1 -1
- package/dist/mocks/mock_has_access_data.js.map +1 -1
- package/dist/mocks/mock_upload_destination.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementAclHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/dataciteHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/doiHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/evaluationHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/messageHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/oauthClientAclHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/projectStorageHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/realmHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/researchProjectHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/shortIoHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryService.js.map +1 -1
- package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/termsOfServiceHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/webhookHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers.js.map +1 -1
- package/dist/mocks/msw/server.d.ts +1 -1
- package/dist/mocks/msw/server.d.ts.map +1 -1
- package/dist/mocks/msw/server.js.map +1 -1
- package/dist/mocks/msw/util/BasicMockedCrudService.js.map +1 -1
- package/dist/mocks/oauth/MockClient.js.map +1 -1
- package/dist/mocks/personalAccessToken/mockPersonalAccessToken.js.map +1 -1
- package/dist/mocks/projectStorage/mockProjectStorageLimits.js.map +1 -1
- package/dist/mocks/provenance/mockActivity.js.map +1 -1
- package/dist/mocks/query/defaultFileViewColumnModels.js.map +1 -1
- package/dist/mocks/query/mockFeaturedDataTabsQueryData.js.map +1 -1
- package/dist/mocks/query/mockHomepageQueryResultData.js.map +1 -1
- package/dist/mocks/query/mockProjectViewQueryResults.js.map +1 -1
- package/dist/mocks/query/mockRejectionReasonsTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mockUserCardTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mock_query_data.js.map +1 -1
- package/dist/mocks/query/syn16787123.js.map +1 -1
- package/dist/mocks/query/syn17328596.js.map +1 -1
- package/dist/mocks/query/syn51735464.js.map +1 -1
- package/dist/mocks/query/syn51735464GroupBySpecies.js.map +1 -1
- package/dist/mocks/realm/mockRealmPrincipal.js.map +1 -1
- package/dist/mocks/team/mockTeam.js.map +1 -1
- package/dist/mocks/termsOfService/mockTermsOfService.js.map +1 -1
- package/dist/mocks/user/mock_user_profile.js.map +1 -1
- package/dist/mocks/usergroup/mockUserGroup.js.map +1 -1
- package/dist/ror-client/index.js.map +1 -1
- package/dist/stories/ColorPaletteInspector.js.map +1 -1
- package/dist/stories/ToastDemo.js.map +1 -1
- package/dist/stories/stubs/Alert/MuiAlert.js.map +1 -1
- package/dist/stories/stubs/Button/MuiButton.js.map +1 -1
- package/dist/stories/stubs/Dialog/MuiDialog.js.map +1 -1
- package/dist/stories/stubs/TextField/MuiTextField.js.map +1 -1
- package/dist/stories/stubs/Tooltip/MuiTooltip.js.map +1 -1
- package/dist/synapse-client/HttpClient.js.map +1 -1
- package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
- package/dist/synapse-client/SynapseClient.js +61 -69
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-client/SynapseClientUtils.js.map +1 -1
- package/dist/synapse-queries/InfiniteQueryUtils.js.map +1 -1
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
- package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
- package/dist/synapse-queries/asynchronous/usePollAsynchronousJob.js.map +1 -1
- package/dist/synapse-queries/auth/useChangePassword.js.map +1 -1
- package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
- package/dist/synapse-queries/auth/useResetPassword.js.map +1 -1
- package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
- package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
- package/dist/synapse-queries/chat/useChat.js.map +1 -1
- package/dist/synapse-queries/croissant/useGetCroissantUrl.js.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.js +12 -2
- package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessApprovals.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useGetApprovedSubmissionInfo.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
- package/dist/synapse-queries/docker/useGetDockerTag.js.map +1 -1
- package/dist/synapse-queries/doi/useDOI.js.map +1 -1
- package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
- package/dist/synapse-queries/entity/useActionsRequiredForTableQuery.js.map +1 -1
- package/dist/synapse-queries/entity/useEntity.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityActionsRequired.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityChallenge.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityChildren.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityForum.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityHeaders.js.map +1 -1
- package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useProjectStorage.js.map +1 -1
- package/dist/synapse-queries/entity/useSchema.js.map +1 -1
- package/dist/synapse-queries/evaluation/useEvaluation.js.map +1 -1
- package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
- package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
- package/dist/synapse-queries/file/useFiles.js.map +1 -1
- package/dist/synapse-queries/file/useSynapseMultipartUpload.js.map +1 -1
- package/dist/synapse-queries/file/useUploadDestination.js.map +1 -1
- package/dist/synapse-queries/forum/useForum.js.map +1 -1
- package/dist/synapse-queries/forum/useReply.js.map +1 -1
- package/dist/synapse-queries/forum/useThread.js.map +1 -1
- package/dist/synapse-queries/github/useGithub.js.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
- package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
- package/dist/synapse-queries/grid/useGridPresignedUrl.js.map +1 -1
- package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
- package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
- package/dist/synapse-queries/message/useMessage.js.map +1 -1
- package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
- package/dist/synapse-queries/portal/useListPortals.js.map +1 -1
- package/dist/synapse-queries/portal/usePortal.js.map +1 -1
- package/dist/synapse-queries/provenance/useGetActivityForEntity.js.map +1 -1
- package/dist/synapse-queries/realm/useRealmPrincipals.js.map +1 -1
- package/dist/synapse-queries/ror/index.js.map +1 -1
- package/dist/synapse-queries/search/useSearch.js.map +1 -1
- package/dist/synapse-queries/search/useSuggestion.js.map +1 -1
- package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
- package/dist/synapse-queries/table/useColumnModel.js.map +1 -1
- package/dist/synapse-queries/table/useDefiningSql.js.map +1 -1
- package/dist/synapse-queries/table/useDownloadTable.js.map +1 -1
- package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
- package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
- package/dist/synapse-queries/team/useTeam.js.map +1 -1
- package/dist/synapse-queries/team/useTeamList.js.map +1 -1
- package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
- package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
- package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
- package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
- package/dist/synapse-queries/user/useFavorites.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserProjects.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserTeams.js.map +1 -1
- package/dist/synapse-queries/user/usePersonalAccessToken.js.map +1 -1
- package/dist/synapse-queries/user/useProjects.js.map +1 -1
- package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
- package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
- package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
- package/dist/synapse-queries/verificationSubmission/useVerificationSubmission.js.map +1 -1
- package/dist/synapse-queries/webhook/useWebhook.js.map +1 -1
- package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
- package/dist/testutils/ComponentToBePassedPropsCustomMatcher.js.map +1 -1
- package/dist/testutils/IsEditingStoreTestUtils.js +17 -0
- package/dist/testutils/IsEditingStoreTestUtils.js.map +1 -0
- package/dist/testutils/LocationTracker.js.map +1 -1
- package/dist/testutils/MarkdownSynapseUtils.js.map +1 -1
- package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
- package/dist/testutils/TestingLibraryUtils.js +18 -16
- package/dist/testutils/TestingLibraryUtils.js.map +1 -1
- package/dist/testutils/muiDatePickerMock.js.map +1 -1
- package/dist/testutils/vitest.setup.js.map +1 -1
- package/dist/theme/DefaultTheme.js.map +1 -1
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/mergeTheme.js.map +1 -1
- package/dist/theme/palette/Palettes.js.map +1 -1
- package/dist/theme/spreadSx.js.map +1 -1
- package/dist/theme/typography/Link.js.map +1 -1
- package/dist/theme/typography/Typography.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/AppUtils/AppUtils.d.ts.map +1 -1
- package/dist/utils/AppUtils/AppUtils.js +11 -11
- package/dist/utils/AppUtils/AppUtils.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionContext.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/AuthenticationGuard.js.map +1 -1
- package/dist/utils/AppUtils/session/SessionInitializedGuard.js.map +1 -1
- package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
- package/dist/utils/ContentTypeUtils.js.map +1 -1
- package/dist/utils/OrientationBannerConstants.js.map +1 -1
- package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
- package/dist/utils/SynapseConstants.js.map +1 -1
- package/dist/utils/analytics/sendAnalyticsEvent.js.map +1 -1
- package/dist/utils/analytics/sendSearchEvent.js.map +1 -1
- package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
- package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
- package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
- package/dist/utils/context/AridhiaContext.js.map +1 -1
- package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
- package/dist/utils/context/FullContextProvider.js.map +1 -1
- package/dist/utils/context/GlobalIsEditingContext.js.map +1 -1
- package/dist/utils/context/SynapseContext.js.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
- package/dist/utils/functions/ArrayUtils.js.map +1 -1
- package/dist/utils/functions/DateFormatter.js.map +1 -1
- package/dist/utils/functions/DateTimeUtils.js.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
- package/dist/utils/functions/FileHandleUtils.js.map +1 -1
- package/dist/utils/functions/GridApiUtils.js.map +1 -1
- package/dist/utils/functions/IsEqualTreatUndefinedAsMissing.js.map +1 -1
- package/dist/utils/functions/IsExternalLink.js.map +1 -1
- package/dist/utils/functions/ObjectUtils.js.map +1 -1
- package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
- package/dist/utils/functions/RealmUtils.js.map +1 -1
- package/dist/utils/functions/RegularExpressions.js.map +1 -1
- package/dist/utils/functions/ResolveLinkEntity.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
- package/dist/utils/functions/SqlFunctions.js.map +1 -1
- package/dist/utils/functions/StringUtils.js.map +1 -1
- package/dist/utils/functions/TableColumnSchemaUtils.js.map +1 -1
- package/dist/utils/functions/calculateFriendlyFileSize.js.map +1 -1
- package/dist/utils/functions/colorPalette.js.map +1 -1
- package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
- package/dist/utils/functions/dispatchDownloadListChangeEvent.js.map +1 -1
- package/dist/utils/functions/generateCsrfToken.js.map +1 -1
- package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
- package/dist/utils/functions/getEndpoint.js +3 -3
- package/dist/utils/functions/getEndpoint.js.map +1 -1
- package/dist/utils/functions/getPrincipalDisplayName.js.map +1 -1
- package/dist/utils/functions/getSynapseEntityUrl.js.map +1 -1
- package/dist/utils/functions/getSynapseWebClientLink.js.map +1 -1
- package/dist/utils/functions/getUserData.js.map +1 -1
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
- package/dist/utils/functions/unCamelCase.js.map +1 -1
- package/dist/utils/hooks/useConfirmItems.js.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.d.ts.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.js +24 -23
- package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
- package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
- package/dist/utils/hooks/useDebouncedEffect.js.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
- package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
- package/dist/utils/hooks/useGetEntityMetadata.js.map +1 -1
- package/dist/utils/hooks/useGetGoalData.js +2 -4
- package/dist/utils/hooks/useGetGoalData.js.map +1 -1
- package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
- package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
- package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
- package/dist/utils/hooks/useIsBot.js.map +1 -1
- package/dist/utils/hooks/useJsonLdScriptElement.js.map +1 -1
- package/dist/utils/hooks/useListState.js.map +1 -1
- package/dist/utils/hooks/useLogin.js.map +1 -1
- package/dist/utils/hooks/useMediaPrintOnly.js.map +1 -1
- package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
- package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
- package/dist/utils/hooks/useOneSageURL.js.map +1 -1
- package/dist/utils/hooks/useOverlay.js.map +1 -1
- package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
- package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
- package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
- package/dist/utils/hooks/useSet.js.map +1 -1
- package/dist/utils/hooks/useShowDesktop.js.map +1 -1
- package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
- package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
- package/dist/utils/hooks/useTraceUpdate.js.map +1 -1
- package/dist/utils/hooks/useTrackTransientListItems.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/getActiveUploadCount.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/getFileEntityIdWithSameName.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
- package/dist/utils/html/TargetEnum.js.map +1 -1
- package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
- package/dist/utils/jsonschema/getEnumeratedValues.js.map +1 -1
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
- package/dist/utils/jsonschema/getRequiredAttributes.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaForProperty.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
- package/dist/utils/jsonschema/getType.js.map +1 -1
- package/dist/utils/searchDefaults.js.map +1 -1
- package/dist/utils/slots/SlotUtils.js.map +1 -1
- package/dist/utils/types/IsType.js.map +1 -1
- package/package.json +67 -66
|
@@ -8,15 +8,13 @@ import { useMemo as i } from "react";
|
|
|
8
8
|
import { Alert as a, Box as o, Button as s, Typography as c } from "@mui/material";
|
|
9
9
|
import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
10
10
|
//#region src/components/download_list/DownloadConfirmationUI.tsx
|
|
11
|
-
var f =
|
|
12
|
-
|
|
13
|
-
}(f || {}), p = {
|
|
14
|
-
[f.INFO]: {
|
|
11
|
+
var f = {
|
|
12
|
+
2: {
|
|
15
13
|
severity: "info",
|
|
16
14
|
infoText: "Would you like to add these files to the download list?",
|
|
17
15
|
closeText: "Cancel"
|
|
18
16
|
},
|
|
19
|
-
|
|
17
|
+
3: {
|
|
20
18
|
severity: "info",
|
|
21
19
|
infoText: /* @__PURE__ */ d(l, { children: [
|
|
22
20
|
"Note: Files that you add will be mixed in with the files already in your download list.",
|
|
@@ -25,17 +23,17 @@ var f = /* @__PURE__ */ function(e) {
|
|
|
25
23
|
] }),
|
|
26
24
|
closeText: "Cancel"
|
|
27
25
|
},
|
|
28
|
-
|
|
26
|
+
1: {
|
|
29
27
|
severity: "info",
|
|
30
28
|
infoText: "Adding files to download list",
|
|
31
29
|
closeText: "Cancel"
|
|
32
30
|
},
|
|
33
|
-
|
|
31
|
+
0: {
|
|
34
32
|
severity: "info",
|
|
35
33
|
infoText: "Calculating file size",
|
|
36
34
|
closeText: "Cancel"
|
|
37
35
|
},
|
|
38
|
-
|
|
36
|
+
4: {
|
|
39
37
|
severity: "error",
|
|
40
38
|
closeText: "Close",
|
|
41
39
|
infoText: /* @__PURE__ */ d(l, { children: [
|
|
@@ -45,36 +43,36 @@ var f = /* @__PURE__ */ function(e) {
|
|
|
45
43
|
] })
|
|
46
44
|
}
|
|
47
45
|
};
|
|
48
|
-
function
|
|
46
|
+
function p(e) {
|
|
49
47
|
let { status: t, fileCount: n, fileSize: i } = e;
|
|
50
48
|
switch (t) {
|
|
51
|
-
case
|
|
52
|
-
case
|
|
49
|
+
case 0:
|
|
50
|
+
case 1: return /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u("div", { className: "spinner white" }), /* @__PURE__ */ u(c, {
|
|
53
51
|
variant: "smallText1",
|
|
54
|
-
children:
|
|
52
|
+
children: f[t].infoText
|
|
55
53
|
})] });
|
|
56
|
-
case
|
|
54
|
+
case 4: return /* @__PURE__ */ u(c, {
|
|
57
55
|
variant: "smallText1",
|
|
58
|
-
children:
|
|
56
|
+
children: f[t].infoText
|
|
59
57
|
});
|
|
60
|
-
case
|
|
61
|
-
case
|
|
58
|
+
case 2:
|
|
59
|
+
case 3: return /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u(r, {
|
|
62
60
|
numFiles: n,
|
|
63
61
|
numBytes: i
|
|
64
62
|
}), /* @__PURE__ */ u(c, {
|
|
65
63
|
variant: "smallText1",
|
|
66
64
|
sx: { flexGrow: 1 },
|
|
67
|
-
children:
|
|
65
|
+
children: f[t].infoText
|
|
68
66
|
})] });
|
|
69
67
|
default: return /* @__PURE__ */ u(l, {});
|
|
70
68
|
}
|
|
71
69
|
}
|
|
72
|
-
function
|
|
73
|
-
let { onAddToDownloadCart: r, onCancel: c, fileCount:
|
|
74
|
-
y,
|
|
75
|
-
_,
|
|
70
|
+
function m(e) {
|
|
71
|
+
let { onAddToDownloadCart: r, onCancel: c, fileCount: m, fileSize: h, isLoadingStats: g = !1, isAddingToDownloadCart: _ = !1 } = e, { isAuthenticated: v } = t(), { data: y } = n(), b = i(() => v ? g ? 0 : _ ? 1 : y && y.totalNumberOfFiles > 0 ? 3 : 2 : 4, [
|
|
76
72
|
v,
|
|
77
|
-
|
|
73
|
+
g,
|
|
74
|
+
_,
|
|
75
|
+
y
|
|
78
76
|
]);
|
|
79
77
|
return /* @__PURE__ */ u(l, { children: /* @__PURE__ */ u(a, {
|
|
80
78
|
sx: {
|
|
@@ -84,15 +82,15 @@ function h(e) {
|
|
|
84
82
|
justifyContent: "space-between",
|
|
85
83
|
alignItems: "center"
|
|
86
84
|
},
|
|
87
|
-
icon:
|
|
88
|
-
severity:
|
|
85
|
+
icon: f[b].severity === "error" ? void 0 : !1,
|
|
86
|
+
severity: f[b].severity,
|
|
89
87
|
className: "download-confirmation",
|
|
90
|
-
action: /* @__PURE__ */ d(l, { children: [
|
|
88
|
+
action: /* @__PURE__ */ d(l, { children: [b !== 1 && /* @__PURE__ */ u(s, {
|
|
91
89
|
variant: "text",
|
|
92
90
|
color: "primary",
|
|
93
91
|
onClick: c,
|
|
94
|
-
children:
|
|
95
|
-
}), (
|
|
92
|
+
children: f[b].closeText
|
|
93
|
+
}), (b === 2 || b === 3) && /* @__PURE__ */ u(s, {
|
|
96
94
|
variant: "contained",
|
|
97
95
|
color: "primary",
|
|
98
96
|
onClick: () => {
|
|
@@ -107,15 +105,15 @@ function h(e) {
|
|
|
107
105
|
alignItems: "center",
|
|
108
106
|
gap: 1
|
|
109
107
|
},
|
|
110
|
-
children: /* @__PURE__ */ u(
|
|
111
|
-
status:
|
|
112
|
-
fileCount:
|
|
113
|
-
fileSize:
|
|
108
|
+
children: /* @__PURE__ */ u(p, {
|
|
109
|
+
status: b,
|
|
110
|
+
fileCount: m,
|
|
111
|
+
fileSize: h
|
|
114
112
|
})
|
|
115
113
|
})
|
|
116
114
|
}) });
|
|
117
115
|
}
|
|
118
116
|
//#endregion
|
|
119
|
-
export {
|
|
117
|
+
export { m as DownloadConfirmationUI, m as default };
|
|
120
118
|
|
|
121
119
|
//# sourceMappingURL=DownloadConfirmationUI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadConfirmationUI.js","names":[],"sources":["../../../src/components/download_list/DownloadConfirmationUI.tsx"],"sourcesContent":["import { useGetDownloadListStatistics } from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils'\nimport { Alert, AlertProps, Box, Button, Typography } from '@mui/material'\nimport { ReactNode, useMemo } from 'react'\nimport SignInButton from '../SignInButton'\nimport DownloadDetails from './DownloadDetails'\n\nenum StatusEnum {\n LOADING_INFO,\n PROCESSING,\n INFO,\n INFO_ITEMS_IN_LIST,\n SIGNED_OUT,\n}\n\nexport type DownloadConfirmationUIProps = {\n onAddToDownloadCart: () => void\n fileCount?: number\n fileSize?: number\n onCancel: () => void\n isLoadingStats?: boolean\n isAddingToDownloadCart?: boolean\n}\n\ntype UiStateDictionary = {\n [key: string]: {\n severity: AlertProps['severity']\n infoText: string | ReactNode\n closeText: string\n }\n}\n\n// css classes, text, and close button text associated with different stages\nconst StatusConstruct: UiStateDictionary = {\n [StatusEnum.INFO]: {\n severity: 'info',\n infoText: 'Would you like to add these files to the download list?',\n closeText: 'Cancel',\n },\n [StatusEnum.INFO_ITEMS_IN_LIST]: {\n severity: 'info',\n infoText: (\n <>\n Note: Files that you add will be mixed in with the files already in your\n download list.\n <br />\n If you don't want to mix these files, clear your download list\n before continuing.\n </>\n ),\n closeText: 'Cancel',\n },\n [StatusEnum.PROCESSING]: {\n severity: 'info',\n infoText: 'Adding files to download list',\n closeText: 'Cancel',\n },\n\n [StatusEnum.LOADING_INFO]: {\n severity: 'info',\n infoText: 'Calculating file size',\n closeText: 'Cancel',\n },\n [StatusEnum.SIGNED_OUT]: {\n severity: 'error',\n closeText: 'Close',\n infoText: (\n <>\n Please <SignInButton /> to add files to your download list.\n </>\n ),\n },\n}\n\ntype DownloadConfirmationContentProps = {\n status: StatusEnum\n fileCount?: number\n fileSize?: number\n}\n\nfunction DownloadConfirmationContent(props: DownloadConfirmationContentProps) {\n const { status, fileCount, fileSize } = props\n switch (status) {\n case StatusEnum.LOADING_INFO:\n case StatusEnum.PROCESSING:\n return (\n <>\n <div className={'spinner white'} />\n <Typography variant={'smallText1'}>\n {StatusConstruct[status].infoText}\n </Typography>\n </>\n )\n\n case StatusEnum.SIGNED_OUT:\n return (\n <Typography variant={'smallText1'}>\n {StatusConstruct[status].infoText}\n </Typography>\n )\n case StatusEnum.INFO:\n case StatusEnum.INFO_ITEMS_IN_LIST:\n return (\n <>\n <DownloadDetails\n numFiles={fileCount}\n numBytes={fileSize}\n ></DownloadDetails>\n <Typography variant={'smallText1'} sx={{ flexGrow: 1 }}>\n {StatusConstruct[status].infoText}\n </Typography>\n </>\n )\n\n default:\n return <></>\n }\n}\n\n/**\n * This component is used to display the download confirmation dialog that presents to a user the number of files and the\n * total size of the files they are about to add to their download list.\n */\nexport function DownloadConfirmationUI(props: DownloadConfirmationUIProps) {\n const {\n onAddToDownloadCart,\n onCancel,\n fileCount,\n fileSize,\n isLoadingStats = false,\n isAddingToDownloadCart = false,\n } = props\n const { isAuthenticated } = useSynapseContext()\n\n const { data: downloadListStatistics } = useGetDownloadListStatistics()\n\n const status = useMemo(() => {\n if (!isAuthenticated) return StatusEnum.SIGNED_OUT\n if (isLoadingStats) return StatusEnum.LOADING_INFO\n if (isAddingToDownloadCart) return StatusEnum.PROCESSING\n if (downloadListStatistics && downloadListStatistics.totalNumberOfFiles > 0)\n return StatusEnum.INFO_ITEMS_IN_LIST\n return StatusEnum.INFO\n }, [\n isAuthenticated,\n isLoadingStats,\n isAddingToDownloadCart,\n downloadListStatistics,\n ])\n\n return (\n <>\n <Alert\n sx={{\n pr: 4,\n py: 1,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n icon={StatusConstruct[status].severity === 'error' ? undefined : false}\n severity={StatusConstruct[status].severity}\n className={`download-confirmation`}\n action={\n <>\n {status !== StatusEnum.PROCESSING && (\n <Button variant=\"text\" color=\"primary\" onClick={onCancel}>\n {StatusConstruct[status].closeText}\n </Button>\n )}\n\n {(status === StatusEnum.INFO ||\n status === StatusEnum.INFO_ITEMS_IN_LIST) && (\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={() => {\n onAddToDownloadCart()\n }}\n sx={{ ml: '5px' }}\n >\n Add\n </Button>\n )}\n </>\n }\n >\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n }}\n >\n <DownloadConfirmationContent\n status={status}\n fileCount={fileCount}\n fileSize={fileSize}\n />\n </Box>\n </Alert>\n </>\n )\n}\n\nexport default DownloadConfirmationUI\n"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"DownloadConfirmationUI.js","names":[],"sources":["../../../src/components/download_list/DownloadConfirmationUI.tsx"],"sourcesContent":["import { useGetDownloadListStatistics } from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils'\nimport { Alert, AlertProps, Box, Button, Typography } from '@mui/material'\nimport { ReactNode, useMemo } from 'react'\nimport SignInButton from '../SignInButton'\nimport DownloadDetails from './DownloadDetails'\n\nenum StatusEnum {\n LOADING_INFO,\n PROCESSING,\n INFO,\n INFO_ITEMS_IN_LIST,\n SIGNED_OUT,\n}\n\nexport type DownloadConfirmationUIProps = {\n onAddToDownloadCart: () => void\n fileCount?: number\n fileSize?: number\n onCancel: () => void\n isLoadingStats?: boolean\n isAddingToDownloadCart?: boolean\n}\n\ntype UiStateDictionary = {\n [key: string]: {\n severity: AlertProps['severity']\n infoText: string | ReactNode\n closeText: string\n }\n}\n\n// css classes, text, and close button text associated with different stages\nconst StatusConstruct: UiStateDictionary = {\n [StatusEnum.INFO]: {\n severity: 'info',\n infoText: 'Would you like to add these files to the download list?',\n closeText: 'Cancel',\n },\n [StatusEnum.INFO_ITEMS_IN_LIST]: {\n severity: 'info',\n infoText: (\n <>\n Note: Files that you add will be mixed in with the files already in your\n download list.\n <br />\n If you don't want to mix these files, clear your download list\n before continuing.\n </>\n ),\n closeText: 'Cancel',\n },\n [StatusEnum.PROCESSING]: {\n severity: 'info',\n infoText: 'Adding files to download list',\n closeText: 'Cancel',\n },\n\n [StatusEnum.LOADING_INFO]: {\n severity: 'info',\n infoText: 'Calculating file size',\n closeText: 'Cancel',\n },\n [StatusEnum.SIGNED_OUT]: {\n severity: 'error',\n closeText: 'Close',\n infoText: (\n <>\n Please <SignInButton /> to add files to your download list.\n </>\n ),\n },\n}\n\ntype DownloadConfirmationContentProps = {\n status: StatusEnum\n fileCount?: number\n fileSize?: number\n}\n\nfunction DownloadConfirmationContent(props: DownloadConfirmationContentProps) {\n const { status, fileCount, fileSize } = props\n switch (status) {\n case StatusEnum.LOADING_INFO:\n case StatusEnum.PROCESSING:\n return (\n <>\n <div className={'spinner white'} />\n <Typography variant={'smallText1'}>\n {StatusConstruct[status].infoText}\n </Typography>\n </>\n )\n\n case StatusEnum.SIGNED_OUT:\n return (\n <Typography variant={'smallText1'}>\n {StatusConstruct[status].infoText}\n </Typography>\n )\n case StatusEnum.INFO:\n case StatusEnum.INFO_ITEMS_IN_LIST:\n return (\n <>\n <DownloadDetails\n numFiles={fileCount}\n numBytes={fileSize}\n ></DownloadDetails>\n <Typography variant={'smallText1'} sx={{ flexGrow: 1 }}>\n {StatusConstruct[status].infoText}\n </Typography>\n </>\n )\n\n default:\n return <></>\n }\n}\n\n/**\n * This component is used to display the download confirmation dialog that presents to a user the number of files and the\n * total size of the files they are about to add to their download list.\n */\nexport function DownloadConfirmationUI(props: DownloadConfirmationUIProps) {\n const {\n onAddToDownloadCart,\n onCancel,\n fileCount,\n fileSize,\n isLoadingStats = false,\n isAddingToDownloadCart = false,\n } = props\n const { isAuthenticated } = useSynapseContext()\n\n const { data: downloadListStatistics } = useGetDownloadListStatistics()\n\n const status = useMemo(() => {\n if (!isAuthenticated) return StatusEnum.SIGNED_OUT\n if (isLoadingStats) return StatusEnum.LOADING_INFO\n if (isAddingToDownloadCart) return StatusEnum.PROCESSING\n if (downloadListStatistics && downloadListStatistics.totalNumberOfFiles > 0)\n return StatusEnum.INFO_ITEMS_IN_LIST\n return StatusEnum.INFO\n }, [\n isAuthenticated,\n isLoadingStats,\n isAddingToDownloadCart,\n downloadListStatistics,\n ])\n\n return (\n <>\n <Alert\n sx={{\n pr: 4,\n py: 1,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n icon={StatusConstruct[status].severity === 'error' ? undefined : false}\n severity={StatusConstruct[status].severity}\n className={`download-confirmation`}\n action={\n <>\n {status !== StatusEnum.PROCESSING && (\n <Button variant=\"text\" color=\"primary\" onClick={onCancel}>\n {StatusConstruct[status].closeText}\n </Button>\n )}\n\n {(status === StatusEnum.INFO ||\n status === StatusEnum.INFO_ITEMS_IN_LIST) && (\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={() => {\n onAddToDownloadCart()\n }}\n sx={{ ml: '5px' }}\n >\n Add\n </Button>\n )}\n </>\n }\n >\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n }}\n >\n <DownloadConfirmationContent\n status={status}\n fileCount={fileCount}\n fileSize={fileSize}\n />\n </Box>\n </Alert>\n </>\n )\n}\n\nexport default DownloadConfirmationUI\n"],"mappings":";;;;;;;;;;AAiCA,IAAM,IAAqC;IACtB;EACjB,UAAU;EACV,UAAU;EACV,WAAW;CACb;IACiC;EAC/B,UAAU;EACV,UACE,kBAAA,GAAA,EAAA,UAAA;GAAE;GAGA,kBAAC,MAAD,CAAK,CAAA;GAAC;EAGN,EAAA,CAAA;EAEJ,WAAW;CACb;IACyB;EACvB,UAAU;EACV,UAAU;EACV,WAAW;CACb;IAE2B;EACzB,UAAU;EACV,UAAU;EACV,WAAW;CACb;IACyB;EACvB,UAAU;EACV,WAAW;EACX,UACE,kBAAA,GAAA,EAAA,UAAA;GAAE;GACO,kBAAC,GAAD,CAAe,CAAA;GAAC;EACvB,EAAA,CAAA;CAEN;AACF;AAQA,SAAS,EAA4B,GAAyC;CAC5E,IAAM,EAAE,WAAQ,cAAW,gBAAa;CACxC,QAAQ,GAAR;EACE,KAAA;EACA,KAAA,GACE,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,OAAD,EAAK,WAAW,gBAAkB,CAAA,GAClC,kBAAC,GAAD;GAAY,SAAS;aAClB,EAAgB,GAAQ;EACf,CAAA,CACZ,EAAA,CAAA;EAGN,KAAA,GACE,OACE,kBAAC,GAAD;GAAY,SAAS;aAClB,EAAgB,GAAQ;EACf,CAAA;EAEhB,KAAA;EACA,KAAA,GACE,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,UAAU;GACV,UAAU;EACM,CAAA,GAClB,kBAAC,GAAD;GAAY,SAAS;GAAc,IAAI,EAAE,UAAU,EAAE;aAClD,EAAgB,GAAQ;EACf,CAAA,CACZ,EAAA,CAAA;EAGN,SACE,OAAO,kBAAA,GAAA,CAAI,CAAA;CACf;AACF;AAMA,SAAgB,EAAuB,GAAoC;CACzE,IAAM,EACJ,wBACA,aACA,cACA,aACA,oBAAiB,IACjB,4BAAyB,OACvB,GACE,EAAE,uBAAoB,EAAkB,GAExC,EAAE,MAAM,MAA2B,EAA6B,GAEhE,IAAS,QACR,IACD,IAAgB,IAChB,IAAwB,IACxB,KAA0B,EAAuB,qBAAqB,IACxE,IACF,IALsB,GAMrB;EACD;EACA;EACA;EACA;CACF,CAAC;CAED,OACE,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;EACE,IAAI;GACF,IAAI;GACJ,IAAI;GACJ,SAAS;GACT,gBAAgB;GAChB,YAAY;EACd;EACA,MAAM,EAAgB,GAAQ,aAAa,UAAU,KAAA,IAAY;EACjE,UAAU,EAAgB,GAAQ;EAClC,WAAW;EACX,QACE,kBAAA,GAAA,EAAA,UAAA,CACG,MAAA,KACC,kBAAC,GAAD;GAAQ,SAAQ;GAAO,OAAM;GAAU,SAAS;aAC7C,EAAgB,GAAQ;EACnB,CAAA,IAGR,MAAA,KACA,MAAA,MACA,kBAAC,GAAD;GACE,SAAQ;GACR,OAAM;GACN,eAAe;IACb,EAAoB;GACtB;GACA,IAAI,EAAE,IAAI,MAAM;aACjB;EAEO,CAAA,CAEV,EAAA,CAAA;YAGJ,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,YAAY;IACZ,KAAK;GACP;aAEA,kBAAC,GAAD;IACU;IACG;IACD;GACX,CAAA;EACE,CAAA;CACA,CAAA,EACP,CAAA;AAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadConfirmationUtils.js","names":[],"sources":["../../../src/components/download_list/DownloadConfirmationUtils.ts"],"sourcesContent":["import { displayToast } from '../ToastMessage'\n\nexport function displayFilesWereAddedToDownloadListSuccess(\n downloadCartPageUrl: string,\n) {\n displayToast(\n 'File(s) were successfully added to your Download List.',\n 'success',\n {\n primaryButtonConfig: {\n text: 'View Download List',\n onClick: () => {\n window.location.href = downloadCartPageUrl\n },\n },\n },\n )\n}\n"],"mappings":";;;AAEA,SAAgB,EACd,GACA;
|
|
1
|
+
{"version":3,"file":"DownloadConfirmationUtils.js","names":[],"sources":["../../../src/components/download_list/DownloadConfirmationUtils.ts"],"sourcesContent":["import { displayToast } from '../ToastMessage'\n\nexport function displayFilesWereAddedToDownloadListSuccess(\n downloadCartPageUrl: string,\n) {\n displayToast(\n 'File(s) were successfully added to your Download List.',\n 'success',\n {\n primaryButtonConfig: {\n text: 'View Download List',\n onClick: () => {\n window.location.href = downloadCartPageUrl\n },\n },\n },\n )\n}\n"],"mappings":";;;AAEA,SAAgB,EACd,GACA;CACA,EACE,0DACA,WACA,EACE,qBAAqB;EACnB,MAAM;EACN,eAAe;GACb,OAAO,SAAS,OAAO;EACzB;CACF,EACF,CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadDetails.js","names":[],"sources":["../../../src/components/download_list/DownloadDetails.tsx"],"sourcesContent":["import { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { testDownloadSpeed } from '@/utils/functions/testDownloadSpeed'\nimport {\n InsertDriveFileTwoTone,\n LayersTwoTone,\n WatchLaterTwoTone,\n} from '@mui/icons-material'\nimport { Tooltip } from '@mui/material'\nimport dayjs from 'dayjs'\nimport duration from 'dayjs/plugin/duration'\nimport relativeTime from 'dayjs/plugin/relativeTime'\nimport { useEffect, useState } from 'react'\nimport { SkeletonInlineBlock } from '../Skeleton/SkeletonInlineBlock'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\n\ndayjs.extend(duration)\ndayjs.extend(relativeTime)\n\nexport type DownloadDetailsProps = {\n numFiles?: number\n numBytes?: number\n}\n\ntype State = {\n isLoading: boolean\n downloadSpeed: number\n}\n\n/**\n * Displays download information including number of files, size of download, and time to download.\n * Prefer to use {@link ../DownloadCart/DownloadDetails} instead, particularly when you have information about file packaging in/eligibility\n * @param props\n * @returns\n */\nexport default function DownloadDetails(props: DownloadDetailsProps) {\n const { numFiles, numBytes } = props\n const { accessToken, isAuthenticated } = useSynapseContext()\n const hasNumBytes = !!numBytes\n\n const [state, setState] = useState<State>({\n isLoading: hasNumBytes, // figure out the estimated download time iff we were given a byte count\n downloadSpeed: 0,\n })\n const { isLoading, downloadSpeed } = state\n\n useEffect(() => {\n if (isAuthenticated) {\n testDownloadSpeed(accessToken!).then(speed => {\n setState({\n isLoading: false,\n downloadSpeed: speed,\n })\n })\n }\n }, [isAuthenticated, accessToken])\n\n const timeEstimateInSeconds =\n isLoading || downloadSpeed === 0 || !numBytes ? 0 : numBytes / downloadSpeed\n const isTimeEstimateLoading = timeEstimateInSeconds === 0\n const friendlyTime = isTimeEstimateLoading\n ? ''\n : dayjs.duration({ seconds: timeEstimateInSeconds }).humanize()\n\n const isZeroFiles = numFiles === 0\n const fileCountIconClass = isZeroFiles\n ? 'SRC-inactive'\n : 'SRC-primary-text-color'\n\n const timeEstimateIconClass = isTimeEstimateLoading\n ? 'SRC-inactive'\n : 'SRC-primary-text-color'\n return (\n <span className=\"download-details-container\">\n {numFiles != null && (\n <span>\n <InsertDriveFileTwoTone className={fileCountIconClass} />\n {isZeroFiles ? (\n <SkeletonInlineBlock width={50} />\n ) : (\n <>{numFiles.toLocaleString()} files</>\n )}\n </span>\n )}\n {hasNumBytes && (\n <Tooltip\n title=\"This is the total size of all files. Zipped package(s) will likely be smaller.\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"top\"\n >\n <span data-testid=\"numBytesUI\">\n <LayersTwoTone className={timeEstimateIconClass} />\n {isTimeEstimateLoading ? (\n <SkeletonInlineBlock width={50} />\n ) : (\n calculateFriendlyFileSize(numBytes)\n )}\n </span>\n </Tooltip>\n )}\n {hasNumBytes && (\n <Tooltip\n title=\"This is an estimate of how long package download will take.\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"top\"\n >\n <span data-testid=\"downloadTimeEstimateUI\">\n <WatchLaterTwoTone className={timeEstimateIconClass} />\n {isLoading && numFiles != null && numFiles > 0 ? (\n <SkeletonInlineBlock width={50} />\n ) : (\n friendlyTime\n )}\n </span>\n </Tooltip>\n )}\n </span>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAgBA,EAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"DownloadDetails.js","names":[],"sources":["../../../src/components/download_list/DownloadDetails.tsx"],"sourcesContent":["import { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { testDownloadSpeed } from '@/utils/functions/testDownloadSpeed'\nimport {\n InsertDriveFileTwoTone,\n LayersTwoTone,\n WatchLaterTwoTone,\n} from '@mui/icons-material'\nimport { Tooltip } from '@mui/material'\nimport dayjs from 'dayjs'\nimport duration from 'dayjs/plugin/duration'\nimport relativeTime from 'dayjs/plugin/relativeTime'\nimport { useEffect, useState } from 'react'\nimport { SkeletonInlineBlock } from '../Skeleton/SkeletonInlineBlock'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\n\ndayjs.extend(duration)\ndayjs.extend(relativeTime)\n\nexport type DownloadDetailsProps = {\n numFiles?: number\n numBytes?: number\n}\n\ntype State = {\n isLoading: boolean\n downloadSpeed: number\n}\n\n/**\n * Displays download information including number of files, size of download, and time to download.\n * Prefer to use {@link ../DownloadCart/DownloadDetails} instead, particularly when you have information about file packaging in/eligibility\n * @param props\n * @returns\n */\nexport default function DownloadDetails(props: DownloadDetailsProps) {\n const { numFiles, numBytes } = props\n const { accessToken, isAuthenticated } = useSynapseContext()\n const hasNumBytes = !!numBytes\n\n const [state, setState] = useState<State>({\n isLoading: hasNumBytes, // figure out the estimated download time iff we were given a byte count\n downloadSpeed: 0,\n })\n const { isLoading, downloadSpeed } = state\n\n useEffect(() => {\n if (isAuthenticated) {\n testDownloadSpeed(accessToken!).then(speed => {\n setState({\n isLoading: false,\n downloadSpeed: speed,\n })\n })\n }\n }, [isAuthenticated, accessToken])\n\n const timeEstimateInSeconds =\n isLoading || downloadSpeed === 0 || !numBytes ? 0 : numBytes / downloadSpeed\n const isTimeEstimateLoading = timeEstimateInSeconds === 0\n const friendlyTime = isTimeEstimateLoading\n ? ''\n : dayjs.duration({ seconds: timeEstimateInSeconds }).humanize()\n\n const isZeroFiles = numFiles === 0\n const fileCountIconClass = isZeroFiles\n ? 'SRC-inactive'\n : 'SRC-primary-text-color'\n\n const timeEstimateIconClass = isTimeEstimateLoading\n ? 'SRC-inactive'\n : 'SRC-primary-text-color'\n return (\n <span className=\"download-details-container\">\n {numFiles != null && (\n <span>\n <InsertDriveFileTwoTone className={fileCountIconClass} />\n {isZeroFiles ? (\n <SkeletonInlineBlock width={50} />\n ) : (\n <>{numFiles.toLocaleString()} files</>\n )}\n </span>\n )}\n {hasNumBytes && (\n <Tooltip\n title=\"This is the total size of all files. Zipped package(s) will likely be smaller.\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"top\"\n >\n <span data-testid=\"numBytesUI\">\n <LayersTwoTone className={timeEstimateIconClass} />\n {isTimeEstimateLoading ? (\n <SkeletonInlineBlock width={50} />\n ) : (\n calculateFriendlyFileSize(numBytes)\n )}\n </span>\n </Tooltip>\n )}\n {hasNumBytes && (\n <Tooltip\n title=\"This is an estimate of how long package download will take.\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"top\"\n >\n <span data-testid=\"downloadTimeEstimateUI\">\n <WatchLaterTwoTone className={timeEstimateIconClass} />\n {isLoading && numFiles != null && numFiles > 0 ? (\n <SkeletonInlineBlock width={50} />\n ) : (\n friendlyTime\n )}\n </span>\n </Tooltip>\n )}\n </span>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAgBA,EAAM,OAAO,CAAQ,GACrB,EAAM,OAAO,CAAY;AAkBzB,SAAwB,EAAgB,GAA6B;CACnE,IAAM,EAAE,aAAU,gBAAa,GACzB,EAAE,gBAAa,uBAAoB,EAAkB,GACrD,IAAc,CAAC,CAAC,GAEhB,CAAC,GAAO,KAAY,EAAgB;EACxC,WAAW;EACX,eAAe;CACjB,CAAC,GACK,EAAE,cAAW,qBAAkB;CAErC,QAAgB;EACd,AAAI,KACF,EAAkB,CAAY,EAAE,MAAK,MAAS;GAC5C,EAAS;IACP,WAAW;IACX,eAAe;GACjB,CAAC;EACH,CAAC;CAEL,GAAG,CAAC,GAAiB,CAAW,CAAC;CAEjC,IAAM,IACJ,KAAa,MAAkB,KAAK,CAAC,IAAW,IAAI,IAAW,GAC3D,IAAwB,MAA0B,GAClD,IAAe,IACjB,KACA,EAAM,SAAS,EAAE,SAAS,EAAsB,CAAC,EAAE,SAAS,GAE1D,IAAc,MAAa,GAC3B,IAAqB,IACvB,iBACA,0BAEE,IAAwB,IAC1B,iBACA;CACJ,OACE,kBAAC,QAAD;EAAM,WAAU;YAAhB;GACG,KAAY,QACX,kBAAC,QAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAwB,WAAW,EAAqB,CAAA,GACvD,IACC,kBAAC,GAAD,EAAqB,OAAO,GAAK,CAAA,IAEjC,kBAAA,GAAA,EAAA,UAAA,CAAG,EAAS,eAAe,GAAE,WAAa,EAAA,CAAA,CAExC,EAAA,CAAA;GAEP,KACC,kBAAC,GAAD;IACE,OAAM;IACN,gBAAA;IACA,WAAU;cAEV,kBAAC,QAAD;KAAM,eAAY;eAAlB,CACE,kBAAC,GAAD,EAAe,WAAW,EAAwB,CAAA,GACjD,IACC,kBAAC,GAAD,EAAqB,OAAO,GAAK,CAAA,IAEjC,EAA0B,CAAQ,CAEhC;;GACC,CAAA;GAEV,KACC,kBAAC,GAAD;IACE,OAAM;IACN,gBAAA;IACA,WAAU;cAEV,kBAAC,QAAD;KAAM,eAAY;eAAlB,CACE,kBAAC,GAAD,EAAmB,WAAW,EAAwB,CAAA,GACrD,KAAa,KAAY,QAAQ,IAAW,IAC3C,kBAAC,GAAD,EAAqB,OAAO,GAAK,CAAA,IAEjC,CAEE;;GACC,CAAA;EAEP;;AAEV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/download_list/index.ts"],"sourcesContent":["import DownloadDetails from './DownloadDetails'\n\nexport default { DownloadDetails }\nexport { DownloadDetails }\n"],"mappings":";;AAEA,IAAA,IAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/download_list/index.ts"],"sourcesContent":["import DownloadDetails from './DownloadDetails'\n\nexport default { DownloadDetails }\nexport { DownloadDetails }\n"],"mappings":";;AAEA,IAAA,IAAe,EAAE,mBAAgB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnnotationsTable.js","names":[],"sources":["../../../../src/components/entity/metadata/AnnotationsTable.tsx"],"sourcesContent":["import { EntityAnnotationKey } from '@/components/entity/metadata/EntityAnnotationKey'\nimport { useGetJson } from '@/synapse-queries/entity/useEntity'\nimport { useGetSchema } from '@/synapse-queries/entity/useSchema'\nimport {\n useGetSchemaBinding,\n useGetValidationResults,\n} from '@/synapse-queries/entity/useEntityBoundSchema'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { isISOTimestamp } from '@/utils/functions/DateTimeUtils'\nimport {\n convertToEntityType,\n entityTypeToFriendlyName,\n} from '@/utils/functions/EntityTypeUtils'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport {\n getDisplayedAnnotationDescription,\n getDisplayedAnnotationTitle,\n useGetAnnotatedJsonInstance,\n} from '@/utils/jsonschema/SchemaAnnotationUtils'\nimport { Json } from '@sage-bionetworks/synapse-client'\nimport dayjs from 'dayjs'\nimport { isEmpty } from 'lodash-es'\nimport { useCallback, useState } from 'react'\nimport FullWidthAlert from '../../FullWidthAlert'\nimport { SkeletonTable } from '../../Skeleton'\n\nexport type AnnotationsTableProps = {\n readonly entityId: string\n readonly versionNumber?: number\n}\n\nexport function getDisplayedAnnotation(\n value: string | number | boolean,\n): string {\n if (typeof value === 'number' || typeof value === 'boolean') {\n return value.toString()\n } else if (isISOTimestamp(value)) {\n return formatDate(dayjs(value))\n }\n return value\n}\n\nexport function AnnotationsTable(props: AnnotationsTableProps) {\n const { entityId, versionNumber } = props\n const [isManuallyRefetching, setIsManuallyRefetching] = useState(false)\n\n const {\n data: entityData,\n isLoading: isLoadingEntityData,\n refetch: refetchEntityData,\n } = useGetJson(entityId, versionNumber, true)\n const entityMetadata = entityData?.entityMetadata\n const annotations = entityData?.annotations\n\n const { data: boundSchema, isLoading: isLoadingSchemaBinding } =\n useGetSchemaBinding(entityId)\n const { data: validationSchema, isLoading: isLoadingValidationSchema } =\n useGetSchema(boundSchema?.jsonSchemaVersionInfo.$id!, {\n enabled: Boolean(boundSchema),\n })\n\n const { data: annotatedInstance, isLoading: isLoadingSchemaAnnotations } =\n useGetAnnotatedJsonInstance(entityData?.entity as Json, validationSchema)\n\n const { data: validationResults, refetch: refetchValidationInformation } =\n useGetValidationResults(entityId, {\n enabled: Boolean(boundSchema),\n })\n\n const showSchemaInformation = Boolean(boundSchema)\n\n // If the entity has not yet been validated since the last fetch, then derived annotations may not have been calculated.\n const recentChangesHaveNotBeenValidated =\n !!entityMetadata &&\n !!validationResults &&\n dayjs(entityMetadata.modifiedOn).diff(\n dayjs(validationResults.validatedOn),\n ) > 0\n\n const onRefetch = useCallback(async () => {\n setIsManuallyRefetching(true)\n const promises = [\n // Refetch the annotations, which may have changed if new derived annotations have been calculated\n void refetchEntityData(),\n // Refetch the validation information, which we use to determine if derived annotations may still be pending\n void refetchValidationInformation(),\n ]\n await Promise.allSettled(promises)\n setIsManuallyRefetching(false)\n }, [refetchEntityData, refetchValidationInformation])\n\n const isLoading =\n isLoadingEntityData ||\n isLoadingSchemaBinding ||\n isLoadingValidationSchema ||\n isLoadingSchemaAnnotations\n\n return isLoading || isManuallyRefetching ? (\n <SkeletonTable numRows={3} numCols={2} />\n ) : (\n <>\n {entityMetadata && annotations && isEmpty(annotations) ? (\n <div className=\"placeholder\">\n This{' '}\n {entityTypeToFriendlyName(\n convertToEntityType(entityMetadata.concreteType),\n )}{' '}\n has no annotations.\n </div>\n ) : null}\n <table className=\"AnnotationsTable\">\n <tbody>\n {annotations &&\n Object.keys(annotations).map((annotationKey: string) => {\n return (\n <tr key={annotationKey} className=\"AnnotationsTable__Row\">\n <td className=\"AnnotationsTable__Row__Key\">\n <EntityAnnotationKey\n annotationKey={annotationKey}\n title={getDisplayedAnnotationTitle(\n annotationKey,\n annotatedInstance,\n )}\n description={getDisplayedAnnotationDescription(\n annotationKey,\n annotatedInstance,\n )}\n />\n </td>\n <td className=\"AnnotationsTable__Row__Value\">\n {Array.isArray(annotations[annotationKey])\n ? annotations[annotationKey]\n .map(getDisplayedAnnotation)\n .join(', ')\n : getDisplayedAnnotation(\n annotations[annotationKey] as\n | string\n | number\n | boolean,\n )}\n </td>\n </tr>\n )\n })}\n {showSchemaInformation ? (\n <tr className=\"AnnotationsTable__Row\">\n <td className=\"AnnotationsTable__Row__Key Schema\">\n Validation Schema\n </td>\n <td className=\"AnnotationsTable__Row__Value\">\n <a\n href={`${getEndpoint(\n BackendDestinationEnum.REPO_ENDPOINT,\n )}/repo/v1/schema/type/registered/${\n boundSchema!.jsonSchemaVersionInfo.$id\n }`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {boundSchema!.jsonSchemaVersionInfo.schemaName}\n </a>\n </td>\n </tr>\n ) : null}\n </tbody>\n </table>\n {entityMetadata &&\n showSchemaInformation &&\n recentChangesHaveNotBeenValidated && (\n <FullWidthAlert\n variant=\"warning\"\n description={`This ${entityTypeToFriendlyName(\n convertToEntityType(entityMetadata.concreteType),\n )} has changed since it has been last validated. If this ${entityTypeToFriendlyName(\n convertToEntityType(entityMetadata.concreteType),\n )} is expected to have annotations derived from the Validation Schema, they may not yet be visible.`}\n primaryButtonConfig={{\n text: 'Reload Annotations',\n onClick: () => {\n onRefetch()\n },\n }}\n isGlobal={false}\n />\n )}\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAkCA,SAAgB,EACd,GACQ;
|
|
1
|
+
{"version":3,"file":"AnnotationsTable.js","names":[],"sources":["../../../../src/components/entity/metadata/AnnotationsTable.tsx"],"sourcesContent":["import { EntityAnnotationKey } from '@/components/entity/metadata/EntityAnnotationKey'\nimport { useGetJson } from '@/synapse-queries/entity/useEntity'\nimport { useGetSchema } from '@/synapse-queries/entity/useSchema'\nimport {\n useGetSchemaBinding,\n useGetValidationResults,\n} from '@/synapse-queries/entity/useEntityBoundSchema'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { isISOTimestamp } from '@/utils/functions/DateTimeUtils'\nimport {\n convertToEntityType,\n entityTypeToFriendlyName,\n} from '@/utils/functions/EntityTypeUtils'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport {\n getDisplayedAnnotationDescription,\n getDisplayedAnnotationTitle,\n useGetAnnotatedJsonInstance,\n} from '@/utils/jsonschema/SchemaAnnotationUtils'\nimport { Json } from '@sage-bionetworks/synapse-client'\nimport dayjs from 'dayjs'\nimport { isEmpty } from 'lodash-es'\nimport { useCallback, useState } from 'react'\nimport FullWidthAlert from '../../FullWidthAlert'\nimport { SkeletonTable } from '../../Skeleton'\n\nexport type AnnotationsTableProps = {\n readonly entityId: string\n readonly versionNumber?: number\n}\n\nexport function getDisplayedAnnotation(\n value: string | number | boolean,\n): string {\n if (typeof value === 'number' || typeof value === 'boolean') {\n return value.toString()\n } else if (isISOTimestamp(value)) {\n return formatDate(dayjs(value))\n }\n return value\n}\n\nexport function AnnotationsTable(props: AnnotationsTableProps) {\n const { entityId, versionNumber } = props\n const [isManuallyRefetching, setIsManuallyRefetching] = useState(false)\n\n const {\n data: entityData,\n isLoading: isLoadingEntityData,\n refetch: refetchEntityData,\n } = useGetJson(entityId, versionNumber, true)\n const entityMetadata = entityData?.entityMetadata\n const annotations = entityData?.annotations\n\n const { data: boundSchema, isLoading: isLoadingSchemaBinding } =\n useGetSchemaBinding(entityId)\n const { data: validationSchema, isLoading: isLoadingValidationSchema } =\n useGetSchema(boundSchema?.jsonSchemaVersionInfo.$id!, {\n enabled: Boolean(boundSchema),\n })\n\n const { data: annotatedInstance, isLoading: isLoadingSchemaAnnotations } =\n useGetAnnotatedJsonInstance(entityData?.entity as Json, validationSchema)\n\n const { data: validationResults, refetch: refetchValidationInformation } =\n useGetValidationResults(entityId, {\n enabled: Boolean(boundSchema),\n })\n\n const showSchemaInformation = Boolean(boundSchema)\n\n // If the entity has not yet been validated since the last fetch, then derived annotations may not have been calculated.\n const recentChangesHaveNotBeenValidated =\n !!entityMetadata &&\n !!validationResults &&\n dayjs(entityMetadata.modifiedOn).diff(\n dayjs(validationResults.validatedOn),\n ) > 0\n\n const onRefetch = useCallback(async () => {\n setIsManuallyRefetching(true)\n const promises = [\n // Refetch the annotations, which may have changed if new derived annotations have been calculated\n void refetchEntityData(),\n // Refetch the validation information, which we use to determine if derived annotations may still be pending\n void refetchValidationInformation(),\n ]\n await Promise.allSettled(promises)\n setIsManuallyRefetching(false)\n }, [refetchEntityData, refetchValidationInformation])\n\n const isLoading =\n isLoadingEntityData ||\n isLoadingSchemaBinding ||\n isLoadingValidationSchema ||\n isLoadingSchemaAnnotations\n\n return isLoading || isManuallyRefetching ? (\n <SkeletonTable numRows={3} numCols={2} />\n ) : (\n <>\n {entityMetadata && annotations && isEmpty(annotations) ? (\n <div className=\"placeholder\">\n This{' '}\n {entityTypeToFriendlyName(\n convertToEntityType(entityMetadata.concreteType),\n )}{' '}\n has no annotations.\n </div>\n ) : null}\n <table className=\"AnnotationsTable\">\n <tbody>\n {annotations &&\n Object.keys(annotations).map((annotationKey: string) => {\n return (\n <tr key={annotationKey} className=\"AnnotationsTable__Row\">\n <td className=\"AnnotationsTable__Row__Key\">\n <EntityAnnotationKey\n annotationKey={annotationKey}\n title={getDisplayedAnnotationTitle(\n annotationKey,\n annotatedInstance,\n )}\n description={getDisplayedAnnotationDescription(\n annotationKey,\n annotatedInstance,\n )}\n />\n </td>\n <td className=\"AnnotationsTable__Row__Value\">\n {Array.isArray(annotations[annotationKey])\n ? annotations[annotationKey]\n .map(getDisplayedAnnotation)\n .join(', ')\n : getDisplayedAnnotation(\n annotations[annotationKey] as\n | string\n | number\n | boolean,\n )}\n </td>\n </tr>\n )\n })}\n {showSchemaInformation ? (\n <tr className=\"AnnotationsTable__Row\">\n <td className=\"AnnotationsTable__Row__Key Schema\">\n Validation Schema\n </td>\n <td className=\"AnnotationsTable__Row__Value\">\n <a\n href={`${getEndpoint(\n BackendDestinationEnum.REPO_ENDPOINT,\n )}/repo/v1/schema/type/registered/${\n boundSchema!.jsonSchemaVersionInfo.$id\n }`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {boundSchema!.jsonSchemaVersionInfo.schemaName}\n </a>\n </td>\n </tr>\n ) : null}\n </tbody>\n </table>\n {entityMetadata &&\n showSchemaInformation &&\n recentChangesHaveNotBeenValidated && (\n <FullWidthAlert\n variant=\"warning\"\n description={`This ${entityTypeToFriendlyName(\n convertToEntityType(entityMetadata.concreteType),\n )} has changed since it has been last validated. If this ${entityTypeToFriendlyName(\n convertToEntityType(entityMetadata.concreteType),\n )} is expected to have annotations derived from the Validation Schema, they may not yet be visible.`}\n primaryButtonConfig={{\n text: 'Reload Annotations',\n onClick: () => {\n onRefetch()\n },\n }}\n isGlobal={false}\n />\n )}\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAkCA,SAAgB,EACd,GACQ;CAMR,OALI,OAAO,KAAU,YAAY,OAAO,KAAU,YACzC,EAAM,SAAS,IACb,EAAe,CAAK,IACtB,EAAW,EAAM,CAAK,CAAC,IAEzB;AACT;AAEA,SAAgB,EAAiB,GAA8B;CAC7D,IAAM,EAAE,aAAU,qBAAkB,GAC9B,CAAC,GAAsB,KAA2B,EAAS,EAAK,GAEhE,EACJ,MAAM,GACN,WAAW,GACX,SAAS,MACP,EAAW,GAAU,GAAe,EAAI,GACtC,IAAiB,GAAY,gBAC7B,IAAc,GAAY,aAE1B,EAAE,MAAM,GAAa,WAAW,MACpC,EAAoB,CAAQ,GACxB,EAAE,MAAM,GAAkB,WAAW,MACzC,EAAa,GAAa,sBAAsB,KAAM,EACpD,SAAS,EAAQ,EACnB,CAAC,GAEG,EAAE,MAAM,GAAmB,WAAW,MAC1C,EAA4B,GAAY,QAAgB,CAAgB,GAEpE,EAAE,MAAM,GAAmB,SAAS,MACxC,EAAwB,GAAU,EAChC,SAAS,EAAQ,EACnB,CAAC,GAEG,IAAwB,EAAQ,GAGhC,IACJ,CAAC,CAAC,KACF,CAAC,CAAC,KACF,EAAM,EAAe,UAAU,EAAE,KAC/B,EAAM,EAAkB,WAAW,CACrC,IAAI,GAEA,IAAY,EAAY,YAAY;EACxC,EAAwB,EAAI;EAC5B,IAAM,IAAW,CAEf,KAAK,EAAkB,GAEvB,KAAK,EAA6B,CACpC;EAEA,AADA,MAAM,QAAQ,WAAW,CAAQ,GACjC,EAAwB,EAAK;CAC/B,GAAG,CAAC,GAAmB,CAA4B,CAAC;CAQpD,OALE,KACA,KACA,KACA,KAEkB,IAClB,kBAAC,GAAD;EAAe,SAAS;EAAG,SAAS;CAAI,CAAA,IAExC,kBAAA,GAAA,EAAA,UAAA;EACG,KAAkB,KAAe,EAAQ,CAAW,IACnD,kBAAC,OAAD;GAAK,WAAU;aAAf;IAA6B;IACtB;IACJ,EACC,EAAoB,EAAe,YAAY,CACjD;IAAG;IAAI;GAEJ;OACH;EACJ,kBAAC,SAAD;GAAO,WAAU;aACf,kBAAC,SAAD,EAAA,UAAA,CACG,KACC,OAAO,KAAK,CAAW,EAAE,KAAK,MAE1B,kBAAC,MAAD;IAAwB,WAAU;cAAlC,CACE,kBAAC,MAAD;KAAI,WAAU;eACZ,kBAAC,GAAD;MACiB;MACf,OAAO,EACL,GACA,CACF;MACA,aAAa,EACX,GACA,CACF;KACD,CAAA;IACC,CAAA,GACJ,kBAAC,MAAD;KAAI,WAAU;eACX,MAAM,QAAQ,EAAY,EAAc,IACrC,EAAY,GACT,IAAI,CAAsB,EAC1B,KAAK,IAAI,IACZ,EACE,EAAY,EAId;IACF,CAAA,CACF;MA1BK,CA0BL,CAEP,GACF,IACC,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAAoC;IAE9C,CAAA,GACJ,kBAAC,MAAD;KAAI,WAAU;eACZ,kBAAC,KAAD;MACE,MAAM,GAAG,EACP,EAAuB,aACzB,EAAE,kCACA,EAAa,sBAAsB;MAErC,QAAO;MACP,KAAI;gBAEH,EAAa,sBAAsB;KACnC,CAAA;IACD,CAAA,CACF;QACF,IACC,EAAA,CAAA;EACF,CAAA;EACN,KACC,KACA,KACE,kBAAC,GAAD;GACE,SAAQ;GACR,aAAa,QAAQ,EACnB,EAAoB,EAAe,YAAY,CACjD,EAAE,yDAAyD,EACzD,EAAoB,EAAe,YAAY,CACjD,EAAE;GACF,qBAAqB;IACnB,MAAM;IACN,eAAe;KACb,EAAU;IACZ;GACF;GACA,UAAU;EACX,CAAA;CAEL,EAAA,CAAA;AAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityAnnotationKey.js","names":[],"sources":["../../../../src/components/entity/metadata/EntityAnnotationKey.tsx"],"sourcesContent":["import { Box, Tooltip } from '@mui/material'\n\ntype EntityAnnotationKeyProps = {\n /** The key of the annotation */\n annotationKey: string\n /** An optional title of the annotation */\n title?: string\n /** An optional */\n description?: string\n}\n\n/**\n * A component used to display an Entity annotation key.\n */\nexport function EntityAnnotationKey(props: EntityAnnotationKeyProps) {\n const { annotationKey, title, description } = props\n\n if (title == annotationKey && !description) {\n return annotationKey\n }\n\n return (\n <Tooltip\n placement={'left'}\n title={\n <>\n {title != annotationKey && (\n <p>\n <strong>Annotation Key: {annotationKey}</strong>\n </p>\n )}\n <p>{description}</p>\n </>\n }\n >\n <Box\n component=\"span\"\n sx={theme => ({\n textDecorationLine: 'underline',\n textDecorationStyle: 'dotted',\n textDecorationThickness: '15%',\n textDecorationColor: theme.palette.secondary.main,\n textUnderlineOffset: '4px',\n cursor: 'pointer',\n })}\n >\n {title}\n </Box>\n </Tooltip>\n )\n}\n"],"mappings":";;;AAcA,SAAgB,EAAoB,GAAiC;CACnE,IAAM,EAAE,kBAAe,UAAO,mBAAgB;
|
|
1
|
+
{"version":3,"file":"EntityAnnotationKey.js","names":[],"sources":["../../../../src/components/entity/metadata/EntityAnnotationKey.tsx"],"sourcesContent":["import { Box, Tooltip } from '@mui/material'\n\ntype EntityAnnotationKeyProps = {\n /** The key of the annotation */\n annotationKey: string\n /** An optional title of the annotation */\n title?: string\n /** An optional */\n description?: string\n}\n\n/**\n * A component used to display an Entity annotation key.\n */\nexport function EntityAnnotationKey(props: EntityAnnotationKeyProps) {\n const { annotationKey, title, description } = props\n\n if (title == annotationKey && !description) {\n return annotationKey\n }\n\n return (\n <Tooltip\n placement={'left'}\n title={\n <>\n {title != annotationKey && (\n <p>\n <strong>Annotation Key: {annotationKey}</strong>\n </p>\n )}\n <p>{description}</p>\n </>\n }\n >\n <Box\n component=\"span\"\n sx={theme => ({\n textDecorationLine: 'underline',\n textDecorationStyle: 'dotted',\n textDecorationThickness: '15%',\n textDecorationColor: theme.palette.secondary.main,\n textUnderlineOffset: '4px',\n cursor: 'pointer',\n })}\n >\n {title}\n </Box>\n </Tooltip>\n )\n}\n"],"mappings":";;;AAcA,SAAgB,EAAoB,GAAiC;CACnE,IAAM,EAAE,kBAAe,UAAO,mBAAgB;CAM9C,OAJI,KAAS,KAAiB,CAAC,IACtB,IAIP,kBAAC,GAAD;EACE,WAAW;EACX,OACE,kBAAA,GAAA,EAAA,UAAA,CACG,KAAS,KACR,kBAAC,KAAD,EAAA,UACE,kBAAC,UAAD,EAAA,UAAA,CAAQ,oBAAiB,CAAsB,EAAA,CAAA,EAC9C,CAAA,GAEL,kBAAC,KAAD,EAAA,UAAI,EAAe,CAAA,CACnB,EAAA,CAAA;YAGJ,kBAAC,GAAD;GACE,WAAU;GACV,KAAI,OAAU;IACZ,oBAAoB;IACpB,qBAAqB;IACrB,yBAAyB;IACzB,qBAAqB,EAAM,QAAQ,UAAU;IAC7C,qBAAqB;IACrB,QAAQ;GACV;aAEC;EACE,CAAA;CACE,CAAA;AAEb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityModal.js","names":[],"sources":["../../../../src/components/entity/metadata/EntityModal.tsx"],"sourcesContent":["import useGetEntityBundle from '@/synapse-queries/entity/useEntityBundle'\nimport {\n entityTypeToFriendlyName,\n isVersionableEntityType,\n} from '@/utils/functions/EntityTypeUtils'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport { Button, Tooltip } from '@mui/material'\nimport Skeleton from '@mui/material/Skeleton'\nimport Form from '@rjsf/core'\nimport { VersionableEntity } from '@sage-bionetworks/synapse-types'\nimport { noop } from 'lodash-es'\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport { ConfirmationDialog } from '../../ConfirmationDialog'\nimport { DialogBase } from '../../DialogBase'\nimport { SynapseErrorBoundary } from '../../error/ErrorBanner'\nimport { SchemaDrivenAnnotationEditor } from '../../SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor'\nimport { displayToast } from '../../ToastMessage/ToastMessage'\nimport { AnnotationsTable } from './AnnotationsTable'\nimport { MetadataTable } from './MetadataTable'\n\nexport const EntityModalTabs = [\n // non-annotation metadata about the entity\n 'METADATA',\n // annotation and schema information\n 'ANNOTATIONS',\n // TODO: Access -- we haven't yet built a viewer/editor for ACLs in SRC -- consider a redesign before building\n //'ACCESS', // ACLs (and maybe ARs?)\n // TODO: Previews - we would need preview renderers that accomplish feature parity with SWC\n //'PREVIEW' // should only show this tab if a preview exists\n] as const\ntype EntityModalTab = (typeof EntityModalTabs)[number]\n\nexport type EntityModalProps = {\n readonly show: boolean\n readonly entityId: string\n readonly versionNumber?: number\n readonly onClose: () => void\n readonly initialTab?: EntityModalTab\n readonly showTabs?: boolean\n readonly onEditModeChanged?: (isInEditMode: boolean) => void\n}\n\nexport function EntityModal(props: EntityModalProps) {\n const {\n entityId,\n versionNumber,\n show,\n onClose,\n initialTab = 'METADATA',\n showTabs = true,\n onEditModeChanged = noop,\n } = props\n const annotationEditorFormRef = useRef<Form>(null)\n\n const [currentTab, setCurrentTab] = useState<EntityModalTab>(initialTab)\n const [showEditCancellationWarning, setShowEditCancellationWarning] =\n useState(false)\n const [isInEditMode, setIsInEditMode] = useState(false)\n\n // Need to store variable behavior for when the user confirms they want to cancel editing\n // We may return to the readonly view, or we might close the entire modal, depending on what they clicked.\n const [onCancelEdit, setOnCancelEdit] = useState<() => void>(() =>\n setIsInEditMode(false),\n )\n\n // Call the callback if `isInEditMode` changes\n // e.g. to set the global isInEditMode tracker in SWC\n useEffect(() => {\n onEditModeChanged(isInEditMode)\n return () => {\n // Ensure we disable edit mode when the component unmounts\n onEditModeChanged(false)\n }\n }, [isInEditMode, onEditModeChanged])\n\n const { data: entityBundle } = useGetEntityBundle(entityId, versionNumber)\n const canEdit = entityBundle && entityBundle.permissions.canEdit\n\n const isVersionable =\n entityBundle && isVersionableEntityType(entityBundle.entityType)\n\n const isLatestVersion =\n isVersionable && (entityBundle.entity as VersionableEntity).isLatestVersion!\n\n const showOpenEntityPageButton =\n currentTab === 'METADATA' &&\n entityBundle &&\n !(typeof window !== 'undefined' && window.location.href.includes(entityId))\n const openEntityPageButton = (\n <Button\n variant={'contained'}\n onClick={() =>\n window.open(\n `${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${entityId}`,\n '_blank',\n 'noopener',\n )\n }\n >\n Open{' '}\n {entityBundle ? entityTypeToFriendlyName(entityBundle?.entityType) : ''}\n </Button>\n )\n\n const showSaveAnnotationsButton = currentTab === 'ANNOTATIONS' && isInEditMode\n const saveAnnotationsButton = (\n <Button\n variant={'contained'}\n onClick={() => {\n // Workaround for https://github.com/rjsf-team/react-jsonschema-form/issues/3121\n annotationEditorFormRef.current!.formElement.current.requestSubmit()\n }}\n >\n Save Annotations\n </Button>\n )\n\n const showCancelAnnotationEditsButton =\n currentTab === 'ANNOTATIONS' && isInEditMode\n const cancelAnnotationEditsButton = (\n <Button\n variant={'outlined'}\n onClick={() => {\n setOnCancelEdit(() => () => setIsInEditMode(false))\n setShowEditCancellationWarning(true)\n }}\n >\n Cancel\n </Button>\n )\n\n const showEditAnnotationsButton =\n canEdit && currentTab === 'ANNOTATIONS' && !isInEditMode\n const disableEditingOldVersion = isVersionable && !isLatestVersion\n const editAnnotationsButton = (\n <Tooltip\n title={\n disableEditingOldVersion\n ? 'Annotations can only be edited on the latest version'\n : undefined\n }\n >\n {/* Wrap in span so tooltip works even when disabled */}\n <span>\n <Button\n variant={'contained'}\n disabled={disableEditingOldVersion}\n onClick={() => {\n setIsInEditMode(true)\n }}\n >\n Edit\n </Button>\n </span>\n </Tooltip>\n )\n\n const dialogContent = (\n <>\n {showTabs && !isInEditMode ? (\n <div className=\"Tabs\">\n {EntityModalTabs.map(tabName => {\n return (\n <div\n className=\"Tab\"\n role=\"tab\"\n key={tabName}\n onClick={e => {\n e.stopPropagation()\n setCurrentTab(tabName)\n }}\n aria-selected={tabName === currentTab}\n >\n {tabName}\n </div>\n )\n })}\n </div>\n ) : null}\n <div style={currentTab === 'ANNOTATIONS' ? {} : { display: 'none' }}>\n {isInEditMode ? (\n <SynapseErrorBoundary>\n <SchemaDrivenAnnotationEditor\n entityId={entityId}\n formRef={annotationEditorFormRef}\n hideActions\n onSuccess={() => {\n displayToast('Annotations successfully updated.', 'success')\n setIsInEditMode(false)\n }}\n onCancel={() => setIsInEditMode(false)}\n />\n </SynapseErrorBoundary>\n ) : (\n <AnnotationsTable entityId={entityId} versionNumber={versionNumber} />\n )}\n </div>\n <div style={currentTab === 'METADATA' ? {} : { display: 'none' }}>\n <MetadataTable entityId={entityId} versionNumber={versionNumber} />\n </div>\n </>\n )\n\n const cancelEditingConfirmationModal = (\n <ConfirmationDialog\n open={showEditCancellationWarning}\n title=\"Unsaved Changes\"\n content=\"Any unsaved changes will be lost. Are you sure you want to close the editor?\"\n onCancel={() => {\n setShowEditCancellationWarning(false)\n }}\n onConfirm={() => {\n setShowEditCancellationWarning(false)\n onCancelEdit()\n }}\n />\n )\n\n const modalTitle = useMemo(() => {\n if (!entityBundle?.entity.name) {\n return <Skeleton width={'40%'} />\n } else if (currentTab === 'ANNOTATIONS') {\n return `${isInEditMode ? 'Edit ' : ''}Annotations for ${\n entityBundle.entity.name\n }`\n }\n return entityBundle.entity.name\n }, [currentTab, entityBundle?.entity.name, isInEditMode])\n\n return (\n <DialogBase\n className={`EntityMetadata`}\n open={show}\n onCancel={() => {\n if (isInEditMode) {\n setShowEditCancellationWarning(true)\n setOnCancelEdit(() => {\n // Need to return a function in a function because passing a function to setState has a different meaning\n return () => {\n setIsInEditMode(false)\n onClose()\n }\n })\n } else {\n onClose()\n }\n }}\n maxWidth={isInEditMode ? 'md' : 'sm'}\n title={modalTitle}\n content={dialogContent}\n actions={\n <>\n {cancelEditingConfirmationModal}\n {showCancelAnnotationEditsButton && cancelAnnotationEditsButton}\n {showSaveAnnotationsButton && saveAnnotationsButton}\n {showEditAnnotationsButton && editAnnotationsButton}\n {showOpenEntityPageButton && openEntityPageButton}\n </>\n }\n />\n )\n}\n\nexport default EntityModal\n"],"mappings":";;;;;;;;;;;;;;;;;AAuBA,IAAa,IAAkB,CAE7B,YAEA,cAKD;AAaD,SAAgB,EAAY,GAAyB;CACnD,IAAM,EACJ,aACA,kBACA,SACA,YACA,gBAAa,YACb,cAAW,IACX,uBAAoB,MAClB,GACE,IAA0B,EAAa,KAAK,EAE5C,CAAC,GAAY,KAAiB,EAAyB,EAAW,EAClE,CAAC,GAA6B,KAClC,EAAS,GAAM,EACX,CAAC,GAAc,KAAmB,EAAS,GAAM,EAIjD,CAAC,IAAc,KAAmB,QACtC,EAAgB,GAAM,CACvB;AAID,UACE,EAAkB,EAAa,QAClB;AAEX,IAAkB,GAAM;KAEzB,CAAC,GAAc,EAAkB,CAAC;CAErC,IAAM,EAAE,MAAM,MAAiB,EAAmB,GAAU,EAAc,EACpE,IAAU,KAAgB,EAAa,YAAY,SAEnD,IACJ,KAAgB,EAAwB,EAAa,WAAW,EAE5D,IACJ,KAAkB,EAAa,OAA6B,iBAExD,IACJ,MAAe,cACf,KACA,EAAE,OAAO,SAAW,OAAe,OAAO,SAAS,KAAK,SAAS,EAAS,GACtE,IACJ,kBAAC,GAAD;EACE,SAAS;EACT,eACE,OAAO,KACL,GAAG,EACD,EAAuB,gBACxB,CAAC,UAAU,KACZ,UACA,WACD;YATL;GAWC;GACM;GACJ,IAAe,EAAyB,GAAc,WAAW,GAAG;GAC9D;KAGL,IAA4B,MAAe,iBAAiB,GAC5D,IACJ,kBAAC,GAAD;EACE,SAAS;EACT,eAAe;AAEb,KAAwB,QAAS,YAAY,QAAQ,eAAe;;YAEvE;EAEQ,CAAA,EAGL,IACJ,MAAe,iBAAiB,GAC5B,IACJ,kBAAC,GAAD;EACE,SAAS;EACT,eAAe;AAEb,GADA,cAA4B,EAAgB,GAAM,CAAC,EACnD,EAA+B,GAAK;;YAEvC;EAEQ,CAAA,EAGL,IACJ,KAAW,MAAe,iBAAiB,CAAC,GACxC,IAA2B,KAAiB,CAAC,GAC7C,IACJ,kBAAC,GAAD;EACE,OACE,IACI,yDACA,KAAA;YAIN,kBAAC,QAAD,EAAA,UACE,kBAAC,GAAD;GACE,SAAS;GACT,UAAU;GACV,eAAe;AACb,MAAgB,GAAK;;aAExB;GAEQ,CAAA,EACJ,CAAA;EACC,CAAA,EAGN,IACJ,kBAAA,GAAA,EAAA,UAAA;EACG,KAAY,CAAC,IACZ,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAgB,KAAI,MAEjB,kBAAC,OAAD;IACE,WAAU;IACV,MAAK;IAEL,UAAS,MAAK;AAEZ,KADA,EAAE,iBAAiB,EACnB,EAAc,EAAQ;;IAExB,iBAAe,MAAY;cAE1B;IACG,EARC,EAQD,CAER;GACE,CAAA,GACJ;EACJ,kBAAC,OAAD;GAAK,OAAO,MAAe,gBAAgB,EAAE,GAAG,EAAE,SAAS,QAAQ;aAChE,IACC,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;IACY;IACV,SAAS;IACT,aAAA;IACA,iBAAiB;AAEf,KADA,EAAa,qCAAqC,UAAU,EAC5D,EAAgB,GAAM;;IAExB,gBAAgB,EAAgB,GAAM;IACtC,CAAA,EACmB,CAAA,GAEvB,kBAAC,GAAD;IAA4B;IAAyB;IAAiB,CAAA;GAEpE,CAAA;EACN,kBAAC,OAAD;GAAK,OAAO,MAAe,aAAa,EAAE,GAAG,EAAE,SAAS,QAAQ;aAC9D,kBAAC,GAAD;IAAyB;IAAyB;IAAiB,CAAA;GAC/D,CAAA;EACL,EAAA,CAAA,EAGC,KACJ,kBAAC,GAAD;EACE,MAAM;EACN,OAAM;EACN,SAAQ;EACR,gBAAgB;AACd,KAA+B,GAAM;;EAEvC,iBAAiB;AAEf,GADA,EAA+B,GAAM,EACrC,IAAc;;EAEhB,CAAA,EAGE,KAAa,QACZ,GAAc,OAAO,OAEf,MAAe,gBACjB,GAAG,IAAe,UAAU,GAAG,kBACpC,EAAa,OAAO,SAGjB,EAAa,OAAO,OANlB,kBAAC,GAAD,EAAU,OAAO,OAAS,CAAA,EAOlC;EAAC;EAAY,GAAc,OAAO;EAAM;EAAa,CAAC;AAEzD,QACE,kBAAC,GAAD;EACE,WAAW;EACX,MAAM;EACN,gBAAgB;AACd,GAAI,KACF,EAA+B,GAAK,EACpC,cAEe;AAEX,IADA,EAAgB,GAAM,EACtB,GAAS;KAEX,IAEF,GAAS;;EAGb,UAAU,IAAe,OAAO;EAChC,OAAO;EACP,SAAS;EACT,SACE,kBAAA,GAAA,EAAA,UAAA;GACG;GACA,KAAmC;GACnC,KAA6B;GAC7B,KAA6B;GAC7B,KAA4B;GAC5B,EAAA,CAAA;EAEL,CAAA"}
|
|
1
|
+
{"version":3,"file":"EntityModal.js","names":[],"sources":["../../../../src/components/entity/metadata/EntityModal.tsx"],"sourcesContent":["import useGetEntityBundle from '@/synapse-queries/entity/useEntityBundle'\nimport {\n entityTypeToFriendlyName,\n isVersionableEntityType,\n} from '@/utils/functions/EntityTypeUtils'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport { Button, Tooltip } from '@mui/material'\nimport Skeleton from '@mui/material/Skeleton'\nimport Form from '@rjsf/core'\nimport { VersionableEntity } from '@sage-bionetworks/synapse-types'\nimport { noop } from 'lodash-es'\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport { ConfirmationDialog } from '../../ConfirmationDialog'\nimport { DialogBase } from '../../DialogBase'\nimport { SynapseErrorBoundary } from '../../error/ErrorBanner'\nimport { SchemaDrivenAnnotationEditor } from '../../SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor'\nimport { displayToast } from '../../ToastMessage/ToastMessage'\nimport { AnnotationsTable } from './AnnotationsTable'\nimport { MetadataTable } from './MetadataTable'\n\nexport const EntityModalTabs = [\n // non-annotation metadata about the entity\n 'METADATA',\n // annotation and schema information\n 'ANNOTATIONS',\n // TODO: Access -- we haven't yet built a viewer/editor for ACLs in SRC -- consider a redesign before building\n //'ACCESS', // ACLs (and maybe ARs?)\n // TODO: Previews - we would need preview renderers that accomplish feature parity with SWC\n //'PREVIEW' // should only show this tab if a preview exists\n] as const\ntype EntityModalTab = (typeof EntityModalTabs)[number]\n\nexport type EntityModalProps = {\n readonly show: boolean\n readonly entityId: string\n readonly versionNumber?: number\n readonly onClose: () => void\n readonly initialTab?: EntityModalTab\n readonly showTabs?: boolean\n readonly onEditModeChanged?: (isInEditMode: boolean) => void\n}\n\nexport function EntityModal(props: EntityModalProps) {\n const {\n entityId,\n versionNumber,\n show,\n onClose,\n initialTab = 'METADATA',\n showTabs = true,\n onEditModeChanged = noop,\n } = props\n const annotationEditorFormRef = useRef<Form>(null)\n\n const [currentTab, setCurrentTab] = useState<EntityModalTab>(initialTab)\n const [showEditCancellationWarning, setShowEditCancellationWarning] =\n useState(false)\n const [isInEditMode, setIsInEditMode] = useState(false)\n\n // Need to store variable behavior for when the user confirms they want to cancel editing\n // We may return to the readonly view, or we might close the entire modal, depending on what they clicked.\n const [onCancelEdit, setOnCancelEdit] = useState<() => void>(() =>\n setIsInEditMode(false),\n )\n\n // Call the callback if `isInEditMode` changes\n // e.g. to set the global isInEditMode tracker in SWC\n useEffect(() => {\n onEditModeChanged(isInEditMode)\n return () => {\n // Ensure we disable edit mode when the component unmounts\n onEditModeChanged(false)\n }\n }, [isInEditMode, onEditModeChanged])\n\n const { data: entityBundle } = useGetEntityBundle(entityId, versionNumber)\n const canEdit = entityBundle && entityBundle.permissions.canEdit\n\n const isVersionable =\n entityBundle && isVersionableEntityType(entityBundle.entityType)\n\n const isLatestVersion =\n isVersionable && (entityBundle.entity as VersionableEntity).isLatestVersion!\n\n const showOpenEntityPageButton =\n currentTab === 'METADATA' &&\n entityBundle &&\n !(typeof window !== 'undefined' && window.location.href.includes(entityId))\n const openEntityPageButton = (\n <Button\n variant={'contained'}\n onClick={() =>\n window.open(\n `${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${entityId}`,\n '_blank',\n 'noopener',\n )\n }\n >\n Open{' '}\n {entityBundle ? entityTypeToFriendlyName(entityBundle?.entityType) : ''}\n </Button>\n )\n\n const showSaveAnnotationsButton = currentTab === 'ANNOTATIONS' && isInEditMode\n const saveAnnotationsButton = (\n <Button\n variant={'contained'}\n onClick={() => {\n // Workaround for https://github.com/rjsf-team/react-jsonschema-form/issues/3121\n annotationEditorFormRef.current!.formElement.current.requestSubmit()\n }}\n >\n Save Annotations\n </Button>\n )\n\n const showCancelAnnotationEditsButton =\n currentTab === 'ANNOTATIONS' && isInEditMode\n const cancelAnnotationEditsButton = (\n <Button\n variant={'outlined'}\n onClick={() => {\n setOnCancelEdit(() => () => setIsInEditMode(false))\n setShowEditCancellationWarning(true)\n }}\n >\n Cancel\n </Button>\n )\n\n const showEditAnnotationsButton =\n canEdit && currentTab === 'ANNOTATIONS' && !isInEditMode\n const disableEditingOldVersion = isVersionable && !isLatestVersion\n const editAnnotationsButton = (\n <Tooltip\n title={\n disableEditingOldVersion\n ? 'Annotations can only be edited on the latest version'\n : undefined\n }\n >\n {/* Wrap in span so tooltip works even when disabled */}\n <span>\n <Button\n variant={'contained'}\n disabled={disableEditingOldVersion}\n onClick={() => {\n setIsInEditMode(true)\n }}\n >\n Edit\n </Button>\n </span>\n </Tooltip>\n )\n\n const dialogContent = (\n <>\n {showTabs && !isInEditMode ? (\n <div className=\"Tabs\">\n {EntityModalTabs.map(tabName => {\n return (\n <div\n className=\"Tab\"\n role=\"tab\"\n key={tabName}\n onClick={e => {\n e.stopPropagation()\n setCurrentTab(tabName)\n }}\n aria-selected={tabName === currentTab}\n >\n {tabName}\n </div>\n )\n })}\n </div>\n ) : null}\n <div style={currentTab === 'ANNOTATIONS' ? {} : { display: 'none' }}>\n {isInEditMode ? (\n <SynapseErrorBoundary>\n <SchemaDrivenAnnotationEditor\n entityId={entityId}\n formRef={annotationEditorFormRef}\n hideActions\n onSuccess={() => {\n displayToast('Annotations successfully updated.', 'success')\n setIsInEditMode(false)\n }}\n onCancel={() => setIsInEditMode(false)}\n />\n </SynapseErrorBoundary>\n ) : (\n <AnnotationsTable entityId={entityId} versionNumber={versionNumber} />\n )}\n </div>\n <div style={currentTab === 'METADATA' ? {} : { display: 'none' }}>\n <MetadataTable entityId={entityId} versionNumber={versionNumber} />\n </div>\n </>\n )\n\n const cancelEditingConfirmationModal = (\n <ConfirmationDialog\n open={showEditCancellationWarning}\n title=\"Unsaved Changes\"\n content=\"Any unsaved changes will be lost. Are you sure you want to close the editor?\"\n onCancel={() => {\n setShowEditCancellationWarning(false)\n }}\n onConfirm={() => {\n setShowEditCancellationWarning(false)\n onCancelEdit()\n }}\n />\n )\n\n const modalTitle = useMemo(() => {\n if (!entityBundle?.entity.name) {\n return <Skeleton width={'40%'} />\n } else if (currentTab === 'ANNOTATIONS') {\n return `${isInEditMode ? 'Edit ' : ''}Annotations for ${\n entityBundle.entity.name\n }`\n }\n return entityBundle.entity.name\n }, [currentTab, entityBundle?.entity.name, isInEditMode])\n\n return (\n <DialogBase\n className={`EntityMetadata`}\n open={show}\n onCancel={() => {\n if (isInEditMode) {\n setShowEditCancellationWarning(true)\n setOnCancelEdit(() => {\n // Need to return a function in a function because passing a function to setState has a different meaning\n return () => {\n setIsInEditMode(false)\n onClose()\n }\n })\n } else {\n onClose()\n }\n }}\n maxWidth={isInEditMode ? 'md' : 'sm'}\n title={modalTitle}\n content={dialogContent}\n actions={\n <>\n {cancelEditingConfirmationModal}\n {showCancelAnnotationEditsButton && cancelAnnotationEditsButton}\n {showSaveAnnotationsButton && saveAnnotationsButton}\n {showEditAnnotationsButton && editAnnotationsButton}\n {showOpenEntityPageButton && openEntityPageButton}\n </>\n }\n />\n )\n}\n\nexport default EntityModal\n"],"mappings":";;;;;;;;;;;;;;;;;AAuBA,IAAa,IAAkB,CAE7B,YAEA,aAKF;AAaA,SAAgB,EAAY,GAAyB;CACnD,IAAM,EACJ,aACA,kBACA,SACA,YACA,gBAAa,YACb,cAAW,IACX,uBAAoB,MAClB,GACE,IAA0B,EAAa,IAAI,GAE3C,CAAC,GAAY,KAAiB,EAAyB,CAAU,GACjE,CAAC,GAA6B,KAClC,EAAS,EAAK,GACV,CAAC,GAAc,KAAmB,EAAS,EAAK,GAIhD,CAAC,IAAc,KAAmB,QACtC,EAAgB,EAAK,CACvB;CAIA,SACE,EAAkB,CAAY,SACjB;EAEX,EAAkB,EAAK;CACzB,IACC,CAAC,GAAc,CAAiB,CAAC;CAEpC,IAAM,EAAE,MAAM,MAAiB,EAAmB,GAAU,CAAa,GACnE,IAAU,KAAgB,EAAa,YAAY,SAEnD,IACJ,KAAgB,EAAwB,EAAa,UAAU,GAE3D,IACJ,KAAkB,EAAa,OAA6B,iBAExD,IACJ,MAAe,cACf,KACA,EAAE,OAAO,SAAW,OAAe,OAAO,SAAS,KAAK,SAAS,CAAQ,IACrE,IACJ,kBAAC,GAAD;EACE,SAAS;EACT,eACE,OAAO,KACL,GAAG,EACD,EAAuB,eACzB,EAAE,UAAU,KACZ,UACA,UACF;YATJ;GAWC;GACM;GACJ,IAAe,EAAyB,GAAc,UAAU,IAAI;EAC/D;KAGJ,IAA4B,MAAe,iBAAiB,GAC5D,IACJ,kBAAC,GAAD;EACE,SAAS;EACT,eAAe;GAEb,EAAwB,QAAS,YAAY,QAAQ,cAAc;EACrE;YACD;CAEO,CAAA,GAGJ,IACJ,MAAe,iBAAiB,GAC5B,IACJ,kBAAC,GAAD;EACE,SAAS;EACT,eAAe;GAEb,AADA,cAA4B,EAAgB,EAAK,CAAC,GAClD,EAA+B,EAAI;EACrC;YACD;CAEO,CAAA,GAGJ,IACJ,KAAW,MAAe,iBAAiB,CAAC,GACxC,IAA2B,KAAiB,CAAC,GAC7C,IACJ,kBAAC,GAAD;EACE,OACE,IACI,yDACA,KAAA;YAIN,kBAAC,QAAD,EAAA,UACE,kBAAC,GAAD;GACE,SAAS;GACT,UAAU;GACV,eAAe;IACb,EAAgB,EAAI;GACtB;aACD;EAEO,CAAA,EACJ,CAAA;CACC,CAAA,GAGL,IACJ,kBAAA,GAAA,EAAA,UAAA;EACG,KAAY,CAAC,IACZ,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAgB,KAAI,MAEjB,kBAAC,OAAD;IACE,WAAU;IACV,MAAK;IAEL,UAAS,MAAK;KAEZ,AADA,EAAE,gBAAgB,GAClB,EAAc,CAAO;IACvB;IACA,iBAAe,MAAY;cAE1B;GACE,GARE,CAQF,CAER;EACE,CAAA,IACH;EACJ,kBAAC,OAAD;GAAK,OAAO,MAAe,gBAAgB,CAAC,IAAI,EAAE,SAAS,OAAO;aAC/D,IACC,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;IACY;IACV,SAAS;IACT,aAAA;IACA,iBAAiB;KAEf,AADA,EAAa,qCAAqC,SAAS,GAC3D,EAAgB,EAAK;IACvB;IACA,gBAAgB,EAAgB,EAAK;GACtC,CAAA,EACmB,CAAA,IAEtB,kBAAC,GAAD;IAA4B;IAAyB;GAAgB,CAAA;EAEpE,CAAA;EACL,kBAAC,OAAD;GAAK,OAAO,MAAe,aAAa,CAAC,IAAI,EAAE,SAAS,OAAO;aAC7D,kBAAC,GAAD;IAAyB;IAAyB;GAAgB,CAAA;EAC/D,CAAA;CACL,EAAA,CAAA,GAGE,KACJ,kBAAC,GAAD;EACE,MAAM;EACN,OAAM;EACN,SAAQ;EACR,gBAAgB;GACd,EAA+B,EAAK;EACtC;EACA,iBAAiB;GAEf,AADA,EAA+B,EAAK,GACpC,GAAa;EACf;CACD,CAAA,GAGG,KAAa,QACZ,GAAc,OAAO,OAEf,MAAe,gBACjB,GAAG,IAAe,UAAU,GAAG,kBACpC,EAAa,OAAO,SAGjB,EAAa,OAAO,OANlB,kBAAC,GAAD,EAAU,OAAO,MAAQ,CAAA,GAOjC;EAAC;EAAY,GAAc,OAAO;EAAM;CAAY,CAAC;CAExD,OACE,kBAAC,GAAD;EACE,WAAW;EACX,MAAM;EACN,gBAAgB;GACd,AAAI,KACF,EAA+B,EAAI,GACnC,cAEe;IAEX,AADA,EAAgB,EAAK,GACrB,EAAQ;GACV,CACD,KAED,EAAQ;EAEZ;EACA,UAAU,IAAe,OAAO;EAChC,OAAO;EACP,SAAS;EACT,SACE,kBAAA,GAAA,EAAA,UAAA;GACG;GACA,KAAmC;GACnC,KAA6B;GAC7B,KAA6B;GAC7B,KAA4B;EAC7B,EAAA,CAAA;CAEL,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataTable.js","names":[],"sources":["../../../../src/components/entity/metadata/MetadataTable.tsx"],"sourcesContent":["import React from 'react'\nimport useGetEntityBundle from '@/synapse-queries/entity/useEntityBundle'\nimport { useGetUploadDestinationForStorageLocation } from '@/synapse-queries/file/useUploadDestination'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport {\n entityTypeToFriendlyName,\n getVersionDisplay,\n isVersionableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport {\n getDataFileHandle,\n getStorageLocationName,\n} from '@/utils/functions/FileHandleUtils'\nimport dayjs from 'dayjs'\nimport { UserBadge } from '../../UserCard/UserBadge'\n\nexport type MetadataTableProps = {\n readonly entityId: string\n readonly versionNumber?: number\n}\n\nexport const MetadataTable = ({\n entityId,\n versionNumber,\n}: MetadataTableProps): React.ReactNode => {\n const { data: entityBundle } = useGetEntityBundle(entityId, versionNumber)\n\n const isVersionable = entityBundle && isVersionableEntity(entityBundle.entity)\n\n const dataFileHandle = entityBundle\n ? getDataFileHandle(entityBundle)\n : undefined\n const parentId = entityBundle?.entity?.parentId\n const storageLocationId = dataFileHandle?.storageLocationId\n const { data: storageLocationUploadDestination } =\n useGetUploadDestinationForStorageLocation(parentId!, storageLocationId!, {\n enabled: parentId !== undefined && storageLocationId != null,\n })\n\n let fileLocationName: string | undefined = undefined\n if (dataFileHandle) {\n fileLocationName = getStorageLocationName(\n dataFileHandle,\n storageLocationUploadDestination,\n )\n }\n\n return entityBundle ? (\n <table className=\"MetadataTable\">\n <tbody>\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Name</td>\n <td className=\"MetadataTable__Row__Value\">\n {entityBundle.entity?.name}\n </td>\n </tr>\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Type</td>\n <td className=\"MetadataTable__Row__Value\">\n {entityTypeToFriendlyName(entityBundle.entityType)}\n </td>\n </tr>\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Synapse ID</td>\n <td className=\"MetadataTable__Row__Value\">\n {entityBundle.entity?.id}\n </td>\n </tr>\n {isVersionable && (\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Version</td>\n <td className=\"MetadataTable__Row__Value\">\n {getVersionDisplay(entityBundle.entity)}\n </td>\n </tr>\n )}\n {fileLocationName && (\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Storage</td>\n <td className=\"MetadataTable__Row__Value\">{fileLocationName}</td>\n </tr>\n )}\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\"> Last Modified By</td>\n <td className=\"MetadataTable__Row__Value\">\n <UserBadge userId={entityBundle.entity?.modifiedBy} /> at{' '}\n {formatDate(dayjs(entityBundle.entity?.modifiedOn))}\n </td>\n </tr>\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Created By</td>\n <td className=\"MetadataTable__Row__Value\">\n <UserBadge userId={entityBundle.entity?.createdBy} /> at{' '}\n {formatDate(dayjs(entityBundle.entity?.createdOn))}\n </td>\n </tr>\n </tbody>\n </table>\n ) : null\n}\n"],"mappings":";;;;;;;;;;AAqBA,IAAa,KAAiB,EAC5B,aACA,uBACyC;CACzC,IAAM,EAAE,MAAM,MAAiB,EAAmB,GAAU,
|
|
1
|
+
{"version":3,"file":"MetadataTable.js","names":[],"sources":["../../../../src/components/entity/metadata/MetadataTable.tsx"],"sourcesContent":["import React from 'react'\nimport useGetEntityBundle from '@/synapse-queries/entity/useEntityBundle'\nimport { useGetUploadDestinationForStorageLocation } from '@/synapse-queries/file/useUploadDestination'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport {\n entityTypeToFriendlyName,\n getVersionDisplay,\n isVersionableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport {\n getDataFileHandle,\n getStorageLocationName,\n} from '@/utils/functions/FileHandleUtils'\nimport dayjs from 'dayjs'\nimport { UserBadge } from '../../UserCard/UserBadge'\n\nexport type MetadataTableProps = {\n readonly entityId: string\n readonly versionNumber?: number\n}\n\nexport const MetadataTable = ({\n entityId,\n versionNumber,\n}: MetadataTableProps): React.ReactNode => {\n const { data: entityBundle } = useGetEntityBundle(entityId, versionNumber)\n\n const isVersionable = entityBundle && isVersionableEntity(entityBundle.entity)\n\n const dataFileHandle = entityBundle\n ? getDataFileHandle(entityBundle)\n : undefined\n const parentId = entityBundle?.entity?.parentId\n const storageLocationId = dataFileHandle?.storageLocationId\n const { data: storageLocationUploadDestination } =\n useGetUploadDestinationForStorageLocation(parentId!, storageLocationId!, {\n enabled: parentId !== undefined && storageLocationId != null,\n })\n\n let fileLocationName: string | undefined = undefined\n if (dataFileHandle) {\n fileLocationName = getStorageLocationName(\n dataFileHandle,\n storageLocationUploadDestination,\n )\n }\n\n return entityBundle ? (\n <table className=\"MetadataTable\">\n <tbody>\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Name</td>\n <td className=\"MetadataTable__Row__Value\">\n {entityBundle.entity?.name}\n </td>\n </tr>\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Type</td>\n <td className=\"MetadataTable__Row__Value\">\n {entityTypeToFriendlyName(entityBundle.entityType)}\n </td>\n </tr>\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Synapse ID</td>\n <td className=\"MetadataTable__Row__Value\">\n {entityBundle.entity?.id}\n </td>\n </tr>\n {isVersionable && (\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Version</td>\n <td className=\"MetadataTable__Row__Value\">\n {getVersionDisplay(entityBundle.entity)}\n </td>\n </tr>\n )}\n {fileLocationName && (\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Storage</td>\n <td className=\"MetadataTable__Row__Value\">{fileLocationName}</td>\n </tr>\n )}\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\"> Last Modified By</td>\n <td className=\"MetadataTable__Row__Value\">\n <UserBadge userId={entityBundle.entity?.modifiedBy} /> at{' '}\n {formatDate(dayjs(entityBundle.entity?.modifiedOn))}\n </td>\n </tr>\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Created By</td>\n <td className=\"MetadataTable__Row__Value\">\n <UserBadge userId={entityBundle.entity?.createdBy} /> at{' '}\n {formatDate(dayjs(entityBundle.entity?.createdOn))}\n </td>\n </tr>\n </tbody>\n </table>\n ) : null\n}\n"],"mappings":";;;;;;;;;;AAqBA,IAAa,KAAiB,EAC5B,aACA,uBACyC;CACzC,IAAM,EAAE,MAAM,MAAiB,EAAmB,GAAU,CAAa,GAEnE,IAAgB,KAAgB,EAAoB,EAAa,MAAM,GAEvE,IAAiB,IACnB,EAAkB,CAAY,IAC9B,KAAA,GACE,IAAW,GAAc,QAAQ,UACjC,IAAoB,GAAgB,mBACpC,EAAE,MAAM,MACZ,EAA0C,GAAW,GAAoB,EACvE,SAAS,MAAa,KAAA,KAAa,KAAqB,KAC1D,CAAC,GAEC;CAQJ,OAPI,MACF,IAAmB,EACjB,GACA,CACF,IAGK,IACL,kBAAC,SAAD;EAAO,WAAU;YACf,kBAAC,SAAD,EAAA,UAAA;GACE,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;IAAQ,CAAA,GAChD,kBAAC,MAAD;KAAI,WAAU;eACX,EAAa,QAAQ;IACpB,CAAA,CACF;;GACJ,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;IAAQ,CAAA,GAChD,kBAAC,MAAD;KAAI,WAAU;eACX,EAAyB,EAAa,UAAU;IAC/C,CAAA,CACF;;GACJ,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;IAAc,CAAA,GACtD,kBAAC,MAAD;KAAI,WAAU;eACX,EAAa,QAAQ;IACpB,CAAA,CACF;;GACH,KACC,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;IAAW,CAAA,GACnD,kBAAC,MAAD;KAAI,WAAU;eACX,EAAkB,EAAa,MAAM;IACpC,CAAA,CACF;;GAEL,KACC,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;IAAW,CAAA,GACnD,kBAAC,MAAD;KAAI,WAAU;eAA6B;IAAqB,CAAA,CAC9D;;GAEN,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;IAAqB,CAAA,GAC7D,kBAAC,MAAD;KAAI,WAAU;eAAd;MACE,kBAAC,GAAD,EAAW,QAAQ,EAAa,QAAQ,WAAa,CAAA;MAAC;MAAI;MACzD,EAAW,EAAM,EAAa,QAAQ,UAAU,CAAC;KAChD;MACF;;GACJ,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;IAAc,CAAA,GACtD,kBAAC,MAAD;KAAI,WAAU;eAAd;MACE,kBAAC,GAAD,EAAW,QAAQ,EAAa,QAAQ,UAAY,CAAA;MAAC;MAAI;MACxD,EAAW,EAAM,EAAa,QAAQ,SAAS,CAAC;KAC/C;MACF;;EACC,EAAA,CAAA;CACF,CAAA,IACL;AACN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreatedByModifiedBy.js","names":[],"sources":["../../../../src/components/entity/page/CreatedByModifiedBy.tsx"],"sourcesContent":["import ConditionalWrapper from '@/components/utils/ConditionalWrapper'\nimport {\n useGetEntity,\n useGetQueryResultBundleWithAsyncStatus,\n} from '@/synapse-queries'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport {\n convertToEntityType,\n entityTypeToFriendlyName,\n isDataset,\n isTable,\n} from '@/utils/functions/EntityTypeUtils'\nimport { BUNDLE_MASK_LAST_UPDATED_ON } from '@/utils/SynapseConstants'\nimport { InfoTwoTone } from '@mui/icons-material'\nimport {\n Box,\n Breadcrumbs,\n Skeleton,\n SxProps,\n Tooltip,\n Typography,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\nimport dayjs from 'dayjs'\nimport { UserBadge } from '../../UserCard/UserBadge'\n\nexport type CreatedByModifiedByProps = {\n entityId: string\n versionNumber?: number\n}\n\nfunction Separator() {\n const theme = useTheme()\n const isSmallScreen = useMediaQuery(theme.breakpoints.down('sm'))\n if (isSmallScreen) {\n return null\n }\n return (\n <Typography variant={'breadcrumb1'} sx={{ color: 'grey.700' }}>\n /\n </Typography>\n )\n}\n\nexport function CreatedByModifiedBy(props: CreatedByModifiedByProps) {\n const { entityId, versionNumber } = props\n const entityIdWithVersion = `${entityId}${\n versionNumber ? `.${versionNumber}` : ''\n }`\n\n const { data: entity } = useGetEntity(entityId, versionNumber)\n\n const { data: tableQueryResult } = useGetQueryResultBundleWithAsyncStatus(\n {\n entityId,\n query: {\n sql: `SELECT * FROM ${entityIdWithVersion} LIMIT 0`,\n },\n partMask: BUNDLE_MASK_LAST_UPDATED_ON,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n },\n { enabled: !!(entity && isTable(entity)) },\n )\n\n const tableLastRebuilt = tableQueryResult?.responseBody?.lastUpdatedOn\n const friendlyName = entity\n ? entityTypeToFriendlyName(convertToEntityType(entity.concreteType))\n : ''\n\n const datasetCreatedByTooltipText =\n 'This is the user who created this Dataset. ' +\n 'This may not be the same person who generated the files in this Dataset, or who originally uploaded these files to Synapse.'\n\n const tableModifiedOnTooltipText = (\n <>\n <p>\n This is when the configuration of this {friendlyName} was last changed.\n </p>\n <p>Configuration changes may be triggered by (for example):</p>\n <ul>\n <li>Editing the name of the {friendlyName}</li>\n <li>Updating the schema used by the {friendlyName}</li>\n </ul>\n <p>\n This does NOT reflect changes to the data displayed in the the{' '}\n {friendlyName}.\n </p>\n </>\n )\n /*\n If the tooltip text is a string, MUI automatically applies it to aria-label which is more accessible and testable.\n Since this tooltip text is a ReactNode, let's manually create a short string to use for the aria-label.\n */\n const tableModifiedOnAccessibleLabel = `This is when the configuration of this ${friendlyName} was last changed.`\n\n const tableLastUpdatedTooltipText =\n `When data changes, the ${friendlyName} is rebuilt to reflect those changes. ` +\n `This is the last time changes were made to the data.`\n\n const createdByTooltipId = `${entityIdWithVersion}-createdByTooltip`\n const modifiedByTooltipId = `${entityIdWithVersion}-modifiedByTooltip`\n const lastUpdatedTooltipId = `${entityIdWithVersion}-lastUpdatedTooltip`\n\n const iconSx: SxProps = {\n width: '16px',\n height: '16px',\n ml: '4px',\n verticalAlign: 'text-bottom',\n }\n\n return (\n <Box\n sx={theme => ({\n bgcolor: 'grey.100',\n py: '10px',\n [theme.breakpoints.down('sm')]: {\n p: '24px 40px',\n },\n })}\n >\n <Breadcrumbs\n separator={<Separator />}\n sx={theme => ({\n '& .MuiBreadcrumbs-ol': {\n justifyContent: 'center',\n [theme.breakpoints.down('sm')]: {\n gap: '4px',\n },\n },\n })}\n >\n <ConditionalWrapper condition={!entity} wrapper={Skeleton}>\n <Typography\n sx={{ color: 'grey.700' }}\n variant={'breadcrumb1'}\n aria-describedby={createdByTooltipId}\n >\n {friendlyName} created by <UserBadge userId={entity?.createdBy} />{' '}\n on {formatDate(dayjs(entity?.createdOn))}\n {entity && isDataset(entity) && (\n <Tooltip\n id={createdByTooltipId}\n title={datasetCreatedByTooltipText}\n >\n <InfoTwoTone sx={iconSx} />\n </Tooltip>\n )}\n </Typography>\n </ConditionalWrapper>\n <ConditionalWrapper condition={!entity} wrapper={Skeleton}>\n <Typography\n sx={{ color: 'grey.700' }}\n variant={'breadcrumb1'}\n aria-describedby={modifiedByTooltipId}\n >\n {entity && isTable(entity) ? 'Configuration' : friendlyName} last\n modified by <UserBadge userId={entity?.modifiedBy} /> on{' '}\n {formatDate(dayjs(entity?.modifiedOn))}\n {entity && isTable(entity) && (\n <Tooltip\n id={modifiedByTooltipId}\n title={tableModifiedOnTooltipText}\n aria-label={tableModifiedOnAccessibleLabel}\n >\n <InfoTwoTone sx={iconSx} />\n </Tooltip>\n )}\n </Typography>\n </ConditionalWrapper>\n {tableLastRebuilt && (\n <Typography\n sx={{ color: 'grey.700' }}\n variant={'breadcrumb1'}\n aria-describedby={lastUpdatedTooltipId}\n >\n {friendlyName} last rebuilt on {formatDate(dayjs(tableLastRebuilt))}\n <Tooltip\n title={tableLastUpdatedTooltipText}\n id={lastUpdatedTooltipId}\n >\n <InfoTwoTone sx={iconSx} />\n </Tooltip>\n </Typography>\n )}\n </Breadcrumbs>\n </Box>\n )\n}\n\nexport default CreatedByModifiedBy\n"],"mappings":";;;;;;;;;;;;;AAgCA,SAAS,IAAY;
|
|
1
|
+
{"version":3,"file":"CreatedByModifiedBy.js","names":[],"sources":["../../../../src/components/entity/page/CreatedByModifiedBy.tsx"],"sourcesContent":["import ConditionalWrapper from '@/components/utils/ConditionalWrapper'\nimport {\n useGetEntity,\n useGetQueryResultBundleWithAsyncStatus,\n} from '@/synapse-queries'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport {\n convertToEntityType,\n entityTypeToFriendlyName,\n isDataset,\n isTable,\n} from '@/utils/functions/EntityTypeUtils'\nimport { BUNDLE_MASK_LAST_UPDATED_ON } from '@/utils/SynapseConstants'\nimport { InfoTwoTone } from '@mui/icons-material'\nimport {\n Box,\n Breadcrumbs,\n Skeleton,\n SxProps,\n Tooltip,\n Typography,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\nimport dayjs from 'dayjs'\nimport { UserBadge } from '../../UserCard/UserBadge'\n\nexport type CreatedByModifiedByProps = {\n entityId: string\n versionNumber?: number\n}\n\nfunction Separator() {\n const theme = useTheme()\n const isSmallScreen = useMediaQuery(theme.breakpoints.down('sm'))\n if (isSmallScreen) {\n return null\n }\n return (\n <Typography variant={'breadcrumb1'} sx={{ color: 'grey.700' }}>\n /\n </Typography>\n )\n}\n\nexport function CreatedByModifiedBy(props: CreatedByModifiedByProps) {\n const { entityId, versionNumber } = props\n const entityIdWithVersion = `${entityId}${\n versionNumber ? `.${versionNumber}` : ''\n }`\n\n const { data: entity } = useGetEntity(entityId, versionNumber)\n\n const { data: tableQueryResult } = useGetQueryResultBundleWithAsyncStatus(\n {\n entityId,\n query: {\n sql: `SELECT * FROM ${entityIdWithVersion} LIMIT 0`,\n },\n partMask: BUNDLE_MASK_LAST_UPDATED_ON,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n },\n { enabled: !!(entity && isTable(entity)) },\n )\n\n const tableLastRebuilt = tableQueryResult?.responseBody?.lastUpdatedOn\n const friendlyName = entity\n ? entityTypeToFriendlyName(convertToEntityType(entity.concreteType))\n : ''\n\n const datasetCreatedByTooltipText =\n 'This is the user who created this Dataset. ' +\n 'This may not be the same person who generated the files in this Dataset, or who originally uploaded these files to Synapse.'\n\n const tableModifiedOnTooltipText = (\n <>\n <p>\n This is when the configuration of this {friendlyName} was last changed.\n </p>\n <p>Configuration changes may be triggered by (for example):</p>\n <ul>\n <li>Editing the name of the {friendlyName}</li>\n <li>Updating the schema used by the {friendlyName}</li>\n </ul>\n <p>\n This does NOT reflect changes to the data displayed in the the{' '}\n {friendlyName}.\n </p>\n </>\n )\n /*\n If the tooltip text is a string, MUI automatically applies it to aria-label which is more accessible and testable.\n Since this tooltip text is a ReactNode, let's manually create a short string to use for the aria-label.\n */\n const tableModifiedOnAccessibleLabel = `This is when the configuration of this ${friendlyName} was last changed.`\n\n const tableLastUpdatedTooltipText =\n `When data changes, the ${friendlyName} is rebuilt to reflect those changes. ` +\n `This is the last time changes were made to the data.`\n\n const createdByTooltipId = `${entityIdWithVersion}-createdByTooltip`\n const modifiedByTooltipId = `${entityIdWithVersion}-modifiedByTooltip`\n const lastUpdatedTooltipId = `${entityIdWithVersion}-lastUpdatedTooltip`\n\n const iconSx: SxProps = {\n width: '16px',\n height: '16px',\n ml: '4px',\n verticalAlign: 'text-bottom',\n }\n\n return (\n <Box\n sx={theme => ({\n bgcolor: 'grey.100',\n py: '10px',\n [theme.breakpoints.down('sm')]: {\n p: '24px 40px',\n },\n })}\n >\n <Breadcrumbs\n separator={<Separator />}\n sx={theme => ({\n '& .MuiBreadcrumbs-ol': {\n justifyContent: 'center',\n [theme.breakpoints.down('sm')]: {\n gap: '4px',\n },\n },\n })}\n >\n <ConditionalWrapper condition={!entity} wrapper={Skeleton}>\n <Typography\n sx={{ color: 'grey.700' }}\n variant={'breadcrumb1'}\n aria-describedby={createdByTooltipId}\n >\n {friendlyName} created by <UserBadge userId={entity?.createdBy} />{' '}\n on {formatDate(dayjs(entity?.createdOn))}\n {entity && isDataset(entity) && (\n <Tooltip\n id={createdByTooltipId}\n title={datasetCreatedByTooltipText}\n >\n <InfoTwoTone sx={iconSx} />\n </Tooltip>\n )}\n </Typography>\n </ConditionalWrapper>\n <ConditionalWrapper condition={!entity} wrapper={Skeleton}>\n <Typography\n sx={{ color: 'grey.700' }}\n variant={'breadcrumb1'}\n aria-describedby={modifiedByTooltipId}\n >\n {entity && isTable(entity) ? 'Configuration' : friendlyName} last\n modified by <UserBadge userId={entity?.modifiedBy} /> on{' '}\n {formatDate(dayjs(entity?.modifiedOn))}\n {entity && isTable(entity) && (\n <Tooltip\n id={modifiedByTooltipId}\n title={tableModifiedOnTooltipText}\n aria-label={tableModifiedOnAccessibleLabel}\n >\n <InfoTwoTone sx={iconSx} />\n </Tooltip>\n )}\n </Typography>\n </ConditionalWrapper>\n {tableLastRebuilt && (\n <Typography\n sx={{ color: 'grey.700' }}\n variant={'breadcrumb1'}\n aria-describedby={lastUpdatedTooltipId}\n >\n {friendlyName} last rebuilt on {formatDate(dayjs(tableLastRebuilt))}\n <Tooltip\n title={tableLastUpdatedTooltipText}\n id={lastUpdatedTooltipId}\n >\n <InfoTwoTone sx={iconSx} />\n </Tooltip>\n </Typography>\n )}\n </Breadcrumbs>\n </Box>\n )\n}\n\nexport default CreatedByModifiedBy\n"],"mappings":";;;;;;;;;;;;;AAgCA,SAAS,IAAY;CAMnB,OAJsB,EADR,EACsB,EAAM,YAAY,KAAK,IAAI,CAC3D,IACK,OAGP,kBAAC,GAAD;EAAY,SAAS;EAAe,IAAI,EAAE,OAAO,WAAW;YAAG;CAEnD,CAAA;AAEhB;AAEA,SAAgB,EAAoB,GAAiC;CACnE,IAAM,EAAE,aAAU,qBAAkB,GAC9B,IAAsB,GAAG,IAC7B,IAAgB,IAAI,MAAkB,MAGlC,EAAE,MAAM,MAAW,EAAa,GAAU,CAAa,GAEvD,EAAE,MAAM,MAAqB,EACjC;EACE;EACA,OAAO,EACL,KAAK,iBAAiB,EAAoB,UAC5C;EACA,UAAA;EACA,cAAc;CAChB,GACA,EAAE,SAAS,CAAC,EAAE,KAAU,EAAQ,CAAM,GAAG,CAC3C,GAEM,IAAmB,GAAkB,cAAc,eACnD,IAAe,IACjB,EAAyB,EAAoB,EAAO,YAAY,CAAC,IACjE,IAME,IACJ,kBAAA,GAAA,EAAA,UAAA;EACE,kBAAC,KAAD,EAAA,UAAA;GAAG;GACuC;GAAa;EACpD,EAAA,CAAA;EACH,kBAAC,KAAD,EAAA,UAAG,2DAA2D,CAAA;EAC9D,kBAAC,MAAD,EAAA,UAAA,CACE,kBAAC,MAAD,EAAA,UAAA,CAAI,4BAAyB,CAAiB,EAAA,CAAA,GAC9C,kBAAC,MAAD,EAAA,UAAA,CAAI,oCAAiC,CAAiB,EAAA,CAAA,CACpD,EAAA,CAAA;EACJ,kBAAC,KAAD,EAAA,UAAA;GAAG;GAC8D;GAC9D;GAAa;EACb,EAAA,CAAA;CACH,EAAA,CAAA,GAME,IAAiC,0CAA0C,EAAa,qBAExF,IACJ,0BAA0B,EAAa,6FAGnC,IAAqB,GAAG,EAAoB,oBAC5C,IAAsB,GAAG,EAAoB,qBAC7C,IAAuB,GAAG,EAAoB,sBAE9C,IAAkB;EACtB,OAAO;EACP,QAAQ;EACR,IAAI;EACJ,eAAe;CACjB;CAEA,OACE,kBAAC,GAAD;EACE,KAAI,OAAU;GACZ,SAAS;GACT,IAAI;IACH,EAAM,YAAY,KAAK,IAAI,IAAI,EAC9B,GAAG,YACL;EACF;YAEA,kBAAC,GAAD;GACE,WAAW,kBAAC,GAAD,CAAY,CAAA;GACvB,KAAI,OAAU,EACZ,wBAAwB;IACtB,gBAAgB;KACf,EAAM,YAAY,KAAK,IAAI,IAAI,EAC9B,KAAK,MACP;GACF,EACF;aATF;IAWE,kBAAC,GAAD;KAAoB,WAAW,CAAC;KAAQ,SAAS;eAC/C,kBAAC,GAAD;MACE,IAAI,EAAE,OAAO,WAAW;MACxB,SAAS;MACT,oBAAkB;gBAHpB;OAKG;OAAa;OAAY,kBAAC,GAAD,EAAW,QAAQ,GAAQ,UAAY,CAAA;OAAE;OAAI;OACnE,EAAW,EAAM,GAAQ,SAAS,CAAC;OACtC,KAAU,EAAU,CAAM,KACzB,kBAAC,GAAD;QACE,IAAI;QACJ,OAAO;kBAEP,kBAAC,GAAD,EAAa,IAAI,EAAS,CAAA;OACnB,CAAA;MAED;;IACM,CAAA;IACpB,kBAAC,GAAD;KAAoB,WAAW,CAAC;KAAQ,SAAS;eAC/C,kBAAC,GAAD;MACE,IAAI,EAAE,OAAO,WAAW;MACxB,SAAS;MACT,oBAAkB;gBAHpB;OAKG,KAAU,EAAQ,CAAM,IAAI,kBAAkB;OAAa;OAChD,kBAAC,GAAD,EAAW,QAAQ,GAAQ,WAAa,CAAA;OAAC;OAAI;OACxD,EAAW,EAAM,GAAQ,UAAU,CAAC;OACpC,KAAU,EAAQ,CAAM,KACvB,kBAAC,GAAD;QACE,IAAI;QACJ,OAAO;QACP,cAAY;kBAEZ,kBAAC,GAAD,EAAa,IAAI,EAAS,CAAA;OACnB,CAAA;MAED;;IACM,CAAA;IACnB,KACC,kBAAC,GAAD;KACE,IAAI,EAAE,OAAO,WAAW;KACxB,SAAS;KACT,oBAAkB;eAHpB;MAKG;MAAa;MAAkB,EAAW,EAAM,CAAgB,CAAC;MAClE,kBAAC,GAAD;OACE,OAAO;OACP,IAAI;iBAEJ,kBAAC,GAAD,EAAa,IAAI,EAAS,CAAA;MACnB,CAAA;KACC;;GAEH;;CACV,CAAA;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityActionMenu.js","names":[],"sources":["../../../../../src/components/entity/page/action_menu/EntityActionMenu.tsx"],"sourcesContent":["import { SxProps } from '@mui/material'\nimport { ComplexMenu } from '../../../menu/ComplexMenu'\nimport IconSvg, { IconName } from '../../../IconSvg/IconSvg'\nimport { DropdownMenuItem, DropdownMenuProps } from '../../../menu/DropdownMenu'\nimport { IconSvgButtonProps } from '../../../IconSvgButton'\nimport { MouseEvent } from 'react'\n\n// Represents the two types of dropdown menus that will be displayed on the entity page\ntype EntityActionMenuDropdownMenuType = 'DOWNLOAD' | 'PRIMARY'\n\ntype EntityActionMenuDropdownMenuConfiguration = {\n visible: boolean\n tooltipText?: string\n disabled?: boolean\n}\n\nexport type ActionConfiguration = {\n visible: boolean\n text: string\n disabled?: boolean\n tooltipText?: string\n onClick?: (e: MouseEvent) => void\n href?: string\n}\n\nexport type ActionConfigurationMap = Record<string, ActionConfiguration>\n\nexport type MenuConfigurationMap = Record<\n EntityActionMenuDropdownMenuType,\n EntityActionMenuDropdownMenuConfiguration\n>\n\nexport type ActionViewProps = {\n action: string\n icon?: IconName\n textSx?: SxProps\n iconSx?: SxProps\n}\n\nexport type EntityActionMenuLayout = {\n buttonActions: ActionViewProps[]\n downloadMenuActions: ActionViewProps[][]\n primaryMenuActions: ActionViewProps[][]\n primaryMenuText: string\n primaryMenuEndIcon: IconName\n menuButtonSx?: SxProps\n}\n\nexport type EntityActionMenuProps = {\n /* Maps a unique action string to a dynamic configuration for that particular action */\n actionConfiguration: ActionConfigurationMap\n /* Maps each dropdown menu to a dynamic configuration for that particular menu */\n menuConfiguration: MenuConfigurationMap\n /* Defines the layout of the actions. Typically depends on just the entity type and area. */\n layout: EntityActionMenuLayout\n}\n\n/*\n * All visible actions should be specified in the layout, but this is not guaranteed at compile time.\n * Find all visible actions in the action configuration that are not in the layout.\n */\nfunction getUnmappedActions(\n actionConfiguration: ActionConfigurationMap,\n layout: EntityActionMenuLayout,\n): ActionConfigurationMap {\n return Object.fromEntries(\n Object.entries(actionConfiguration).filter(([action, config]) => {\n // We don't care about actions that are not configured or should not be visible\n if (!config || !config.visible) {\n return false\n }\n\n const allLayoutActions: ActionViewProps[] = [\n ...layout.buttonActions,\n ...layout.primaryMenuActions.flat(),\n ...layout.downloadMenuActions.flat(),\n ]\n // Action is unmapped if it's visible and the layout doesn't have it\n return !allLayoutActions.some(\n layoutAction => layoutAction.action === action,\n )\n }),\n )\n}\n\n/**\n * Given a group of dropdown menu items and an action configuration,\n * return a list of dropdown menu items with non-visible and non-configured actions removed.\n * @param group\n * @param actionConfiguration\n */\nfunction mapAndFilterItemsInMenuGroup(\n group: ActionViewProps[],\n actionConfiguration: ActionConfigurationMap,\n): DropdownMenuItem[] {\n return group.reduce(\n (itemAcc: DropdownMenuItem[], actionViewProps: ActionViewProps) => {\n const configForAction = actionConfiguration[actionViewProps.action]\n // Only show the item if it's configured + visible\n if (configForAction && configForAction.visible) {\n itemAcc.push({\n text: configForAction.text ?? actionViewProps.action,\n onClick: configForAction.onClick,\n href: configForAction.href,\n tooltipText: configForAction.tooltipText,\n disabled: configForAction.disabled,\n icon: actionViewProps.icon,\n textSx: actionViewProps.textSx,\n iconSx: actionViewProps.iconSx,\n })\n }\n return itemAcc\n },\n [],\n )\n}\n\n/**\n * Given a list of groups of dropdown menu actions, returns a list of dropdown menu item\n * groups where non-visible actions have been removed, and groups with no visible actions\n * have been removed.\n * @param menuActions\n * @param actionConfiguration\n */\nfunction mapAndFilterMenuGroups(\n menuActions: ActionViewProps[][],\n actionConfiguration: ActionConfigurationMap,\n): DropdownMenuItem[][] {\n return menuActions.reduce(\n (groupAcc: DropdownMenuItem[][], group: ActionViewProps[]) => {\n const itemGroup = mapAndFilterItemsInMenuGroup(group, actionConfiguration)\n // Only show the group if it contains visible items\n if (itemGroup.length > 0) {\n groupAcc.push(itemGroup)\n }\n return groupAcc\n },\n [],\n )\n}\n\n/**\n * The EntityActionMenu renders a menu that displays the actions that can be invoked on an Entity page.\n */\nexport default function EntityActionMenu(props: EntityActionMenuProps) {\n const { actionConfiguration, menuConfiguration, layout } = props\n\n /*\n * All actions should be specified in the layout, but this is not guaranteed at compile time.\n * Find all visible actions in the action configuration that are not in the layout.\n */\n const unmappedActions = getUnmappedActions(actionConfiguration, layout)\n // Warn if unmapped actions were found and push them on to the layout.\n if (Object.entries(unmappedActions).length > 0) {\n console.warn(\n 'Actions are visible but have not been configured in the layout:',\n Object.entries(unmappedActions).map(entry => entry[0]),\n )\n // Modify the layout: put the unmapped actions in their own group at the top of the menu\n layout.primaryMenuActions.unshift(\n Object.entries(unmappedActions).map(\n (entry): ActionViewProps => ({\n action: entry[0],\n }),\n ),\n )\n }\n\n // Map button actions to an IconButtonConfiguration and omit non-visible actions\n const iconButtonConfigs: IconSvgButtonProps[] = layout.buttonActions.reduce(\n (acc: IconSvgButtonProps[], buttonViewProps: ActionViewProps) => {\n const configForAction = actionConfiguration[buttonViewProps.action]\n if (configForAction && configForAction.visible) {\n let onClick = configForAction.onClick\n if (onClick == null && !configForAction.href) {\n console.warn(`No handler registered for ${buttonViewProps.action}`)\n onClick = () => {\n console.warn(`No handler registered for ${buttonViewProps.action}`)\n }\n }\n acc.push({\n icon: buttonViewProps.icon as IconName,\n onClick: onClick,\n tooltipText: configForAction.text,\n disabled: configForAction.disabled,\n href: configForAction.href,\n })\n }\n return acc\n },\n [],\n )\n\n const downloadMenuConfig: DropdownMenuProps = {\n dropdownButtonText: 'Download Options',\n convertSingleItemToButton: true,\n renderMenuIfNoItems: false,\n buttonTooltip: menuConfiguration.DOWNLOAD.tooltipText,\n buttonProps: {\n disabled: menuConfiguration.DOWNLOAD.disabled,\n endIcon: <IconSvg icon={'download'} wrap={false} />,\n },\n items: mapAndFilterMenuGroups(\n layout.downloadMenuActions,\n actionConfiguration,\n ),\n }\n\n const primaryMenuConfig: DropdownMenuProps = {\n dropdownButtonText: layout.primaryMenuText,\n convertSingleItemToButton: true,\n renderMenuIfNoItems: false,\n buttonProps: {\n endIcon: <IconSvg icon={layout.primaryMenuEndIcon} wrap={false} />,\n },\n items: mapAndFilterMenuGroups(\n layout.primaryMenuActions,\n actionConfiguration,\n ),\n }\n\n return (\n <ComplexMenu\n iconButtons={iconButtonConfigs}\n dropdownMenus={[downloadMenuConfig, primaryMenuConfig]}\n />\n )\n}\n\nexport const EXPORTED_FOR_UNIT_TESTING = {\n getUnmappedActions,\n mapAndFilterItemsInMenuGroup,\n mapAndFilterMenuGroups,\n}\n"],"mappings":";;;;AA6DA,SAAS,EACP,GACA,GACwB;
|
|
1
|
+
{"version":3,"file":"EntityActionMenu.js","names":[],"sources":["../../../../../src/components/entity/page/action_menu/EntityActionMenu.tsx"],"sourcesContent":["import { SxProps } from '@mui/material'\nimport { ComplexMenu } from '../../../menu/ComplexMenu'\nimport IconSvg, { IconName } from '../../../IconSvg/IconSvg'\nimport { DropdownMenuItem, DropdownMenuProps } from '../../../menu/DropdownMenu'\nimport { IconSvgButtonProps } from '../../../IconSvgButton'\nimport { MouseEvent } from 'react'\n\n// Represents the two types of dropdown menus that will be displayed on the entity page\ntype EntityActionMenuDropdownMenuType = 'DOWNLOAD' | 'PRIMARY'\n\ntype EntityActionMenuDropdownMenuConfiguration = {\n visible: boolean\n tooltipText?: string\n disabled?: boolean\n}\n\nexport type ActionConfiguration = {\n visible: boolean\n text: string\n disabled?: boolean\n tooltipText?: string\n onClick?: (e: MouseEvent) => void\n href?: string\n}\n\nexport type ActionConfigurationMap = Record<string, ActionConfiguration>\n\nexport type MenuConfigurationMap = Record<\n EntityActionMenuDropdownMenuType,\n EntityActionMenuDropdownMenuConfiguration\n>\n\nexport type ActionViewProps = {\n action: string\n icon?: IconName\n textSx?: SxProps\n iconSx?: SxProps\n}\n\nexport type EntityActionMenuLayout = {\n buttonActions: ActionViewProps[]\n downloadMenuActions: ActionViewProps[][]\n primaryMenuActions: ActionViewProps[][]\n primaryMenuText: string\n primaryMenuEndIcon: IconName\n menuButtonSx?: SxProps\n}\n\nexport type EntityActionMenuProps = {\n /* Maps a unique action string to a dynamic configuration for that particular action */\n actionConfiguration: ActionConfigurationMap\n /* Maps each dropdown menu to a dynamic configuration for that particular menu */\n menuConfiguration: MenuConfigurationMap\n /* Defines the layout of the actions. Typically depends on just the entity type and area. */\n layout: EntityActionMenuLayout\n}\n\n/*\n * All visible actions should be specified in the layout, but this is not guaranteed at compile time.\n * Find all visible actions in the action configuration that are not in the layout.\n */\nfunction getUnmappedActions(\n actionConfiguration: ActionConfigurationMap,\n layout: EntityActionMenuLayout,\n): ActionConfigurationMap {\n return Object.fromEntries(\n Object.entries(actionConfiguration).filter(([action, config]) => {\n // We don't care about actions that are not configured or should not be visible\n if (!config || !config.visible) {\n return false\n }\n\n const allLayoutActions: ActionViewProps[] = [\n ...layout.buttonActions,\n ...layout.primaryMenuActions.flat(),\n ...layout.downloadMenuActions.flat(),\n ]\n // Action is unmapped if it's visible and the layout doesn't have it\n return !allLayoutActions.some(\n layoutAction => layoutAction.action === action,\n )\n }),\n )\n}\n\n/**\n * Given a group of dropdown menu items and an action configuration,\n * return a list of dropdown menu items with non-visible and non-configured actions removed.\n * @param group\n * @param actionConfiguration\n */\nfunction mapAndFilterItemsInMenuGroup(\n group: ActionViewProps[],\n actionConfiguration: ActionConfigurationMap,\n): DropdownMenuItem[] {\n return group.reduce(\n (itemAcc: DropdownMenuItem[], actionViewProps: ActionViewProps) => {\n const configForAction = actionConfiguration[actionViewProps.action]\n // Only show the item if it's configured + visible\n if (configForAction && configForAction.visible) {\n itemAcc.push({\n text: configForAction.text ?? actionViewProps.action,\n onClick: configForAction.onClick,\n href: configForAction.href,\n tooltipText: configForAction.tooltipText,\n disabled: configForAction.disabled,\n icon: actionViewProps.icon,\n textSx: actionViewProps.textSx,\n iconSx: actionViewProps.iconSx,\n })\n }\n return itemAcc\n },\n [],\n )\n}\n\n/**\n * Given a list of groups of dropdown menu actions, returns a list of dropdown menu item\n * groups where non-visible actions have been removed, and groups with no visible actions\n * have been removed.\n * @param menuActions\n * @param actionConfiguration\n */\nfunction mapAndFilterMenuGroups(\n menuActions: ActionViewProps[][],\n actionConfiguration: ActionConfigurationMap,\n): DropdownMenuItem[][] {\n return menuActions.reduce(\n (groupAcc: DropdownMenuItem[][], group: ActionViewProps[]) => {\n const itemGroup = mapAndFilterItemsInMenuGroup(group, actionConfiguration)\n // Only show the group if it contains visible items\n if (itemGroup.length > 0) {\n groupAcc.push(itemGroup)\n }\n return groupAcc\n },\n [],\n )\n}\n\n/**\n * The EntityActionMenu renders a menu that displays the actions that can be invoked on an Entity page.\n */\nexport default function EntityActionMenu(props: EntityActionMenuProps) {\n const { actionConfiguration, menuConfiguration, layout } = props\n\n /*\n * All actions should be specified in the layout, but this is not guaranteed at compile time.\n * Find all visible actions in the action configuration that are not in the layout.\n */\n const unmappedActions = getUnmappedActions(actionConfiguration, layout)\n // Warn if unmapped actions were found and push them on to the layout.\n if (Object.entries(unmappedActions).length > 0) {\n console.warn(\n 'Actions are visible but have not been configured in the layout:',\n Object.entries(unmappedActions).map(entry => entry[0]),\n )\n // Modify the layout: put the unmapped actions in their own group at the top of the menu\n layout.primaryMenuActions.unshift(\n Object.entries(unmappedActions).map(\n (entry): ActionViewProps => ({\n action: entry[0],\n }),\n ),\n )\n }\n\n // Map button actions to an IconButtonConfiguration and omit non-visible actions\n const iconButtonConfigs: IconSvgButtonProps[] = layout.buttonActions.reduce(\n (acc: IconSvgButtonProps[], buttonViewProps: ActionViewProps) => {\n const configForAction = actionConfiguration[buttonViewProps.action]\n if (configForAction && configForAction.visible) {\n let onClick = configForAction.onClick\n if (onClick == null && !configForAction.href) {\n console.warn(`No handler registered for ${buttonViewProps.action}`)\n onClick = () => {\n console.warn(`No handler registered for ${buttonViewProps.action}`)\n }\n }\n acc.push({\n icon: buttonViewProps.icon as IconName,\n onClick: onClick,\n tooltipText: configForAction.text,\n disabled: configForAction.disabled,\n href: configForAction.href,\n })\n }\n return acc\n },\n [],\n )\n\n const downloadMenuConfig: DropdownMenuProps = {\n dropdownButtonText: 'Download Options',\n convertSingleItemToButton: true,\n renderMenuIfNoItems: false,\n buttonTooltip: menuConfiguration.DOWNLOAD.tooltipText,\n buttonProps: {\n disabled: menuConfiguration.DOWNLOAD.disabled,\n endIcon: <IconSvg icon={'download'} wrap={false} />,\n },\n items: mapAndFilterMenuGroups(\n layout.downloadMenuActions,\n actionConfiguration,\n ),\n }\n\n const primaryMenuConfig: DropdownMenuProps = {\n dropdownButtonText: layout.primaryMenuText,\n convertSingleItemToButton: true,\n renderMenuIfNoItems: false,\n buttonProps: {\n endIcon: <IconSvg icon={layout.primaryMenuEndIcon} wrap={false} />,\n },\n items: mapAndFilterMenuGroups(\n layout.primaryMenuActions,\n actionConfiguration,\n ),\n }\n\n return (\n <ComplexMenu\n iconButtons={iconButtonConfigs}\n dropdownMenus={[downloadMenuConfig, primaryMenuConfig]}\n />\n )\n}\n\nexport const EXPORTED_FOR_UNIT_TESTING = {\n getUnmappedActions,\n mapAndFilterItemsInMenuGroup,\n mapAndFilterMenuGroups,\n}\n"],"mappings":";;;;AA6DA,SAAS,EACP,GACA,GACwB;CACxB,OAAO,OAAO,YACZ,OAAO,QAAQ,CAAmB,EAAE,QAAQ,CAAC,GAAQ,OAE/C,CAAC,KAAU,CAAC,EAAO,UACd,KASF,CAAC;EALN,GAAG,EAAO;EACV,GAAG,EAAO,mBAAmB,KAAK;EAClC,GAAG,EAAO,oBAAoB,KAAK;CAG7B,EAAiB,MACvB,MAAgB,EAAa,WAAW,CAC1C,CACD,CACH;AACF;AAQA,SAAS,EACP,GACA,GACoB;CACpB,OAAO,EAAM,QACV,GAA6B,MAAqC;EACjE,IAAM,IAAkB,EAAoB,EAAgB;EAc5D,OAZI,KAAmB,EAAgB,WACrC,EAAQ,KAAK;GACX,MAAM,EAAgB,QAAQ,EAAgB;GAC9C,SAAS,EAAgB;GACzB,MAAM,EAAgB;GACtB,aAAa,EAAgB;GAC7B,UAAU,EAAgB;GAC1B,MAAM,EAAgB;GACtB,QAAQ,EAAgB;GACxB,QAAQ,EAAgB;EAC1B,CAAC,GAEI;CACT,GACA,CAAC,CACH;AACF;AASA,SAAS,EACP,GACA,GACsB;CACtB,OAAO,EAAY,QAChB,GAAgC,MAA6B;EAC5D,IAAM,IAAY,EAA6B,GAAO,CAAmB;EAKzE,OAHI,EAAU,SAAS,KACrB,EAAS,KAAK,CAAS,GAElB;CACT,GACA,CAAC,CACH;AACF;AAKA,SAAwB,EAAiB,GAA8B;CACrE,IAAM,EAAE,wBAAqB,sBAAmB,cAAW,GAMrD,IAAkB,EAAmB,GAAqB,CAAM;CAsEtE,OApEI,OAAO,QAAQ,CAAe,EAAE,SAAS,MAC3C,QAAQ,KACN,mEACA,OAAO,QAAQ,CAAe,EAAE,KAAI,MAAS,EAAM,EAAE,CACvD,GAEA,EAAO,mBAAmB,QACxB,OAAO,QAAQ,CAAe,EAAE,KAC7B,OAA4B,EAC3B,QAAQ,EAAM,GAChB,EACF,CACF,IAyDA,kBAAC,GAAD;EACE,aAtD4C,EAAO,cAAc,QAClE,GAA2B,MAAqC;GAC/D,IAAM,IAAkB,EAAoB,EAAgB;GAC5D,IAAI,KAAmB,EAAgB,SAAS;IAC9C,IAAI,IAAU,EAAgB;IAO9B,AANI,KAAW,QAAQ,CAAC,EAAgB,SACtC,QAAQ,KAAK,6BAA6B,EAAgB,QAAQ,GAClE,UAAgB;KACd,QAAQ,KAAK,6BAA6B,EAAgB,QAAQ;IACpE,IAEF,EAAI,KAAK;KACP,MAAM,EAAgB;KACb;KACT,aAAa,EAAgB;KAC7B,UAAU,EAAgB;KAC1B,MAAM,EAAgB;IACxB,CAAC;GACH;GACA,OAAO;EACT,GACA,CAAC,CAiCc;EACb,eAAe,CAAC;GA9BlB,oBAAoB;GACpB,2BAA2B;GAC3B,qBAAqB;GACrB,eAAe,EAAkB,SAAS;GAC1C,aAAa;IACX,UAAU,EAAkB,SAAS;IACrC,SAAS,kBAAC,GAAD;KAAS,MAAM;KAAY,MAAM;IAAQ,CAAA;GACpD;GACA,OAAO,EACL,EAAO,qBACP,CACF;EAmBkB,GAAoB;GAftC,oBAAoB,EAAO;GAC3B,2BAA2B;GAC3B,qBAAqB;GACrB,aAAa,EACX,SAAS,kBAAC,GAAD;IAAS,MAAM,EAAO;IAAoB,MAAM;GAAQ,CAAA,EACnE;GACA,OAAO,EACL,EAAO,oBACP,CACF;EAMsC,CAAiB;CACtD,CAAA;AAEL;AAEA,IAAa,IAA4B;CACvC;CACA;CACA;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityPageBreadcrumbs.js","names":[],"sources":["../../../../../src/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.tsx"],"sourcesContent":["import { Breadcrumbs } from '@/components/Breadcrumbs/Breadcrumbs'\nimport { SxProps } from '@mui/material'\nimport { MouseEventHandler } from 'react'\n\ntype BreadcrumbItem = {\n /* The text to show in the breadcrumb item. Strings > 25 characters will be truncated */\n text: string\n /* Whether this item represents the current page. If true, this item will not have a link. Default false */\n current?: boolean\n /* Link for the item, if using react-router */\n to?: string\n /* Link for the item, if it should be a normal anchor */\n href?: string\n /* Event handler fired when the link is clicked */\n onClick?: MouseEventHandler\n}\n\ntype EntityPageBreadcrumbsProps = {\n items: BreadcrumbItem[]\n sx?: SxProps\n}\n\nconst ENTITY_PAGE_MAX_BREADCRUMB_LENGTH = 32\n\nconst entityPageBreadcrumbStyle: SxProps = {\n marginTop: '0px',\n padding: '10px 40px',\n backgroundColor: 'grey.200',\n ['& .MuiLink-root']: {\n color: 'text.secondary',\n letterSpacing: 0,\n '&:visited': {\n color: 'text.secondary',\n },\n },\n '& .MuiSvgIcon-root': {\n color: 'grey.500',\n },\n}\n\nexport default function EntityPageBreadcrumbs(\n props: EntityPageBreadcrumbsProps,\n) {\n const { items } = props\n return (\n <Breadcrumbs\n items={items}\n sx={entityPageBreadcrumbStyle}\n maxBreadcrumbLength={ENTITY_PAGE_MAX_BREADCRUMB_LENGTH}\n />\n )\n}\n"],"mappings":";;;AAsBA,IAAM,IAAoC,IAEpC,IAAqC;CACzC,WAAW;CACX,SAAS;CACT,iBAAiB;CAChB,mBAAoB;EACnB,OAAO;EACP,eAAe;EACf,aAAa,EACX,OAAO,
|
|
1
|
+
{"version":3,"file":"EntityPageBreadcrumbs.js","names":[],"sources":["../../../../../src/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.tsx"],"sourcesContent":["import { Breadcrumbs } from '@/components/Breadcrumbs/Breadcrumbs'\nimport { SxProps } from '@mui/material'\nimport { MouseEventHandler } from 'react'\n\ntype BreadcrumbItem = {\n /* The text to show in the breadcrumb item. Strings > 25 characters will be truncated */\n text: string\n /* Whether this item represents the current page. If true, this item will not have a link. Default false */\n current?: boolean\n /* Link for the item, if using react-router */\n to?: string\n /* Link for the item, if it should be a normal anchor */\n href?: string\n /* Event handler fired when the link is clicked */\n onClick?: MouseEventHandler\n}\n\ntype EntityPageBreadcrumbsProps = {\n items: BreadcrumbItem[]\n sx?: SxProps\n}\n\nconst ENTITY_PAGE_MAX_BREADCRUMB_LENGTH = 32\n\nconst entityPageBreadcrumbStyle: SxProps = {\n marginTop: '0px',\n padding: '10px 40px',\n backgroundColor: 'grey.200',\n ['& .MuiLink-root']: {\n color: 'text.secondary',\n letterSpacing: 0,\n '&:visited': {\n color: 'text.secondary',\n },\n },\n '& .MuiSvgIcon-root': {\n color: 'grey.500',\n },\n}\n\nexport default function EntityPageBreadcrumbs(\n props: EntityPageBreadcrumbsProps,\n) {\n const { items } = props\n return (\n <Breadcrumbs\n items={items}\n sx={entityPageBreadcrumbStyle}\n maxBreadcrumbLength={ENTITY_PAGE_MAX_BREADCRUMB_LENGTH}\n />\n )\n}\n"],"mappings":";;;AAsBA,IAAM,IAAoC,IAEpC,IAAqC;CACzC,WAAW;CACX,SAAS;CACT,iBAAiB;CAChB,mBAAoB;EACnB,OAAO;EACP,eAAe;EACf,aAAa,EACX,OAAO,iBACT;CACF;CACA,sBAAsB,EACpB,OAAO,WACT;AACF;AAEA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,aAAU;CAClB,OACE,kBAAC,GAAD;EACS;EACP,IAAI;EACJ,qBAAqB;CACtB,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CitationsDialog.js","names":[],"sources":["../../../../../src/components/entity/page/title_bar/CitationsDialog.tsx"],"sourcesContent":["import { List, ListItem, Link, Typography, Button } from '@mui/material'\nimport { CitingWork } from './useDataCiteUsage'\nimport { sanitize } from '@/utils/functions/SanitizeHtmlUtils'\nimport { DialogBase } from '@/components/DialogBase'\n\ntype Props = {\n open: boolean\n onClose: () => void\n citations: CitingWork[]\n title?: string\n}\n\nexport const CitationsDialog: React.FC<Props> = ({\n open,\n onClose,\n citations,\n title = 'Cited by',\n}) => {\n return (\n <DialogBase\n title={title}\n onCancel={() => {\n onClose()\n }}\n open={open}\n content={\n <List>\n {citations.map(w => {\n const title = w.title ?? w.doi\n return (\n <ListItem key={w.id} alignItems=\"flex-start\">\n <Typography>\n <Link\n href={`https://doi.org/${w.doi}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span\n dangerouslySetInnerHTML={{ __html: sanitize(title) }}\n />\n </Link>\n <br />\n {w.containerTitle ? `${w.containerTitle} · ` : ''}\n {w.publisher ? `${w.publisher} · ` : ''}\n {w.publicationYear ?? ''}\n </Typography>\n </ListItem>\n )\n })}\n </List>\n }\n actions={\n <>\n <Button variant={'outlined'} onClick={() => onClose()}>\n Close\n </Button>\n </>\n }\n />\n )\n}\n"],"mappings":";;;;;AAYA,IAAa,KAAoC,EAC/C,SACA,YACA,cACA,WAAQ,iBAGN,kBAAC,GAAD;CACS;CACP,gBAAgB;
|
|
1
|
+
{"version":3,"file":"CitationsDialog.js","names":[],"sources":["../../../../../src/components/entity/page/title_bar/CitationsDialog.tsx"],"sourcesContent":["import { List, ListItem, Link, Typography, Button } from '@mui/material'\nimport { CitingWork } from './useDataCiteUsage'\nimport { sanitize } from '@/utils/functions/SanitizeHtmlUtils'\nimport { DialogBase } from '@/components/DialogBase'\n\ntype Props = {\n open: boolean\n onClose: () => void\n citations: CitingWork[]\n title?: string\n}\n\nexport const CitationsDialog: React.FC<Props> = ({\n open,\n onClose,\n citations,\n title = 'Cited by',\n}) => {\n return (\n <DialogBase\n title={title}\n onCancel={() => {\n onClose()\n }}\n open={open}\n content={\n <List>\n {citations.map(w => {\n const title = w.title ?? w.doi\n return (\n <ListItem key={w.id} alignItems=\"flex-start\">\n <Typography>\n <Link\n href={`https://doi.org/${w.doi}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span\n dangerouslySetInnerHTML={{ __html: sanitize(title) }}\n />\n </Link>\n <br />\n {w.containerTitle ? `${w.containerTitle} · ` : ''}\n {w.publisher ? `${w.publisher} · ` : ''}\n {w.publicationYear ?? ''}\n </Typography>\n </ListItem>\n )\n })}\n </List>\n }\n actions={\n <>\n <Button variant={'outlined'} onClick={() => onClose()}>\n Close\n </Button>\n </>\n }\n />\n )\n}\n"],"mappings":";;;;;AAYA,IAAa,KAAoC,EAC/C,SACA,YACA,cACA,WAAQ,iBAGN,kBAAC,GAAD;CACS;CACP,gBAAgB;EACd,EAAQ;CACV;CACM;CACN,SACE,kBAAC,GAAD,EAAA,UACG,EAAU,KAAI,MAAK;EAClB,IAAM,IAAQ,EAAE,SAAS,EAAE;EAC3B,OACE,kBAAC,GAAD;GAAqB,YAAW;aAC9B,kBAAC,GAAD,EAAA,UAAA;IACE,kBAAC,GAAD;KACE,MAAM,mBAAmB,EAAE;KAC3B,QAAO;KACP,KAAI;eAEJ,kBAAC,QAAD,EACE,yBAAyB,EAAE,QAAQ,EAAS,CAAK,EAAE,EACpD,CAAA;IACG,CAAA;IACN,kBAAC,MAAD,CAAK,CAAA;IACJ,EAAE,iBAAiB,GAAG,EAAE,eAAe,OAAO;IAC9C,EAAE,YAAY,GAAG,EAAE,UAAU,OAAO;IACpC,EAAE,mBAAmB;GACZ,EAAA,CAAA;EACJ,GAhBK,EAAE,EAgBP;CAEd,CAAC,EACG,CAAA;CAER,SACE,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;EAAQ,SAAS;EAAY,eAAe,EAAQ;YAAG;CAE/C,CAAA,EACR,CAAA;AAEL,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityPageTitleBar.js","names":[],"sources":["../../../../../src/components/entity/page/title_bar/EntityPageTitleBar.tsx"],"sourcesContent":["import ConditionalWrapper from '@/components/utils/ConditionalWrapper'\nimport { useGetEntityBundle } from '@/synapse-queries'\nimport { isDockerRepository } from '@/utils/types/IsType'\nimport { Avatar, Box, Skeleton, Stack, Typography } from '@mui/material'\nimport FavoriteButton from '../../../favorites/FavoriteButton'\nimport IconSvg, { type2SvgIconName } from '../../../IconSvg/IconSvg'\nimport EntityActionMenu, {\n EntityActionMenuProps,\n} from '../action_menu/EntityActionMenu'\nimport { EntityTitleBarVersionInfo } from './EntityTitleBarVersionInfo'\nimport TitleBarProperties from './TitleBarProperties'\n\nexport type EntityPageTitleBarProps = {\n entityId: string\n versionNumber?: number\n /* Props that will be passed through to an EntityActionMenu component */\n entityActionMenuProps?: EntityActionMenuProps\n /* Callback invoked when an ACT member clicks \"Add Conditions for Use\". */\n onActMemberClickAddConditionsForUse: () => void\n}\n\n/**\n * The EntityPageTitleBar component is shown on every Entity page in Synapse, and shows an Entity's metadata and\n * provides controls to view and manipulate the Entity.\n */\nexport default function EntityPageTitleBar(props: EntityPageTitleBarProps) {\n const { entityId, versionNumber, entityActionMenuProps } = props\n\n const toggleShowVersionHistory =\n entityActionMenuProps?.actionConfiguration['SHOW_VERSION_HISTORY']?.onClick\n\n const { data: bundle, isLoading } = useGetEntityBundle(\n entityId,\n versionNumber,\n )\n\n const name =\n bundle?.entity && isDockerRepository(bundle.entity)\n ? bundle.entity.repositoryName\n : bundle?.entity?.name\n\n return (\n <div>\n <Box\n sx={{\n padding: '20px 40px',\n backgroundColor: 'grey.100',\n }}\n >\n <Stack\n sx={{\n flexDirection: { xs: 'column', sm: 'row' },\n }}\n >\n <Stack\n direction={'row'}\n sx={{\n alignItems: 'center',\n flexGrow: 1,\n }}\n >\n <ConditionalWrapper\n condition={isLoading}\n wrapper={Skeleton}\n wrapperProps={{\n variant: 'circular',\n }}\n >\n <Avatar sx={{ bgcolor: 'grey.300', height: 48, width: 48 }}>\n {bundle?.entityType && (\n <IconSvg\n icon={\n bundle?.entityType\n ? type2SvgIconName[bundle.entityType]\n : 'file'\n }\n wrap={false}\n sx={{ color: 'grey.700' }}\n />\n )}\n </Avatar>\n </ConditionalWrapper>\n <Box sx={{ marginLeft: '10px', flexGrow: 1 }}>\n <Stack\n direction={'row'}\n sx={{\n alignItems: 'center',\n gap: '3px',\n }}\n >\n <ConditionalWrapper condition={isLoading} wrapper={Skeleton}>\n <Typography variant={'headline2'}>\n {name ?? 'Name not set'}\n </Typography>\n </ConditionalWrapper>\n {bundle?.entity?.id && (\n <FavoriteButton entityId={bundle.entity.id} />\n )}\n </Stack>\n <EntityTitleBarVersionInfo\n entityId={entityId}\n versionNumber={versionNumber}\n toggleShowVersionHistory={toggleShowVersionHistory}\n />\n </Box>\n </Stack>\n {entityActionMenuProps && (\n <EntityActionMenu {...entityActionMenuProps} />\n )}\n </Stack>\n </Box>\n <TitleBarProperties {...props} />\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAyBA,SAAwB,EAAmB,GAAgC;CACzE,IAAM,EAAE,aAAU,kBAAe,6BAA0B,GAErD,IACJ,GAAuB,oBAAoB,sBAAyB,SAEhE,EAAE,MAAM,GAAQ,iBAAc,EAClC,GACA,
|
|
1
|
+
{"version":3,"file":"EntityPageTitleBar.js","names":[],"sources":["../../../../../src/components/entity/page/title_bar/EntityPageTitleBar.tsx"],"sourcesContent":["import ConditionalWrapper from '@/components/utils/ConditionalWrapper'\nimport { useGetEntityBundle } from '@/synapse-queries'\nimport { isDockerRepository } from '@/utils/types/IsType'\nimport { Avatar, Box, Skeleton, Stack, Typography } from '@mui/material'\nimport FavoriteButton from '../../../favorites/FavoriteButton'\nimport IconSvg, { type2SvgIconName } from '../../../IconSvg/IconSvg'\nimport EntityActionMenu, {\n EntityActionMenuProps,\n} from '../action_menu/EntityActionMenu'\nimport { EntityTitleBarVersionInfo } from './EntityTitleBarVersionInfo'\nimport TitleBarProperties from './TitleBarProperties'\n\nexport type EntityPageTitleBarProps = {\n entityId: string\n versionNumber?: number\n /* Props that will be passed through to an EntityActionMenu component */\n entityActionMenuProps?: EntityActionMenuProps\n /* Callback invoked when an ACT member clicks \"Add Conditions for Use\". */\n onActMemberClickAddConditionsForUse: () => void\n}\n\n/**\n * The EntityPageTitleBar component is shown on every Entity page in Synapse, and shows an Entity's metadata and\n * provides controls to view and manipulate the Entity.\n */\nexport default function EntityPageTitleBar(props: EntityPageTitleBarProps) {\n const { entityId, versionNumber, entityActionMenuProps } = props\n\n const toggleShowVersionHistory =\n entityActionMenuProps?.actionConfiguration['SHOW_VERSION_HISTORY']?.onClick\n\n const { data: bundle, isLoading } = useGetEntityBundle(\n entityId,\n versionNumber,\n )\n\n const name =\n bundle?.entity && isDockerRepository(bundle.entity)\n ? bundle.entity.repositoryName\n : bundle?.entity?.name\n\n return (\n <div>\n <Box\n sx={{\n padding: '20px 40px',\n backgroundColor: 'grey.100',\n }}\n >\n <Stack\n sx={{\n flexDirection: { xs: 'column', sm: 'row' },\n }}\n >\n <Stack\n direction={'row'}\n sx={{\n alignItems: 'center',\n flexGrow: 1,\n }}\n >\n <ConditionalWrapper\n condition={isLoading}\n wrapper={Skeleton}\n wrapperProps={{\n variant: 'circular',\n }}\n >\n <Avatar sx={{ bgcolor: 'grey.300', height: 48, width: 48 }}>\n {bundle?.entityType && (\n <IconSvg\n icon={\n bundle?.entityType\n ? type2SvgIconName[bundle.entityType]\n : 'file'\n }\n wrap={false}\n sx={{ color: 'grey.700' }}\n />\n )}\n </Avatar>\n </ConditionalWrapper>\n <Box sx={{ marginLeft: '10px', flexGrow: 1 }}>\n <Stack\n direction={'row'}\n sx={{\n alignItems: 'center',\n gap: '3px',\n }}\n >\n <ConditionalWrapper condition={isLoading} wrapper={Skeleton}>\n <Typography variant={'headline2'}>\n {name ?? 'Name not set'}\n </Typography>\n </ConditionalWrapper>\n {bundle?.entity?.id && (\n <FavoriteButton entityId={bundle.entity.id} />\n )}\n </Stack>\n <EntityTitleBarVersionInfo\n entityId={entityId}\n versionNumber={versionNumber}\n toggleShowVersionHistory={toggleShowVersionHistory}\n />\n </Box>\n </Stack>\n {entityActionMenuProps && (\n <EntityActionMenu {...entityActionMenuProps} />\n )}\n </Stack>\n </Box>\n <TitleBarProperties {...props} />\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAyBA,SAAwB,EAAmB,GAAgC;CACzE,IAAM,EAAE,aAAU,kBAAe,6BAA0B,GAErD,IACJ,GAAuB,oBAAoB,sBAAyB,SAEhE,EAAE,MAAM,GAAQ,iBAAc,EAClC,GACA,CACF,GAEM,IACJ,GAAQ,UAAU,EAAmB,EAAO,MAAM,IAC9C,EAAO,OAAO,iBACd,GAAQ,QAAQ;CAEtB,OACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,iBAAiB;EACnB;YAEA,kBAAC,GAAD;GACE,IAAI,EACF,eAAe;IAAE,IAAI;IAAU,IAAI;GAAM,EAC3C;aAHF,CAKE,kBAAC,GAAD;IACE,WAAW;IACX,IAAI;KACF,YAAY;KACZ,UAAU;IACZ;cALF,CAOE,kBAAC,GAAD;KACE,WAAW;KACX,SAAS;KACT,cAAc,EACZ,SAAS,WACX;eAEA,kBAAC,GAAD;MAAQ,IAAI;OAAE,SAAS;OAAY,QAAQ;OAAI,OAAO;MAAG;gBACtD,GAAQ,cACP,kBAAC,GAAD;OACE,MACE,GAAQ,aACJ,EAAiB,EAAO,cACxB;OAEN,MAAM;OACN,IAAI,EAAE,OAAO,WAAW;MACzB,CAAA;KAEG,CAAA;IACU,CAAA,GACpB,kBAAC,GAAD;KAAK,IAAI;MAAE,YAAY;MAAQ,UAAU;KAAE;eAA3C,CACE,kBAAC,GAAD;MACE,WAAW;MACX,IAAI;OACF,YAAY;OACZ,KAAK;MACP;gBALF,CAOE,kBAAC,GAAD;OAAoB,WAAW;OAAW,SAAS;iBACjD,kBAAC,GAAD;QAAY,SAAS;kBAClB,KAAQ;OACC,CAAA;MACM,CAAA,GACnB,GAAQ,QAAQ,MACf,kBAAC,GAAD,EAAgB,UAAU,EAAO,OAAO,GAAK,CAAA,CAE1C;SACP,kBAAC,GAAD;MACY;MACK;MACW;KAC3B,CAAA,CACE;MACA;OACN,KACC,kBAAC,GAAD,EAAkB,GAAI,EAAwB,CAAA,CAE3C;;CACJ,CAAA,GACL,kBAAC,GAAD,EAAoB,GAAI,EAAQ,CAAA,CAC7B,EAAA,CAAA;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityTitleBarVersionInfo.js","names":[],"sources":["../../../../../src/components/entity/page/title_bar/EntityTitleBarVersionInfo.tsx"],"sourcesContent":["import { useGetEntityBundle } from '@/synapse-queries'\nimport {\n isEntityRefCollectionView,\n isTable,\n isVersionableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport { truncateString } from '@/utils/functions/StringUtils'\nimport { Box, Link, Tooltip, Typography } from '@mui/material'\nimport { Entity } from '@sage-bionetworks/synapse-types'\nimport { ActionConfiguration } from '../action_menu/EntityActionMenu'\n\nconst MAX_VERSION_LABEL_LENGTH = 50\nexport type EntityTitleBarVersionInfoProps = {\n entityId: string\n versionNumber?: number\n toggleShowVersionHistory: ActionConfiguration['onClick']\n}\n\nfunction getDisplayedVersionLabel(entity: Entity): string | null {\n if (!isVersionableEntity(entity)) {\n return null\n }\n if (isTable(entity) && entity.isLatestVersion) {\n return null\n }\n return entity.versionLabel ?? null\n}\n\nfunction getDisplayedVersionNumber(entity: Entity): string | null {\n if (!isVersionableEntity(entity)) {\n return null\n }\n if (isTable(entity) && entity.isLatestVersion) {\n if (isEntityRefCollectionView(entity)) {\n return 'Draft Version'\n }\n return 'Current Version'\n }\n return `V${entity.versionNumber}${entity.isLatestVersion ? ' (Current)' : ''}`\n}\n\nexport function EntityTitleBarVersionInfo(\n props: EntityTitleBarVersionInfoProps,\n) {\n const { entityId, versionNumber, toggleShowVersionHistory } = props\n\n const { data: bundle } = useGetEntityBundle(entityId, versionNumber)\n\n const isVersionable = bundle?.entity && isVersionableEntity(bundle.entity)\n\n const fullVersionLabel =\n bundle?.entity && getDisplayedVersionLabel(bundle.entity)\n const truncatedVersionLabel = fullVersionLabel\n ? truncateString(fullVersionLabel, MAX_VERSION_LABEL_LENGTH)\n : undefined\n\n const versionNumberDisplay =\n bundle?.entity && getDisplayedVersionNumber(bundle.entity)\n\n if (!isVersionable) {\n return null\n }\n\n return (\n <Box sx={{ marginTop: '3px' }}>\n <Tooltip title={fullVersionLabel} placement={'bottom'}>\n <Typography\n component={'span'}\n variant=\"smallText1\"\n sx={{\n color: 'grey.700',\n fontStyle: 'italic',\n }}\n >\n {truncatedVersionLabel}\n </Typography>\n </Tooltip>\n {fullVersionLabel && versionNumberDisplay && (\n <Typography\n component={'span'}\n variant=\"smallText1\"\n sx={{\n color: 'grey.700',\n marginLeft: '5px',\n marginRight: '5px',\n }}\n >\n /\n </Typography>\n )}\n <Tooltip title={'Click to show version history'} placement={'top'}>\n <Link\n onClick={toggleShowVersionHistory}\n variant=\"smallText1\"\n sx={{ fontWeight: 400 }}\n >\n {versionNumberDisplay}\n </Link>\n </Tooltip>\n </Box>\n )\n}\n\nexport const EXPORTED_FOR_UNIT_TESTING = {\n getDisplayedVersionLabel,\n getDisplayedVersionNumber,\n}\n"],"mappings":";;;;;;;AAWA,IAAM,IAA2B;AAOjC,SAAS,EAAyB,GAA+B;
|
|
1
|
+
{"version":3,"file":"EntityTitleBarVersionInfo.js","names":[],"sources":["../../../../../src/components/entity/page/title_bar/EntityTitleBarVersionInfo.tsx"],"sourcesContent":["import { useGetEntityBundle } from '@/synapse-queries'\nimport {\n isEntityRefCollectionView,\n isTable,\n isVersionableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport { truncateString } from '@/utils/functions/StringUtils'\nimport { Box, Link, Tooltip, Typography } from '@mui/material'\nimport { Entity } from '@sage-bionetworks/synapse-types'\nimport { ActionConfiguration } from '../action_menu/EntityActionMenu'\n\nconst MAX_VERSION_LABEL_LENGTH = 50\nexport type EntityTitleBarVersionInfoProps = {\n entityId: string\n versionNumber?: number\n toggleShowVersionHistory: ActionConfiguration['onClick']\n}\n\nfunction getDisplayedVersionLabel(entity: Entity): string | null {\n if (!isVersionableEntity(entity)) {\n return null\n }\n if (isTable(entity) && entity.isLatestVersion) {\n return null\n }\n return entity.versionLabel ?? null\n}\n\nfunction getDisplayedVersionNumber(entity: Entity): string | null {\n if (!isVersionableEntity(entity)) {\n return null\n }\n if (isTable(entity) && entity.isLatestVersion) {\n if (isEntityRefCollectionView(entity)) {\n return 'Draft Version'\n }\n return 'Current Version'\n }\n return `V${entity.versionNumber}${entity.isLatestVersion ? ' (Current)' : ''}`\n}\n\nexport function EntityTitleBarVersionInfo(\n props: EntityTitleBarVersionInfoProps,\n) {\n const { entityId, versionNumber, toggleShowVersionHistory } = props\n\n const { data: bundle } = useGetEntityBundle(entityId, versionNumber)\n\n const isVersionable = bundle?.entity && isVersionableEntity(bundle.entity)\n\n const fullVersionLabel =\n bundle?.entity && getDisplayedVersionLabel(bundle.entity)\n const truncatedVersionLabel = fullVersionLabel\n ? truncateString(fullVersionLabel, MAX_VERSION_LABEL_LENGTH)\n : undefined\n\n const versionNumberDisplay =\n bundle?.entity && getDisplayedVersionNumber(bundle.entity)\n\n if (!isVersionable) {\n return null\n }\n\n return (\n <Box sx={{ marginTop: '3px' }}>\n <Tooltip title={fullVersionLabel} placement={'bottom'}>\n <Typography\n component={'span'}\n variant=\"smallText1\"\n sx={{\n color: 'grey.700',\n fontStyle: 'italic',\n }}\n >\n {truncatedVersionLabel}\n </Typography>\n </Tooltip>\n {fullVersionLabel && versionNumberDisplay && (\n <Typography\n component={'span'}\n variant=\"smallText1\"\n sx={{\n color: 'grey.700',\n marginLeft: '5px',\n marginRight: '5px',\n }}\n >\n /\n </Typography>\n )}\n <Tooltip title={'Click to show version history'} placement={'top'}>\n <Link\n onClick={toggleShowVersionHistory}\n variant=\"smallText1\"\n sx={{ fontWeight: 400 }}\n >\n {versionNumberDisplay}\n </Link>\n </Tooltip>\n </Box>\n )\n}\n\nexport const EXPORTED_FOR_UNIT_TESTING = {\n getDisplayedVersionLabel,\n getDisplayedVersionNumber,\n}\n"],"mappings":";;;;;;;AAWA,IAAM,IAA2B;AAOjC,SAAS,EAAyB,GAA+B;CAO/D,OANI,CAAC,EAAoB,CAAM,KAG3B,EAAQ,CAAM,KAAK,EAAO,kBACrB,OAEF,EAAO,gBAAgB;AAChC;AAEA,SAAS,EAA0B,GAA+B;CAUhE,OATK,EAAoB,CAAM,IAG3B,EAAQ,CAAM,KAAK,EAAO,kBACxB,EAA0B,CAAM,IAC3B,kBAEF,oBAEF,IAAI,EAAO,gBAAgB,EAAO,kBAAkB,eAAe,OARjE;AASX;AAEA,SAAgB,EACd,GACA;CACA,IAAM,EAAE,aAAU,kBAAe,gCAA6B,GAExD,EAAE,MAAM,MAAW,EAAmB,GAAU,CAAa,GAE7D,IAAgB,GAAQ,UAAU,EAAoB,EAAO,MAAM,GAEnE,IACJ,GAAQ,UAAU,EAAyB,EAAO,MAAM,GACpD,IAAwB,IAC1B,EAAe,GAAkB,CAAwB,IACzD,KAAA,GAEE,IACJ,GAAQ,UAAU,EAA0B,EAAO,MAAM;CAM3D,OAJK,IAKH,kBAAC,GAAD;EAAK,IAAI,EAAE,WAAW,MAAM;YAA5B;GACE,kBAAC,GAAD;IAAS,OAAO;IAAkB,WAAW;cAC3C,kBAAC,GAAD;KACE,WAAW;KACX,SAAQ;KACR,IAAI;MACF,OAAO;MACP,WAAW;KACb;eAEC;IACS,CAAA;GACL,CAAA;GACR,KAAoB,KACnB,kBAAC,GAAD;IACE,WAAW;IACX,SAAQ;IACR,IAAI;KACF,OAAO;KACP,YAAY;KACZ,aAAa;IACf;cACD;GAEW,CAAA;GAEd,kBAAC,GAAD;IAAS,OAAO;IAAiC,WAAW;cAC1D,kBAAC,GAAD;KACE,SAAS;KACT,SAAQ;KACR,IAAI,EAAE,YAAY,IAAI;eAErB;IACG,CAAA;GACC,CAAA;EACN;MAvCE;AAyCX;AAEA,IAAa,IAA4B;CACvC;CACA;AACF"}
|