synapse-react-client 4.0.19 → 4.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SWC.index.d.ts +1 -1
- package/dist/SWC.index.js +1 -1
- package/dist/SWC.index.js.map +1 -1
- package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
- package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
- package/dist/assets/DefaultColorfulPortalCardBackground.js.map +1 -1
- package/dist/assets/GoogleIcon.js.map +1 -1
- package/dist/assets/GoogleIcon24.js.map +1 -1
- package/dist/assets/homepage/BlinkingLiveIcon.d.ts +1 -1
- package/dist/assets/homepage/BlinkingLiveIcon.js.map +1 -1
- package/dist/assets/homepage/aacr.js.map +1 -1
- package/dist/assets/homepage/cri.js.map +1 -1
- package/dist/assets/homepage/ctf.js.map +1 -1
- package/dist/assets/homepage/egress.js.map +1 -1
- package/dist/assets/homepage/facebook.js.map +1 -1
- package/dist/assets/homepage/fisma.js.map +1 -1
- package/dist/assets/homepage/gff.js.map +1 -1
- package/dist/assets/homepage/github.js.map +1 -1
- package/dist/assets/homepage/gray.js.map +1 -1
- package/dist/assets/homepage/hipaa-compliant.js.map +1 -1
- package/dist/assets/homepage/instagram.js.map +1 -1
- package/dist/assets/homepage/linkedin.js.map +1 -1
- package/dist/assets/homepage/ml-commons.js.map +1 -1
- package/dist/assets/homepage/nih-aging.js.map +1 -1
- package/dist/assets/homepage/nih-heart.js.map +1 -1
- package/dist/assets/homepage/nih-nci.js.map +1 -1
- package/dist/assets/homepage/nih-nimh.js.map +1 -1
- package/dist/assets/homepage/ntap.js.map +1 -1
- package/dist/assets/homepage/plan-item.js.map +1 -1
- package/dist/assets/homepage/powered-by-synapse-feature.js.map +1 -1
- package/dist/assets/homepage/precision-governance-feature.js.map +1 -1
- package/dist/assets/homepage/python.js.map +1 -1
- package/dist/assets/homepage/r.js.map +1 -1
- package/dist/assets/homepage/research-credit-feature.js.map +1 -1
- package/dist/assets/homepage/seamless-integration-feature.js.map +1 -1
- package/dist/assets/homepage/sloan.js.map +1 -1
- package/dist/assets/homepage/twitter.js.map +1 -1
- package/dist/assets/homepage/users.js.map +1 -1
- package/dist/assets/homepage/youtube.js.map +1 -1
- package/dist/assets/icons/AccessDataAnywhere.js.map +1 -1
- package/dist/assets/icons/AccessPending.js.map +1 -1
- package/dist/assets/icons/AccessPendingCloud.js.map +1 -1
- package/dist/assets/icons/AddAd.js.map +1 -1
- package/dist/assets/icons/AddToList.js.map +1 -1
- package/dist/assets/icons/Alert.js.map +1 -1
- package/dist/assets/icons/Arrow.js.map +1 -1
- package/dist/assets/icons/AwardScroll.js.map +1 -1
- package/dist/assets/icons/Baseline.js.map +1 -1
- package/dist/assets/icons/Cavatica.js.map +1 -1
- package/dist/assets/icons/CertifiedUser.js.map +1 -1
- package/dist/assets/icons/Challenge.js.map +1 -1
- package/dist/assets/icons/Checkbox/Checked.js.map +1 -1
- package/dist/assets/icons/Checkbox/Checked2.js.map +1 -1
- package/dist/assets/icons/Checkbox/Indeterminate.js.map +1 -1
- package/dist/assets/icons/Checkbox/Indeterminate2.js.map +1 -1
- package/dist/assets/icons/Checkbox/Unchecked.js.map +1 -1
- package/dist/assets/icons/Checkbox/Unchecked2.js.map +1 -1
- package/dist/assets/icons/ClappingHands.js.map +1 -1
- package/dist/assets/icons/CloudWarning.js.map +1 -1
- package/dist/assets/icons/CommunicateFindings.js.map +1 -1
- package/dist/assets/icons/CreateVersion.js.map +1 -1
- package/dist/assets/icons/DNA_Two.js.map +1 -1
- package/dist/assets/icons/Data2.js.map +1 -1
- package/dist/assets/icons/DoubleQuotes.js.map +1 -1
- package/dist/assets/icons/EmailAddressAdornment.js.map +1 -1
- package/dist/assets/icons/FileWithShield.js.map +1 -1
- package/dist/assets/icons/FileWithShield2.js.map +1 -1
- package/dist/assets/icons/FrontHand.js.map +1 -1
- package/dist/assets/icons/HandWithMoney.js.map +1 -1
- package/dist/assets/icons/IconCopy.js.map +1 -1
- package/dist/assets/icons/IconMinus.js.map +1 -1
- package/dist/assets/icons/IconPlus.js.map +1 -1
- package/dist/assets/icons/Java.js.map +1 -1
- package/dist/assets/icons/MintDoi.js.map +1 -1
- package/dist/assets/icons/MultiFile.js.map +1 -1
- package/dist/assets/icons/MultiFile2.js.map +1 -1
- package/dist/assets/icons/NoData.js.map +1 -1
- package/dist/assets/icons/NoSearchResults.js.map +1 -1
- package/dist/assets/icons/ORCIDIcon.js.map +1 -1
- package/dist/assets/icons/OpenBook.js.map +1 -1
- package/dist/assets/icons/Podium.js.map +1 -1
- package/dist/assets/icons/Python.js.map +1 -1
- package/dist/assets/icons/QueryStructuredData.js.map +1 -1
- package/dist/assets/icons/RLogo.js.map +1 -1
- package/dist/assets/icons/RecordProvenance.js.map +1 -1
- package/dist/assets/icons/RosetteRibbon.js.map +1 -1
- package/dist/assets/icons/SageFullLogo.js.map +1 -1
- package/dist/assets/icons/SearchImage.js.map +1 -1
- package/dist/assets/icons/ShareYourResearch.js.map +1 -1
- package/dist/assets/icons/Sort.js.map +1 -1
- package/dist/assets/icons/StarTrophy.js.map +1 -1
- package/dist/assets/icons/SynapseFullLogo.js.map +1 -1
- package/dist/assets/icons/SynapseIconWhite.js.map +1 -1
- package/dist/assets/icons/SynapseLogoName.js.map +1 -1
- package/dist/assets/icons/TasksIcon.js.map +1 -1
- package/dist/assets/icons/Terminal.js.map +1 -1
- package/dist/assets/icons/ThreeStars.js.map +1 -1
- package/dist/assets/icons/UnpackagableFile.js.map +1 -1
- package/dist/assets/icons/UnpackagableFile2.js.map +1 -1
- package/dist/assets/icons/ValidatedProfile.js.map +1 -1
- package/dist/assets/icons/account-certified.js.map +1 -1
- package/dist/assets/icons/account-enabled-mfa.js.map +1 -1
- package/dist/assets/icons/account-validated.js.map +1 -1
- package/dist/assets/icons/bioChemicalPhysical.js.map +1 -1
- package/dist/assets/icons/chart2.js.map +1 -1
- package/dist/assets/icons/columns.js.map +1 -1
- package/dist/assets/icons/columnsDarkTheme.js.map +1 -1
- package/dist/assets/icons/computationalTool.js.map +1 -1
- package/dist/assets/icons/dataReuse.js.map +1 -1
- package/dist/assets/icons/emailAddressAdornment2.js.map +1 -1
- package/dist/assets/icons/emailWithNotification.js.map +1 -1
- package/dist/assets/icons/error_page/maintenance.js.map +1 -1
- package/dist/assets/icons/error_page/no-access.js.map +1 -1
- package/dist/assets/icons/error_page/unavailable.js.map +1 -1
- package/dist/assets/icons/file.js.map +1 -1
- package/dist/assets/icons/inSilicoModel.js.map +1 -1
- package/dist/assets/icons/institution.js.map +1 -1
- package/dist/assets/icons/json-form-tool-no-submissions.js.map +1 -1
- package/dist/assets/icons/modelSystem.js.map +1 -1
- package/dist/assets/icons/mouse.js.map +1 -1
- package/dist/assets/icons/organizations.js.map +1 -1
- package/dist/assets/icons/person.js.map +1 -1
- package/dist/assets/icons/spatialProfiling.js.map +1 -1
- package/dist/assets/icons/standardDataModel.js.map +1 -1
- package/dist/assets/icons/study-active.js.map +1 -1
- package/dist/assets/icons/study-complete.js.map +1 -1
- package/dist/assets/icons/subscribe_plus.js.map +1 -1
- package/dist/assets/icons/synapse-logo.js.map +1 -1
- package/dist/assets/icons/terms/CheckIcon.js.map +1 -1
- package/dist/assets/icons/translational.js.map +1 -1
- package/dist/assets/icons/tree_horizontal.js.map +1 -1
- package/dist/assets/illustrations/acknowledgement_statements_illustration.js.map +1 -1
- package/dist/assets/illustrations/challenges_illustration.js.map +1 -1
- package/dist/assets/illustrations/cohort_builder_illustration.js.map +1 -1
- package/dist/assets/illustrations/data_access_management_illustration.js.map +1 -1
- package/dist/assets/illustrations/datasets_illustration.js.map +1 -1
- package/dist/assets/illustrations/diagonalLinePattern.js.map +1 -1
- package/dist/assets/illustrations/discussions_illustration.js.map +1 -1
- package/dist/assets/illustrations/docker_illustration.js.map +1 -1
- package/dist/assets/illustrations/donation_illustration.js.map +1 -1
- package/dist/assets/illustrations/favorites_illustration.js.map +1 -1
- package/dist/assets/illustrations/files_illustration.js.map +1 -1
- package/dist/assets/illustrations/following_illustration.js.map +1 -1
- package/dist/assets/illustrations/index.js.map +1 -1
- package/dist/assets/illustrations/left_dot_blob_dark_illustration.js.map +1 -1
- package/dist/assets/illustrations/left_dot_blob_illustration.js.map +1 -1
- package/dist/assets/illustrations/projects_illustration.js.map +1 -1
- package/dist/assets/illustrations/right_dot_blob_dark_illustration.js.map +1 -1
- package/dist/assets/illustrations/right_dot_blob_illustration.js.map +1 -1
- package/dist/assets/illustrations/tables_illustration.js.map +1 -1
- package/dist/assets/illustrations/teams_illustration.js.map +1 -1
- package/dist/assets/illustrations/trash_can_illustration.js.map +1 -1
- package/dist/assets/illustrations/underconstruction_illustration.js.map +1 -1
- package/dist/assets/illustrations/wikis_illustration.js.map +1 -1
- package/dist/assets/logos/other/ad-workbench-logo.js.map +1 -1
- package/dist/assets/logos/other/cavatica-logo.js.map +1 -1
- package/dist/assets/logos/other/pluto-logo.js.map +1 -1
- package/dist/assets/logos/other/terra-logo.js.map +1 -1
- package/dist/assets/mui_components/AccessManagement.js.map +1 -1
- package/dist/assets/mui_components/AccountCertified.js.map +1 -1
- package/dist/assets/mui_components/AccountRegistered.js.map +1 -1
- package/dist/assets/mui_components/AccountValidated.js.map +1 -1
- package/dist/assets/mui_components/ActionKey.js.map +1 -1
- package/dist/assets/mui_components/BioChemicalPhysical.js.map +1 -1
- package/dist/assets/mui_components/Chromatin.js.map +1 -1
- package/dist/assets/mui_components/Clinical.js.map +1 -1
- package/dist/assets/mui_components/ComputationalTool.js.map +1 -1
- package/dist/assets/mui_components/Data.js.map +1 -1
- package/dist/assets/mui_components/DataLocked.js.map +1 -1
- package/dist/assets/mui_components/DataReuse.js.map +1 -1
- package/dist/assets/mui_components/Dataset.js.map +1 -1
- package/dist/assets/mui_components/DatasetCollection.js.map +1 -1
- package/dist/assets/mui_components/Docker.js.map +1 -1
- package/dist/assets/mui_components/GeneExpression.js.map +1 -1
- package/dist/assets/mui_components/GeneVariants.js.map +1 -1
- package/dist/assets/mui_components/HelpChatBubble.js.map +1 -1
- package/dist/assets/mui_components/Imaging.js.map +1 -1
- package/dist/assets/mui_components/InSilicoModel.js.map +1 -1
- package/dist/assets/mui_components/Kinomics.js.map +1 -1
- package/dist/assets/mui_components/LineGraph.js.map +1 -1
- package/dist/assets/mui_components/ModelSystem.js.map +1 -1
- package/dist/assets/mui_components/Other.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile2.js.map +1 -1
- package/dist/assets/mui_components/Proteomics.js.map +1 -1
- package/dist/assets/mui_components/Rat.js.map +1 -1
- package/dist/assets/mui_components/SpatialProfiling.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition1.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition2.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition3.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition4.js.map +1 -1
- package/dist/assets/sustainability/dialPosition1.js.map +1 -1
- package/dist/assets/sustainability/dialPosition2.js.map +1 -1
- package/dist/assets/sustainability/dialPosition3.js.map +1 -1
- package/dist/assets/sustainability/dialPosition4.js.map +1 -1
- package/dist/assets/themed_icons/Active.js.map +1 -1
- package/dist/assets/themed_icons/Chart.js.map +1 -1
- package/dist/assets/themed_icons/Close.js.map +1 -1
- package/dist/assets/themed_icons/Collapse.js.map +1 -1
- package/dist/assets/themed_icons/Columns.js.map +1 -1
- package/dist/assets/themed_icons/ColumnsDark.js.map +1 -1
- package/dist/assets/themed_icons/Database.js.map +1 -1
- package/dist/assets/themed_icons/Download.js.map +1 -1
- package/dist/assets/themed_icons/Expand.js.map +1 -1
- package/dist/assets/themed_icons/Explore.js.map +1 -1
- package/dist/assets/themed_icons/ExternalLink.js.map +1 -1
- package/dist/assets/themed_icons/Filter.js.map +1 -1
- package/dist/assets/themed_icons/Program.js.map +1 -1
- package/dist/assets/themed_icons/Project.js.map +1 -1
- package/dist/assets/themed_icons/Publication.js.map +1 -1
- package/dist/assets/themed_icons/Search.js.map +1 -1
- package/dist/assets/themed_icons/Settings.js.map +1 -1
- package/dist/assets/themed_icons/SortDown.js.map +1 -1
- package/dist/assets/themed_icons/SortUp.js.map +1 -1
- package/dist/assets/themed_icons/SqlEditorIcon.js.map +1 -1
- package/dist/assets/themed_icons/Study.js.map +1 -1
- package/dist/assets/themed_icons/ToolClinical.js.map +1 -1
- package/dist/assets/themed_icons/ToolComputational.js.map +1 -1
- package/dist/assets/themed_icons/ToolExperimental.js.map +1 -1
- package/dist/assets/themed_icons/VerticalDots.js.map +1 -1
- package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js.map +1 -1
- package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
- package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js.map +1 -1
- package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +10 -11
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +73 -76
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/AuthenticatedRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/CertificationRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/LockAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/ValidationRequirement.js.map +1 -1
- package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
- package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
- package/dist/components/AccountLevelBadge/AccountLevelBadge.js.map +1 -1
- package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
- package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgement.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
- package/dist/components/AclEditor/AclEditorSkeleton.js.map +1 -1
- package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
- package/dist/components/AclEditor/ReadOnlyPermissionLevel.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js +2 -4
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessItem.js.map +1 -1
- package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
- package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
- package/dist/components/AdaptiveTwoColumnLayout/AdaptiveTwoColumnLayout.js.map +1 -1
- package/dist/components/AddToDownloadListV2.js.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
- package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
- package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
- package/dist/components/Authentication/LoginFlowBackButton.js.map +1 -1
- package/dist/components/Authentication/LoginForm.js.map +1 -1
- package/dist/components/Authentication/LoginMethod.js.map +1 -1
- package/dist/components/Authentication/LoginMethodButton.js.map +1 -1
- package/dist/components/Authentication/Logout.js.map +1 -1
- package/dist/components/Authentication/OneTimePasswordForm.js.map +1 -1
- package/dist/components/Authentication/PasswordField.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
- package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
- package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
- package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
- package/dist/components/Authentication/TOTPForm.js.map +1 -1
- package/dist/components/Authentication/TwoFactorAuthSettingsPanel.js.map +1 -1
- package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
- package/dist/components/Authentication/TwoFactorSecretDialog.js.map +1 -1
- package/dist/components/Authentication/UsernamePasswordForm.js.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/components/CTASectionWrapper/CTASectionWrapper.js.map +1 -1
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
- package/dist/components/CardContainer/CardContainer.js.map +1 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Desktop.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.js.map +1 -1
- package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
- package/dist/components/CardGridWithLinks/CardGridWithLinks.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationAnswer.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
- package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
- package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js.map +1 -1
- package/dist/components/ChallengeRegisterButton/ChallengeRegisterButton.js.map +1 -1
- package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
- package/dist/components/ChallengeSubmission/AddExternalRepo.js.map +1 -1
- package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +62 -64
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionCommitList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamSearch.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +96 -102
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/OpenMembershipInvitation.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/RegistrationSuccessful.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
- package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
- package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopover.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
- package/dist/components/CitationPopover/useCitation.js.map +1 -1
- package/dist/components/ColorGradient/ColorGradient.js.map +1 -1
- package/dist/components/ColoredBulletListItem/ColoredBulletListItem.js.map +1 -1
- package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
- package/dist/components/ComponentCollapse.js.map +1 -1
- package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiePreferencesDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.d.ts.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.js +9 -9
- package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
- package/dist/components/CopyToClipboardIcon.js.map +1 -1
- package/dist/components/CopyToClipboardInput/CopyToClipboardInput.js.map +1 -1
- package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizardUtils.js.map +1 -1
- package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
- package/dist/components/CreateProjectModal/ProjectVisibilityRadioGroup.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableTypeSelection.js.map +1 -1
- package/dist/components/CreateTableViewWizard/ViewTypeSelection.js.map +1 -1
- package/dist/components/CrispChat/CrispChat.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.js +28 -31
- package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
- package/dist/components/DataGrid/DataGrid.js +72 -72
- package/dist/components/DataGrid/DataGrid.js.map +1 -1
- package/dist/components/DataGrid/DataGridTypes.js.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.d.ts +2 -0
- package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.js +9 -10
- package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
- package/dist/components/DataGrid/StartGridSession.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts +3 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +219 -211
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/GridAutocompleteChip.js.map +1 -1
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
- package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js.map +1 -1
- package/dist/components/DataGrid/components/GridSessionSelectionField.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
- package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
- package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +2 -0
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
- package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridReplicaUsers.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
- package/dist/components/DataGrid/hooks/useRemoteSelections.js.map +1 -1
- package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
- package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts +2 -0
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js +12 -2
- package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
- package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
- package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
- package/dist/components/DataGrid/utils/MessageCounter.js.map +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/calculateColumnWidth.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
- package/dist/components/DataGrid/utils/convertActionToModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/createTestModel.js.map +1 -1
- package/dist/components/DataGrid/utils/enrichRowsWithChangeInfo.js.map +1 -1
- package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellAuthorSid.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
- package/dist/components/DataGrid/utils/getChangeTooltipText.js.map +1 -1
- package/dist/components/DataGrid/utils/getEmptyValue.js.map +1 -1
- package/dist/components/DataGrid/utils/getReplicaCategory.js.map +1 -1
- package/dist/components/DataGrid/utils/isValidationUpToDateForRow.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxMessage.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxNotification.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxRequest.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxRequestComplete.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxResponse.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
- package/dist/components/DataGrid/utils/logicalTimestampToString.js.map +1 -1
- package/dist/components/DataGrid/utils/mapOperationsToModelChanges.js.map +1 -1
- package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
- package/dist/components/DataGrid/utils/replicaSelectionToGridSelection.js.map +1 -1
- package/dist/components/DataGrid/utils/schemaAwarePasteValue.js.map +1 -1
- package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
- package/dist/components/DatasetJsonLdScript.js.map +1 -1
- package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
- package/dist/components/Dialog/ConfirmCloseWithoutSavingDialog.js.map +1 -1
- package/dist/components/DialogBase.js.map +1 -1
- package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
- package/dist/components/DirectDownload/FileEntityDirectDownload.js.map +1 -1
- package/dist/components/DirectDownloadButton.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
- package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
- package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
- package/dist/components/DownloadCart/DirectProgrammaticDownload.js.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
- package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListStats.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
- package/dist/components/DownloadCart/EnableTwoFaRequirementCard.js.map +1 -1
- package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
- package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
- package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
- package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
- package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
- package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
- package/dist/components/DynamicForm/DynamicForm.js.map +1 -1
- package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemCard.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemLayout.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
- package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
- package/dist/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditorModal.js.map +1 -1
- package/dist/components/EntityAclEditor/InheritanceMessage.js.map +1 -1
- package/dist/components/EntityAclEditor/OpenData.js.map +1 -1
- package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +68 -70
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js +32 -35
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
- package/dist/components/EntityFinder/Breadcrumbs.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinder.js +134 -136
- package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinderModal.js.map +1 -1
- package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
- package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
- package/dist/components/EntityFinder/details/EntityDetailsList.js +20 -20
- package/dist/components/EntityFinder/details/EntityDetailsList.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ReferenceDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/SearchDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.js +67 -67
- package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
- package/dist/components/EntityFinder/details/view/VersionColumnHeader.js +1 -1
- package/dist/components/EntityFinder/details/view/VersionColumnHeader.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/DateCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityBadgeIconsCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityFinderCheckboxCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityFinderVersionCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityNameCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityTypeCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityDirectDownloadCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/UserBadgeCell.js.map +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.js +80 -80
- package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
- package/dist/components/EntityFinder/tree/VirtualizedTree.js +31 -31
- package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
- package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
- package/dist/components/EntityForm/EntityForm.js.map +1 -1
- package/dist/components/EntityHeaderTable/DebouncedInput.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTableCellRenderers.js.map +1 -1
- package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
- package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
- package/dist/components/EntityIcon.js.map +1 -1
- package/dist/components/EntityLink.js.map +1 -1
- package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
- package/dist/components/EntityTreeTable/EntityTreeTable.js.map +1 -1
- package/dist/components/EntityTreeTable/components/AutoLoadMore.js.map +1 -1
- package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityBadgeIconsCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableContext.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableRow.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
- package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
- package/dist/components/EntityUpload/EntityUploadModal.js +29 -31
- package/dist/components/EntityUpload/EntityUploadModal.js.map +1 -1
- package/dist/components/EntityUpload/EntityUploadPromptDialog.js.map +1 -1
- package/dist/components/EntityUpload/ExternalObjectStoreCredentialsForm.js.map +1 -1
- package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
- package/dist/components/EntityUpload/LinkToURL.js.map +1 -1
- package/dist/components/EntityUpload/ProjectStorageLimitAlert.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewScopeEditor.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewScopeEditorModal.js.map +1 -1
- package/dist/components/Evaluation/CreatedOnByUserDiv.js.map +1 -1
- package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -1
- package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditorPage.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditorDropdown.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditorList.js.map +1 -1
- package/dist/components/Evaluation/input_models/models.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
- package/dist/components/EvaluationFinder/EvaluationFinder.js.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.d.ts.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js +24 -30
- package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
- package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataPlots.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
- package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
- package/dist/components/FeaturedResearch/FeaturedResearch.js +16 -18
- package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolCard.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
- package/dist/components/FilePreview/EntityPreview.js.map +1 -1
- package/dist/components/FilePreview/FileEntityPreview.js.map +1 -1
- package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
- package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
- package/dist/components/FilePreview/PdfPreview.js.map +1 -1
- package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
- package/dist/components/FilePreview/PreviewUtils.js.map +1 -1
- package/dist/components/FileUpload/FileUpload.js.map +1 -1
- package/dist/components/Forum/DiscussionReply.js.map +1 -1
- package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
- package/dist/components/Forum/DiscussionThread.js.map +1 -1
- package/dist/components/Forum/ForumPage.js.map +1 -1
- package/dist/components/Forum/ForumTable.js.map +1 -1
- package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
- package/dist/components/Forum/SubscribersModal.js.map +1 -1
- package/dist/components/ForumSearch/ForumSearch.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearch.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
- package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
- package/dist/components/GenericCard/BioregistryRules.js.map +1 -1
- package/dist/components/GenericCard/CardUtils.js.map +1 -1
- package/dist/components/GenericCard/CollapsibleDescription.js.map +1 -1
- package/dist/components/GenericCard/CroissantButton/CroissantButton.js.map +1 -1
- package/dist/components/GenericCard/GenericCard.js.map +1 -1
- package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
- package/dist/components/GenericCard/GenericCardIcon.js.map +1 -1
- package/dist/components/GenericCard/GenericCardTitle.js.map +1 -1
- package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -1
- package/dist/components/GenericCard/Linkify.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/GenericCard/useResolvedSynapseEntity.js.map +1 -1
- package/dist/components/Goals/Goals.Desktop.js.map +1 -1
- package/dist/components/Goals/Goals.Mobile.js.map +1 -1
- package/dist/components/Goals/Goals.js +25 -27
- package/dist/components/Goals/Goals.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.js +14 -16
- package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Desktop.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.js +14 -16
- package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
- package/dist/components/GoogleAnalytics/GoogleAnalytics.js.map +1 -1
- package/dist/components/GoogleMap/GoogleMap.js.map +1 -1
- package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
- package/dist/components/HasAccess/AccessIcon.js +10 -10
- package/dist/components/HasAccess/AccessIcon.js.map +1 -1
- package/dist/components/HasAccess/HasAccessV2.js.map +1 -1
- package/dist/components/HasAccess/useHasAccess.js.map +1 -1
- package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
- package/dist/components/HeaderCard.js.map +1 -1
- package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
- package/dist/components/HexGrid/HexGrid.js.map +1 -1
- package/dist/components/IDUReport/IDUReport.js.map +1 -1
- package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
- package/dist/components/Icon/Icon.js.map +1 -1
- package/dist/components/IconList.js.map +1 -1
- package/dist/components/IconSvg/IconSvg.js.map +1 -1
- package/dist/components/IconSvgButton.js.map +1 -1
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js +7 -9
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
- package/dist/components/ImageFromSynapseTable.js.map +1 -1
- package/dist/components/InteractiveCopyIdsIcon.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditorModal.js.map +1 -1
- package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
- package/dist/components/JsonLdScript.js.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTitleTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/DescriptionFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ErrorListTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldDescriptionTable.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldErrorTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/BooleanWidget.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/DateTimeWidget.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
- package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
- package/dist/components/Markdown/GovernanceMarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
- package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.js +75 -106
- package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.d.ts +14 -4
- package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.js +38 -37
- package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
- package/dist/components/Markdown/MarkdownWidget.js.map +1 -1
- package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
- package/dist/components/Markdown/UserMentionModal.js.map +1 -1
- package/dist/components/Markdown/widget/Bookmarks.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownEntityPreview.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownIDUReport.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapseImage.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapseTable.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownTableOfContents.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownUserOrTeamBadge.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownVideo.js.map +1 -1
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.FormSchema.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
- package/dist/components/MuiContainer.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
- package/dist/components/OAuthClientManagement/CreateOAuthClient.js.map +1 -1
- package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
- package/dist/components/OrientationBanner/OrientationBanner.js.map +1 -1
- package/dist/components/PageProgress/PageProgress.js.map +1 -1
- package/dist/components/Plot/BarPlot.js.map +1 -1
- package/dist/components/Plot/DotPlot.js.map +1 -1
- package/dist/components/Plot/Plot.d.ts +12 -1
- package/dist/components/Plot/Plot.d.ts.map +1 -1
- package/dist/components/Plot/Plot.js +5 -1
- package/dist/components/Plot/Plot.js.map +1 -1
- package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
- package/dist/components/Plot/SynapsePlot.js.map +1 -1
- package/dist/components/Plot/SynapseSankeyPlot.d.ts +12 -0
- package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -0
- package/dist/components/Plot/SynapseSankeyPlot.js +54 -0
- package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -0
- package/dist/components/Plot/ThemesPlot.js.map +1 -1
- package/dist/components/Plot/UpsetPlot.js.map +1 -1
- package/dist/components/Plot/index.d.ts +3 -1
- package/dist/components/Plot/index.d.ts.map +1 -1
- package/dist/components/Plot/index.js +2 -1
- package/dist/components/Plot/safe-react-plotly-factory.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditorModal.js.map +1 -1
- package/dist/components/PortalFeatureHighlights/PortalFeatureHighlights.js.map +1 -1
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js +4 -6
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
- package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
- package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
- package/dist/components/PortalList/PortalCard.js.map +1 -1
- package/dist/components/PortalList/PortalList.js.map +1 -1
- package/dist/components/PortalSectionHeader/PortalSectionHeader.js.map +1 -1
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js +69 -69
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
- package/dist/components/Programs/Programs.Desktop.js.map +1 -1
- package/dist/components/Programs/Programs.Mobile.js.map +1 -1
- package/dist/components/Programs/Programs.js.map +1 -1
- package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
- package/dist/components/ProvenanceGraph/ActivityNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/EntityNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/EntityPlaceholderNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ExpandGraphNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ExternalGraphNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceEntityIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js +13 -13
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/UndefinedNodeLabel.js.map +1 -1
- package/dist/components/QueryContext/QueryContext.js.map +1 -1
- package/dist/components/QueryCount/QueryCount.js.map +1 -1
- package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
- package/dist/components/QuerySortSelector.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/NoContentPlaceholder.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationContext.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapper.js +27 -27
- package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapperLoadingScreen.js.map +1 -1
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
- package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
- package/dist/components/QueryWrapper/ViewMoreQueryResultsButton.js.map +1 -1
- package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
- package/dist/components/QueryWrapper/useComputeRowSelectionPrimaryKey.js.map +1 -1
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
- package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
- package/dist/components/QueryWrapper/useHasFacetedSelectColumn.js.map +1 -1
- package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
- package/dist/components/RORInstitutionField/RORInstitutionField.js.map +1 -1
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js +6 -8
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
- package/dist/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCard.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardMedium.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
- package/dist/components/RenderIfInView/RenderIfInView.js.map +1 -1
- package/dist/components/ResizableContainer/ResizableContainer.js.map +1 -1
- package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
- package/dist/components/Resources/Resources.Desktop.js.map +1 -1
- package/dist/components/Resources/Resources.Mobile.js.map +1 -1
- package/dist/components/Resources/Resources.js +8 -11
- package/dist/components/Resources/Resources.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
- package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
- package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/SynapseAnnotationsWrapIfAdditionalTemplate.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/widget/TextWidget.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessRequirementTextInstructions.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
- package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
- package/dist/components/ShowMore/ShowMore.js.map +1 -1
- package/dist/components/SignInButton.js.map +1 -1
- package/dist/components/SignInRequiredModal/SignInRequiredModal.js.map +1 -1
- package/dist/components/Skeleton/SkeletonButton.js.map +1 -1
- package/dist/components/Skeleton/SkeletonInlineBlock.js.map +1 -1
- package/dist/components/Skeleton/SkeletonParagraph.js.map +1 -1
- package/dist/components/Skeleton/SkeletonTable.js.map +1 -1
- package/dist/components/SmartLink/SmartButton.js.map +1 -1
- package/dist/components/SmartLink/SmartLink.js.map +1 -1
- package/dist/components/SmartLink/useSmartLink.js.map +1 -1
- package/dist/components/SourceAppImage.js.map +1 -1
- package/dist/components/SpinnerButton/SpinnerButton.js.map +1 -1
- package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditor.js.map +1 -1
- package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.js.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
- package/dist/components/StatisticsPlot.js.map +1 -1
- package/dist/components/StepperDialog/StepperDialog.js.map +1 -1
- package/dist/components/StorybookComponentWrapper.js.map +1 -1
- package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.js.map +1 -1
- package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.js.map +1 -1
- package/dist/components/SubscriptionPage/ForumTopic.js.map +1 -1
- package/dist/components/SubscriptionPage/SubscriptionItem.js.map +1 -1
- package/dist/components/SubscriptionPage/SubscriptionPage.js.map +1 -1
- package/dist/components/SubscriptionPage/ThreadTopic.js.map +1 -1
- package/dist/components/SubscriptionPage/Topic.js.map +1 -1
- package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
- package/dist/components/SustainabilityScorecard/Dial.js.map +1 -1
- package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardUtils.js.map +1 -1
- package/dist/components/SynapseChat/AccessLevelMenu.js.map +1 -1
- package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatDialog.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
- package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
- package/dist/components/SynapseChat/useChatState.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseLinksColumn.js.map +1 -1
- package/dist/components/SynapseForm/DataDebug.js.map +1 -1
- package/dist/components/SynapseForm/Header.js.map +1 -1
- package/dist/components/SynapseForm/NavButtons.js.map +1 -1
- package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
- package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
- package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormCheckboxWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormCheckboxesWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormRadioWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormSubmissionGrid.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormUtils.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
- package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
- package/dist/components/SynapseForm/types.js.map +1 -1
- package/dist/components/SynapseForm/useGetFormPropsFromSearchParams.js.map +1 -1
- package/dist/components/SynapseHomepageV2/FloatingBlobsBackground.js.map +1 -1
- package/dist/components/SynapseHomepageV2/HomepageStyles.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbers.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasets.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatures.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +18 -21
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageV2.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHotdrops.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHotdropsItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInAction.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlan.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlanContent.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlansPage.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +78 -78
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HasAccessChip.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageRouter.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/chipStyles.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControlButton.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControlPanel.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControls.js.map +1 -1
- package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
- package/dist/components/SynapseTable/ExpandCollapseButton.js.map +1 -1
- package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
- package/dist/components/SynapseTable/NoContentAvailable.js.map +1 -1
- package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
- package/dist/components/SynapseTable/SearchResultsNotFound.js.map +1 -1
- package/dist/components/SynapseTable/SearchV2.js.map +1 -1
- package/dist/components/SynapseTable/SqlEditor.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/EntityIdList.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/EvaluationIdRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/ComplexJSONRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONArrayRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONObjectRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONPrimitiveRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONRendererUtils.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONTableCellRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/UserIdList.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableConstants.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableContext.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
- package/dist/components/SynapseTable/TableIsEmpty.js.map +1 -1
- package/dist/components/SynapseTable/TablePagination.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorCheckboxCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorUtils.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +131 -133
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/components/SynapseTable/datasets/EntityFetchErrorCell.js.map +1 -1
- package/dist/components/SynapseTable/export/ADDiscoveryPortalInstructions.js.map +1 -1
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +48 -51
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformDisclaimer.js.map +1 -1
- package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadLoginModal.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
- package/dist/components/SynapseTable/useTableSort.js.map +1 -1
- package/dist/components/SystemUseNotification/SystemUseNotification.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +4 -4
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +9 -9
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DefaultValueValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EnumValuesValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js.map +1 -1
- package/dist/components/TableFeedCards/TableFeedCards.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/TableBody.js.map +1 -1
- package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
- package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
- package/dist/components/TeamBadge.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
- package/dist/components/TemplateComponent.js.map +1 -1
- package/dist/components/TemporaryBanner/TemporaryBanner.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditionsItem.js.map +1 -1
- package/dist/components/TextField/TextField.js.map +1 -1
- package/dist/components/TextField/TextFieldWithWordLimit.js.map +1 -1
- package/dist/components/TextToComponentCollapse.js.map +1 -1
- package/dist/components/ThemeGallery/ThemeGallery.js.map +1 -1
- package/dist/components/TimelinePlot/TimelineLegendItem.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
- package/dist/components/TimelinePlot/phasesQueryResponseData.js.map +1 -1
- package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
- package/dist/components/TotalQueryResults.js.map +1 -1
- package/dist/components/UserCard/Avatar.js.map +1 -1
- package/dist/components/UserCard/UserBadge.js.map +1 -1
- package/dist/components/UserCard/UserCard.js.map +1 -1
- package/dist/components/UserCard/UserCardContextMenu.js.map +1 -1
- package/dist/components/UserCard/UserCardLarge.js.map +1 -1
- package/dist/components/UserCard/UserCardMedium.js.map +1 -1
- package/dist/components/UserCardList/UserCardList.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.js.map +1 -1
- package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
- package/dist/components/UserOrTeamBadge/UserOrTeamBadge.js.map +1 -1
- package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
- package/dist/components/UserProfileLinks/UserChallenges.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProfileLinks.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
- package/dist/components/UserProfileLinks/UserTeams.js.map +1 -1
- package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
- package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
- package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
- package/dist/components/Webhook/WebhookVerificationDialog.js.map +1 -1
- package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
- package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButton.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButtonDescription.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButtonGroup.js.map +1 -1
- package/dist/components/WordPress/WordPressLatestPostChip.js.map +1 -1
- package/dist/components/WordPress/useWordPressCategories.js.map +1 -1
- package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
- package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
- package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementSearchBox/AccessRequirementSearchBox.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
- package/dist/components/dataaccess/RejectDataAccessRequestModal.js.map +1 -1
- package/dist/components/dataaccess/RejectProfileValidationRequestModal.js.map +1 -1
- package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
- package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/SubmissionSortStateTranslator.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
- package/dist/components/doi/DoiFormSchemas.js.map +1 -1
- package/dist/components/doi/PrivateEntityDoiWarning.js.map +1 -1
- package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUI.js +30 -32
- package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
- package/dist/components/download_list/DownloadDetails.js.map +1 -1
- package/dist/components/download_list/index.js.map +1 -1
- package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
- package/dist/components/entity/metadata/EntityAnnotationKey.js.map +1 -1
- package/dist/components/entity/metadata/EntityModal.js.map +1 -1
- package/dist/components/entity/metadata/MetadataTable.js.map +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
- package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
- package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
- package/dist/components/entity/page/title_bar/CitationsDialog.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js.map +1 -1
- package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
- package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
- package/dist/components/error/ErrorBanner.js.map +1 -1
- package/dist/components/error/ErrorChip.js.map +1 -1
- package/dist/components/error/ErrorPage.js +24 -24
- package/dist/components/error/ErrorPage.js.map +1 -1
- package/dist/components/error/RouteErrorBoundary.js.map +1 -1
- package/dist/components/error/SendMessageToEntityOwnerDialog.js.map +1 -1
- package/dist/components/error/SynapseObjectDOIInfo.js.map +1 -1
- package/dist/components/favorites/FavoriteButton.js.map +1 -1
- package/dist/components/favorites/FavoritesPage.js.map +1 -1
- package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
- package/dist/components/file/upload/MultiFileUploadProgress.js.map +1 -1
- package/dist/components/file/upload/UploadFilePanel.js.map +1 -1
- package/dist/components/form/RadioGroupWithOtherString.js.map +1 -1
- package/dist/components/home_page/ExpandableContent.js.map +1 -1
- package/dist/components/index.js +48 -47
- package/dist/components/layout/InfiniteTableLayout.js.map +1 -1
- package/dist/components/layout/SWCHeader.js.map +1 -1
- package/dist/components/layout/SWCPageLayout.js.map +1 -1
- package/dist/components/menu/ComplexMenu.js.map +1 -1
- package/dist/components/menu/DropdownMenu.js.map +1 -1
- package/dist/components/row_renderers/Dataset.js.map +1 -1
- package/dist/components/row_renderers/Funder.js.map +1 -1
- package/dist/components/row_renderers/ObservationCard.js.map +1 -1
- package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
- package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
- package/dist/components/styled/HoverPopover.js.map +1 -1
- package/dist/components/styled/InlineBadge.js.map +1 -1
- package/dist/components/styled/InputSizedButton.js.map +1 -1
- package/dist/components/styled/LargeButton.js.map +1 -1
- package/dist/components/styled/LeftRightPanel.js.map +1 -1
- package/dist/components/styled/LightTooltip.js.map +1 -1
- package/dist/components/styled/StyledFormControl.js.map +1 -1
- package/dist/components/styled/StyledPopover.js.map +1 -1
- package/dist/components/styled/StyledTableContainer.js.map +1 -1
- package/dist/components/styled/WideButton.js.map +1 -1
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +39 -42
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -1
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -1
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js +11 -11
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -1
- package/dist/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm.js.map +1 -1
- package/dist/components/trash/TrashCanList.js.map +1 -1
- package/dist/components/utils/Blocker.js.map +1 -1
- package/dist/components/utils/ConditionalWrapper.js.map +1 -1
- package/dist/components/utils/VisibilityObserver.js.map +1 -1
- package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
- package/dist/components/widgets/EntityColumnImage.js.map +1 -1
- package/dist/components/widgets/FileHandleLink.js.map +1 -1
- package/dist/components/widgets/ImageFileHandle.js.map +1 -1
- package/dist/components/widgets/LoginAwareButton.js.map +1 -1
- package/dist/components/widgets/Range.js.map +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/components/widgets/SynapseImage.js.map +1 -1
- package/dist/components/widgets/SynapseVideo.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainerSkeleton.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPill.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
- package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
- package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetChip.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterHeader.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterSkeleton.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.js +3 -3
- package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +41 -41
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
- package/dist/features/curator/GridPage/GridPage.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageRouter.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
- package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
- package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
- package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
- package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
- package/dist/features/curator/dashboard/components/UserOrTeamChip.js.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +5 -0
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +227 -181
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +3 -0
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.d.ts +5 -0
- package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.js +2 -2
- package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getLatestGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/taskHasAssignee.js.map +1 -1
- package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
- package/dist/index.js +54 -53
- package/dist/index.js.map +1 -1
- package/dist/mocks/MockAccessApprovals.js.map +1 -1
- package/dist/mocks/MockSynapseContext.js.map +1 -1
- package/dist/mocks/accessRequirement/mockAccessRequirementAcls.js.map +1 -1
- package/dist/mocks/accessRequirement/mockAccessRequirements.js.map +1 -1
- package/dist/mocks/applicationSessionContext/MockApplicationSessionContext.js.map +1 -1
- package/dist/mocks/challenge/mockChallenge.js.map +1 -1
- package/dist/mocks/chat/mockChat.js.map +1 -1
- package/dist/mocks/curation/mockCurationTask.js.map +1 -1
- package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
- package/dist/mocks/dataaccess/MockResearchProject.js.map +1 -1
- package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
- package/dist/mocks/dataaccess/mockAccessRequest.js.map +1 -1
- package/dist/mocks/discussion/mock_discussion.js.map +1 -1
- package/dist/mocks/doi/MockDoi.js.map +1 -1
- package/dist/mocks/entity/index.js.map +1 -1
- package/dist/mocks/entity/mockDataset.js.map +1 -1
- package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
- package/dist/mocks/entity/mockEntity.js.map +1 -1
- package/dist/mocks/entity/mockEvaluationQueue.js.map +1 -1
- package/dist/mocks/entity/mockFileEntity.js.map +1 -1
- package/dist/mocks/entity/mockFileEntityACLVariants.js.map +1 -1
- package/dist/mocks/entity/mockFileView.js.map +1 -1
- package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
- package/dist/mocks/entity/mockProject.js.map +1 -1
- package/dist/mocks/entity/mockProjectView.js.map +1 -1
- package/dist/mocks/entity/mockReleaseCardsTable.js.map +1 -1
- package/dist/mocks/entity/mockRootEntity.js.map +1 -1
- package/dist/mocks/entity/mockTableEntity.js.map +1 -1
- package/dist/mocks/faker/fakerUtils.js.map +1 -1
- package/dist/mocks/faker/generateDiscussion.js.map +1 -1
- package/dist/mocks/faker/generateEvaluation.js.map +1 -1
- package/dist/mocks/faker/generateFakeEntity.js.map +1 -1
- package/dist/mocks/faker/generateSubscription.js.map +1 -1
- package/dist/mocks/mockAnnotationColumns.js.map +1 -1
- package/dist/mocks/mockCertificationQuiz.js.map +1 -1
- package/dist/mocks/mockDataCatalogQuery.js.map +1 -1
- package/dist/mocks/mockFileViewQuery.js.map +1 -1
- package/dist/mocks/mockOAuthClientAcls.js.map +1 -1
- package/dist/mocks/mockQueryResponseData.js.map +1 -1
- package/dist/mocks/mockQueryResponseDataWithManyEnumFacets.js.map +1 -1
- package/dist/mocks/mockSchema.js.map +1 -1
- package/dist/mocks/mockSearchQueryData.js.map +1 -1
- package/dist/mocks/mockShortIo.js.map +1 -1
- package/dist/mocks/mockSourceAppConfigQuery.js.map +1 -1
- package/dist/mocks/mockSubscription.js.map +1 -1
- package/dist/mocks/mockWiki.js.map +1 -1
- package/dist/mocks/mockWikiPageKey.js.map +1 -1
- package/dist/mocks/mock_drug_tool_data.js.map +1 -1
- package/dist/mocks/mock_file_handle.js.map +1 -1
- package/dist/mocks/mock_file_statistics.js.map +1 -1
- package/dist/mocks/mock_has_access_data.js.map +1 -1
- package/dist/mocks/mock_upload_destination.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementAclHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/dataciteHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/doiHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/evaluationHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/messageHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/oauthClientAclHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/projectStorageHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/realmHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/researchProjectHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/shortIoHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryService.js.map +1 -1
- package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/termsOfServiceHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/webhookHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers.js.map +1 -1
- package/dist/mocks/msw/server.d.ts +1 -1
- package/dist/mocks/msw/server.d.ts.map +1 -1
- package/dist/mocks/msw/server.js.map +1 -1
- package/dist/mocks/msw/util/BasicMockedCrudService.js.map +1 -1
- package/dist/mocks/oauth/MockClient.js.map +1 -1
- package/dist/mocks/personalAccessToken/mockPersonalAccessToken.js.map +1 -1
- package/dist/mocks/projectStorage/mockProjectStorageLimits.js.map +1 -1
- package/dist/mocks/provenance/mockActivity.js.map +1 -1
- package/dist/mocks/query/defaultFileViewColumnModels.js.map +1 -1
- package/dist/mocks/query/mockFeaturedDataTabsQueryData.js.map +1 -1
- package/dist/mocks/query/mockHomepageQueryResultData.js.map +1 -1
- package/dist/mocks/query/mockProjectViewQueryResults.js.map +1 -1
- package/dist/mocks/query/mockRejectionReasonsTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mockUserCardTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mock_query_data.js.map +1 -1
- package/dist/mocks/query/syn16787123.js.map +1 -1
- package/dist/mocks/query/syn17328596.js.map +1 -1
- package/dist/mocks/query/syn51735464.js.map +1 -1
- package/dist/mocks/query/syn51735464GroupBySpecies.js.map +1 -1
- package/dist/mocks/realm/mockRealmPrincipal.js.map +1 -1
- package/dist/mocks/team/mockTeam.js.map +1 -1
- package/dist/mocks/termsOfService/mockTermsOfService.js.map +1 -1
- package/dist/mocks/user/mock_user_profile.js.map +1 -1
- package/dist/mocks/usergroup/mockUserGroup.js.map +1 -1
- package/dist/ror-client/index.js.map +1 -1
- package/dist/stories/ColorPaletteInspector.js.map +1 -1
- package/dist/stories/ToastDemo.js.map +1 -1
- package/dist/stories/stubs/Alert/MuiAlert.js.map +1 -1
- package/dist/stories/stubs/Button/MuiButton.js.map +1 -1
- package/dist/stories/stubs/Dialog/MuiDialog.js.map +1 -1
- package/dist/stories/stubs/TextField/MuiTextField.js.map +1 -1
- package/dist/stories/stubs/Tooltip/MuiTooltip.js.map +1 -1
- package/dist/synapse-client/HttpClient.js.map +1 -1
- package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
- package/dist/synapse-client/SynapseClient.js +61 -69
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-client/SynapseClientUtils.js.map +1 -1
- package/dist/synapse-queries/InfiniteQueryUtils.js.map +1 -1
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
- package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
- package/dist/synapse-queries/asynchronous/usePollAsynchronousJob.js.map +1 -1
- package/dist/synapse-queries/auth/useChangePassword.js.map +1 -1
- package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
- package/dist/synapse-queries/auth/useResetPassword.js.map +1 -1
- package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
- package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
- package/dist/synapse-queries/chat/useChat.js.map +1 -1
- package/dist/synapse-queries/croissant/useGetCroissantUrl.js.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.js +12 -2
- package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessApprovals.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useGetApprovedSubmissionInfo.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
- package/dist/synapse-queries/docker/useGetDockerTag.js.map +1 -1
- package/dist/synapse-queries/doi/useDOI.js.map +1 -1
- package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
- package/dist/synapse-queries/entity/useActionsRequiredForTableQuery.js.map +1 -1
- package/dist/synapse-queries/entity/useEntity.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityActionsRequired.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityChallenge.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityChildren.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityForum.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityHeaders.js.map +1 -1
- package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useProjectStorage.js.map +1 -1
- package/dist/synapse-queries/entity/useSchema.js.map +1 -1
- package/dist/synapse-queries/evaluation/useEvaluation.js.map +1 -1
- package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
- package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
- package/dist/synapse-queries/file/useFiles.js.map +1 -1
- package/dist/synapse-queries/file/useSynapseMultipartUpload.js.map +1 -1
- package/dist/synapse-queries/file/useUploadDestination.js.map +1 -1
- package/dist/synapse-queries/forum/useForum.js.map +1 -1
- package/dist/synapse-queries/forum/useReply.js.map +1 -1
- package/dist/synapse-queries/forum/useThread.js.map +1 -1
- package/dist/synapse-queries/github/useGithub.js.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
- package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
- package/dist/synapse-queries/grid/useGridPresignedUrl.js.map +1 -1
- package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
- package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
- package/dist/synapse-queries/message/useMessage.js.map +1 -1
- package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
- package/dist/synapse-queries/portal/useListPortals.js.map +1 -1
- package/dist/synapse-queries/portal/usePortal.js.map +1 -1
- package/dist/synapse-queries/provenance/useGetActivityForEntity.js.map +1 -1
- package/dist/synapse-queries/realm/useRealmPrincipals.js.map +1 -1
- package/dist/synapse-queries/ror/index.js.map +1 -1
- package/dist/synapse-queries/search/useSearch.js.map +1 -1
- package/dist/synapse-queries/search/useSuggestion.js.map +1 -1
- package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
- package/dist/synapse-queries/table/useColumnModel.js.map +1 -1
- package/dist/synapse-queries/table/useDefiningSql.js.map +1 -1
- package/dist/synapse-queries/table/useDownloadTable.js.map +1 -1
- package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
- package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
- package/dist/synapse-queries/team/useTeam.js.map +1 -1
- package/dist/synapse-queries/team/useTeamList.js.map +1 -1
- package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
- package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
- package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
- package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
- package/dist/synapse-queries/user/useFavorites.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserProjects.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserTeams.js.map +1 -1
- package/dist/synapse-queries/user/usePersonalAccessToken.js.map +1 -1
- package/dist/synapse-queries/user/useProjects.js.map +1 -1
- package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
- package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
- package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
- package/dist/synapse-queries/verificationSubmission/useVerificationSubmission.js.map +1 -1
- package/dist/synapse-queries/webhook/useWebhook.js.map +1 -1
- package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
- package/dist/testutils/ComponentToBePassedPropsCustomMatcher.js.map +1 -1
- package/dist/testutils/IsEditingStoreTestUtils.js +17 -0
- package/dist/testutils/IsEditingStoreTestUtils.js.map +1 -0
- package/dist/testutils/LocationTracker.js.map +1 -1
- package/dist/testutils/MarkdownSynapseUtils.js.map +1 -1
- package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
- package/dist/testutils/TestingLibraryUtils.js +18 -16
- package/dist/testutils/TestingLibraryUtils.js.map +1 -1
- package/dist/testutils/muiDatePickerMock.js.map +1 -1
- package/dist/testutils/vitest.setup.js.map +1 -1
- package/dist/theme/DefaultTheme.js.map +1 -1
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/mergeTheme.js.map +1 -1
- package/dist/theme/palette/Palettes.js.map +1 -1
- package/dist/theme/spreadSx.js.map +1 -1
- package/dist/theme/typography/Link.js.map +1 -1
- package/dist/theme/typography/Typography.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/AppUtils/AppUtils.d.ts.map +1 -1
- package/dist/utils/AppUtils/AppUtils.js +11 -11
- package/dist/utils/AppUtils/AppUtils.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionContext.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/AuthenticationGuard.js.map +1 -1
- package/dist/utils/AppUtils/session/SessionInitializedGuard.js.map +1 -1
- package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
- package/dist/utils/ContentTypeUtils.js.map +1 -1
- package/dist/utils/OrientationBannerConstants.js.map +1 -1
- package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
- package/dist/utils/SynapseConstants.js.map +1 -1
- package/dist/utils/analytics/sendAnalyticsEvent.js.map +1 -1
- package/dist/utils/analytics/sendSearchEvent.js.map +1 -1
- package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
- package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
- package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
- package/dist/utils/context/AridhiaContext.js.map +1 -1
- package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
- package/dist/utils/context/FullContextProvider.js.map +1 -1
- package/dist/utils/context/GlobalIsEditingContext.js.map +1 -1
- package/dist/utils/context/SynapseContext.js.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
- package/dist/utils/functions/ArrayUtils.js.map +1 -1
- package/dist/utils/functions/DateFormatter.js.map +1 -1
- package/dist/utils/functions/DateTimeUtils.js.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
- package/dist/utils/functions/FileHandleUtils.js.map +1 -1
- package/dist/utils/functions/GridApiUtils.js.map +1 -1
- package/dist/utils/functions/IsEqualTreatUndefinedAsMissing.js.map +1 -1
- package/dist/utils/functions/IsExternalLink.js.map +1 -1
- package/dist/utils/functions/ObjectUtils.js.map +1 -1
- package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
- package/dist/utils/functions/RealmUtils.js.map +1 -1
- package/dist/utils/functions/RegularExpressions.js.map +1 -1
- package/dist/utils/functions/ResolveLinkEntity.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
- package/dist/utils/functions/SqlFunctions.js.map +1 -1
- package/dist/utils/functions/StringUtils.js.map +1 -1
- package/dist/utils/functions/TableColumnSchemaUtils.js.map +1 -1
- package/dist/utils/functions/calculateFriendlyFileSize.js.map +1 -1
- package/dist/utils/functions/colorPalette.js.map +1 -1
- package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
- package/dist/utils/functions/dispatchDownloadListChangeEvent.js.map +1 -1
- package/dist/utils/functions/generateCsrfToken.js.map +1 -1
- package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
- package/dist/utils/functions/getEndpoint.js +3 -3
- package/dist/utils/functions/getEndpoint.js.map +1 -1
- package/dist/utils/functions/getPrincipalDisplayName.js.map +1 -1
- package/dist/utils/functions/getSynapseEntityUrl.js.map +1 -1
- package/dist/utils/functions/getSynapseWebClientLink.js.map +1 -1
- package/dist/utils/functions/getUserData.js.map +1 -1
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
- package/dist/utils/functions/unCamelCase.js.map +1 -1
- package/dist/utils/hooks/useConfirmItems.js.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.d.ts.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.js +24 -23
- package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
- package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
- package/dist/utils/hooks/useDebouncedEffect.js.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
- package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
- package/dist/utils/hooks/useGetEntityMetadata.js.map +1 -1
- package/dist/utils/hooks/useGetGoalData.js +2 -4
- package/dist/utils/hooks/useGetGoalData.js.map +1 -1
- package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
- package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
- package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
- package/dist/utils/hooks/useIsBot.js.map +1 -1
- package/dist/utils/hooks/useJsonLdScriptElement.js.map +1 -1
- package/dist/utils/hooks/useListState.js.map +1 -1
- package/dist/utils/hooks/useLogin.js.map +1 -1
- package/dist/utils/hooks/useMediaPrintOnly.js.map +1 -1
- package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
- package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
- package/dist/utils/hooks/useOneSageURL.js.map +1 -1
- package/dist/utils/hooks/useOverlay.js.map +1 -1
- package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
- package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
- package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
- package/dist/utils/hooks/useSet.js.map +1 -1
- package/dist/utils/hooks/useShowDesktop.js.map +1 -1
- package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
- package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
- package/dist/utils/hooks/useTraceUpdate.js.map +1 -1
- package/dist/utils/hooks/useTrackTransientListItems.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/getActiveUploadCount.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/getFileEntityIdWithSameName.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
- package/dist/utils/html/TargetEnum.js.map +1 -1
- package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
- package/dist/utils/jsonschema/getEnumeratedValues.js.map +1 -1
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
- package/dist/utils/jsonschema/getRequiredAttributes.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaForProperty.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
- package/dist/utils/jsonschema/getType.js.map +1 -1
- package/dist/utils/searchDefaults.js.map +1 -1
- package/dist/utils/slots/SlotUtils.js.map +1 -1
- package/dist/utils/types/IsType.js.map +1 -1
- package/package.json +67 -66
|
@@ -1,63 +1,57 @@
|
|
|
1
1
|
import { EXPERIMENTAL_MODE_COOKIE as e } from "../../utils/SynapseConstants.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import { InfoOutlined as f } from "@mui/icons-material";
|
|
8
|
-
import p from "react-switch";
|
|
2
|
+
import { Box as t, IconButton as n, Tooltip as r, Typography as i, useTheme as a } from "@mui/material";
|
|
3
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
4
|
+
import { useCookieValue as c } from "@react-hookz/web/useCookieValue/index.js";
|
|
5
|
+
import { InfoOutlined as l } from "@mui/icons-material";
|
|
6
|
+
import u from "react-switch";
|
|
9
7
|
//#region src/components/ExperimentalMode/ExperimentalMode.tsx
|
|
10
|
-
var
|
|
11
|
-
function
|
|
12
|
-
let
|
|
13
|
-
n(() => (y && t() && v(!0), () => {
|
|
14
|
-
y = !1;
|
|
15
|
-
}), []);
|
|
16
|
-
let x = () => ({
|
|
8
|
+
var d = "experimental-mode", f = "This mode gives you early access to features that are still in development. Please note that we do not guarantee an absence of errors, and that the data created using these features may be lost during product upgrade.";
|
|
9
|
+
function p({ onExperimentalModeToggle: p }) {
|
|
10
|
+
let m = a(), [h, g, _] = c(e, {
|
|
17
11
|
path: "/",
|
|
18
|
-
domain: window.location.hostname.toLowerCase().endsWith(".synapse.org") ? "synapse.org" : void 0
|
|
12
|
+
domain: (typeof window < "u" ? window.location.hostname.toLowerCase() : "").endsWith(".synapse.org") ? "synapse.org" : void 0
|
|
19
13
|
});
|
|
20
|
-
return /* @__PURE__ */
|
|
14
|
+
return /* @__PURE__ */ s(t, {
|
|
21
15
|
sx: {
|
|
22
16
|
display: "flex",
|
|
23
17
|
alignItems: "center"
|
|
24
18
|
},
|
|
25
19
|
children: [
|
|
26
|
-
/* @__PURE__ */
|
|
20
|
+
/* @__PURE__ */ o(i, {
|
|
27
21
|
component: "label",
|
|
28
22
|
variant: "body1",
|
|
29
|
-
htmlFor:
|
|
23
|
+
htmlFor: d,
|
|
30
24
|
children: "Experimental Mode"
|
|
31
25
|
}),
|
|
32
|
-
/* @__PURE__ */
|
|
33
|
-
title:
|
|
26
|
+
/* @__PURE__ */ o(r, {
|
|
27
|
+
title: f,
|
|
34
28
|
arrow: !0,
|
|
35
29
|
placement: "top",
|
|
36
|
-
children: /* @__PURE__ */
|
|
30
|
+
children: /* @__PURE__ */ o(n, {
|
|
37
31
|
"aria-label": "info",
|
|
38
32
|
color: "inherit",
|
|
39
33
|
sx: { "&:hover": { backgroundColor: "transparent" } },
|
|
40
|
-
children: /* @__PURE__ */ l
|
|
34
|
+
children: /* @__PURE__ */ o(l, { sx: { verticalAlign: "middle" } })
|
|
41
35
|
})
|
|
42
36
|
}),
|
|
43
|
-
/* @__PURE__ */
|
|
44
|
-
id:
|
|
37
|
+
/* @__PURE__ */ o(u, {
|
|
38
|
+
id: d,
|
|
45
39
|
width: 35,
|
|
46
40
|
height: 20,
|
|
47
|
-
onColor:
|
|
41
|
+
onColor: m.palette.secondary.main,
|
|
48
42
|
checkedIcon: !1,
|
|
49
43
|
uncheckedIcon: !1,
|
|
50
|
-
checked:
|
|
51
|
-
onChange:
|
|
52
|
-
|
|
44
|
+
checked: h === "true",
|
|
45
|
+
onChange: h === "true" ? () => {
|
|
46
|
+
_(), p && p(!1);
|
|
53
47
|
} : () => {
|
|
54
|
-
|
|
48
|
+
g("true"), p && p(!0);
|
|
55
49
|
}
|
|
56
50
|
})
|
|
57
51
|
]
|
|
58
52
|
});
|
|
59
53
|
}
|
|
60
54
|
//#endregion
|
|
61
|
-
export {
|
|
55
|
+
export { p as default };
|
|
62
56
|
|
|
63
57
|
//# sourceMappingURL=ExperimentalMode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExperimentalMode.js","names":[],"sources":["../../../src/components/ExperimentalMode/ExperimentalMode.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"ExperimentalMode.js","names":[],"sources":["../../../src/components/ExperimentalMode/ExperimentalMode.tsx"],"sourcesContent":["import { EXPERIMENTAL_MODE_COOKIE } from '@/utils/SynapseConstants'\nimport { InfoOutlined } from '@mui/icons-material'\nimport { Box, IconButton, Tooltip, Typography, useTheme } from '@mui/material'\nimport Switch from 'react-switch'\nimport { useCookieValue } from '@react-hookz/web/useCookieValue/index.js'\n\nconst EXPERIMENTAL_MODE_SWITCH_ID = 'experimental-mode'\nconst experimentalModeText =\n 'This mode gives you early access to features that are still in development. Please note that we do not guarantee an absence of errors, and that the data created using these features may be lost during product upgrade.'\n\nexport type ExperimentalModeProps = {\n onExperimentalModeToggle?: (newValue: boolean) => void\n}\nfunction ExperimentalMode({ onExperimentalModeToggle }: ExperimentalModeProps) {\n const theme = useTheme()\n\n const getExperimentalModeCookieOptions = () => {\n const hostname =\n typeof window !== 'undefined'\n ? window.location.hostname.toLowerCase()\n : ''\n return {\n path: '/',\n domain: hostname.endsWith('.synapse.org') ? 'synapse.org' : undefined,\n }\n }\n\n const [\n experimentalModeCookie,\n setExperimentalModeCookie,\n removeExperimentalModeCookie,\n ] = useCookieValue(\n EXPERIMENTAL_MODE_COOKIE,\n getExperimentalModeCookieOptions(),\n )\n\n const createExperimentalModeCookie = () => {\n setExperimentalModeCookie('true')\n\n if (onExperimentalModeToggle) {\n onExperimentalModeToggle(true)\n }\n }\n\n const deleteExperimentalModeCookie = () => {\n removeExperimentalModeCookie()\n if (onExperimentalModeToggle) {\n onExperimentalModeToggle(false)\n }\n }\n\n return (\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n <Typography\n component={'label'}\n variant=\"body1\"\n htmlFor={EXPERIMENTAL_MODE_SWITCH_ID}\n >\n Experimental Mode\n </Typography>\n <Tooltip title={experimentalModeText} arrow placement=\"top\">\n <IconButton\n aria-label=\"info\"\n color=\"inherit\"\n sx={{ '&:hover': { backgroundColor: 'transparent' } }}\n >\n <InfoOutlined sx={{ verticalAlign: 'middle' }} />\n </IconButton>\n </Tooltip>\n <Switch\n id={EXPERIMENTAL_MODE_SWITCH_ID}\n width={35}\n height={20}\n onColor={theme.palette.secondary.main}\n checkedIcon={false}\n uncheckedIcon={false}\n checked={experimentalModeCookie === 'true'}\n onChange={\n experimentalModeCookie === 'true'\n ? deleteExperimentalModeCookie\n : createExperimentalModeCookie\n }\n />\n </Box>\n )\n}\n\nexport default ExperimentalMode\n"],"mappings":";;;;;;;AAMA,IAAM,IAA8B,qBAC9B,IACJ;AAKF,SAAS,EAAiB,EAAE,+BAAmD;CAC7E,IAAM,IAAQ,EAAS,GAajB,CACJ,GACA,GACA,KACE,EACF,GAXO;EACL,MAAM;EACN,SALA,OAAO,SAAW,MACd,OAAO,SAAS,SAAS,YAAY,IACrC,IAGa,SAAS,cAAc,IAAI,gBAAgB,KAAA;CAC9D,CAUF;CAiBA,OACE,kBAAC,GAAD;EAAK,IAAI;GAAE,SAAS;GAAQ,YAAY;EAAS;YAAjD;GACE,kBAAC,GAAD;IACE,WAAW;IACX,SAAQ;IACR,SAAS;cACV;GAEW,CAAA;GACZ,kBAAC,GAAD;IAAS,OAAO;IAAsB,OAAA;IAAM,WAAU;cACpD,kBAAC,GAAD;KACE,cAAW;KACX,OAAM;KACN,IAAI,EAAE,WAAW,EAAE,iBAAiB,cAAc,EAAE;eAEpD,kBAAC,GAAD,EAAc,IAAI,EAAE,eAAe,SAAS,EAAI,CAAA;IACtC,CAAA;GACL,CAAA;GACT,kBAAC,GAAD;IACE,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,SAAS,EAAM,QAAQ,UAAU;IACjC,aAAa;IACb,eAAe;IACf,SAAS,MAA2B;IACpC,UACE,MAA2B,eAlCQ;KAEzC,AADA,EAA6B,GACzB,KACF,EAAyB,EAAK;IAElC,UAb2C;KAGzC,AAFA,EAA0B,MAAM,GAE5B,KACF,EAAyB,EAAI;IAEjC;GAwCK,CAAA;EACE;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalFileHandleLink.js","names":[],"sources":["../../../src/components/ExternalFileHandleLink/ExternalFileHandleLink.tsx"],"sourcesContent":["import React from 'react'\nimport SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { isExternalFileHandle, isFileEntity } from '@/utils/types/IsType'\nimport { OpenInNewTwoTone } from '@mui/icons-material'\nimport {\n BatchFileRequest,\n ExternalFileHandle,\n FileEntity,\n FileHandleAssociateType,\n} from '@sage-bionetworks/synapse-types'\nimport { useEffect, useState } from 'react'\n\nexport type ExternalFileHandleLinkProps = {\n synId: string\n className?: string\n}\n\nexport const ExternalFileHandleLink = (\n props: ExternalFileHandleLinkProps,\n): React.ReactNode => {\n const { accessToken } = useSynapseContext()\n const { synId, className } = props\n const [data, setData] = useState<\n | { fileEntity: FileEntity; externalFileHandle: ExternalFileHandle }\n | undefined\n >(undefined)\n useEffect(() => {\n const getEntity = async () => {\n try {\n const fileEntity = await SynapseClient.getEntity<FileEntity>(\n accessToken,\n synId,\n )\n if (!isFileEntity(fileEntity)) {\n throw new Error(`File Entity expected but found ${fileEntity}`)\n }\n const batchFileRequest: BatchFileRequest = {\n requestedFiles: [\n {\n associateObjectId: synId,\n associateObjectType: FileHandleAssociateType.FileEntity,\n fileHandleId: fileEntity.dataFileHandleId,\n },\n ],\n includeFileHandles: true,\n includePreSignedURLs: false,\n includePreviewPreSignedURLs: false,\n }\n const file = await SynapseClient.getFiles(batchFileRequest, accessToken)\n const externalFileHandle = file.requestedFiles[0].fileHandle\n if (externalFileHandle && isExternalFileHandle(externalFileHandle)) {\n setData({\n externalFileHandle,\n fileEntity,\n })\n } else {\n throw new Error(\n `Not an external file handle: ${externalFileHandle?.id}`,\n )\n }\n } catch (e) {\n console.error('Error on getting external file handle = ', e)\n }\n }\n getEntity()\n }, [synId, accessToken])\n\n const externalFileHandle = data?.externalFileHandle\n const fileEntity = data?.fileEntity\n\n return externalFileHandle ? (\n <a\n href={externalFileHandle.externalURL}\n className={className}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span>\n {fileEntity?.name}\n <OpenInNewTwoTone style={{ marginLeft: 5 }} />\n </span>\n </a>\n ) : (\n <></>\n )\n}\n"],"mappings":";;;;;;;;AAkBA,IAAa,KACX,MACoB;CACpB,IAAM,EAAE,mBAAgB,
|
|
1
|
+
{"version":3,"file":"ExternalFileHandleLink.js","names":[],"sources":["../../../src/components/ExternalFileHandleLink/ExternalFileHandleLink.tsx"],"sourcesContent":["import React from 'react'\nimport SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { isExternalFileHandle, isFileEntity } from '@/utils/types/IsType'\nimport { OpenInNewTwoTone } from '@mui/icons-material'\nimport {\n BatchFileRequest,\n ExternalFileHandle,\n FileEntity,\n FileHandleAssociateType,\n} from '@sage-bionetworks/synapse-types'\nimport { useEffect, useState } from 'react'\n\nexport type ExternalFileHandleLinkProps = {\n synId: string\n className?: string\n}\n\nexport const ExternalFileHandleLink = (\n props: ExternalFileHandleLinkProps,\n): React.ReactNode => {\n const { accessToken } = useSynapseContext()\n const { synId, className } = props\n const [data, setData] = useState<\n | { fileEntity: FileEntity; externalFileHandle: ExternalFileHandle }\n | undefined\n >(undefined)\n useEffect(() => {\n const getEntity = async () => {\n try {\n const fileEntity = await SynapseClient.getEntity<FileEntity>(\n accessToken,\n synId,\n )\n if (!isFileEntity(fileEntity)) {\n throw new Error(`File Entity expected but found ${fileEntity}`)\n }\n const batchFileRequest: BatchFileRequest = {\n requestedFiles: [\n {\n associateObjectId: synId,\n associateObjectType: FileHandleAssociateType.FileEntity,\n fileHandleId: fileEntity.dataFileHandleId,\n },\n ],\n includeFileHandles: true,\n includePreSignedURLs: false,\n includePreviewPreSignedURLs: false,\n }\n const file = await SynapseClient.getFiles(batchFileRequest, accessToken)\n const externalFileHandle = file.requestedFiles[0].fileHandle\n if (externalFileHandle && isExternalFileHandle(externalFileHandle)) {\n setData({\n externalFileHandle,\n fileEntity,\n })\n } else {\n throw new Error(\n `Not an external file handle: ${externalFileHandle?.id}`,\n )\n }\n } catch (e) {\n console.error('Error on getting external file handle = ', e)\n }\n }\n getEntity()\n }, [synId, accessToken])\n\n const externalFileHandle = data?.externalFileHandle\n const fileEntity = data?.fileEntity\n\n return externalFileHandle ? (\n <a\n href={externalFileHandle.externalURL}\n className={className}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span>\n {fileEntity?.name}\n <OpenInNewTwoTone style={{ marginLeft: 5 }} />\n </span>\n </a>\n ) : (\n <></>\n )\n}\n"],"mappings":";;;;;;;;AAkBA,IAAa,KACX,MACoB;CACpB,IAAM,EAAE,mBAAgB,EAAkB,GACpC,EAAE,UAAO,iBAAc,GACvB,CAAC,GAAM,KAAW,EAGtB,KAAA,CAAS;CACX,QAAgB;EAsCd,aArC8B;GAC5B,IAAI;IACF,IAAM,IAAa,MAAM,EAAc,UACrC,GACA,CACF;IACA,IAAI,CAAC,EAAa,CAAU,GAC1B,MAAU,MAAM,kCAAkC,GAAY;IAEhE,IAAM,IAAqC;KACzC,gBAAgB,CACd;MACE,mBAAmB;MACnB,qBAAqB,EAAwB;MAC7C,cAAc,EAAW;KAC3B,CACF;KACA,oBAAoB;KACpB,sBAAsB;KACtB,6BAA6B;IAC/B,GAEM,KAAqB,MADR,EAAc,SAAS,GAAkB,CAAW,GACvC,eAAe,GAAG;IAClD,IAAI,KAAsB,EAAqB,CAAkB,GAC/D,EAAQ;KACN;KACA;IACF,CAAC;SAED,MAAU,MACR,gCAAgC,GAAoB,IACtD;GAEJ,SAAS,GAAG;IACV,QAAQ,MAAM,4CAA4C,CAAC;GAC7D;EACF,GACU;CACZ,GAAG,CAAC,GAAO,CAAW,CAAC;CAEvB,IAAM,IAAqB,GAAM,oBAC3B,IAAa,GAAM;CAEzB,OAAO,IACL,kBAAC,KAAD;EACE,MAAM,EAAmB;EACd;EACX,QAAO;EACP,KAAI;YAEJ,kBAAC,QAAD,EAAA,UAAA,CACG,GAAY,MACb,kBAAC,GAAD,EAAkB,OAAO,EAAE,YAAY,EAAE,EAAI,CAAA,CACzC,EAAA,CAAA;CACL,CAAA,IAEH,kBAAA,GAAA,CAAI,CAAA;AAER"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacetPlotsCard.js","names":[],"sources":["../../../src/components/FeaturedDataTabs/FacetPlotsCard.tsx"],"sourcesContent":["import { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n Box,\n Button,\n Divider,\n Paper,\n Skeleton,\n Typography,\n} from '@mui/material'\nimport {\n ColumnTypeEnum,\n FacetColumnResult,\n FacetColumnResultValueCount,\n FacetColumnResultValues,\n} from '@sage-bionetworks/synapse-types'\nimport { useSuspenseQuery } from '@tanstack/react-query'\nimport { times } from 'lodash-es'\nimport Plotly from 'plotly.js-basic-dist'\nimport { Fragment, Suspense, useMemo } from 'react'\nimport Plot from '../Plot/Plot'\nimport { useQueryVisualizationContext } from '../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../QueryWrapper/useGetQueryMetadata'\nimport { ShowMore } from '../row_renderers/utils'\nimport { SkeletonParagraph, SkeletonTable } from '../Skeleton'\nimport {\n extractPlotDataArray,\n getPlotStyle,\n PlotType,\n} from '../widgets/facet-nav/FacetNavPanel'\nimport { FacetPlotLegendTable } from '../widgets/facet-nav/FacetPlotLegendTable'\nimport { getFacets } from '../widgets/facet-nav/useFacetPlots'\nimport {\n FACET_PLOTS_CARD_CLASSNAME,\n FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME,\n FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME,\n FacetPlotsCardPlotContainer,\n FacetPlotsCardTitleContainer,\n} from './FacetPlotsCardGrid'\nimport { useMeasure } from '@react-hookz/web'\n\nexport type FacetPlotsCardProps = {\n title?: string\n description?: string\n facetsToPlot?: string[]\n detailsPagePath?: string\n plotType?: PlotType\n}\n\nconst layout: Partial<Plotly.Layout> = {\n showlegend: false,\n annotations: [],\n margin: { l: 0, r: 0, b: 0, t: 0, pad: 0 },\n yaxis: {\n visible: false,\n showgrid: false,\n },\n xaxis: {\n visible: false,\n showgrid: false,\n },\n}\n\nfunction LoadingCard(props: { numPlots: number }) {\n const { numPlots } = props\n return (\n <Paper className={FACET_PLOTS_CARD_CLASSNAME}>\n <FacetPlotsCardTitleContainer\n className={FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME}\n >\n <Skeleton width={'60%'} height={'24px'} />\n\n <SkeletonParagraph numRows={5} />\n\n <Skeleton width={'40%'}>\n <Button variant={'contained'}>Explore</Button>\n </Skeleton>\n </FacetPlotsCardTitleContainer>\n {times(numPlots).map(index => (\n <FacetPlotsCardPlotContainer\n key={index}\n className={FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME}\n sx={{\n py: 3,\n gridRow: `plot${index}`,\n }}\n >\n <Skeleton width={'100%'} height={'300px'} />\n <SkeletonTable numRows={4} numCols={2} />\n </FacetPlotsCardPlotContainer>\n ))}\n </Paper>\n )\n}\n\nfunction FacetPlotsCard(props: FacetPlotsCardProps) {\n const {\n title,\n description,\n facetsToPlot,\n detailsPagePath,\n plotType = 'PIE',\n } = props\n const { accessToken } = useSynapseContext()\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n const { getColumnDisplayName } = useQueryVisualizationContext()\n const [plotContainerMeasurements, plotContainerRef] = useMeasure()\n\n const facetDataArray = useMemo(() => {\n if (!facetsToPlot) {\n return []\n }\n\n return getFacets(queryMetadata, facetsToPlot)\n }, [facetsToPlot, queryMetadata])\n\n const currentLayout: Partial<Plotly.Layout> = useMemo(() => {\n return {\n ...layout,\n barmode: plotType === 'STACKED_HORIZONTAL_BAR' ? 'stack' : undefined,\n }\n }, [plotType])\n const maxPlotHeight = plotType === 'STACKED_HORIZONTAL_BAR' ? 50 : 150\n const { data: facetPlotDataArray } = useSuspenseQuery({\n queryKey: ['facetPlotDataArray', facetsToPlot, facetDataArray],\n queryFn: async () => {\n if (!facetsToPlot) {\n return []\n }\n\n const getColumnType = (\n facetToPlot: FacetColumnResult,\n ): ColumnTypeEnum | undefined =>\n queryMetadata.columnModels!.find(\n columnModel => columnModel.name === facetToPlot.columnName,\n )?.columnType as ColumnTypeEnum\n\n return Promise.all(\n facetDataArray.map(async (item, index) => {\n const plotData = await extractPlotDataArray(\n item as FacetColumnResultValues,\n getColumnType(item),\n index + 1, //individual plot rgbIndex\n plotType,\n accessToken,\n )\n return plotData\n }),\n )\n },\n })\n\n const selectedFacetValue = useMemo(() => {\n if (!facetsToPlot) {\n return ''\n }\n\n // If we are showing a facet selection based card, then set the selectedFacetValue. For example, facet column \"study\" with value \"ROSMAP\"\n const selectedFacet: FacetColumnResultValueCount | undefined = queryMetadata\n ?.facets!.map(item => {\n const facetValues: FacetColumnResultValueCount[] = (\n item as FacetColumnResultValues\n ).facetValues\n if (facetValues) {\n const filteredFacetValues: FacetColumnResultValueCount[] =\n facetValues.filter(facetValue => {\n return facetValue.isSelected\n })\n return filteredFacetValues.length > 0\n ? filteredFacetValues[0]\n : undefined\n } else {\n return undefined\n }\n })\n .filter(x => x !== undefined)[0]\n\n if (selectedFacet && selectedFacet.value) {\n return selectedFacet?.value\n }\n return ''\n }, [facetsToPlot, queryMetadata?.facets])\n\n const isShowingMultiplePlots = facetPlotDataArray.length > 1\n const cardTitle =\n title ??\n (isShowingMultiplePlots\n ? selectedFacetValue\n : getColumnDisplayName(facetDataArray[0].columnName))\n return (\n <Paper className={FACET_PLOTS_CARD_CLASSNAME} sx={{ overflow: 'hidden' }}>\n <FacetPlotsCardTitleContainer\n className={FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME}\n >\n <Typography variant={'headline1'}>{cardTitle}</Typography>\n {description && (\n <Typography variant={'body1'} sx={{ color: 'grey.700', my: 2 }}>\n <ShowMore summary={description} maxCharacterCount={200} />\n </Typography>\n )}\n\n {detailsPagePath && selectedFacetValue && (\n <Box sx={{ my: 2 }}>\n <Button\n variant={'contained'}\n href={detailsPagePath}\n color={'secondary'}\n sx={theme => ({\n [theme.breakpoints.down('sm')]: { width: '100%' },\n })}\n >\n Explore {selectedFacetValue}\n </Button>\n </Box>\n )}\n </FacetPlotsCardTitleContainer>\n\n {/* create a plot for every facet to be plotted */}\n {facetPlotDataArray.map((plotData, index) => {\n return (\n <Fragment key={index}>\n <FacetPlotsCardPlotContainer\n className={FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME}\n sx={{\n pt: index === 0 ? 5 : 0,\n gridRow: `plot${index}`,\n }}\n key={index}\n >\n {index != 0 && <Divider sx={{ mt: 2, mb: 4 }} />}\n <Box sx={{ minHeight: '130px' }}>\n <Box\n ref={plotContainerRef}\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Plot\n key={`${facetsToPlot![index]}-${\n plotContainerMeasurements?.width\n }`}\n layout={currentLayout}\n data={plotData?.data ?? []}\n style={getPlotStyle(\n plotContainerMeasurements?.width,\n plotType,\n maxPlotHeight,\n )}\n config={{ displayModeBar: false }}\n />\n </Box>\n <Box sx={{ mt: 4, width: '100%' }}>\n <FacetPlotLegendTable\n facetName={getColumnDisplayName(\n facetDataArray[index].columnName,\n )}\n labels={plotData?.labels}\n colors={plotData?.colors}\n isExpanded={false}\n linkToFullQuery={detailsPagePath}\n />\n </Box>\n </Box>\n </FacetPlotsCardPlotContainer>\n </Fragment>\n )\n })}\n </Paper>\n )\n}\n\nexport default function FacetPlotsCardWithSuspense(props: FacetPlotsCardProps) {\n return (\n <Suspense\n fallback={<LoadingCard numPlots={(props.facetsToPlot ?? []).length} />}\n >\n <FacetPlotsCard {...props} />\n </Suspense>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FacetPlotsCard.js","names":[],"sources":["../../../src/components/FeaturedDataTabs/FacetPlotsCard.tsx"],"sourcesContent":["import { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n Box,\n Button,\n Divider,\n Paper,\n Skeleton,\n Typography,\n} from '@mui/material'\nimport {\n ColumnTypeEnum,\n FacetColumnResult,\n FacetColumnResultValueCount,\n FacetColumnResultValues,\n} from '@sage-bionetworks/synapse-types'\nimport { useSuspenseQuery } from '@tanstack/react-query'\nimport { times } from 'lodash-es'\nimport Plotly from 'plotly.js-basic-dist'\nimport { Fragment, Suspense, useMemo } from 'react'\nimport Plot from '../Plot/Plot'\nimport { useQueryVisualizationContext } from '../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../QueryWrapper/useGetQueryMetadata'\nimport { ShowMore } from '../row_renderers/utils'\nimport { SkeletonParagraph, SkeletonTable } from '../Skeleton'\nimport {\n extractPlotDataArray,\n getPlotStyle,\n PlotType,\n} from '../widgets/facet-nav/FacetNavPanel'\nimport { FacetPlotLegendTable } from '../widgets/facet-nav/FacetPlotLegendTable'\nimport { getFacets } from '../widgets/facet-nav/useFacetPlots'\nimport {\n FACET_PLOTS_CARD_CLASSNAME,\n FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME,\n FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME,\n FacetPlotsCardPlotContainer,\n FacetPlotsCardTitleContainer,\n} from './FacetPlotsCardGrid'\nimport { useMeasure } from '@react-hookz/web'\n\nexport type FacetPlotsCardProps = {\n title?: string\n description?: string\n facetsToPlot?: string[]\n detailsPagePath?: string\n plotType?: PlotType\n}\n\nconst layout: Partial<Plotly.Layout> = {\n showlegend: false,\n annotations: [],\n margin: { l: 0, r: 0, b: 0, t: 0, pad: 0 },\n yaxis: {\n visible: false,\n showgrid: false,\n },\n xaxis: {\n visible: false,\n showgrid: false,\n },\n}\n\nfunction LoadingCard(props: { numPlots: number }) {\n const { numPlots } = props\n return (\n <Paper className={FACET_PLOTS_CARD_CLASSNAME}>\n <FacetPlotsCardTitleContainer\n className={FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME}\n >\n <Skeleton width={'60%'} height={'24px'} />\n\n <SkeletonParagraph numRows={5} />\n\n <Skeleton width={'40%'}>\n <Button variant={'contained'}>Explore</Button>\n </Skeleton>\n </FacetPlotsCardTitleContainer>\n {times(numPlots).map(index => (\n <FacetPlotsCardPlotContainer\n key={index}\n className={FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME}\n sx={{\n py: 3,\n gridRow: `plot${index}`,\n }}\n >\n <Skeleton width={'100%'} height={'300px'} />\n <SkeletonTable numRows={4} numCols={2} />\n </FacetPlotsCardPlotContainer>\n ))}\n </Paper>\n )\n}\n\nfunction FacetPlotsCard(props: FacetPlotsCardProps) {\n const {\n title,\n description,\n facetsToPlot,\n detailsPagePath,\n plotType = 'PIE',\n } = props\n const { accessToken } = useSynapseContext()\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n const { getColumnDisplayName } = useQueryVisualizationContext()\n const [plotContainerMeasurements, plotContainerRef] = useMeasure()\n\n const facetDataArray = useMemo(() => {\n if (!facetsToPlot) {\n return []\n }\n\n return getFacets(queryMetadata, facetsToPlot)\n }, [facetsToPlot, queryMetadata])\n\n const currentLayout: Partial<Plotly.Layout> = useMemo(() => {\n return {\n ...layout,\n barmode: plotType === 'STACKED_HORIZONTAL_BAR' ? 'stack' : undefined,\n }\n }, [plotType])\n const maxPlotHeight = plotType === 'STACKED_HORIZONTAL_BAR' ? 50 : 150\n const { data: facetPlotDataArray } = useSuspenseQuery({\n queryKey: ['facetPlotDataArray', facetsToPlot, facetDataArray],\n queryFn: async () => {\n if (!facetsToPlot) {\n return []\n }\n\n const getColumnType = (\n facetToPlot: FacetColumnResult,\n ): ColumnTypeEnum | undefined =>\n queryMetadata.columnModels!.find(\n columnModel => columnModel.name === facetToPlot.columnName,\n )?.columnType as ColumnTypeEnum\n\n return Promise.all(\n facetDataArray.map(async (item, index) => {\n const plotData = await extractPlotDataArray(\n item as FacetColumnResultValues,\n getColumnType(item),\n index + 1, //individual plot rgbIndex\n plotType,\n accessToken,\n )\n return plotData\n }),\n )\n },\n })\n\n const selectedFacetValue = useMemo(() => {\n if (!facetsToPlot) {\n return ''\n }\n\n // If we are showing a facet selection based card, then set the selectedFacetValue. For example, facet column \"study\" with value \"ROSMAP\"\n const selectedFacet: FacetColumnResultValueCount | undefined = queryMetadata\n ?.facets!.map(item => {\n const facetValues: FacetColumnResultValueCount[] = (\n item as FacetColumnResultValues\n ).facetValues\n if (facetValues) {\n const filteredFacetValues: FacetColumnResultValueCount[] =\n facetValues.filter(facetValue => {\n return facetValue.isSelected\n })\n return filteredFacetValues.length > 0\n ? filteredFacetValues[0]\n : undefined\n } else {\n return undefined\n }\n })\n .filter(x => x !== undefined)[0]\n\n if (selectedFacet && selectedFacet.value) {\n return selectedFacet?.value\n }\n return ''\n }, [facetsToPlot, queryMetadata?.facets])\n\n const isShowingMultiplePlots = facetPlotDataArray.length > 1\n const cardTitle =\n title ??\n (isShowingMultiplePlots\n ? selectedFacetValue\n : getColumnDisplayName(facetDataArray[0].columnName))\n return (\n <Paper className={FACET_PLOTS_CARD_CLASSNAME} sx={{ overflow: 'hidden' }}>\n <FacetPlotsCardTitleContainer\n className={FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME}\n >\n <Typography variant={'headline1'}>{cardTitle}</Typography>\n {description && (\n <Typography variant={'body1'} sx={{ color: 'grey.700', my: 2 }}>\n <ShowMore summary={description} maxCharacterCount={200} />\n </Typography>\n )}\n\n {detailsPagePath && selectedFacetValue && (\n <Box sx={{ my: 2 }}>\n <Button\n variant={'contained'}\n href={detailsPagePath}\n color={'secondary'}\n sx={theme => ({\n [theme.breakpoints.down('sm')]: { width: '100%' },\n })}\n >\n Explore {selectedFacetValue}\n </Button>\n </Box>\n )}\n </FacetPlotsCardTitleContainer>\n\n {/* create a plot for every facet to be plotted */}\n {facetPlotDataArray.map((plotData, index) => {\n return (\n <Fragment key={index}>\n <FacetPlotsCardPlotContainer\n className={FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME}\n sx={{\n pt: index === 0 ? 5 : 0,\n gridRow: `plot${index}`,\n }}\n key={index}\n >\n {index != 0 && <Divider sx={{ mt: 2, mb: 4 }} />}\n <Box sx={{ minHeight: '130px' }}>\n <Box\n ref={plotContainerRef}\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Plot\n key={`${facetsToPlot![index]}-${\n plotContainerMeasurements?.width\n }`}\n layout={currentLayout}\n data={plotData?.data ?? []}\n style={getPlotStyle(\n plotContainerMeasurements?.width,\n plotType,\n maxPlotHeight,\n )}\n config={{ displayModeBar: false }}\n />\n </Box>\n <Box sx={{ mt: 4, width: '100%' }}>\n <FacetPlotLegendTable\n facetName={getColumnDisplayName(\n facetDataArray[index].columnName,\n )}\n labels={plotData?.labels}\n colors={plotData?.colors}\n isExpanded={false}\n linkToFullQuery={detailsPagePath}\n />\n </Box>\n </Box>\n </FacetPlotsCardPlotContainer>\n </Fragment>\n )\n })}\n </Paper>\n )\n}\n\nexport default function FacetPlotsCardWithSuspense(props: FacetPlotsCardProps) {\n return (\n <Suspense\n fallback={<LoadingCard numPlots={(props.facetsToPlot ?? []).length} />}\n >\n <FacetPlotsCard {...props} />\n </Suspense>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacetPlotsCardGrid.js","names":[],"sources":["../../../src/components/FeaturedDataTabs/FacetPlotsCardGrid.tsx"],"sourcesContent":["import { Box, BoxProps, styled } from '@mui/material'\nimport { StyledComponent } from '@emotion/styled'\n\nexport const FACET_PLOTS_CARD_CLASSNAME = 'FacetPlotsCard'\n\nexport const FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME =\n 'FacetPlotsCardTitleContainer'\n\nexport const FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME =\n 'FacetPlotsCardPlotContainer'\n\nexport const FacetPlotsCardGridContainer: StyledComponent<BoxProps> = styled(\n Box,\n {\n label: 'FacetPlotsCardGridContainer',\n },\n)(({ theme }) => ({\n [theme.breakpoints.down('md')]: {\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n },\n [theme.breakpoints.up('md')]: {\n /*\n The grid is broken up into cards which have subcomponents that should be aligned\n Ideally we could use CSS Subgrid, but it is not widely supported as of the time of writing\n See https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_grid_layout/Subgrid\n\n Instead we will use grid with `display: contents`, and style each section to look like a card.\n */\n display: 'grid',\n gridTemplateRows: '[title] auto [plot0] auto',\n justifyContent: 'center',\n gridTemplateColumns: 'repeat(auto-fit, minmax(100px, 1fr))',\n columnGap: '2%',\n\n [`.${FACET_PLOTS_CARD_CLASSNAME}`]: {\n display: 'contents',\n },\n\n [`.${FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME}, .${FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME}`]:\n {\n // Since we're using `display:contents`, the card container style will not be displayed.\n // So add box-shadow to each grid item\n boxShadow: '0px 3px 10px 0px #5D69AB1A',\n backgroundColor: theme.palette.background.paper,\n },\n [`.${FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME}`]: {\n gridRow: 'title',\n // For the title portion of the card, use clipPath to hide the box-shadow at the bottom of the section,\n // since the bottom border is adjacent to the rest of the visual card\n clipPath: 'inset(-10px -10px 0px -10px)',\n },\n\n [`.${FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME}`]: {\n // For the plots section(s), use clipPath to hide the box-shadow at the top and bottom of the section\n clipPath: 'inset(0px -10px 0px -10px)',\n },\n [`.${FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME}:last-of-type`]: {\n // For the last plot section, use clipPath to hide the box-shadow at the top of the section\n // the bottom box-shadow is shown since this is container marks the bottom of the card (visually)\n borderBottom: '1px solid #e8e8e8',\n clipPath: 'inset(0px -10px -10px -10px)',\n },\n },\n [`.${FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME}:last-of-type`]: {\n paddingBottom: theme.spacing(5),\n },\n}))\n\nexport const FacetPlotsCardTitleContainer: StyledComponent<BoxProps> = styled(\n Box,\n {\n label: 'FacetPlotsCardTitleContainer',\n },\n)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'start',\n paddingTop: theme.spacing(5),\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n minHeight: '64px',\n}))\n\nexport const FacetPlotsCardPlotContainer: StyledComponent<BoxProps> = styled(\n Box,\n {\n label: 'FacetPlotsCardPlotContainer',\n },\n)(({ theme }) => ({\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n}))\n"],"mappings":";;AAGA,IAAa,IAA6B,kBAE7B,IACX,gCAEW,IACX,+BAEW,IAAyD,EACpE,GACA,EACE,OAAO
|
|
1
|
+
{"version":3,"file":"FacetPlotsCardGrid.js","names":[],"sources":["../../../src/components/FeaturedDataTabs/FacetPlotsCardGrid.tsx"],"sourcesContent":["import { Box, BoxProps, styled } from '@mui/material'\nimport { StyledComponent } from '@emotion/styled'\n\nexport const FACET_PLOTS_CARD_CLASSNAME = 'FacetPlotsCard'\n\nexport const FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME =\n 'FacetPlotsCardTitleContainer'\n\nexport const FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME =\n 'FacetPlotsCardPlotContainer'\n\nexport const FacetPlotsCardGridContainer: StyledComponent<BoxProps> = styled(\n Box,\n {\n label: 'FacetPlotsCardGridContainer',\n },\n)(({ theme }) => ({\n [theme.breakpoints.down('md')]: {\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n },\n [theme.breakpoints.up('md')]: {\n /*\n The grid is broken up into cards which have subcomponents that should be aligned\n Ideally we could use CSS Subgrid, but it is not widely supported as of the time of writing\n See https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_grid_layout/Subgrid\n\n Instead we will use grid with `display: contents`, and style each section to look like a card.\n */\n display: 'grid',\n gridTemplateRows: '[title] auto [plot0] auto',\n justifyContent: 'center',\n gridTemplateColumns: 'repeat(auto-fit, minmax(100px, 1fr))',\n columnGap: '2%',\n\n [`.${FACET_PLOTS_CARD_CLASSNAME}`]: {\n display: 'contents',\n },\n\n [`.${FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME}, .${FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME}`]:\n {\n // Since we're using `display:contents`, the card container style will not be displayed.\n // So add box-shadow to each grid item\n boxShadow: '0px 3px 10px 0px #5D69AB1A',\n backgroundColor: theme.palette.background.paper,\n },\n [`.${FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME}`]: {\n gridRow: 'title',\n // For the title portion of the card, use clipPath to hide the box-shadow at the bottom of the section,\n // since the bottom border is adjacent to the rest of the visual card\n clipPath: 'inset(-10px -10px 0px -10px)',\n },\n\n [`.${FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME}`]: {\n // For the plots section(s), use clipPath to hide the box-shadow at the top and bottom of the section\n clipPath: 'inset(0px -10px 0px -10px)',\n },\n [`.${FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME}:last-of-type`]: {\n // For the last plot section, use clipPath to hide the box-shadow at the top of the section\n // the bottom box-shadow is shown since this is container marks the bottom of the card (visually)\n borderBottom: '1px solid #e8e8e8',\n clipPath: 'inset(0px -10px -10px -10px)',\n },\n },\n [`.${FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME}:last-of-type`]: {\n paddingBottom: theme.spacing(5),\n },\n}))\n\nexport const FacetPlotsCardTitleContainer: StyledComponent<BoxProps> = styled(\n Box,\n {\n label: 'FacetPlotsCardTitleContainer',\n },\n)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'start',\n paddingTop: theme.spacing(5),\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n minHeight: '64px',\n}))\n\nexport const FacetPlotsCardPlotContainer: StyledComponent<BoxProps> = styled(\n Box,\n {\n label: 'FacetPlotsCardPlotContainer',\n },\n)(({ theme }) => ({\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n}))\n"],"mappings":";;AAGA,IAAa,IAA6B,kBAE7B,IACX,gCAEW,IACX,+BAEW,IAAyD,EACpE,GACA,EACE,OAAO,8BACT,CACF,GAAG,EAAE,gBAAa;EACf,EAAM,YAAY,KAAK,IAAI,IAAI;EAC9B,SAAS;EACT,eAAe;EACf,KAAK,EAAM,QAAQ,CAAC;CACtB;EACC,EAAM,YAAY,GAAG,IAAI,IAAI;EAQ5B,SAAS;EACT,kBAAkB;EAClB,gBAAgB;EAChB,qBAAqB;EACrB,WAAW;GAEV,IAAI,MAA+B,EAClC,SAAS,WACX;GAEC,IAAI,EAA2C,KAAK,MACnD;GAGE,WAAW;GACX,iBAAiB,EAAM,QAAQ,WAAW;EAC5C;GACD,IAAI,MAA+C;GAClD,SAAS;GAGT,UAAU;EACZ;GAEC,IAAI,MAA8C,EAEjD,UAAU,6BACZ;GACC,IAAI,EAA0C,iBAAiB;GAG9D,cAAc;GACd,UAAU;EACZ;CACF;EACC,IAAI,EAA0C,iBAAiB,EAC9D,eAAe,EAAM,QAAQ,CAAC,EAChC;AACF,EAAE,GAEW,IAA0D,EACrE,GACA,EACE,OAAO,+BACT,CACF,GAAG,EAAE,gBAAa;CAChB,SAAS;CACT,eAAe;CACf,gBAAgB;CAChB,YAAY,EAAM,QAAQ,CAAC;CAC3B,aAAa,EAAM,QAAQ,CAAC;CAC5B,cAAc,EAAM,QAAQ,CAAC;CAC7B,WAAW;AACb,EAAE,GAEW,IAAyD,EACpE,GACA,EACE,OAAO,8BACT,CACF,GAAG,EAAE,gBAAa;CAChB,aAAa,EAAM,QAAQ,CAAC;CAC5B,cAAc,EAAM,QAAQ,CAAC;AAC/B,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeaturedDataPlots.js","names":[],"sources":["../../../src/components/FeaturedDataTabs/FeaturedDataPlots.tsx"],"sourcesContent":["import QueryPerFacetPlotsCard, {\n QueryPerFacetPlotsCardProps,\n} from './QueryPerFacetPlotsCard'\nimport SingleQueryFacetPlotsCards, {\n SingleQueryFacetPlotsCardsProps,\n} from './SingleQueryFacetPlotsCards'\nimport { chunk, times } from 'lodash-es'\nimport { FacetPlotsCardGridContainer } from './FacetPlotsCardGrid'\nimport { CARDS_PER_ROW } from './FeaturedDataTabsUtils'\n\nexport type QueryFacetPlotsCardsProps =\n | QueryPerFacetPlotsCardProps\n | SingleQueryFacetPlotsCardsProps\n\nexport type FeaturedDataPlotsProps = {\n configs: QueryFacetPlotsCardsProps[]\n rgbIndex?: number\n sql?: string\n explorePagePath?: string\n}\n\nfunction FeaturedDataPlots(props: FeaturedDataPlotsProps) {\n const { configs, rgbIndex, sql } = props\n // What mode are we in? Either every card has a different selected facet (requiring a different query),\n // or we're showing the facet counts for a single query. This controls the layout, and how the cards are populated.\n const isQueryPerCard = configs && 'selectFacetColumnName' in configs[0]\n if (!isQueryPerCard) {\n return (\n <>\n {(configs as SingleQueryFacetPlotsCardsProps[]).map((config, idx) => {\n return (\n !isQueryPerCard && (\n <SingleQueryFacetPlotsCards\n key={idx}\n {...config}\n rgbIndex={rgbIndex}\n sql={sql}\n />\n )\n )\n })}\n </>\n )\n } else if (isQueryPerCard) {\n return (\n <>\n {chunk(configs as QueryPerFacetPlotsCardProps[], CARDS_PER_ROW).map(\n (configRow, rowIndex) => {\n let cssGridTemplateRows = '[title] auto'\n\n // There may be more than one plot per card, so add a row for each one\n times(configRow[0].facetsToPlot?.length ?? 1).forEach(\n (value, index) => {\n cssGridTemplateRows += ` [plot${index}] auto`\n },\n )\n return (\n <FacetPlotsCardGridContainer\n key={rowIndex}\n sx={{\n gridTemplateRows: cssGridTemplateRows,\n }}\n >\n {configRow.map(config => {\n return (\n <QueryPerFacetPlotsCard\n key={config.selectFacetColumnName}\n {...config}\n rgbIndex={rgbIndex}\n sql={sql}\n />\n )\n })}\n </FacetPlotsCardGridContainer>\n )\n },\n )}\n </>\n )\n }\n return <></>\n}\n\nexport default FeaturedDataPlots\n"],"mappings":";;;;;;;AAqBA,SAAS,EAAkB,GAA+B;CACxD,IAAM,EAAE,YAAS,aAAU,WAAQ,GAG7B,IAAiB,KAAW,2BAA2B,EAAQ;
|
|
1
|
+
{"version":3,"file":"FeaturedDataPlots.js","names":[],"sources":["../../../src/components/FeaturedDataTabs/FeaturedDataPlots.tsx"],"sourcesContent":["import QueryPerFacetPlotsCard, {\n QueryPerFacetPlotsCardProps,\n} from './QueryPerFacetPlotsCard'\nimport SingleQueryFacetPlotsCards, {\n SingleQueryFacetPlotsCardsProps,\n} from './SingleQueryFacetPlotsCards'\nimport { chunk, times } from 'lodash-es'\nimport { FacetPlotsCardGridContainer } from './FacetPlotsCardGrid'\nimport { CARDS_PER_ROW } from './FeaturedDataTabsUtils'\n\nexport type QueryFacetPlotsCardsProps =\n | QueryPerFacetPlotsCardProps\n | SingleQueryFacetPlotsCardsProps\n\nexport type FeaturedDataPlotsProps = {\n configs: QueryFacetPlotsCardsProps[]\n rgbIndex?: number\n sql?: string\n explorePagePath?: string\n}\n\nfunction FeaturedDataPlots(props: FeaturedDataPlotsProps) {\n const { configs, rgbIndex, sql } = props\n // What mode are we in? Either every card has a different selected facet (requiring a different query),\n // or we're showing the facet counts for a single query. This controls the layout, and how the cards are populated.\n const isQueryPerCard = configs && 'selectFacetColumnName' in configs[0]\n if (!isQueryPerCard) {\n return (\n <>\n {(configs as SingleQueryFacetPlotsCardsProps[]).map((config, idx) => {\n return (\n !isQueryPerCard && (\n <SingleQueryFacetPlotsCards\n key={idx}\n {...config}\n rgbIndex={rgbIndex}\n sql={sql}\n />\n )\n )\n })}\n </>\n )\n } else if (isQueryPerCard) {\n return (\n <>\n {chunk(configs as QueryPerFacetPlotsCardProps[], CARDS_PER_ROW).map(\n (configRow, rowIndex) => {\n let cssGridTemplateRows = '[title] auto'\n\n // There may be more than one plot per card, so add a row for each one\n times(configRow[0].facetsToPlot?.length ?? 1).forEach(\n (value, index) => {\n cssGridTemplateRows += ` [plot${index}] auto`\n },\n )\n return (\n <FacetPlotsCardGridContainer\n key={rowIndex}\n sx={{\n gridTemplateRows: cssGridTemplateRows,\n }}\n >\n {configRow.map(config => {\n return (\n <QueryPerFacetPlotsCard\n key={config.selectFacetColumnName}\n {...config}\n rgbIndex={rgbIndex}\n sql={sql}\n />\n )\n })}\n </FacetPlotsCardGridContainer>\n )\n },\n )}\n </>\n )\n }\n return <></>\n}\n\nexport default FeaturedDataPlots\n"],"mappings":";;;;;;;AAqBA,SAAS,EAAkB,GAA+B;CACxD,IAAM,EAAE,YAAS,aAAU,WAAQ,GAG7B,IAAiB,KAAW,2BAA2B,EAAQ;CAuDrE,OAtDK,IAiBM,IAEP,kBAAA,GAAA,EAAA,UACG,EAAM,GAAA,CAAuD,EAAE,KAC7D,GAAW,MAAa;EACvB,IAAI,IAAsB;EAQ1B,OALA,EAAM,EAAU,GAAG,cAAc,UAAU,CAAC,EAAE,SAC3C,GAAO,MAAU;GAChB,KAAuB,SAAS,EAAM;EACxC,CACF,GAEE,kBAAC,GAAD;GAEE,IAAI,EACF,kBAAkB,EACpB;aAEC,EAAU,KAAI,MAEX,kBAAC,GAAD;IAEE,GAAI;IACM;IACL;GACN,GAJM,EAAO,qBAIb,CAEJ;EAC0B,GAftB,CAesB;CAEjC,CACF,EACA,CAAA,IAGC,kBAAA,GAAA,CAAI,CAAA,IApDP,kBAAA,GAAA,EAAA,UACI,EAA8C,KAAK,GAAQ,MAEzD,CAAC,KACC,kBAAC,GAAD;EAEE,GAAI;EACM;EACL;CACN,GAJM,CAIN,CAGN,EACD,CAAA;AAwCR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeaturedDataTabs.js","names":[],"sources":["../../../src/components/FeaturedDataTabs/FeaturedDataTabs.tsx"],"sourcesContent":["import { useState } from 'react'\nimport FeaturedDataPlots, { FeaturedDataPlotsProps } from './FeaturedDataPlots'\nimport { Icon } from '../row_renderers/utils'\nimport NoContentAvailable from '../SynapseTable/NoContentAvailable'\nimport { Box, Button } from '@mui/material'\nimport { Paper } from '@mui/material'\n\nexport type FeatureDataTabProps = {\n title: string // type of data being shown, used for the tab title and explore all button\n icon?: string\n exploreObjectType?: string\n explorePagePath?: string\n plotsConfig: FeaturedDataPlotsProps\n}\n\nexport type FeaturedDataTabsProps = {\n configs: FeatureDataTabProps[]\n rgbIndex: number\n sql: string\n}\n\nfunction FeaturedDataTabs(props: FeaturedDataTabsProps) {\n const [selectedTabIndex, setSelectedTabIndex] = useState<number>(0)\n const { configs, rgbIndex, sql } = props\n // explore all data button\n const selectedTabProps: FeatureDataTabProps = configs[selectedTabIndex]\n return (\n <Box\n className=\"FeaturedDataTabs\"\n sx={{ padding: { xs: '40px', lg: '80px' } }}\n >\n {/* tabs */}\n {configs.length > 1 && (\n <div className=\"FeaturedDataTabs__tabs\">\n {configs.map((config, index) => {\n const isSelectedTabIndex: boolean = index === selectedTabIndex\n return (\n <div\n className={`FeaturedDataTabs__tabs__tab ${\n isSelectedTabIndex\n ? 'FeaturedDataTabs__tabs__tab__selected'\n : ''\n }`}\n key={config.title}\n >\n <button\n className=\"SRC-centerAndJustifyContent\"\n onClick={() => setSelectedTabIndex(index)}\n >\n {config.icon && <Icon type={config.icon}></Icon>}\n <span>{config.title}</span>\n </button>\n </div>\n )\n })}\n </div>\n )}\n {/* tab content */}\n {selectedTabProps && (\n <>\n {selectedTabProps.plotsConfig.configs.length > 0 ? (\n <>\n <FeaturedDataPlots\n key={`${sql}-${selectedTabIndex}`}\n sql={sql}\n rgbIndex={rgbIndex}\n explorePagePath={selectedTabProps.explorePagePath}\n {...selectedTabProps.plotsConfig}\n />\n {selectedTabProps.explorePagePath && (\n <div className=\"FeaturedDataTabs__explore-all\">\n <Button\n variant=\"contained\"\n color=\"secondary\"\n href={selectedTabProps.explorePagePath}\n sx={theme => ({\n mb: '40px',\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n })}\n >\n View All {selectedTabProps.exploreObjectType}\n </Button>\n </div>\n )}\n </>\n ) : (\n <Paper sx={{ p: 2 }}>\n <NoContentAvailable />\n </Paper>\n )}\n </>\n )}\n </Box>\n )\n}\n\nexport default FeaturedDataTabs\n"],"mappings":";;;;;;;;AAqBA,SAAS,EAAiB,GAA8B;CACtD,IAAM,CAAC,GAAkB,KAAuB,EAAiB,
|
|
1
|
+
{"version":3,"file":"FeaturedDataTabs.js","names":[],"sources":["../../../src/components/FeaturedDataTabs/FeaturedDataTabs.tsx"],"sourcesContent":["import { useState } from 'react'\nimport FeaturedDataPlots, { FeaturedDataPlotsProps } from './FeaturedDataPlots'\nimport { Icon } from '../row_renderers/utils'\nimport NoContentAvailable from '../SynapseTable/NoContentAvailable'\nimport { Box, Button } from '@mui/material'\nimport { Paper } from '@mui/material'\n\nexport type FeatureDataTabProps = {\n title: string // type of data being shown, used for the tab title and explore all button\n icon?: string\n exploreObjectType?: string\n explorePagePath?: string\n plotsConfig: FeaturedDataPlotsProps\n}\n\nexport type FeaturedDataTabsProps = {\n configs: FeatureDataTabProps[]\n rgbIndex: number\n sql: string\n}\n\nfunction FeaturedDataTabs(props: FeaturedDataTabsProps) {\n const [selectedTabIndex, setSelectedTabIndex] = useState<number>(0)\n const { configs, rgbIndex, sql } = props\n // explore all data button\n const selectedTabProps: FeatureDataTabProps = configs[selectedTabIndex]\n return (\n <Box\n className=\"FeaturedDataTabs\"\n sx={{ padding: { xs: '40px', lg: '80px' } }}\n >\n {/* tabs */}\n {configs.length > 1 && (\n <div className=\"FeaturedDataTabs__tabs\">\n {configs.map((config, index) => {\n const isSelectedTabIndex: boolean = index === selectedTabIndex\n return (\n <div\n className={`FeaturedDataTabs__tabs__tab ${\n isSelectedTabIndex\n ? 'FeaturedDataTabs__tabs__tab__selected'\n : ''\n }`}\n key={config.title}\n >\n <button\n className=\"SRC-centerAndJustifyContent\"\n onClick={() => setSelectedTabIndex(index)}\n >\n {config.icon && <Icon type={config.icon}></Icon>}\n <span>{config.title}</span>\n </button>\n </div>\n )\n })}\n </div>\n )}\n {/* tab content */}\n {selectedTabProps && (\n <>\n {selectedTabProps.plotsConfig.configs.length > 0 ? (\n <>\n <FeaturedDataPlots\n key={`${sql}-${selectedTabIndex}`}\n sql={sql}\n rgbIndex={rgbIndex}\n explorePagePath={selectedTabProps.explorePagePath}\n {...selectedTabProps.plotsConfig}\n />\n {selectedTabProps.explorePagePath && (\n <div className=\"FeaturedDataTabs__explore-all\">\n <Button\n variant=\"contained\"\n color=\"secondary\"\n href={selectedTabProps.explorePagePath}\n sx={theme => ({\n mb: '40px',\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n })}\n >\n View All {selectedTabProps.exploreObjectType}\n </Button>\n </div>\n )}\n </>\n ) : (\n <Paper sx={{ p: 2 }}>\n <NoContentAvailable />\n </Paper>\n )}\n </>\n )}\n </Box>\n )\n}\n\nexport default FeaturedDataTabs\n"],"mappings":";;;;;;;;AAqBA,SAAS,EAAiB,GAA8B;CACtD,IAAM,CAAC,GAAkB,KAAuB,EAAiB,CAAC,GAC5D,EAAE,YAAS,aAAU,WAAQ,GAE7B,IAAwC,EAAQ;CACtD,OACE,kBAAC,GAAD;EACE,WAAU;EACV,IAAI,EAAE,SAAS;GAAE,IAAI;GAAQ,IAAI;EAAO,EAAE;YAF5C,CAKG,EAAQ,SAAS,KAChB,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAQ,KAAK,GAAQ,MAGlB,kBAAC,OAAD;IACE,WAAW,+BAHqB,MAAU,IAKpC,0CACA;cAIN,kBAAC,UAAD;KACE,WAAU;KACV,eAAe,EAAoB,CAAK;eAF1C,CAIG,EAAO,QAAQ,kBAAC,GAAD,EAAM,MAAM,EAAO,KAAY,CAAA,GAC/C,kBAAC,QAAD,EAAA,UAAO,EAAO,MAAY,CAAA,CACpB;;GACL,GATE,EAAO,KAST,CAER;EACE,CAAA,GAGN,KACC,kBAAA,GAAA,EAAA,UACG,EAAiB,YAAY,QAAQ,SAAS,IAC7C,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GAEO;GACK;GACV,iBAAiB,EAAiB;GAClC,GAAI,EAAiB;EACtB,GALM,GAAG,EAAI,GAAG,GAKhB,GACA,EAAiB,mBAChB,kBAAC,OAAD;GAAK,WAAU;aACb,kBAAC,GAAD;IACE,SAAQ;IACR,OAAM;IACN,MAAM,EAAiB;IACvB,KAAI,OAAU;KACZ,IAAI;MACH,EAAM,YAAY,KAAK,IAAI,IAAI,EAC9B,OAAO,OACT;IACF;cATF,CAUC,aACW,EAAiB,iBACrB;;EACL,CAAA,CAEP,EAAA,CAAA,IAEF,kBAAC,GAAD;GAAO,IAAI,EAAE,GAAG,EAAE;aAChB,kBAAC,GAAD,CAAqB,CAAA;EAChB,CAAA,EAET,CAAA,CAED;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryPerFacetPlotsCard.js","names":[],"sources":["../../../src/components/FeaturedDataTabs/QueryPerFacetPlotsCard.tsx"],"sourcesContent":["import { SynapseConstants } from '@/utils'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions'\nimport { DEFAULT_PAGE_SIZE } from '@/utils/SynapseConstants'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport {\n QueryVisualizationContextType,\n QueryVisualizationWrapper,\n} from '../QueryVisualizationWrapper'\nimport { QueryWrapper } from '../QueryWrapper'\nimport { QueryWrapperErrorBoundary } from '../QueryWrapperErrorBoundary'\nimport FacetPlotsCard, { FacetPlotsCardProps } from './FacetPlotsCard'\n\nexport type QueryPerFacetPlotsCardProps = {\n title?: string\n description?: string\n rgbIndex?: number\n facetsToPlot?: string[]\n selectFacetColumnName: string\n selectFacetColumnValue: string\n sql?: string\n detailsPagePath: string\n} & Pick<QueryVisualizationContextType, 'unitDescription'> &\n Pick<FacetPlotsCardProps, 'plotType'>\n\nfunction getQueryRequest(\n sql: string,\n selectFacetColumnName: string,\n selectFacetColumnValue: string,\n): QueryBundleRequest {\n const entityId = parseEntityIdFromSqlStatement(sql)\n return {\n entityId,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_COLUMN_MODELS |\n SynapseConstants.BUNDLE_MASK_QUERY_FACETS,\n query: {\n sql,\n offset: 0,\n limit: DEFAULT_PAGE_SIZE,\n selectedFacets: [\n {\n columnName: selectFacetColumnName,\n facetValues: [selectFacetColumnValue],\n concreteType:\n 'org.sagebionetworks.repo.model.table.FacetColumnValuesRequest',\n },\n ],\n },\n }\n}\nfunction QueryPerFacetPlotsCard(props: QueryPerFacetPlotsCardProps) {\n const {\n title,\n description,\n sql,\n facetsToPlot,\n rgbIndex,\n selectFacetColumnName,\n selectFacetColumnValue,\n detailsPagePath,\n plotType,\n ...rest\n } = props\n const initQueryRequest: QueryBundleRequest = getQueryRequest(\n sql!,\n selectFacetColumnName,\n selectFacetColumnValue,\n )\n\n /**\n * Fully re-render the uncontrolled QueryWrapper component when the initial query changes. This eliminates a class of\n * bugs where our 'derived' state (the current query), which should be reset, is out of sync with props.\n *\n * See https://legacy.reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html#recommendation-fully-uncontrolled-component-with-a-key\n */\n const queryWrapperKey = JSON.stringify(initQueryRequest)\n return (\n <QueryWrapper\n {...rest}\n initQueryRequest={initQueryRequest}\n key={queryWrapperKey}\n >\n <QueryVisualizationWrapper rgbIndex={rgbIndex} {...rest}>\n <QueryWrapperErrorBoundary>\n <FacetPlotsCard\n title={title}\n description={description}\n facetsToPlot={facetsToPlot}\n detailsPagePath={detailsPagePath}\n plotType={plotType}\n />\n </QueryWrapperErrorBoundary>\n </QueryVisualizationWrapper>\n </QueryWrapper>\n )\n}\n\nexport default QueryPerFacetPlotsCard\n"],"mappings":";;;;;;;;;;;;;AAwBA,SAAS,EACP,GACA,GACA,GACoB;
|
|
1
|
+
{"version":3,"file":"QueryPerFacetPlotsCard.js","names":[],"sources":["../../../src/components/FeaturedDataTabs/QueryPerFacetPlotsCard.tsx"],"sourcesContent":["import { SynapseConstants } from '@/utils'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions'\nimport { DEFAULT_PAGE_SIZE } from '@/utils/SynapseConstants'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport {\n QueryVisualizationContextType,\n QueryVisualizationWrapper,\n} from '../QueryVisualizationWrapper'\nimport { QueryWrapper } from '../QueryWrapper'\nimport { QueryWrapperErrorBoundary } from '../QueryWrapperErrorBoundary'\nimport FacetPlotsCard, { FacetPlotsCardProps } from './FacetPlotsCard'\n\nexport type QueryPerFacetPlotsCardProps = {\n title?: string\n description?: string\n rgbIndex?: number\n facetsToPlot?: string[]\n selectFacetColumnName: string\n selectFacetColumnValue: string\n sql?: string\n detailsPagePath: string\n} & Pick<QueryVisualizationContextType, 'unitDescription'> &\n Pick<FacetPlotsCardProps, 'plotType'>\n\nfunction getQueryRequest(\n sql: string,\n selectFacetColumnName: string,\n selectFacetColumnValue: string,\n): QueryBundleRequest {\n const entityId = parseEntityIdFromSqlStatement(sql)\n return {\n entityId,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_COLUMN_MODELS |\n SynapseConstants.BUNDLE_MASK_QUERY_FACETS,\n query: {\n sql,\n offset: 0,\n limit: DEFAULT_PAGE_SIZE,\n selectedFacets: [\n {\n columnName: selectFacetColumnName,\n facetValues: [selectFacetColumnValue],\n concreteType:\n 'org.sagebionetworks.repo.model.table.FacetColumnValuesRequest',\n },\n ],\n },\n }\n}\nfunction QueryPerFacetPlotsCard(props: QueryPerFacetPlotsCardProps) {\n const {\n title,\n description,\n sql,\n facetsToPlot,\n rgbIndex,\n selectFacetColumnName,\n selectFacetColumnValue,\n detailsPagePath,\n plotType,\n ...rest\n } = props\n const initQueryRequest: QueryBundleRequest = getQueryRequest(\n sql!,\n selectFacetColumnName,\n selectFacetColumnValue,\n )\n\n /**\n * Fully re-render the uncontrolled QueryWrapper component when the initial query changes. This eliminates a class of\n * bugs where our 'derived' state (the current query), which should be reset, is out of sync with props.\n *\n * See https://legacy.reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html#recommendation-fully-uncontrolled-component-with-a-key\n */\n const queryWrapperKey = JSON.stringify(initQueryRequest)\n return (\n <QueryWrapper\n {...rest}\n initQueryRequest={initQueryRequest}\n key={queryWrapperKey}\n >\n <QueryVisualizationWrapper rgbIndex={rgbIndex} {...rest}>\n <QueryWrapperErrorBoundary>\n <FacetPlotsCard\n title={title}\n description={description}\n facetsToPlot={facetsToPlot}\n detailsPagePath={detailsPagePath}\n plotType={plotType}\n />\n </QueryWrapperErrorBoundary>\n </QueryVisualizationWrapper>\n </QueryWrapper>\n )\n}\n\nexport default QueryPerFacetPlotsCard\n"],"mappings":";;;;;;;;;;;;;AAwBA,SAAS,EACP,GACA,GACA,GACoB;CAEpB,OAAO;EACL,UAFe,EAA8B,CAE7C;EACA,cAAc;EACd,UACE;EAEF,OAAO;GACL;GACA,QAAQ;GACR,OAAA;GACA,gBAAgB,CACd;IACE,YAAY;IACZ,aAAa,CAAC,CAAsB;IACpC,cACE;GACJ,CACF;EACF;CACF;AACF;AACA,SAAS,EAAuB,GAAoC;CAClE,IAAM,EACJ,UACA,gBACA,QACA,iBACA,aACA,0BACA,2BACA,oBACA,aACA,GAAG,MACD,GACE,IAAuC,EAC3C,GACA,GACA,CACF,GAQM,IAAkB,KAAK,UAAU,CAAgB;CACvD,OACE,kBAAC,GAAD;EACE,GAAI;EACc;EAClB,KAAK;CAaO,GAXZ,kBAAC,GAAD;EAAqC;EAAU,GAAI;YACjD,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;GACS;GACM;GACC;GACG;GACP;EACX,CAAA,EACwB,CAAA;CACF,CAAA,CACf;AAElB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleQueryFacetPlotsCards.js","names":[],"sources":["../../../src/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.tsx"],"sourcesContent":["import { SynapseConstants } from '@/utils'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { chunk } from 'lodash-es'\nimport {\n QueryVisualizationContextType,\n QueryVisualizationWrapper,\n} from '../QueryVisualizationWrapper'\nimport { QueryWrapper } from '../QueryWrapper'\nimport { QueryWrapperErrorBoundary } from '../QueryWrapperErrorBoundary'\nimport FacetPlotsCard, { FacetPlotsCardProps } from './FacetPlotsCard'\nimport { FacetPlotsCardGridContainer } from './FacetPlotsCardGrid'\nimport { CARDS_PER_ROW } from './FeaturedDataTabsUtils'\n\nexport type SingleQueryFacetPlotsCardsProps = {\n rgbIndex?: number\n facetsToPlot?: string[]\n columnAliases?: Record<string, string>\n sql?: string\n} & Pick<QueryVisualizationContextType, 'unitDescription'> &\n Pick<FacetPlotsCardProps, 'plotType'>\n\nfunction getQueryRequest(sql: string): QueryBundleRequest {\n const entityId = parseEntityIdFromSqlStatement(sql)\n return {\n entityId,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_COLUMN_MODELS |\n SynapseConstants.BUNDLE_MASK_QUERY_FACETS,\n query: {\n sql,\n offset: 0,\n limit: 1,\n },\n }\n}\n\nfunction SingleQueryFacetPlotsCards(props: SingleQueryFacetPlotsCardsProps) {\n const {\n sql,\n facetsToPlot,\n rgbIndex,\n columnAliases,\n unitDescription,\n plotType,\n } = props\n const initQueryRequest: QueryBundleRequest = getQueryRequest(sql!)\n\n /**\n * Fully re-render the uncontrolled QueryWrapper component when the initial query changes. This eliminates a class of\n * bugs where our 'derived' state (the current query), which should be reset, is out of sync with props.\n *\n * See https://legacy.reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html#recommendation-fully-uncontrolled-component-with-a-key\n */\n const queryWrapperKey = JSON.stringify(initQueryRequest)\n\n return (\n <QueryWrapper initQueryRequest={initQueryRequest} key={queryWrapperKey}>\n <QueryVisualizationWrapper\n rgbIndex={rgbIndex}\n columnAliases={columnAliases}\n unitDescription={unitDescription}\n >\n <QueryWrapperErrorBoundary>\n {chunk(facetsToPlot, CARDS_PER_ROW).map((facets, rowIndex) => {\n return (\n <FacetPlotsCardGridContainer\n key={rowIndex}\n className={`FeaturedDataPlots__queryPerCard`}\n sx={{\n my: 4,\n }}\n >\n {facets?.map(facetName => {\n return (\n <FacetPlotsCard\n key={facetName}\n facetsToPlot={[facetName]}\n plotType={plotType}\n />\n )\n })}\n </FacetPlotsCardGridContainer>\n )\n })}\n </QueryWrapperErrorBoundary>\n </QueryVisualizationWrapper>\n </QueryWrapper>\n )\n}\n\nexport default SingleQueryFacetPlotsCards\n"],"mappings":";;;;;;;;;;;;;;;AAsBA,SAAS,EAAgB,GAAiC;
|
|
1
|
+
{"version":3,"file":"SingleQueryFacetPlotsCards.js","names":[],"sources":["../../../src/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.tsx"],"sourcesContent":["import { SynapseConstants } from '@/utils'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { chunk } from 'lodash-es'\nimport {\n QueryVisualizationContextType,\n QueryVisualizationWrapper,\n} from '../QueryVisualizationWrapper'\nimport { QueryWrapper } from '../QueryWrapper'\nimport { QueryWrapperErrorBoundary } from '../QueryWrapperErrorBoundary'\nimport FacetPlotsCard, { FacetPlotsCardProps } from './FacetPlotsCard'\nimport { FacetPlotsCardGridContainer } from './FacetPlotsCardGrid'\nimport { CARDS_PER_ROW } from './FeaturedDataTabsUtils'\n\nexport type SingleQueryFacetPlotsCardsProps = {\n rgbIndex?: number\n facetsToPlot?: string[]\n columnAliases?: Record<string, string>\n sql?: string\n} & Pick<QueryVisualizationContextType, 'unitDescription'> &\n Pick<FacetPlotsCardProps, 'plotType'>\n\nfunction getQueryRequest(sql: string): QueryBundleRequest {\n const entityId = parseEntityIdFromSqlStatement(sql)\n return {\n entityId,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_COLUMN_MODELS |\n SynapseConstants.BUNDLE_MASK_QUERY_FACETS,\n query: {\n sql,\n offset: 0,\n limit: 1,\n },\n }\n}\n\nfunction SingleQueryFacetPlotsCards(props: SingleQueryFacetPlotsCardsProps) {\n const {\n sql,\n facetsToPlot,\n rgbIndex,\n columnAliases,\n unitDescription,\n plotType,\n } = props\n const initQueryRequest: QueryBundleRequest = getQueryRequest(sql!)\n\n /**\n * Fully re-render the uncontrolled QueryWrapper component when the initial query changes. This eliminates a class of\n * bugs where our 'derived' state (the current query), which should be reset, is out of sync with props.\n *\n * See https://legacy.reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html#recommendation-fully-uncontrolled-component-with-a-key\n */\n const queryWrapperKey = JSON.stringify(initQueryRequest)\n\n return (\n <QueryWrapper initQueryRequest={initQueryRequest} key={queryWrapperKey}>\n <QueryVisualizationWrapper\n rgbIndex={rgbIndex}\n columnAliases={columnAliases}\n unitDescription={unitDescription}\n >\n <QueryWrapperErrorBoundary>\n {chunk(facetsToPlot, CARDS_PER_ROW).map((facets, rowIndex) => {\n return (\n <FacetPlotsCardGridContainer\n key={rowIndex}\n className={`FeaturedDataPlots__queryPerCard`}\n sx={{\n my: 4,\n }}\n >\n {facets?.map(facetName => {\n return (\n <FacetPlotsCard\n key={facetName}\n facetsToPlot={[facetName]}\n plotType={plotType}\n />\n )\n })}\n </FacetPlotsCardGridContainer>\n )\n })}\n </QueryWrapperErrorBoundary>\n </QueryVisualizationWrapper>\n </QueryWrapper>\n )\n}\n\nexport default SingleQueryFacetPlotsCards\n"],"mappings":";;;;;;;;;;;;;;;AAsBA,SAAS,EAAgB,GAAiC;CAExD,OAAO;EACL,UAFe,EAA8B,CAE7C;EACA,cAAc;EACd,UACE;EAEF,OAAO;GACL;GACA,QAAQ;GACR,OAAO;EACT;CACF;AACF;AAEA,SAAS,EAA2B,GAAwC;CAC1E,IAAM,EACJ,QACA,iBACA,aACA,kBACA,oBACA,gBACE,GACE,IAAuC,EAAgB,CAAI,GAQ3D,IAAkB,KAAK,UAAU,CAAgB;CAEvD,OACE,kBAAC,GAAD;EAAgC;YAC9B,kBAAC,GAAD;GACY;GACK;GACE;aAEjB,kBAAC,GAAD,EAAA,UACG,EAAM,GAAA,CAA2B,EAAE,KAAK,GAAQ,MAE7C,kBAAC,GAAD;IAEE,WAAW;IACX,IAAI,EACF,IAAI,EACN;cAEC,GAAQ,KAAI,MAET,kBAAC,GAAD;KAEE,cAAc,CAAC,CAAS;KACd;IACX,GAHM,CAGN,CAEJ;GAC0B,GAftB,CAesB,CAEhC,EACwB,CAAA;EACF,CAAA;CACf,GA9ByC,CA8BzC;AAElB"}
|
|
@@ -147,9 +147,7 @@ function b(r) {
|
|
|
147
147
|
concreteType: "org.sagebionetworks.repo.model.table.QueryBundleRequest",
|
|
148
148
|
entityId: s,
|
|
149
149
|
query: { sql: a }
|
|
150
|
-
}), u = c?.queryResult.queryResults.rows ?? [], f = /* @__PURE__ */
|
|
151
|
-
return e.TITLE = "title", e.DESCRIPTION = "description", e.PUBLICATION_DATE = "publicationDate", e.IMAGE = "image", e.LINK = "link", e;
|
|
152
|
-
}({}), h = t(f.TITLE, c), g = t(f.DESCRIPTION, c), _ = t(f.PUBLICATION_DATE, c), b = t(f.IMAGE, c), x = t(f.LINK, c), S = u[0], C = u.slice(1), w = /* @__PURE__ */ p(i, {
|
|
150
|
+
}), u = c?.queryResult.queryResults.rows ?? [], f = t("title", c), h = t("description", c), g = t("publicationDate", c), _ = t("image", c), b = t("link", c), x = u[0], S = u.slice(1), C = /* @__PURE__ */ p(i, {
|
|
153
151
|
title: "Featured Research",
|
|
154
152
|
sx: { h2: {
|
|
155
153
|
fontSize: "24px",
|
|
@@ -176,35 +174,35 @@ function b(r) {
|
|
|
176
174
|
children: [
|
|
177
175
|
/* @__PURE__ */ p(o, {
|
|
178
176
|
sx: { display: { md: "none" } },
|
|
179
|
-
children:
|
|
177
|
+
children: C
|
|
180
178
|
}),
|
|
181
|
-
/* @__PURE__ */ p(o, { children:
|
|
179
|
+
/* @__PURE__ */ p(o, { children: x && /* @__PURE__ */ p(y, {
|
|
182
180
|
entityId: s,
|
|
183
|
-
research:
|
|
184
|
-
titleColIndex:
|
|
181
|
+
research: x,
|
|
182
|
+
titleColIndex: f,
|
|
185
183
|
isLoading: l,
|
|
186
|
-
descriptionColIndex:
|
|
187
|
-
publicationDateColIndex:
|
|
188
|
-
imageColIndex:
|
|
189
|
-
linkColIndex:
|
|
184
|
+
descriptionColIndex: h,
|
|
185
|
+
publicationDateColIndex: g,
|
|
186
|
+
imageColIndex: _,
|
|
187
|
+
linkColIndex: b
|
|
190
188
|
}) }),
|
|
191
189
|
/* @__PURE__ */ m(d, { children: [/* @__PURE__ */ p(o, {
|
|
192
190
|
sx: { display: {
|
|
193
191
|
xs: "none",
|
|
194
192
|
md: "block"
|
|
195
193
|
} },
|
|
196
|
-
children:
|
|
194
|
+
children: C
|
|
197
195
|
}), /* @__PURE__ */ p(d, {
|
|
198
196
|
sx: { gap: "16px" },
|
|
199
|
-
children:
|
|
197
|
+
children: S.map((e, t) => /* @__PURE__ */ p(v, {
|
|
200
198
|
entityId: s,
|
|
201
199
|
research: e,
|
|
202
200
|
isLoading: l,
|
|
203
|
-
titleColIndex:
|
|
204
|
-
descriptionColIndex:
|
|
205
|
-
publicationDateColIndex:
|
|
206
|
-
imageColIndex:
|
|
207
|
-
linkColIndex:
|
|
201
|
+
titleColIndex: f,
|
|
202
|
+
descriptionColIndex: h,
|
|
203
|
+
publicationDateColIndex: g,
|
|
204
|
+
imageColIndex: _,
|
|
205
|
+
linkColIndex: b
|
|
208
206
|
}, t))
|
|
209
207
|
})] })
|
|
210
208
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeaturedResearch.js","names":[],"sources":["../../../src/components/FeaturedResearch/FeaturedResearch.tsx"],"sourcesContent":["import React from 'react'\nimport useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport { useImageUrl } from '@/utils/hooks/useImageUrlUtils'\nimport * as SynapseConstants from '@/utils/SynapseConstants'\nimport {\n Box,\n CardMedia,\n Fade,\n Link,\n Skeleton,\n Stack,\n Typography,\n} from '@mui/material'\nimport { QueryBundleRequest, Row } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport { useInView } from 'react-intersection-observer'\nimport PortalSectionHeader from '../PortalSectionHeader'\n\nconst transitionTimeoutMs = 400\n\nexport type FeaturedResearchProps = {\n sql: string\n}\n\nexport type FeaturedResearchCardProps = {\n research: Row\n entityId: string\n isLoading: boolean\n publicationDateColIndex: number\n titleColIndex: number\n descriptionColIndex: number\n linkColIndex: number\n imageColIndex: number\n}\n\nconst FeaturedResearchCard = ({\n research,\n entityId,\n publicationDateColIndex,\n titleColIndex,\n linkColIndex,\n imageColIndex,\n isLoading,\n}: FeaturedResearchCardProps): React.ReactNode => {\n const fileId = research.values[imageColIndex] ?? ''\n const url = useImageUrl(fileId ?? '', entityId)\n if (isLoading) {\n return <Skeleton variant=\"rectangular\" height={142} width=\"100%\" />\n }\n return (\n <Box\n sx={{\n display: 'flex',\n gap: '30px',\n borderBottom: '1px solid',\n padding: '24px 0',\n borderColor: 'grey.300',\n flexDirection: {\n xs: 'column',\n sm: 'row',\n },\n }}\n >\n <Stack\n useFlexGap\n sx={{\n gap: '10px',\n }}\n >\n <Typography\n variant=\"headline2\"\n sx={{\n color: 'gray.1000',\n fontSize: '21px',\n }}\n >\n <Link\n href={research.values[linkColIndex] ?? ''}\n target=\"_blank\"\n sx={{\n color: 'grey.1000',\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'none',\n },\n }}\n >\n {research.values[titleColIndex]}\n </Link>\n </Typography>\n <Typography\n sx={{\n lineHeight: 'normal',\n color: 'grey.600',\n }}\n >\n {research.values[publicationDateColIndex] &&\n formatDate(\n dayjs(Number(research.values[publicationDateColIndex])),\n 'MMMM, YYYY',\n )}\n </Typography>\n </Stack>\n <CardMedia\n component=\"img\"\n image={url}\n aria-hidden=\"true\"\n sx={{\n flexShrink: 0,\n width: '140px',\n height: '93.8px',\n borderRadius: '6px',\n objectFit: 'cover',\n marginLeft: { xs: 'initial', sm: 'auto' },\n }}\n />\n </Box>\n )\n}\n\nconst FeaturedResearchTopCard = ({\n research,\n entityId,\n titleColIndex,\n descriptionColIndex,\n linkColIndex,\n imageColIndex,\n isLoading,\n}: FeaturedResearchCardProps): React.ReactNode => {\n const [ref, inView] = useInView({ threshold: 0.3, triggerOnce: true })\n const fileId = research.values[imageColIndex] ?? ''\n const url = useImageUrl(fileId || '', entityId)\n if (isLoading) {\n return (\n <Skeleton\n variant=\"rectangular\"\n width=\"100%\"\n sx={{\n height: { xs: '250px', sm: '500px', md: '600px', lg: '800px' },\n }}\n />\n )\n }\n return (\n <Box ref={ref}>\n <Fade in={inView} timeout={transitionTimeoutMs}>\n <CardMedia\n component=\"img\"\n image={url}\n aria-hidden=\"true\"\n sx={{\n objectFit: 'cover',\n borderRadius: '10px',\n marginBottom: '30px',\n }}\n />\n </Fade>\n <Stack\n useFlexGap\n sx={{\n gap: '16px',\n }}\n >\n <Typography\n variant=\"headline2\"\n sx={{ color: 'grey.1000', fontSize: { xs: '24px', md: '36px' } }}\n >\n <Link\n href={research.values[linkColIndex] ?? ''}\n target=\"_blank\"\n sx={{\n color: 'grey.1000',\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'none',\n },\n }}\n >\n {research.values[titleColIndex]}\n </Link>\n </Typography>\n <Typography\n sx={{\n fontSize: '18px',\n lineHeight: '22.4px',\n }}\n >\n {research.values[descriptionColIndex] ?? ''}\n </Typography>\n <Link href={research.values[linkColIndex] ?? ''} target={'_blank'}>\n Read more\n </Link>\n </Stack>\n </Box>\n )\n}\n\nfunction FeaturedResearch(props: FeaturedResearchProps) {\n const { sql } = props\n\n const entityId = parseEntityIdFromSqlStatement(sql)\n\n const queryBundleRequest: QueryBundleRequest = {\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n query: {\n sql,\n },\n }\n const { data: queryResultBundle, isLoading } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const dataRows = queryResultBundle?.queryResult!.queryResults.rows ?? []\n\n enum ExpectedColumns {\n TITLE = 'title',\n DESCRIPTION = 'description',\n PUBLICATION_DATE = 'publicationDate',\n IMAGE = 'image',\n LINK = 'link',\n }\n\n const titleColIndex = getFieldIndex(ExpectedColumns.TITLE, queryResultBundle)\n const descriptionColIndex = getFieldIndex(\n ExpectedColumns.DESCRIPTION,\n queryResultBundle,\n )\n const publicationDateColIndex = getFieldIndex(\n ExpectedColumns.PUBLICATION_DATE,\n queryResultBundle,\n )\n const imageColIndex = getFieldIndex(ExpectedColumns.IMAGE, queryResultBundle)\n const linkColIndex = getFieldIndex(ExpectedColumns.LINK, queryResultBundle)\n\n const topCard = dataRows[0]\n const remainingCards = dataRows.slice(1)\n\n const featuredResearchHeader = (\n <PortalSectionHeader\n title=\"Featured Research\"\n sx={{\n h2: { fontSize: '24px', paddingBottom: 0, width: '100%' },\n }}\n />\n )\n\n return (\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: { xs: '1fr', md: '1fr 1fr' },\n gap: { xs: '30px', md: '40px' },\n padding: { xs: '40px', lg: '80px' },\n }}\n >\n <Box sx={{ display: { md: 'none' } }}>{featuredResearchHeader}</Box>\n <Box>\n {topCard && (\n <FeaturedResearchTopCard\n entityId={entityId}\n research={topCard}\n titleColIndex={titleColIndex}\n isLoading={isLoading}\n descriptionColIndex={descriptionColIndex}\n publicationDateColIndex={publicationDateColIndex}\n imageColIndex={imageColIndex}\n linkColIndex={linkColIndex}\n />\n )}\n </Box>\n <Stack>\n <Box sx={{ display: { xs: 'none', md: 'block' } }}>\n {featuredResearchHeader}\n </Box>\n <Stack\n sx={{\n gap: '16px',\n }}\n >\n {remainingCards.map((research, index) => (\n <FeaturedResearchCard\n entityId={entityId}\n research={research}\n key={index}\n isLoading={isLoading}\n titleColIndex={titleColIndex}\n descriptionColIndex={descriptionColIndex}\n publicationDateColIndex={publicationDateColIndex}\n imageColIndex={imageColIndex}\n linkColIndex={linkColIndex}\n />\n ))}\n </Stack>\n </Stack>\n </Box>\n )\n}\n\nexport default FeaturedResearch\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FeaturedResearch.js","names":[],"sources":["../../../src/components/FeaturedResearch/FeaturedResearch.tsx"],"sourcesContent":["import React from 'react'\nimport useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport { useImageUrl } from '@/utils/hooks/useImageUrlUtils'\nimport * as SynapseConstants from '@/utils/SynapseConstants'\nimport {\n Box,\n CardMedia,\n Fade,\n Link,\n Skeleton,\n Stack,\n Typography,\n} from '@mui/material'\nimport { QueryBundleRequest, Row } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport { useInView } from 'react-intersection-observer'\nimport PortalSectionHeader from '../PortalSectionHeader'\n\nconst transitionTimeoutMs = 400\n\nexport type FeaturedResearchProps = {\n sql: string\n}\n\nexport type FeaturedResearchCardProps = {\n research: Row\n entityId: string\n isLoading: boolean\n publicationDateColIndex: number\n titleColIndex: number\n descriptionColIndex: number\n linkColIndex: number\n imageColIndex: number\n}\n\nconst FeaturedResearchCard = ({\n research,\n entityId,\n publicationDateColIndex,\n titleColIndex,\n linkColIndex,\n imageColIndex,\n isLoading,\n}: FeaturedResearchCardProps): React.ReactNode => {\n const fileId = research.values[imageColIndex] ?? ''\n const url = useImageUrl(fileId ?? '', entityId)\n if (isLoading) {\n return <Skeleton variant=\"rectangular\" height={142} width=\"100%\" />\n }\n return (\n <Box\n sx={{\n display: 'flex',\n gap: '30px',\n borderBottom: '1px solid',\n padding: '24px 0',\n borderColor: 'grey.300',\n flexDirection: {\n xs: 'column',\n sm: 'row',\n },\n }}\n >\n <Stack\n useFlexGap\n sx={{\n gap: '10px',\n }}\n >\n <Typography\n variant=\"headline2\"\n sx={{\n color: 'gray.1000',\n fontSize: '21px',\n }}\n >\n <Link\n href={research.values[linkColIndex] ?? ''}\n target=\"_blank\"\n sx={{\n color: 'grey.1000',\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'none',\n },\n }}\n >\n {research.values[titleColIndex]}\n </Link>\n </Typography>\n <Typography\n sx={{\n lineHeight: 'normal',\n color: 'grey.600',\n }}\n >\n {research.values[publicationDateColIndex] &&\n formatDate(\n dayjs(Number(research.values[publicationDateColIndex])),\n 'MMMM, YYYY',\n )}\n </Typography>\n </Stack>\n <CardMedia\n component=\"img\"\n image={url}\n aria-hidden=\"true\"\n sx={{\n flexShrink: 0,\n width: '140px',\n height: '93.8px',\n borderRadius: '6px',\n objectFit: 'cover',\n marginLeft: { xs: 'initial', sm: 'auto' },\n }}\n />\n </Box>\n )\n}\n\nconst FeaturedResearchTopCard = ({\n research,\n entityId,\n titleColIndex,\n descriptionColIndex,\n linkColIndex,\n imageColIndex,\n isLoading,\n}: FeaturedResearchCardProps): React.ReactNode => {\n const [ref, inView] = useInView({ threshold: 0.3, triggerOnce: true })\n const fileId = research.values[imageColIndex] ?? ''\n const url = useImageUrl(fileId || '', entityId)\n if (isLoading) {\n return (\n <Skeleton\n variant=\"rectangular\"\n width=\"100%\"\n sx={{\n height: { xs: '250px', sm: '500px', md: '600px', lg: '800px' },\n }}\n />\n )\n }\n return (\n <Box ref={ref}>\n <Fade in={inView} timeout={transitionTimeoutMs}>\n <CardMedia\n component=\"img\"\n image={url}\n aria-hidden=\"true\"\n sx={{\n objectFit: 'cover',\n borderRadius: '10px',\n marginBottom: '30px',\n }}\n />\n </Fade>\n <Stack\n useFlexGap\n sx={{\n gap: '16px',\n }}\n >\n <Typography\n variant=\"headline2\"\n sx={{ color: 'grey.1000', fontSize: { xs: '24px', md: '36px' } }}\n >\n <Link\n href={research.values[linkColIndex] ?? ''}\n target=\"_blank\"\n sx={{\n color: 'grey.1000',\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'none',\n },\n }}\n >\n {research.values[titleColIndex]}\n </Link>\n </Typography>\n <Typography\n sx={{\n fontSize: '18px',\n lineHeight: '22.4px',\n }}\n >\n {research.values[descriptionColIndex] ?? ''}\n </Typography>\n <Link href={research.values[linkColIndex] ?? ''} target={'_blank'}>\n Read more\n </Link>\n </Stack>\n </Box>\n )\n}\n\nfunction FeaturedResearch(props: FeaturedResearchProps) {\n const { sql } = props\n\n const entityId = parseEntityIdFromSqlStatement(sql)\n\n const queryBundleRequest: QueryBundleRequest = {\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n query: {\n sql,\n },\n }\n const { data: queryResultBundle, isLoading } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const dataRows = queryResultBundle?.queryResult!.queryResults.rows ?? []\n\n enum ExpectedColumns {\n TITLE = 'title',\n DESCRIPTION = 'description',\n PUBLICATION_DATE = 'publicationDate',\n IMAGE = 'image',\n LINK = 'link',\n }\n\n const titleColIndex = getFieldIndex(ExpectedColumns.TITLE, queryResultBundle)\n const descriptionColIndex = getFieldIndex(\n ExpectedColumns.DESCRIPTION,\n queryResultBundle,\n )\n const publicationDateColIndex = getFieldIndex(\n ExpectedColumns.PUBLICATION_DATE,\n queryResultBundle,\n )\n const imageColIndex = getFieldIndex(ExpectedColumns.IMAGE, queryResultBundle)\n const linkColIndex = getFieldIndex(ExpectedColumns.LINK, queryResultBundle)\n\n const topCard = dataRows[0]\n const remainingCards = dataRows.slice(1)\n\n const featuredResearchHeader = (\n <PortalSectionHeader\n title=\"Featured Research\"\n sx={{\n h2: { fontSize: '24px', paddingBottom: 0, width: '100%' },\n }}\n />\n )\n\n return (\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: { xs: '1fr', md: '1fr 1fr' },\n gap: { xs: '30px', md: '40px' },\n padding: { xs: '40px', lg: '80px' },\n }}\n >\n <Box sx={{ display: { md: 'none' } }}>{featuredResearchHeader}</Box>\n <Box>\n {topCard && (\n <FeaturedResearchTopCard\n entityId={entityId}\n research={topCard}\n titleColIndex={titleColIndex}\n isLoading={isLoading}\n descriptionColIndex={descriptionColIndex}\n publicationDateColIndex={publicationDateColIndex}\n imageColIndex={imageColIndex}\n linkColIndex={linkColIndex}\n />\n )}\n </Box>\n <Stack>\n <Box sx={{ display: { xs: 'none', md: 'block' } }}>\n {featuredResearchHeader}\n </Box>\n <Stack\n sx={{\n gap: '16px',\n }}\n >\n {remainingCards.map((research, index) => (\n <FeaturedResearchCard\n entityId={entityId}\n research={research}\n key={index}\n isLoading={isLoading}\n titleColIndex={titleColIndex}\n descriptionColIndex={descriptionColIndex}\n publicationDateColIndex={publicationDateColIndex}\n imageColIndex={imageColIndex}\n linkColIndex={linkColIndex}\n />\n ))}\n </Stack>\n </Stack>\n </Box>\n )\n}\n\nexport default FeaturedResearch\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeaturedToolCard.js","names":[],"sources":["../../../src/components/FeaturedToolsList/FeaturedToolCard.tsx"],"sourcesContent":["import { formatDate } from '@/utils/functions/DateFormatter'\nimport dayjs from 'dayjs'\nimport { HTMLAttributes } from 'react'\nimport ShowMore from '../ShowMore'\n\nexport type FeaturedToolCardProps = {\n id: string\n name: string\n description: string\n type: string\n date?: string\n toolDetailPageURL?: string\n url?: string\n}\n\nexport function FeaturedToolCard({\n id,\n name,\n description,\n type,\n toolDetailPageURL,\n date,\n url,\n ...domProps\n}: FeaturedToolCardProps & HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n {...domProps}\n className={`cardContainer FeaturedToolCard ${domProps.className ?? ''}`}\n >\n <div className=\"FeaturedToolCard__Type\">\n <span className=\"SRC-tag\">{type}</span>\n </div>\n {date && (\n <div className=\"FeaturedToolCard__Date\">\n {formatDate(dayjs(parseInt(date)), 'MMMM YYYY')}\n </div>\n )}\n <div className=\"FeaturedToolCard__Name\">{name}</div>\n <div className=\"FeaturedToolCard__Description\">\n <ShowMore summary={description} />\n </div>\n <a\n className=\"FeaturedToolCard__Link\"\n href={toolDetailPageURL ? `${toolDetailPageURL}${id}` : url}\n >\n View Tool\n </a>\n </div>\n )\n}\n"],"mappings":";;;;;AAeA,SAAgB,EAAiB,EAC/B,OACA,SACA,gBACA,SACA,sBACA,SACA,QACA,GAAG,KACsD;
|
|
1
|
+
{"version":3,"file":"FeaturedToolCard.js","names":[],"sources":["../../../src/components/FeaturedToolsList/FeaturedToolCard.tsx"],"sourcesContent":["import { formatDate } from '@/utils/functions/DateFormatter'\nimport dayjs from 'dayjs'\nimport { HTMLAttributes } from 'react'\nimport ShowMore from '../ShowMore'\n\nexport type FeaturedToolCardProps = {\n id: string\n name: string\n description: string\n type: string\n date?: string\n toolDetailPageURL?: string\n url?: string\n}\n\nexport function FeaturedToolCard({\n id,\n name,\n description,\n type,\n toolDetailPageURL,\n date,\n url,\n ...domProps\n}: FeaturedToolCardProps & HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n {...domProps}\n className={`cardContainer FeaturedToolCard ${domProps.className ?? ''}`}\n >\n <div className=\"FeaturedToolCard__Type\">\n <span className=\"SRC-tag\">{type}</span>\n </div>\n {date && (\n <div className=\"FeaturedToolCard__Date\">\n {formatDate(dayjs(parseInt(date)), 'MMMM YYYY')}\n </div>\n )}\n <div className=\"FeaturedToolCard__Name\">{name}</div>\n <div className=\"FeaturedToolCard__Description\">\n <ShowMore summary={description} />\n </div>\n <a\n className=\"FeaturedToolCard__Link\"\n href={toolDetailPageURL ? `${toolDetailPageURL}${id}` : url}\n >\n View Tool\n </a>\n </div>\n )\n}\n"],"mappings":";;;;;AAeA,SAAgB,EAAiB,EAC/B,OACA,SACA,gBACA,SACA,sBACA,SACA,QACA,GAAG,KACsD;CACzD,OACE,kBAAC,OAAD;EACE,GAAI;EACJ,WAAW,kCAAkC,EAAS,aAAa;YAFrE;GAIE,kBAAC,OAAD;IAAK,WAAU;cACb,kBAAC,QAAD;KAAM,WAAU;eAAW;IAAW,CAAA;GACnC,CAAA;GACJ,KACC,kBAAC,OAAD;IAAK,WAAU;cACZ,EAAW,EAAM,SAAS,CAAI,CAAC,GAAG,WAAW;GAC3C,CAAA;GAEP,kBAAC,OAAD;IAAK,WAAU;cAA0B;GAAU,CAAA;GACnD,kBAAC,OAAD;IAAK,WAAU;cACb,kBAAC,GAAD,EAAU,SAAS,EAAc,CAAA;GAC9B,CAAA;GACL,kBAAC,KAAD;IACE,WAAU;IACV,MAAM,IAAoB,GAAG,IAAoB,MAAO;cACzD;GAEE,CAAA;EACA;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeaturedToolsList.js","names":[],"sources":["../../../src/components/FeaturedToolsList/FeaturedToolsList.tsx"],"sourcesContent":["import useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { SynapseConstants } from '@/utils'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { useEffect, useState } from 'react'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport { FeaturedToolCard } from './FeaturedToolCard'\n\nexport type FeaturedToolsListProps = {\n entityId: string\n idColumnName: string\n nameColumnName: string\n descriptionColumnName: string\n typeColumnName: string\n dateColumnName?: string\n filterClause: string\n} & ( // for the link, either the toolDetailPageURL or the toolURLColumnName must be set\n | {\n toolDetailPageURL: string\n toolURLColumnName?: never\n }\n | {\n toolDetailPageURL?: never\n toolURLColumnName: string\n }\n)\n\ntype ToolData = {\n id: string\n name: string\n description: string\n type: string\n date?: string\n url?: string //set if URL is in toolURLColumnName, dynamic if pointing to a detail page\n}\n\n/**\n * Display a set of FeaturedToolCards (driven by a Table/View). Driven by the following annotations/column names:\n * 'id', 'name', 'type', and 'description'.\n */\nexport function FeaturedToolsList({\n entityId,\n toolDetailPageURL,\n toolURLColumnName,\n idColumnName = 'id',\n nameColumnName = 'name',\n descriptionColumnName = 'description',\n typeColumnName = 'type',\n dateColumnName,\n filterClause,\n}: FeaturedToolsListProps) {\n const sql = `SELECT * FROM ${entityId} ${filterClause} LIMIT 3`\n const queryBundleRequest: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS,\n query: {\n sql,\n },\n }\n\n const { accessToken } = useSynapseContext()\n const [tools, setTools] = useState<ToolData[]>([])\n const [error, setError] = useState<Error>()\n const { data: queryResultBundle, error: queryError } =\n useGetQueryResultBundle(queryBundleRequest)\n\n useEffect(() => {\n const getData = () => {\n try {\n const idIndex = getFieldIndex(idColumnName, queryResultBundle)\n const nameColumnIndex = getFieldIndex(nameColumnName, queryResultBundle)\n const typeColumnIndex = getFieldIndex(typeColumnName, queryResultBundle)\n const descriptionColumnIndex = getFieldIndex(\n descriptionColumnName,\n queryResultBundle,\n )\n const dateColumnIndex = getFieldIndex(dateColumnName, queryResultBundle)\n const toolURLColumnIndex = getFieldIndex(\n toolURLColumnName,\n queryResultBundle,\n )\n const tools: ToolData[] =\n queryResultBundle?.queryResult!.queryResults.rows.map(row => {\n if (row.values.some(value => value === null)) {\n console.warn('Row has null value(s)')\n }\n // Cast to string, assuming there are no null values\n const values = row.values as string[]\n return {\n name: values[nameColumnIndex],\n description: values[descriptionColumnIndex],\n type: values[typeColumnIndex],\n id: values[idIndex],\n date: dateColumnName ? values[dateColumnIndex] : undefined,\n url: toolURLColumnName ? values[toolURLColumnIndex] : undefined,\n }\n }) ?? []\n if (queryError) {\n throw queryError\n }\n if (tools.length === 0) {\n // wait for data to load\n return\n }\n\n setTools(tools)\n } catch (error) {\n console.error(error)\n setError(error)\n }\n }\n getData()\n }, [\n entityId,\n accessToken,\n queryResultBundle,\n queryError,\n idColumnName,\n nameColumnName,\n typeColumnName,\n descriptionColumnName,\n dateColumnName,\n ])\n return error ? (\n <ErrorBanner error={error}></ErrorBanner>\n ) : (\n <div className=\"FeaturedToolList\">\n {tools.map(tool => {\n return (\n <FeaturedToolCard\n key={tool.id}\n name={tool.name}\n type={tool.type}\n description={tool.description}\n id={tool.id}\n date={tool.date}\n toolDetailPageURL={toolDetailPageURL}\n url={tool.url}\n />\n )\n })}\n </div>\n )\n}\n\nexport default FeaturedToolsList\n"],"mappings":";;;;;;;;;;AAyCA,SAAgB,EAAkB,EAChC,aACA,sBACA,sBACA,kBAAe,MACf,oBAAiB,QACjB,2BAAwB,eACxB,oBAAiB,QACjB,mBACA,mBACyB;CAEzB,IAAM,IAAyC;EAC7C,cAAc;EACd;EACA,UACE;EAEF,OAAO,EACL,sBARyB,EAAS,GAAG,EAAa,
|
|
1
|
+
{"version":3,"file":"FeaturedToolsList.js","names":[],"sources":["../../../src/components/FeaturedToolsList/FeaturedToolsList.tsx"],"sourcesContent":["import useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { SynapseConstants } from '@/utils'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { useEffect, useState } from 'react'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport { FeaturedToolCard } from './FeaturedToolCard'\n\nexport type FeaturedToolsListProps = {\n entityId: string\n idColumnName: string\n nameColumnName: string\n descriptionColumnName: string\n typeColumnName: string\n dateColumnName?: string\n filterClause: string\n} & ( // for the link, either the toolDetailPageURL or the toolURLColumnName must be set\n | {\n toolDetailPageURL: string\n toolURLColumnName?: never\n }\n | {\n toolDetailPageURL?: never\n toolURLColumnName: string\n }\n)\n\ntype ToolData = {\n id: string\n name: string\n description: string\n type: string\n date?: string\n url?: string //set if URL is in toolURLColumnName, dynamic if pointing to a detail page\n}\n\n/**\n * Display a set of FeaturedToolCards (driven by a Table/View). Driven by the following annotations/column names:\n * 'id', 'name', 'type', and 'description'.\n */\nexport function FeaturedToolsList({\n entityId,\n toolDetailPageURL,\n toolURLColumnName,\n idColumnName = 'id',\n nameColumnName = 'name',\n descriptionColumnName = 'description',\n typeColumnName = 'type',\n dateColumnName,\n filterClause,\n}: FeaturedToolsListProps) {\n const sql = `SELECT * FROM ${entityId} ${filterClause} LIMIT 3`\n const queryBundleRequest: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS,\n query: {\n sql,\n },\n }\n\n const { accessToken } = useSynapseContext()\n const [tools, setTools] = useState<ToolData[]>([])\n const [error, setError] = useState<Error>()\n const { data: queryResultBundle, error: queryError } =\n useGetQueryResultBundle(queryBundleRequest)\n\n useEffect(() => {\n const getData = () => {\n try {\n const idIndex = getFieldIndex(idColumnName, queryResultBundle)\n const nameColumnIndex = getFieldIndex(nameColumnName, queryResultBundle)\n const typeColumnIndex = getFieldIndex(typeColumnName, queryResultBundle)\n const descriptionColumnIndex = getFieldIndex(\n descriptionColumnName,\n queryResultBundle,\n )\n const dateColumnIndex = getFieldIndex(dateColumnName, queryResultBundle)\n const toolURLColumnIndex = getFieldIndex(\n toolURLColumnName,\n queryResultBundle,\n )\n const tools: ToolData[] =\n queryResultBundle?.queryResult!.queryResults.rows.map(row => {\n if (row.values.some(value => value === null)) {\n console.warn('Row has null value(s)')\n }\n // Cast to string, assuming there are no null values\n const values = row.values as string[]\n return {\n name: values[nameColumnIndex],\n description: values[descriptionColumnIndex],\n type: values[typeColumnIndex],\n id: values[idIndex],\n date: dateColumnName ? values[dateColumnIndex] : undefined,\n url: toolURLColumnName ? values[toolURLColumnIndex] : undefined,\n }\n }) ?? []\n if (queryError) {\n throw queryError\n }\n if (tools.length === 0) {\n // wait for data to load\n return\n }\n\n setTools(tools)\n } catch (error) {\n console.error(error)\n setError(error)\n }\n }\n getData()\n }, [\n entityId,\n accessToken,\n queryResultBundle,\n queryError,\n idColumnName,\n nameColumnName,\n typeColumnName,\n descriptionColumnName,\n dateColumnName,\n ])\n return error ? (\n <ErrorBanner error={error}></ErrorBanner>\n ) : (\n <div className=\"FeaturedToolList\">\n {tools.map(tool => {\n return (\n <FeaturedToolCard\n key={tool.id}\n name={tool.name}\n type={tool.type}\n description={tool.description}\n id={tool.id}\n date={tool.date}\n toolDetailPageURL={toolDetailPageURL}\n url={tool.url}\n />\n )\n })}\n </div>\n )\n}\n\nexport default FeaturedToolsList\n"],"mappings":";;;;;;;;;;AAyCA,SAAgB,EAAkB,EAChC,aACA,sBACA,sBACA,kBAAe,MACf,oBAAiB,QACjB,2BAAwB,eACxB,oBAAiB,QACjB,mBACA,mBACyB;CAEzB,IAAM,IAAyC;EAC7C,cAAc;EACd;EACA,UACE;EAEF,OAAO,EACL,sBARyB,EAAS,GAAG,EAAa,UASpD;CACF,GAEM,EAAE,mBAAgB,EAAkB,GACpC,CAAC,GAAO,KAAY,EAAqB,CAAC,CAAC,GAC3C,CAAC,GAAO,KAAY,EAAgB,GACpC,EAAE,MAAM,GAAmB,OAAO,MACtC,EAAwB,CAAkB;CA2D5C,OAzDA,QAAgB;EA6Cd,OA5CsB;GACpB,IAAI;IACF,IAAM,IAAU,EAAc,GAAc,CAAiB,GACvD,IAAkB,EAAc,GAAgB,CAAiB,GACjE,IAAkB,EAAc,GAAgB,CAAiB,GACjE,IAAyB,EAC7B,GACA,CACF,GACM,IAAkB,EAAc,GAAgB,CAAiB,GACjE,IAAqB,EACzB,GACA,CACF,GACM,IACJ,GAAmB,YAAa,aAAa,KAAK,KAAI,MAAO;KAC3D,AAAI,EAAI,OAAO,MAAK,MAAS,MAAU,IAAI,KACzC,QAAQ,KAAK,uBAAuB;KAGtC,IAAM,IAAS,EAAI;KACnB,OAAO;MACL,MAAM,EAAO;MACb,aAAa,EAAO;MACpB,MAAM,EAAO;MACb,IAAI,EAAO;MACX,MAAM,IAAiB,EAAO,KAAmB,KAAA;MACjD,KAAK,IAAoB,EAAO,KAAsB,KAAA;KACxD;IACF,CAAC,KAAK,CAAC;IACT,IAAI,GACF,MAAM;IAER,IAAI,EAAM,WAAW,GAEnB;IAGF,EAAS,CAAK;GAChB,SAAS,GAAO;IAEd,AADA,QAAQ,MAAM,CAAK,GACnB,EAAS,CAAK;GAChB;EACF,GACQ;CACV,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,GACM,IACL,kBAAC,GAAD,EAAoB,SAAoB,CAAA,IAExC,kBAAC,OAAD;EAAK,WAAU;YACZ,EAAM,KAAI,MAEP,kBAAC,GAAD;GAEE,MAAM,EAAK;GACX,MAAM,EAAK;GACX,aAAa,EAAK;GAClB,IAAI,EAAK;GACT,MAAM,EAAK;GACQ;GACnB,KAAK,EAAK;EACX,GARM,EAAK,EAQX,CAEJ;CACE,CAAA;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityPreview.js","names":[],"sources":["../../../src/components/FilePreview/EntityPreview.tsx"],"sourcesContent":["import useGetEntityBundle from '@/synapse-queries/entity/useEntityBundle'\nimport { useResolveLinkEntity } from '@/utils/functions/ResolveLinkEntity'\nimport { isFileEntity } from '@/utils/types/IsType'\nimport {\n ALL_ENTITY_BUNDLE_FIELDS,\n FileEntity,\n} from '@sage-bionetworks/synapse-types'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport FileEntityPreview from './FileEntityPreview'\n\nexport type EntityPreviewProps = {\n entityId: string\n versionNumber?: number\n}\n\n/**\n * Returns a preview of an entity. Currently only works for FileEntities, and Links that resolve to FileEntities.\n * @param props\n * @returns\n */\nexport default function EntityPreview(props: EntityPreviewProps) {\n const { entityId, versionNumber } = props\n\n // If the entity is a Link, follow it until we get a non-link\n const { data: resolvedLink, isLoading: isLoadingLinkResolution } =\n useResolveLinkEntity(entityId, versionNumber)\n const isResolvedLinkFileEntity = resolvedLink && isFileEntity(resolvedLink)\n\n const { data: bundle, isLoading: isLoadingBundle } = useGetEntityBundle(\n resolvedLink?.id,\n (resolvedLink as FileEntity | undefined)?.versionNumber,\n ALL_ENTITY_BUNDLE_FIELDS,\n {\n enabled: !!isResolvedLinkFileEntity,\n throwOnError: true,\n },\n )\n\n const isLoading = isLoadingLinkResolution || isLoadingBundle\n\n if (isLoading) {\n return <SynapseSpinner />\n }\n\n // If the entity is NOT a FileEntity, throw an error\n if (!isResolvedLinkFileEntity) {\n throw new Error(`${entityId} is not a File and cannot be previewed.`)\n } else {\n return <FileEntityPreview bundle={bundle!} />\n }\n}\n"],"mappings":";;;;;;;;AAoBA,SAAwB,EAAc,GAA2B;CAC/D,IAAM,EAAE,aAAU,qBAAkB,GAG9B,EAAE,MAAM,GAAc,WAAW,MACrC,EAAqB,GAAU,
|
|
1
|
+
{"version":3,"file":"EntityPreview.js","names":[],"sources":["../../../src/components/FilePreview/EntityPreview.tsx"],"sourcesContent":["import useGetEntityBundle from '@/synapse-queries/entity/useEntityBundle'\nimport { useResolveLinkEntity } from '@/utils/functions/ResolveLinkEntity'\nimport { isFileEntity } from '@/utils/types/IsType'\nimport {\n ALL_ENTITY_BUNDLE_FIELDS,\n FileEntity,\n} from '@sage-bionetworks/synapse-types'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport FileEntityPreview from './FileEntityPreview'\n\nexport type EntityPreviewProps = {\n entityId: string\n versionNumber?: number\n}\n\n/**\n * Returns a preview of an entity. Currently only works for FileEntities, and Links that resolve to FileEntities.\n * @param props\n * @returns\n */\nexport default function EntityPreview(props: EntityPreviewProps) {\n const { entityId, versionNumber } = props\n\n // If the entity is a Link, follow it until we get a non-link\n const { data: resolvedLink, isLoading: isLoadingLinkResolution } =\n useResolveLinkEntity(entityId, versionNumber)\n const isResolvedLinkFileEntity = resolvedLink && isFileEntity(resolvedLink)\n\n const { data: bundle, isLoading: isLoadingBundle } = useGetEntityBundle(\n resolvedLink?.id,\n (resolvedLink as FileEntity | undefined)?.versionNumber,\n ALL_ENTITY_BUNDLE_FIELDS,\n {\n enabled: !!isResolvedLinkFileEntity,\n throwOnError: true,\n },\n )\n\n const isLoading = isLoadingLinkResolution || isLoadingBundle\n\n if (isLoading) {\n return <SynapseSpinner />\n }\n\n // If the entity is NOT a FileEntity, throw an error\n if (!isResolvedLinkFileEntity) {\n throw new Error(`${entityId} is not a File and cannot be previewed.`)\n } else {\n return <FileEntityPreview bundle={bundle!} />\n }\n}\n"],"mappings":";;;;;;;;AAoBA,SAAwB,EAAc,GAA2B;CAC/D,IAAM,EAAE,aAAU,qBAAkB,GAG9B,EAAE,MAAM,GAAc,WAAW,MACrC,EAAqB,GAAU,CAAa,GACxC,IAA2B,KAAgB,EAAa,CAAY,GAEpE,EAAE,MAAM,GAAQ,WAAW,MAAoB,EACnD,GAAc,IACb,GAAyC,eAC1C,GACA;EACE,SAAS,CAAC,CAAC;EACX,cAAc;CAChB,CACF;CAIA,IAFkB,KAA2B,GAG3C,OAAO,kBAAC,GAAD,CAAiB,CAAA;CAI1B,IAAK,GAGH,OAAO,kBAAC,GAAD,EAA2B,UAAU,CAAA;CAF5C,MAAU,MAAM,GAAG,EAAS,wCAAwC;AAIxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileEntityPreview.js","names":[],"sources":["../../../src/components/FilePreview/FileEntityPreview.tsx"],"sourcesContent":["import { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n implementsCloudProviderFileHandleInterface,\n isFileEntity,\n} from '@/utils/types/IsType'\nimport { Alert } from '@mui/material'\nimport {\n EntityBundle,\n FileHandleAssociateType,\n} from '@sage-bionetworks/synapse-types'\nimport { SignInPrompt } from '../error/ErrorBanner'\nimport FileHandleContentRenderer from './FileHandleContentRenderer'\nimport { PreviewRendererType } from './PreviewRendererType'\nimport {\n getOriginalFileHandleRenderer,\n getPreviewFileHandleRenderer,\n} from './PreviewUtils'\n\nexport type FileEntityPreviewProps = {\n /** An entity bundle containing a FileEntity, and its fileHandles */\n bundle: EntityBundle\n}\n\n/**\n * Given an entity bundle that contains a FileEntity, render a preview of the file. The rendered preview will be determined based on the\n * content type and file name of the file handle(s) associated with the FileEntity.\n * @param props\n */\nexport default function FileEntityPreview(props: FileEntityPreviewProps) {\n const { bundle } = props\n const { isAuthenticated } = useSynapseContext()\n\n if (!isFileEntity(bundle.entity)) {\n throw new Error(`Entity ${bundle.entity.id!} is not a FileEntity`)\n }\n\n /**\n * The dataFileHandle and the previewFileHandle may not have the same contentType.\n *\n * For example, ZIP files are assigned a CSV preview listing the ZIP file contents.\n */\n const dataFileHandleId = bundle.entity.dataFileHandleId\n const dataFileHandle = bundle.fileHandles.find(\n fh => fh.id === dataFileHandleId,\n )\n\n if (!dataFileHandle && !isAuthenticated) {\n // We may be previewing a file handle that the anonymous user cannot see. Prompt the user to log in.\n return (\n <Alert severity={'error'}>\n <SignInPrompt />\n </Alert>\n )\n }\n\n // If we can render the original file, do so:\n if (dataFileHandle) {\n const previewType = getOriginalFileHandleRenderer(dataFileHandle)\n if (previewType !== PreviewRendererType.NONE) {\n return (\n <FileHandleContentRenderer\n fileHandle={dataFileHandle}\n fileHandleAssociation={{\n fileHandleId: dataFileHandleId,\n associateObjectId: bundle.entity.id!,\n associateObjectType: FileHandleAssociateType.FileEntity,\n }}\n previewType={previewType}\n />\n )\n }\n }\n\n // Otherwise, see if we can render the preview file handle that Synapse created\n const previewFileHandle = bundle.fileHandles.find(\n fh => implementsCloudProviderFileHandleInterface(fh) && fh.isPreview,\n )\n\n if (previewFileHandle && dataFileHandle) {\n const previewType = getPreviewFileHandleRenderer(\n previewFileHandle,\n dataFileHandle,\n )\n if (previewType !== PreviewRendererType.NONE) {\n return (\n <FileHandleContentRenderer\n fileHandle={previewFileHandle}\n fileHandleAssociation={{\n fileHandleId: previewFileHandle.id,\n associateObjectId: bundle.entity.id!,\n associateObjectType: FileHandleAssociateType.FileEntity,\n }}\n previewType={previewType}\n />\n )\n }\n }\n\n // We can't render the file, so throw an Error so the ErrorBoundary will show an alert.\n throw new Error(`Could not render a preview for entity: ${bundle.entity.id!}`)\n}\n"],"mappings":";;;;;;;;;;AA4BA,SAAwB,EAAkB,GAA+B;CACvE,IAAM,EAAE,cAAW,GACb,EAAE,uBAAoB,
|
|
1
|
+
{"version":3,"file":"FileEntityPreview.js","names":[],"sources":["../../../src/components/FilePreview/FileEntityPreview.tsx"],"sourcesContent":["import { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n implementsCloudProviderFileHandleInterface,\n isFileEntity,\n} from '@/utils/types/IsType'\nimport { Alert } from '@mui/material'\nimport {\n EntityBundle,\n FileHandleAssociateType,\n} from '@sage-bionetworks/synapse-types'\nimport { SignInPrompt } from '../error/ErrorBanner'\nimport FileHandleContentRenderer from './FileHandleContentRenderer'\nimport { PreviewRendererType } from './PreviewRendererType'\nimport {\n getOriginalFileHandleRenderer,\n getPreviewFileHandleRenderer,\n} from './PreviewUtils'\n\nexport type FileEntityPreviewProps = {\n /** An entity bundle containing a FileEntity, and its fileHandles */\n bundle: EntityBundle\n}\n\n/**\n * Given an entity bundle that contains a FileEntity, render a preview of the file. The rendered preview will be determined based on the\n * content type and file name of the file handle(s) associated with the FileEntity.\n * @param props\n */\nexport default function FileEntityPreview(props: FileEntityPreviewProps) {\n const { bundle } = props\n const { isAuthenticated } = useSynapseContext()\n\n if (!isFileEntity(bundle.entity)) {\n throw new Error(`Entity ${bundle.entity.id!} is not a FileEntity`)\n }\n\n /**\n * The dataFileHandle and the previewFileHandle may not have the same contentType.\n *\n * For example, ZIP files are assigned a CSV preview listing the ZIP file contents.\n */\n const dataFileHandleId = bundle.entity.dataFileHandleId\n const dataFileHandle = bundle.fileHandles.find(\n fh => fh.id === dataFileHandleId,\n )\n\n if (!dataFileHandle && !isAuthenticated) {\n // We may be previewing a file handle that the anonymous user cannot see. Prompt the user to log in.\n return (\n <Alert severity={'error'}>\n <SignInPrompt />\n </Alert>\n )\n }\n\n // If we can render the original file, do so:\n if (dataFileHandle) {\n const previewType = getOriginalFileHandleRenderer(dataFileHandle)\n if (previewType !== PreviewRendererType.NONE) {\n return (\n <FileHandleContentRenderer\n fileHandle={dataFileHandle}\n fileHandleAssociation={{\n fileHandleId: dataFileHandleId,\n associateObjectId: bundle.entity.id!,\n associateObjectType: FileHandleAssociateType.FileEntity,\n }}\n previewType={previewType}\n />\n )\n }\n }\n\n // Otherwise, see if we can render the preview file handle that Synapse created\n const previewFileHandle = bundle.fileHandles.find(\n fh => implementsCloudProviderFileHandleInterface(fh) && fh.isPreview,\n )\n\n if (previewFileHandle && dataFileHandle) {\n const previewType = getPreviewFileHandleRenderer(\n previewFileHandle,\n dataFileHandle,\n )\n if (previewType !== PreviewRendererType.NONE) {\n return (\n <FileHandleContentRenderer\n fileHandle={previewFileHandle}\n fileHandleAssociation={{\n fileHandleId: previewFileHandle.id,\n associateObjectId: bundle.entity.id!,\n associateObjectType: FileHandleAssociateType.FileEntity,\n }}\n previewType={previewType}\n />\n )\n }\n }\n\n // We can't render the file, so throw an Error so the ErrorBoundary will show an alert.\n throw new Error(`Could not render a preview for entity: ${bundle.entity.id!}`)\n}\n"],"mappings":";;;;;;;;;;AA4BA,SAAwB,EAAkB,GAA+B;CACvE,IAAM,EAAE,cAAW,GACb,EAAE,uBAAoB,EAAkB;CAE9C,IAAI,CAAC,EAAa,EAAO,MAAM,GAC7B,MAAU,MAAM,UAAU,EAAO,OAAO,GAAI,qBAAqB;CAQnE,IAAM,IAAmB,EAAO,OAAO,kBACjC,IAAiB,EAAO,YAAY,MACxC,MAAM,EAAG,OAAO,CAClB;CAEA,IAAI,CAAC,KAAkB,CAAC,GAEtB,OACE,kBAAC,GAAD;EAAO,UAAU;YACf,kBAAC,GAAD,CAAe,CAAA;CACV,CAAA;CAKX,IAAI,GAAgB;EAClB,IAAM,IAAc,EAA8B,CAAc;EAChE,IAAI,MAAgB,EAAoB,MACtC,OACE,kBAAC,GAAD;GACE,YAAY;GACZ,uBAAuB;IACrB,cAAc;IACd,mBAAmB,EAAO,OAAO;IACjC,qBAAqB,EAAwB;GAC/C;GACa;EACd,CAAA;CAGP;CAGA,IAAM,IAAoB,EAAO,YAAY,MAC3C,MAAM,EAA2C,CAAE,KAAK,EAAG,SAC7D;CAEA,IAAI,KAAqB,GAAgB;EACvC,IAAM,IAAc,EAClB,GACA,CACF;EACA,IAAI,MAAgB,EAAoB,MACtC,OACE,kBAAC,GAAD;GACE,YAAY;GACZ,uBAAuB;IACrB,cAAc,EAAkB;IAChC,mBAAmB,EAAO,OAAO;IACjC,qBAAqB,EAAwB;GAC/C;GACa;EACd,CAAA;CAGP;CAGA,MAAU,MAAM,0CAA0C,EAAO,OAAO,IAAK;AAC/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileHandleContentRenderer.js","names":[],"sources":["../../../src/components/FilePreview/FileHandleContentRenderer.tsx"],"sourcesContent":["import { useGetPresignedUrlContent } from '@/synapse-queries/file/useFiles'\nimport { MB } from '@/utils/SynapseConstants'\nimport {\n BatchFileRequest,\n FileHandle,\n FileHandleAssociation,\n} from '@sage-bionetworks/synapse-types'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport HtmlPreview from './HtmlPreview/HtmlPreview'\nimport PdfPreview from './PdfPreview'\nimport { PreviewRendererType } from './PreviewRendererType'\n\nconst MAX_FILE_SIZE = 30 * MB\n\nexport type FileHandleContentRendererProps = {\n /** The file handle whose contents should be downloaded and rendered */\n fileHandle: FileHandle\n /** The association between the file handle and an object which will give the user permission to access the file data */\n fileHandleAssociation: FileHandleAssociation\n /** Informs how to render the file data */\n previewType: PreviewRendererType\n}\n\n/**\n * Fetches the content for and renders the contents of a file handle.\n * @param props\n * @returns\n */\nexport default function FileHandleContentRenderer(\n props: FileHandleContentRendererProps,\n) {\n const { fileHandle, fileHandleAssociation, previewType } = props\n\n const batchFileRequest: BatchFileRequest = {\n requestedFiles: [fileHandleAssociation],\n includePreSignedURLs: true,\n includeFileHandles: false,\n includePreviewPreSignedURLs: false,\n }\n\n const { data: content, isLoading } = useGetPresignedUrlContent(\n fileHandle,\n batchFileRequest,\n MAX_FILE_SIZE,\n { throwOnError: true },\n )\n\n if (isLoading) {\n return <SynapseSpinner />\n }\n if (previewType === PreviewRendererType.HTML) {\n return (\n <HtmlPreview rawHtml={content!} createdByUserId={fileHandle.createdBy} />\n )\n } else if (previewType === PreviewRendererType.PDF) {\n return (\n <PdfPreview\n fileHandle={fileHandle}\n fileHandleAssociation={fileHandleAssociation}\n />\n )\n } else {\n if (previewType !== PreviewRendererType.NONE) {\n console.warn(\n `Rendering a preview of type ${previewType} is not supported in Portals`,\n )\n }\n return <></>\n }\n}\n"],"mappings":";;;;;;;;AAYA,IAAM,IAAgB,KAAK;AAgB3B,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,eAAY,0BAAuB,mBAAgB,GASrD,EAAE,MAAM,GAAS,iBAAc,EACnC,GACA;EARA,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"FileHandleContentRenderer.js","names":[],"sources":["../../../src/components/FilePreview/FileHandleContentRenderer.tsx"],"sourcesContent":["import { useGetPresignedUrlContent } from '@/synapse-queries/file/useFiles'\nimport { MB } from '@/utils/SynapseConstants'\nimport {\n BatchFileRequest,\n FileHandle,\n FileHandleAssociation,\n} from '@sage-bionetworks/synapse-types'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport HtmlPreview from './HtmlPreview/HtmlPreview'\nimport PdfPreview from './PdfPreview'\nimport { PreviewRendererType } from './PreviewRendererType'\n\nconst MAX_FILE_SIZE = 30 * MB\n\nexport type FileHandleContentRendererProps = {\n /** The file handle whose contents should be downloaded and rendered */\n fileHandle: FileHandle\n /** The association between the file handle and an object which will give the user permission to access the file data */\n fileHandleAssociation: FileHandleAssociation\n /** Informs how to render the file data */\n previewType: PreviewRendererType\n}\n\n/**\n * Fetches the content for and renders the contents of a file handle.\n * @param props\n * @returns\n */\nexport default function FileHandleContentRenderer(\n props: FileHandleContentRendererProps,\n) {\n const { fileHandle, fileHandleAssociation, previewType } = props\n\n const batchFileRequest: BatchFileRequest = {\n requestedFiles: [fileHandleAssociation],\n includePreSignedURLs: true,\n includeFileHandles: false,\n includePreviewPreSignedURLs: false,\n }\n\n const { data: content, isLoading } = useGetPresignedUrlContent(\n fileHandle,\n batchFileRequest,\n MAX_FILE_SIZE,\n { throwOnError: true },\n )\n\n if (isLoading) {\n return <SynapseSpinner />\n }\n if (previewType === PreviewRendererType.HTML) {\n return (\n <HtmlPreview rawHtml={content!} createdByUserId={fileHandle.createdBy} />\n )\n } else if (previewType === PreviewRendererType.PDF) {\n return (\n <PdfPreview\n fileHandle={fileHandle}\n fileHandleAssociation={fileHandleAssociation}\n />\n )\n } else {\n if (previewType !== PreviewRendererType.NONE) {\n console.warn(\n `Rendering a preview of type ${previewType} is not supported in Portals`,\n )\n }\n return <></>\n }\n}\n"],"mappings":";;;;;;;;AAYA,IAAM,IAAgB,KAAK;AAgB3B,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,eAAY,0BAAuB,mBAAgB,GASrD,EAAE,MAAM,GAAS,iBAAc,EACnC,GACA;EARA,gBAAgB,CAAC,CAAqB;EACtC,sBAAsB;EACtB,oBAAoB;EACpB,6BAA6B;CAK7B,GACA,GACA,EAAE,cAAc,GAAK,CACvB;CAsBE,OApBE,IACK,kBAAC,GAAD,CAAiB,CAAA,IAEtB,MAAgB,EAAoB,OAEpC,kBAAC,GAAD;EAAa,SAAS;EAAU,iBAAiB,EAAW;CAAY,CAAA,IAEjE,MAAgB,EAAoB,MAE3C,kBAAC,GAAD;EACc;EACW;CACxB,CAAA,KAGC,MAAgB,EAAoB,QACtC,QAAQ,KACN,+BAA+B,EAAY,6BAC7C,GAEK,kBAAA,GAAA,CAAI,CAAA;AAEf"}
|