synapse-react-client 4.0.19 → 4.0.21
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/CardConfiguration.d.ts +2 -0
- package/dist/components/CardContainer/CardConfiguration.d.ts.map +1 -1
- package/dist/components/CardContainer/CardContainer.d.ts.map +1 -1
- package/dist/components/CardContainer/CardContainer.js +3 -3
- package/dist/components/CardContainer/CardContainer.js.map +1 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.d.ts +1 -0
- package/dist/components/CardContainerLogic/CardContainerLogic.d.ts.map +1 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Desktop.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.js.map +1 -1
- package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
- package/dist/components/CardGridWithLinks/CardGridWithLinks.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationAnswer.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
- package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
- package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js.map +1 -1
- package/dist/components/ChallengeRegisterButton/ChallengeRegisterButton.js.map +1 -1
- package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
- package/dist/components/ChallengeSubmission/AddExternalRepo.js.map +1 -1
- package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +62 -64
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionCommitList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamSearch.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +96 -102
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/OpenMembershipInvitation.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/RegistrationSuccessful.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
- package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
- package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopover.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
- package/dist/components/CitationPopover/useCitation.js.map +1 -1
- package/dist/components/ColorGradient/ColorGradient.js.map +1 -1
- package/dist/components/ColoredBulletListItem/ColoredBulletListItem.js.map +1 -1
- package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
- package/dist/components/ComponentCollapse.js.map +1 -1
- package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiePreferencesDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.d.ts.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.js +9 -9
- package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
- package/dist/components/CopyToClipboardIcon.js.map +1 -1
- package/dist/components/CopyToClipboardInput/CopyToClipboardInput.js.map +1 -1
- package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizardUtils.js.map +1 -1
- package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
- package/dist/components/CreateProjectModal/ProjectVisibilityRadioGroup.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableTypeSelection.js.map +1 -1
- package/dist/components/CreateTableViewWizard/ViewTypeSelection.js.map +1 -1
- package/dist/components/CrispChat/CrispChat.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.css +1 -1
- package/dist/components/DataExplorer/DataExplorer.js +28 -31
- package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.module.js +16 -16
- package/dist/components/DataExplorer/DataExplorer.module.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.module.scss +26 -6
- 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.d.ts +5 -3
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts.map +1 -1
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js +46 -47
- 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.d.ts.map +1 -1
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +3 -1
- 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.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js +1 -0
- 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.d.ts +2 -0
- package/dist/components/GenericCard/GenericCard.d.ts.map +1 -1
- package/dist/components/GenericCard/GenericCard.js +76 -64
- 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.d.ts.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js +33 -25
- 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.css +1 -0
- package/dist/components/Plot/SynapseSankeyPlot.d.ts +54 -0
- package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -0
- package/dist/components/Plot/SynapseSankeyPlot.js +359 -0
- package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -0
- package/dist/components/Plot/SynapseSankeyPlot.module.js +15 -0
- package/dist/components/Plot/SynapseSankeyPlot.module.js.map +1 -0
- package/dist/components/Plot/SynapseSankeyPlot.module.scss +63 -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.d.ts +13 -12
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +88 -77
- 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.d.ts.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +63 -74
- 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.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +72 -68
- 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.d.ts +27 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js +47 -36
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +10 -10
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.d.ts +12 -12
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.d.ts +4 -1
- package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.d.ts +167 -517
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js +65 -65
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.d.ts +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.d.ts.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.d.ts +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js +6 -13
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.d.ts +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.d.ts.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.d.ts +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js +2 -2
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.d.ts +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.d.ts +2 -2
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js +15 -16
- 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 +2 -2
- 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.d.ts +1 -1
- package/dist/mocks/msw/handlers/searchQueryHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/searchQueryHandlers.js +6 -3
- 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.d.ts +13 -0
- package/dist/mocks/query/mockUserCardTableQueryResultBundle.d.ts.map +1 -1
- package/dist/mocks/query/mockUserCardTableQueryResultBundle.js +27 -0
- 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/style/components/_cards.scss +10 -0
- package/dist/style/components/_data-grid-extra.css +1 -1
- package/dist/style/components/_data-grid-extra.scss +7 -1
- package/dist/style/main.css +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 +499 -505
- 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 +68 -65
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryWrapperPlotNav.js","names":[],"sources":["../../../src/components/QueryWrapperPlotNav/QueryWrapperPlotNav.tsx"],"sourcesContent":["import { QueryOrDeprecatedSearchParams } from '@/components/CardContainerLogic/CardContainerLogic'\nimport AddToDownloadListConfirmationAlert from '@/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert'\nimport { useGetAddToDownloadListRequestForCurrentQuery } from '@/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery'\nimport { NoContentPlaceholderType } from '@/components/SynapseTable/NoContentPlaceholderType'\nimport { useGetEntity } from '@/synapse-queries'\nimport { SynapseConstants } from '@/utils'\nimport {\n getAdditionalFilters,\n parseEntityIdAndVersionFromSqlStatement,\n} from '@/utils/functions'\nimport { isTable } from '@/utils/functions/EntityTypeUtils'\nimport { DEFAULT_PAGE_SIZE } from '@/utils/SynapseConstants'\nimport { Box } from '@mui/material'\nimport { Query, QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { useQuery } from '@tanstack/react-query'\nimport { useAtomValue } from 'jotai'\nimport { Suspense, useMemo, useState } from 'react'\nimport { CardConfiguration } from '../CardContainer/CardConfiguration'\nimport { SynapseErrorBoundary } from '../error'\nimport FullTextSearch from '../FullTextSearch/FullTextSearch'\nimport ModalDownload from '../ModalDownload/ModalDownload'\nimport { QueryWrapperPlotNavCustomPlotParams } from '../Plot/SynapsePlot'\nimport { QueryContextType, useQueryContext } from '../QueryContext'\nimport {\n QueryVisualizationContextConsumer,\n QueryVisualizationWrapper,\n QueryVisualizationWrapperProps,\n} from '../QueryVisualizationWrapper'\nimport { QueryWrapper, QueryWrapperProps } from '../QueryWrapper'\nimport { isRowSelectionVisibleAtom } from '../QueryWrapper/TableRowSelectionState'\nimport { QueryWrapperErrorBoundary } from '../QueryWrapperErrorBoundary'\nimport { SynapseTableConfiguration } from '../SynapseTable'\nimport SearchV2, { SearchV2Props } from '../SynapseTable/SearchV2'\nimport SqlEditor from '../SynapseTable/SqlEditor'\nimport TopLevelControls, {\n TopLevelControlsProps,\n CustomControl,\n} from '../SynapseTable/TopLevelControls/TopLevelControls'\nimport { CustomControls } from '../SynapseTable/CustomControls/CustomControls'\nimport TotalQueryResults from '../TotalQueryResults'\nimport PlotsContainer, {\n PlotsContainerProps,\n} from '../widgets/facet-nav/PlotsContainer'\nimport FacetFilterControls, {\n FacetFilterControlsProps,\n} from '../widgets/query-filter/FacetFilterControls'\nimport { QueryWrapperSynapsePlotProps } from './QueryWrapperSynapsePlot'\nimport { RowSetView } from './RowSetView'\nimport QueryWrapperLoadingScreen from '../QueryWrapper/QueryWrapperLoadingScreen'\n\nexport const QUERY_FILTERS_EXPANDED_CSS: string = 'isShowingFacetFilters'\nexport const QUERY_FILTERS_COLLAPSED_CSS: string = 'isHidingFacetFilters'\n\nexport const HAS_SELECTED_ROWS_CSS: string = 'hasSelectedRows'\n\ntype QueryWrapperPlotNavOwnProps = {\n /** Whether the displayed results should be paginated or infinite. Default for cards is true, default for table is false */\n isInfinite?: boolean\n /** Set to true when you want the query to be saved in the URL search parameters. If you are controlling the view (such as in PortalSearch), you'll want to set this to false */\n shouldDeepLink?: boolean\n /** If onQueryChange is set, the callback will be invoked when the Query changes */\n onQueryChange?: (newQueryJson: string) => void\n /** If onQueryResultBundleChange is set, the callback will be invoked when the QueryResultBundle changes */\n onQueryResultBundleChange?: (newQueryResultBundleJson: string) => void\n /** If initQueryJson is set, it will be the Query used in the initial QueryBundleRequest */\n initQueryJson?: string\n tableConfiguration?: SynapseTableConfiguration\n cardConfiguration?: CardConfiguration\n searchConfiguration?: Omit<\n SearchV2Props,\n 'queryContext' | 'queryVisualizationContext'\n >\n facetsToPlot?: string[]\n availableFacets?: FacetFilterControlsProps['availableFacets']\n initialExpandedFacetControls?: FacetFilterControlsProps['initialExpandedFacetControls']\n customPlots?: QueryWrapperSynapsePlotProps[]\n customControls?: CustomControl[]\n defaultColumn?: string\n defaultShowSearchBox?: boolean\n lockedColumn?: QueryWrapperProps['lockedColumn']\n onViewSharingSettingsClicked?: (benefactorId: string) => void\n initialLimit?: number\n hideTopLevelControls?: boolean\n} & Omit<TopLevelControlsProps, 'entityId'> &\n Pick<QueryWrapperPlotNavCustomPlotParams, 'onCustomPlotClick'> &\n Pick<\n QueryWrapperProps,\n | 'isRowSelectionVisible'\n | 'rowSelectionPrimaryKey'\n | 'isRowSelectionUIFloating'\n | 'fileIdColumnName'\n | 'fileNameColumnName'\n | 'fileVersionColumnName'\n > &\n Pick<\n QueryVisualizationWrapperProps,\n | 'defaultShowPlots'\n | 'visibleColumnCount'\n | 'hiddenColumns'\n | 'columnAliases'\n | 'rgbIndex'\n | 'showLastUpdatedOn'\n | 'noContentPlaceholderType'\n | 'unitDescription'\n | 'additionalFiltersSessionStorageKey'\n | 'helpConfiguration'\n | 'hideCopyToClipboard'\n | 'hideSearchBarControl'\n | 'hideVisualizationsControl'\n | 'enabledExternalAnalysisPlatforms'\n | 'lockTextMatchesQueryFilterPill'\n > &\n Pick<QueryContextType, 'combineRangeFacetConfig'>\n\nexport type QueryWrapperPlotNavProps = QueryOrDeprecatedSearchParams &\n PlotsContainerProps &\n QueryWrapperPlotNavOwnProps\n\nexport type QueryWrapperPlotNavContentsProps = Pick<\n QueryWrapperPlotNavProps,\n | 'tableConfiguration'\n | 'name'\n | 'cardConfiguration'\n | 'facetsToPlot'\n | 'availableFacets'\n | 'initialExpandedFacetControls'\n | 'hideDownload'\n | 'hideQueryCount'\n | 'hideSqlEditorControl'\n | 'hideVisualizationsControl'\n | 'searchConfiguration'\n | 'enabledExternalAnalysisPlatforms'\n | 'cavaticaConnectAccountURL'\n | 'customControls'\n | 'customPlots'\n | 'fileIdColumnName'\n | 'fileNameColumnName'\n | 'fileVersionColumnName'\n | 'initialLimit'\n | 'initialPlotTypeByFacetColumnName'\n | 'hideTopLevelControls'\n> & {\n isFullTextSearchEnabled: boolean\n remount?: () => void\n}\n\nexport function QueryWrapperPlotNavContents(\n props: QueryWrapperPlotNavContentsProps,\n) {\n const {\n tableConfiguration,\n name,\n cardConfiguration,\n facetsToPlot,\n availableFacets,\n initialExpandedFacetControls,\n hideDownload,\n hideQueryCount,\n hideSqlEditorControl,\n hideVisualizationsControl,\n searchConfiguration,\n cavaticaConnectAccountURL,\n customControls,\n remount = () => {},\n isFullTextSearchEnabled,\n customPlots,\n initialLimit,\n initialPlotTypeByFacetColumnName,\n hideTopLevelControls,\n } = props\n const queryContext = useQueryContext()\n const [showExportMetadata, setShowExportMetadata] = useState(false)\n const { hasFacetedSelectColumn: isFaceted, queryMetadataQueryOptions } =\n queryContext\n const { isLoading: isLoadingQueryMetadata } = useQuery(\n queryMetadataQueryOptions,\n )\n\n const isRowSelectionVisible = useAtomValue(isRowSelectionVisibleAtom)\n\n const currentQueryRequest = queryContext.currentQueryRequest\n\n const hasFacetsOrFilters =\n (currentQueryRequest?.query.selectedFacets !== undefined &&\n currentQueryRequest.query.selectedFacets.length > 0) ||\n (currentQueryRequest?.query.additionalFilters !== undefined &&\n currentQueryRequest?.query.additionalFilters.length > 0)\n\n const addToDownloadListRequest =\n useGetAddToDownloadListRequestForCurrentQuery()\n\n return (\n <QueryVisualizationContextConsumer>\n {queryVisualizationContext => {\n if (queryVisualizationContext === undefined) {\n throw new Error(\n 'No queryVisualizationContext found when using QueryVisualizationContextConsumer',\n )\n }\n\n return (\n <Box\n className={`QueryWrapperPlotNav ${\n queryVisualizationContext.showFacetFilter\n ? QUERY_FILTERS_EXPANDED_CSS\n : QUERY_FILTERS_COLLAPSED_CSS\n } ${isRowSelectionVisible ? HAS_SELECTED_ROWS_CSS : ''} ${\n hideTopLevelControls ? 'isHidingTopLevelControls' : ''\n }`}\n sx={{\n '*': {\n cursor: isLoadingQueryMetadata ? 'wait' : undefined,\n },\n }}\n >\n <QueryWrapperErrorBoundary>\n {isFullTextSearchEnabled ? (\n <FullTextSearch ftsConfig={searchConfiguration?.ftsConfig} />\n ) : (\n <SearchV2\n {...searchConfiguration}\n queryContext={queryContext}\n queryVisualizationContext={queryVisualizationContext}\n />\n )}\n <SqlEditor />\n {queryVisualizationContext.showDownloadConfirmation && (\n <AddToDownloadListConfirmationAlert\n addToDownloadListRequest={addToDownloadListRequest}\n onClose={() =>\n queryVisualizationContext.setShowDownloadConfirmation(false)\n }\n />\n )}\n {!hideTopLevelControls && (\n <SynapseErrorBoundary>\n <TopLevelControls\n showColumnSelection={tableConfiguration !== undefined}\n name={name}\n hideDownload={hideDownload}\n hideQueryCount={hideQueryCount}\n hideFacetFilterControl={!isFaceted}\n hideVisualizationsControl={\n !isFaceted || hideVisualizationsControl\n }\n hideSqlEditorControl={hideSqlEditorControl}\n cavaticaConnectAccountURL={cavaticaConnectAccountURL}\n remount={remount}\n customControls={customControls}\n />\n </SynapseErrorBoundary>\n )}\n {isFaceted && (\n <>\n <FacetFilterControls\n availableFacets={availableFacets}\n initialExpandedFacetControls={initialExpandedFacetControls}\n />\n </>\n )}\n {/* Isolated Suspense so that metadata loading does not hide the table */}\n <Suspense fallback={null}>\n <TotalQueryResults\n frontText={''}\n endText={hasFacetsOrFilters ? 'filtered by' : ''}\n hideIfUnfiltered={true}\n />\n </Suspense>\n <CustomControls\n customControls={customControls}\n remount={remount}\n />\n <PlotsContainer\n facetsToPlot={facetsToPlot}\n customPlots={customPlots}\n initialPlotTypeByFacetColumnName={\n initialPlotTypeByFacetColumnName\n }\n />\n <RowSetView\n tableConfiguration={tableConfiguration}\n hideDownload={hideDownload}\n cardConfiguration={cardConfiguration}\n initialLimit={initialLimit}\n />\n {showExportMetadata && (\n <ModalDownload\n getLastQueryRequest={queryContext?.getCurrentQueryRequest}\n onClose={() => setShowExportMetadata(false)}\n />\n )}\n </QueryWrapperErrorBoundary>\n </Box>\n )\n }}\n </QueryVisualizationContextConsumer>\n )\n}\n\nexport default function QueryWrapperPlotNav(props: QueryWrapperPlotNavProps) {\n const {\n sql: deprecatedSql,\n tableConfiguration,\n isInfinite = !tableConfiguration,\n limit = DEFAULT_PAGE_SIZE,\n showLastUpdatedOn,\n unitDescription,\n additionalFiltersSessionStorageKey,\n helpConfiguration,\n customPlots,\n enabledExternalAnalysisPlatforms,\n } = props\n\n const sql = props.query?.sql ?? deprecatedSql ?? ''\n const { entityId, versionNumber } =\n parseEntityIdAndVersionFromSqlStatement(sql)\n\n const query: Query = useMemo(() => {\n if (props.query) {\n // use query if set\n return props.query\n } else if (props.initQueryJson) {\n // Otherwise use initQueryJson\n return JSON.parse(props.initQueryJson) as Query\n } else {\n // use the deprecated sql, searchParams, and sqlOperator\n const additionalFilters = getAdditionalFilters(\n props.searchParams,\n props.sqlOperator,\n additionalFiltersSessionStorageKey,\n )\n return {\n sql: deprecatedSql!,\n additionalFilters,\n limit: limit,\n offset: 0,\n }\n }\n }, [\n props.query,\n props.initQueryJson,\n props.searchParams,\n props.sqlOperator,\n additionalFiltersSessionStorageKey,\n deprecatedSql,\n limit,\n ])\n\n const [componentKey, setComponentKey] = useState(1)\n const remount = () => {\n setComponentKey(componentKey + 1)\n }\n\n const { data: entity } = useGetEntity(entityId, versionNumber)\n const initQueryRequest: QueryBundleRequest = {\n entityId: entityId ?? '',\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS |\n SynapseConstants.BUNDLE_MASK_QUERY_COUNT |\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_MAX_ROWS_PER_PAGE |\n SynapseConstants.BUNDLE_MASK_QUERY_COLUMN_MODELS |\n SynapseConstants.BUNDLE_MASK_QUERY_FACETS |\n SynapseConstants.BUNDLE_MASK_SUM_FILES_SIZE_BYTES |\n SynapseConstants.BUNDLE_MASK_LAST_UPDATED_ON,\n query,\n }\n const isFullTextSearchEnabled =\n (entity && isTable(entity) && entity.isSearchEnabled) ?? false\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)}-${componentKey}`\n\n return (\n <QueryWrapper\n {...props}\n initQueryRequest={initQueryRequest}\n key={queryWrapperKey}\n isInfinite={isInfinite}\n >\n <Suspense fallback={<QueryWrapperLoadingScreen />}>\n <QueryVisualizationWrapper\n unitDescription={unitDescription}\n rgbIndex={props.rgbIndex}\n columnAliases={props.columnAliases}\n helpConfiguration={helpConfiguration}\n visibleColumnCount={props.visibleColumnCount}\n hiddenColumns={props.hiddenColumns}\n defaultShowPlots={props.defaultShowPlots}\n hideCopyToClipboard={props.hideCopyToClipboard}\n defaultShowSearchBar={\n (props.defaultShowSearchBox || isFullTextSearchEnabled) &&\n !props.hideSearchBarControl\n }\n lockTextMatchesQueryFilterPill={props.lockTextMatchesQueryFilterPill}\n hideSearchBarControl={props.hideSearchBarControl}\n showLastUpdatedOn={showLastUpdatedOn}\n noContentPlaceholderType={NoContentPlaceholderType.INTERACTIVE}\n hasCustomPlots={Array.isArray(customPlots) && customPlots.length > 0}\n enabledExternalAnalysisPlatforms={enabledExternalAnalysisPlatforms}\n >\n <QueryWrapperPlotNavContents\n {...props}\n isFullTextSearchEnabled={isFullTextSearchEnabled}\n remount={remount}\n />\n </QueryVisualizationWrapper>\n </Suspense>\n </QueryWrapper>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDA,IAAa,IAAqC,yBACrC,IAAsC,wBAEtC,IAAgC;AA6F7C,SAAgB,EACd,GACA;CACA,IAAM,EACJ,uBACA,SACA,sBACA,iBACA,oBACA,iCACA,iBACA,mBACA,yBACA,8BACA,wBACA,8BACA,mBACA,mBAAgB,IAChB,4BACA,iBACA,iBACA,qCACA,4BACE,GACE,IAAe,GAAiB,EAChC,CAAC,GAAoB,KAAyB,EAAS,GAAM,EAC7D,EAAE,wBAAwB,GAAW,iCACzC,GACI,EAAE,WAAW,MAA2B,EAC5C,EACD,EAEK,KAAwB,EAAa,EAA0B,EAE/D,IAAsB,EAAa,qBAEnC,KACH,GAAqB,MAAM,mBAAmB,KAAA,KAC7C,EAAoB,MAAM,eAAe,SAAS,KACnD,GAAqB,MAAM,sBAAsB,KAAA,KAChD,GAAqB,MAAM,kBAAkB,SAAS,GAEpD,KACJ,GAA+C;AAEjD,QACE,kBAAC,GAAD,EAAA,WACG,MAA6B;AAC5B,MAAI,MAA8B,KAAA,EAChC,OAAU,MACR,kFACD;AAGH,SACE,kBAAC,GAAD;GACE,WAAW,uBACT,EAA0B,kBACtB,IACA,EACL,GAAG,KAAwB,IAAwB,GAAG,GACrD,IAAuB,6BAA6B;GAEtD,IAAI,EACF,KAAK,EACH,QAAQ,IAAyB,SAAS,KAAA,GAC3C,EACF;aAED,kBAAC,GAAD,EAAA,UAAA;IACG,IACC,kBAAC,GAAD,EAAgB,WAAW,GAAqB,WAAa,CAAA,GAE7D,kBAAC,GAAD;KACE,GAAI;KACU;KACa;KAC3B,CAAA;IAEJ,kBAAC,GAAD,EAAa,CAAA;IACZ,EAA0B,4BACzB,kBAAC,GAAD;KAC4B;KAC1B,eACE,EAA0B,4BAA4B,GAAM;KAE9D,CAAA;IAEH,CAAC,KACA,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;KACE,qBAAqB,MAAuB,KAAA;KACtC;KACQ;KACE;KAChB,wBAAwB,CAAC;KACzB,2BACE,CAAC,KAAa;KAEM;KACK;KAClB;KACO;KAChB,CAAA,EACmB,CAAA;IAExB,KACC,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;KACmB;KACa;KAC9B,CAAA,EACD,CAAA;IAGL,kBAAC,GAAD;KAAU,UAAU;eAClB,kBAAC,GAAD;MACE,WAAW;MACX,SAAS,KAAqB,gBAAgB;MAC9C,kBAAkB;MAClB,CAAA;KACO,CAAA;IACX,kBAAC,GAAD;KACkB;KACP;KACT,CAAA;IACF,kBAAC,GAAD;KACgB;KACD;KAEX;KAEF,CAAA;IACF,kBAAC,GAAD;KACsB;KACN;KACK;KACL;KACd,CAAA;IACD,KACC,kBAAC,GAAD;KACE,qBAAqB,GAAc;KACnC,eAAe,EAAsB,GAAM;KAC3C,CAAA;IAEsB,EAAA,CAAA;GACxB,CAAA;IAGwB,CAAA;;AAIxC,SAAwB,EAAoB,GAAiC;CAC3E,IAAM,EACJ,KAAK,GACL,uBACA,gBAAa,CAAC,GACd,WAAA,IACA,sBACA,oBACA,uCACA,sBACA,gBACA,wCACE,GAGE,EAAE,aAAU,qBAChB,EAFU,EAAM,OAAO,OAAO,KAAiB,GAEH,EAExC,IAAe,QACf,EAAM,QAED,EAAM,QACJ,EAAM,gBAER,KAAK,MAAM,EAAM,cAAc,GAQ/B;EACL,KAAK;EACL,mBAPwB,EACxB,EAAM,cACN,EAAM,aACN,EAIA;EACO;EACP,QAAQ;EACT,EAEF;EACD,EAAM;EACN,EAAM;EACN,EAAM;EACN,EAAM;EACN;EACA;EACA;EACD,CAAC,EAEI,CAAC,GAAc,KAAmB,EAAS,EAAE,EAC7C,UAAgB;AACpB,IAAgB,IAAe,EAAE;IAG7B,EAAE,MAAM,MAAW,EAAa,GAAU,EAAc,EACxD,IAAuC;EAC3C,UAAU,KAAY;EACtB,cAAc;EACd,UACE;EAQF;EACD,EACK,KACH,KAAU,EAAQ,EAAO,IAAI,EAAO,oBAAoB,IAQrD,IAAkB,GAAG,KAAK,UAAU,EAAiB,CAAC,GAAG;AAE/D,QACE,kBAAC,GAAD;EACE,GAAI;EACc;EAClB,KAAK;EACO;EA8BC,EA5Bb,kBAAC,GAAD;EAAU,UAAU,kBAAC,GAAD,EAA6B,CAAA;YAC/C,kBAAC,GAAD;GACmB;GACjB,UAAU,EAAM;GAChB,eAAe,EAAM;GACF;GACnB,oBAAoB,EAAM;GAC1B,eAAe,EAAM;GACrB,kBAAkB,EAAM;GACxB,qBAAqB,EAAM;GAC3B,uBACG,EAAM,wBAAwB,MAC/B,CAAC,EAAM;GAET,gCAAgC,EAAM;GACtC,sBAAsB,EAAM;GACT;GACnB,0BAA0B,EAAyB;GACnD,gBAAgB,MAAM,QAAQ,EAAY,IAAI,EAAY,SAAS;GACjC;aAElC,kBAAC,GAAD;IACE,GAAI;IACqB;IAChB;IACT,CAAA;GACwB,CAAA;EACnB,CAAA,CACE"}
|
|
1
|
+
{"version":3,"file":"QueryWrapperPlotNav.js","names":[],"sources":["../../../src/components/QueryWrapperPlotNav/QueryWrapperPlotNav.tsx"],"sourcesContent":["import { QueryOrDeprecatedSearchParams } from '@/components/CardContainerLogic/CardContainerLogic'\nimport AddToDownloadListConfirmationAlert from '@/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert'\nimport { useGetAddToDownloadListRequestForCurrentQuery } from '@/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery'\nimport { NoContentPlaceholderType } from '@/components/SynapseTable/NoContentPlaceholderType'\nimport { useGetEntity } from '@/synapse-queries'\nimport { SynapseConstants } from '@/utils'\nimport {\n getAdditionalFilters,\n parseEntityIdAndVersionFromSqlStatement,\n} from '@/utils/functions'\nimport { isTable } from '@/utils/functions/EntityTypeUtils'\nimport { DEFAULT_PAGE_SIZE } from '@/utils/SynapseConstants'\nimport { Box } from '@mui/material'\nimport { Query, QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { useQuery } from '@tanstack/react-query'\nimport { useAtomValue } from 'jotai'\nimport { Suspense, useMemo, useState } from 'react'\nimport { CardConfiguration } from '../CardContainer/CardConfiguration'\nimport { SynapseErrorBoundary } from '../error'\nimport FullTextSearch from '../FullTextSearch/FullTextSearch'\nimport ModalDownload from '../ModalDownload/ModalDownload'\nimport { QueryWrapperPlotNavCustomPlotParams } from '../Plot/SynapsePlot'\nimport { QueryContextType, useQueryContext } from '../QueryContext'\nimport {\n QueryVisualizationContextConsumer,\n QueryVisualizationWrapper,\n QueryVisualizationWrapperProps,\n} from '../QueryVisualizationWrapper'\nimport { QueryWrapper, QueryWrapperProps } from '../QueryWrapper'\nimport { isRowSelectionVisibleAtom } from '../QueryWrapper/TableRowSelectionState'\nimport { QueryWrapperErrorBoundary } from '../QueryWrapperErrorBoundary'\nimport { SynapseTableConfiguration } from '../SynapseTable'\nimport SearchV2, { SearchV2Props } from '../SynapseTable/SearchV2'\nimport SqlEditor from '../SynapseTable/SqlEditor'\nimport TopLevelControls, {\n TopLevelControlsProps,\n CustomControl,\n} from '../SynapseTable/TopLevelControls/TopLevelControls'\nimport { CustomControls } from '../SynapseTable/CustomControls/CustomControls'\nimport TotalQueryResults from '../TotalQueryResults'\nimport PlotsContainer, {\n PlotsContainerProps,\n} from '../widgets/facet-nav/PlotsContainer'\nimport FacetFilterControls, {\n FacetFilterControlsProps,\n} from '../widgets/query-filter/FacetFilterControls'\nimport { QueryWrapperSynapsePlotProps } from './QueryWrapperSynapsePlot'\nimport { RowSetView } from './RowSetView'\nimport QueryWrapperLoadingScreen from '../QueryWrapper/QueryWrapperLoadingScreen'\n\nexport const QUERY_FILTERS_EXPANDED_CSS: string = 'isShowingFacetFilters'\nexport const QUERY_FILTERS_COLLAPSED_CSS: string = 'isHidingFacetFilters'\n\nexport const HAS_SELECTED_ROWS_CSS: string = 'hasSelectedRows'\n\ntype QueryWrapperPlotNavOwnProps = {\n /** Whether the displayed results should be paginated or infinite. Default for cards is true, default for table is false */\n isInfinite?: boolean\n /** Set to true when you want the query to be saved in the URL search parameters. If you are controlling the view (such as in PortalSearch), you'll want to set this to false */\n shouldDeepLink?: boolean\n /** If onQueryChange is set, the callback will be invoked when the Query changes */\n onQueryChange?: (newQueryJson: string) => void\n /** If onQueryResultBundleChange is set, the callback will be invoked when the QueryResultBundle changes */\n onQueryResultBundleChange?: (newQueryResultBundleJson: string) => void\n /** If initQueryJson is set, it will be the Query used in the initial QueryBundleRequest */\n initQueryJson?: string\n tableConfiguration?: SynapseTableConfiguration\n cardConfiguration?: CardConfiguration\n searchConfiguration?: Omit<\n SearchV2Props,\n 'queryContext' | 'queryVisualizationContext'\n >\n facetsToPlot?: string[]\n availableFacets?: FacetFilterControlsProps['availableFacets']\n initialExpandedFacetControls?: FacetFilterControlsProps['initialExpandedFacetControls']\n customPlots?: QueryWrapperSynapsePlotProps[]\n customControls?: CustomControl[]\n defaultColumn?: string\n defaultShowSearchBox?: boolean\n lockedColumn?: QueryWrapperProps['lockedColumn']\n onViewSharingSettingsClicked?: (benefactorId: string) => void\n initialLimit?: number\n hideTopLevelControls?: boolean\n} & Omit<TopLevelControlsProps, 'entityId'> &\n Pick<QueryWrapperPlotNavCustomPlotParams, 'onCustomPlotClick'> &\n Pick<\n QueryWrapperProps,\n | 'isRowSelectionVisible'\n | 'rowSelectionPrimaryKey'\n | 'isRowSelectionUIFloating'\n | 'fileIdColumnName'\n | 'fileNameColumnName'\n | 'fileVersionColumnName'\n > &\n Pick<\n QueryVisualizationWrapperProps,\n | 'defaultShowPlots'\n | 'visibleColumnCount'\n | 'hiddenColumns'\n | 'columnAliases'\n | 'rgbIndex'\n | 'showLastUpdatedOn'\n | 'noContentPlaceholderType'\n | 'unitDescription'\n | 'additionalFiltersSessionStorageKey'\n | 'helpConfiguration'\n | 'hideCopyToClipboard'\n | 'hideSearchBarControl'\n | 'hideVisualizationsControl'\n | 'enabledExternalAnalysisPlatforms'\n | 'lockTextMatchesQueryFilterPill'\n > &\n Pick<QueryContextType, 'combineRangeFacetConfig'>\n\nexport type QueryWrapperPlotNavProps = QueryOrDeprecatedSearchParams &\n PlotsContainerProps &\n QueryWrapperPlotNavOwnProps\n\nexport type QueryWrapperPlotNavContentsProps = Pick<\n QueryWrapperPlotNavProps,\n | 'tableConfiguration'\n | 'name'\n | 'cardConfiguration'\n | 'facetsToPlot'\n | 'availableFacets'\n | 'initialExpandedFacetControls'\n | 'hideDownload'\n | 'hideQueryCount'\n | 'hideSqlEditorControl'\n | 'hideVisualizationsControl'\n | 'searchConfiguration'\n | 'enabledExternalAnalysisPlatforms'\n | 'cavaticaConnectAccountURL'\n | 'customControls'\n | 'customPlots'\n | 'fileIdColumnName'\n | 'fileNameColumnName'\n | 'fileVersionColumnName'\n | 'initialLimit'\n | 'initialPlotTypeByFacetColumnName'\n | 'hideTopLevelControls'\n> & {\n isFullTextSearchEnabled: boolean\n remount?: () => void\n}\n\nexport function QueryWrapperPlotNavContents(\n props: QueryWrapperPlotNavContentsProps,\n) {\n const {\n tableConfiguration,\n name,\n cardConfiguration,\n facetsToPlot,\n availableFacets,\n initialExpandedFacetControls,\n hideDownload,\n hideQueryCount,\n hideSqlEditorControl,\n hideVisualizationsControl,\n searchConfiguration,\n cavaticaConnectAccountURL,\n customControls,\n remount = () => {},\n isFullTextSearchEnabled,\n customPlots,\n initialLimit,\n initialPlotTypeByFacetColumnName,\n hideTopLevelControls,\n } = props\n const queryContext = useQueryContext()\n const [showExportMetadata, setShowExportMetadata] = useState(false)\n const { hasFacetedSelectColumn: isFaceted, queryMetadataQueryOptions } =\n queryContext\n const { isLoading: isLoadingQueryMetadata } = useQuery(\n queryMetadataQueryOptions,\n )\n\n const isRowSelectionVisible = useAtomValue(isRowSelectionVisibleAtom)\n\n const currentQueryRequest = queryContext.currentQueryRequest\n\n const hasFacetsOrFilters =\n (currentQueryRequest?.query.selectedFacets !== undefined &&\n currentQueryRequest.query.selectedFacets.length > 0) ||\n (currentQueryRequest?.query.additionalFilters !== undefined &&\n currentQueryRequest?.query.additionalFilters.length > 0)\n\n const addToDownloadListRequest =\n useGetAddToDownloadListRequestForCurrentQuery()\n\n return (\n <QueryVisualizationContextConsumer>\n {queryVisualizationContext => {\n if (queryVisualizationContext === undefined) {\n throw new Error(\n 'No queryVisualizationContext found when using QueryVisualizationContextConsumer',\n )\n }\n\n return (\n <Box\n className={`QueryWrapperPlotNav ${\n queryVisualizationContext.showFacetFilter\n ? QUERY_FILTERS_EXPANDED_CSS\n : QUERY_FILTERS_COLLAPSED_CSS\n } ${isRowSelectionVisible ? HAS_SELECTED_ROWS_CSS : ''} ${\n hideTopLevelControls ? 'isHidingTopLevelControls' : ''\n }`}\n sx={{\n '*': {\n cursor: isLoadingQueryMetadata ? 'wait' : undefined,\n },\n }}\n >\n <QueryWrapperErrorBoundary>\n {isFullTextSearchEnabled ? (\n <FullTextSearch ftsConfig={searchConfiguration?.ftsConfig} />\n ) : (\n <SearchV2\n {...searchConfiguration}\n queryContext={queryContext}\n queryVisualizationContext={queryVisualizationContext}\n />\n )}\n <SqlEditor />\n {queryVisualizationContext.showDownloadConfirmation && (\n <AddToDownloadListConfirmationAlert\n addToDownloadListRequest={addToDownloadListRequest}\n onClose={() =>\n queryVisualizationContext.setShowDownloadConfirmation(false)\n }\n />\n )}\n {!hideTopLevelControls && (\n <SynapseErrorBoundary>\n <TopLevelControls\n showColumnSelection={tableConfiguration !== undefined}\n name={name}\n hideDownload={hideDownload}\n hideQueryCount={hideQueryCount}\n hideFacetFilterControl={!isFaceted}\n hideVisualizationsControl={\n !isFaceted || hideVisualizationsControl\n }\n hideSqlEditorControl={hideSqlEditorControl}\n cavaticaConnectAccountURL={cavaticaConnectAccountURL}\n remount={remount}\n customControls={customControls}\n />\n </SynapseErrorBoundary>\n )}\n {isFaceted && (\n <>\n <FacetFilterControls\n availableFacets={availableFacets}\n initialExpandedFacetControls={initialExpandedFacetControls}\n />\n </>\n )}\n {/* Isolated Suspense so that metadata loading does not hide the table */}\n <Suspense fallback={null}>\n <TotalQueryResults\n frontText={''}\n endText={hasFacetsOrFilters ? 'filtered by' : ''}\n hideIfUnfiltered={true}\n />\n </Suspense>\n <CustomControls\n customControls={customControls}\n remount={remount}\n />\n <PlotsContainer\n facetsToPlot={facetsToPlot}\n customPlots={customPlots}\n initialPlotTypeByFacetColumnName={\n initialPlotTypeByFacetColumnName\n }\n />\n <RowSetView\n tableConfiguration={tableConfiguration}\n hideDownload={hideDownload}\n cardConfiguration={cardConfiguration}\n initialLimit={initialLimit}\n />\n {showExportMetadata && (\n <ModalDownload\n getLastQueryRequest={queryContext?.getCurrentQueryRequest}\n onClose={() => setShowExportMetadata(false)}\n />\n )}\n </QueryWrapperErrorBoundary>\n </Box>\n )\n }}\n </QueryVisualizationContextConsumer>\n )\n}\n\nexport default function QueryWrapperPlotNav(props: QueryWrapperPlotNavProps) {\n const {\n sql: deprecatedSql,\n tableConfiguration,\n isInfinite = !tableConfiguration,\n limit = DEFAULT_PAGE_SIZE,\n showLastUpdatedOn,\n unitDescription,\n additionalFiltersSessionStorageKey,\n helpConfiguration,\n customPlots,\n enabledExternalAnalysisPlatforms,\n } = props\n\n const sql = props.query?.sql ?? deprecatedSql ?? ''\n const { entityId, versionNumber } =\n parseEntityIdAndVersionFromSqlStatement(sql)\n\n const query: Query = useMemo(() => {\n if (props.query) {\n // use query if set\n return props.query\n } else if (props.initQueryJson) {\n // Otherwise use initQueryJson\n return JSON.parse(props.initQueryJson) as Query\n } else {\n // use the deprecated sql, searchParams, and sqlOperator\n const additionalFilters = getAdditionalFilters(\n props.searchParams,\n props.sqlOperator,\n additionalFiltersSessionStorageKey,\n )\n return {\n sql: deprecatedSql!,\n additionalFilters,\n limit: limit,\n offset: 0,\n }\n }\n }, [\n props.query,\n props.initQueryJson,\n props.searchParams,\n props.sqlOperator,\n additionalFiltersSessionStorageKey,\n deprecatedSql,\n limit,\n ])\n\n const [componentKey, setComponentKey] = useState(1)\n const remount = () => {\n setComponentKey(componentKey + 1)\n }\n\n const { data: entity } = useGetEntity(entityId, versionNumber)\n const initQueryRequest: QueryBundleRequest = {\n entityId: entityId ?? '',\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS |\n SynapseConstants.BUNDLE_MASK_QUERY_COUNT |\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_MAX_ROWS_PER_PAGE |\n SynapseConstants.BUNDLE_MASK_QUERY_COLUMN_MODELS |\n SynapseConstants.BUNDLE_MASK_QUERY_FACETS |\n SynapseConstants.BUNDLE_MASK_SUM_FILES_SIZE_BYTES |\n SynapseConstants.BUNDLE_MASK_LAST_UPDATED_ON,\n query,\n }\n const isFullTextSearchEnabled =\n (entity && isTable(entity) && entity.isSearchEnabled) ?? false\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)}-${componentKey}`\n\n return (\n <QueryWrapper\n {...props}\n initQueryRequest={initQueryRequest}\n key={queryWrapperKey}\n isInfinite={isInfinite}\n >\n <Suspense fallback={<QueryWrapperLoadingScreen />}>\n <QueryVisualizationWrapper\n unitDescription={unitDescription}\n rgbIndex={props.rgbIndex}\n columnAliases={props.columnAliases}\n helpConfiguration={helpConfiguration}\n visibleColumnCount={props.visibleColumnCount}\n hiddenColumns={props.hiddenColumns}\n defaultShowPlots={props.defaultShowPlots}\n hideCopyToClipboard={props.hideCopyToClipboard}\n defaultShowSearchBar={\n (props.defaultShowSearchBox || isFullTextSearchEnabled) &&\n !props.hideSearchBarControl\n }\n lockTextMatchesQueryFilterPill={props.lockTextMatchesQueryFilterPill}\n hideSearchBarControl={props.hideSearchBarControl}\n showLastUpdatedOn={showLastUpdatedOn}\n noContentPlaceholderType={NoContentPlaceholderType.INTERACTIVE}\n hasCustomPlots={Array.isArray(customPlots) && customPlots.length > 0}\n enabledExternalAnalysisPlatforms={enabledExternalAnalysisPlatforms}\n >\n <QueryWrapperPlotNavContents\n {...props}\n isFullTextSearchEnabled={isFullTextSearchEnabled}\n remount={remount}\n />\n </QueryVisualizationWrapper>\n </Suspense>\n </QueryWrapper>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDA,IAAa,IAAqC,yBACrC,IAAsC,wBAEtC,IAAgC;AA6F7C,SAAgB,EACd,GACA;CACA,IAAM,EACJ,uBACA,SACA,sBACA,iBACA,oBACA,iCACA,iBACA,mBACA,yBACA,8BACA,wBACA,8BACA,mBACA,mBAAgB,CAAC,GACjB,4BACA,iBACA,iBACA,qCACA,4BACE,GACE,IAAe,EAAgB,GAC/B,CAAC,GAAoB,KAAyB,EAAS,EAAK,GAC5D,EAAE,wBAAwB,GAAW,iCACzC,GACI,EAAE,WAAW,MAA2B,EAC5C,CACF,GAEM,KAAwB,EAAa,CAAyB,GAE9D,IAAsB,EAAa,qBAEnC,KACH,GAAqB,MAAM,mBAAmB,KAAA,KAC7C,EAAoB,MAAM,eAAe,SAAS,KACnD,GAAqB,MAAM,sBAAsB,KAAA,KAChD,GAAqB,MAAM,kBAAkB,SAAS,GAEpD,KACJ,EAA8C;CAEhD,OACE,kBAAC,GAAD,EAAA,WACG,MAA6B;EAC5B,IAAI,MAA8B,KAAA,GAChC,MAAU,MACR,iFACF;EAGF,OACE,kBAAC,GAAD;GACE,WAAW,uBACT,EAA0B,kBACtB,IACA,EACL,GAAG,KAAwB,IAAwB,GAAG,GACrD,IAAuB,6BAA6B;GAEtD,IAAI,EACF,KAAK,EACH,QAAQ,IAAyB,SAAS,KAAA,EAC5C,EACF;aAEA,kBAAC,GAAD,EAAA,UAAA;IACG,IACC,kBAAC,GAAD,EAAgB,WAAW,GAAqB,UAAY,CAAA,IAE5D,kBAAC,GAAD;KACE,GAAI;KACU;KACa;IAC5B,CAAA;IAEH,kBAAC,GAAD,CAAY,CAAA;IACX,EAA0B,4BACzB,kBAAC,GAAD;KAC4B;KAC1B,eACE,EAA0B,4BAA4B,EAAK;IAE9D,CAAA;IAEF,CAAC,KACA,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;KACE,qBAAqB,MAAuB,KAAA;KACtC;KACQ;KACE;KAChB,wBAAwB,CAAC;KACzB,2BACE,CAAC,KAAa;KAEM;KACK;KAClB;KACO;IACjB,CAAA,EACmB,CAAA;IAEvB,KACC,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;KACmB;KACa;IAC/B,CAAA,EACD,CAAA;IAGJ,kBAAC,GAAD;KAAU,UAAU;eAClB,kBAAC,GAAD;MACE,WAAW;MACX,SAAS,KAAqB,gBAAgB;MAC9C,kBAAkB;KACnB,CAAA;IACO,CAAA;IACV,kBAAC,GAAD;KACkB;KACP;IACV,CAAA;IACD,kBAAC,GAAD;KACgB;KACD;KAEX;IAEH,CAAA;IACD,kBAAC,GAAD;KACsB;KACN;KACK;KACL;IACf,CAAA;IACA,KACC,kBAAC,GAAD;KACE,qBAAqB,GAAc;KACnC,eAAe,EAAsB,EAAK;IAC3C,CAAA;GAEsB,EAAA,CAAA;EACxB,CAAA;CAET,EACiC,CAAA;AAEvC;AAEA,SAAwB,EAAoB,GAAiC;CAC3E,IAAM,EACJ,KAAK,GACL,uBACA,gBAAa,CAAC,GACd,WAAA,IACA,sBACA,oBACA,uCACA,sBACA,gBACA,wCACE,GAGE,EAAE,aAAU,qBAChB,EAFU,EAAM,OAAO,OAAO,KAAiB,EAEJ,GAEvC,IAAe,QACf,EAAM,QAED,EAAM,QACJ,EAAM,gBAER,KAAK,MAAM,EAAM,aAAa,IAQ9B;EACL,KAAK;EACL,mBAPwB,EACxB,EAAM,cACN,EAAM,aACN,CAIA;EACO;EACP,QAAQ;CACV,GAED;EACD,EAAM;EACN,EAAM;EACN,EAAM;EACN,EAAM;EACN;EACA;EACA;CACF,CAAC,GAEK,CAAC,GAAc,KAAmB,EAAS,CAAC,GAC5C,UAAgB;EACpB,EAAgB,IAAe,CAAC;CAClC,GAEM,EAAE,MAAM,MAAW,EAAa,GAAU,CAAa,GACvD,IAAuC;EAC3C,UAAU,KAAY;EACtB,cAAc;EACd,UACE;EAQF;CACF,GACM,KACH,KAAU,EAAQ,CAAM,KAAK,EAAO,oBAAoB,IAQrD,IAAkB,GAAG,KAAK,UAAU,CAAgB,EAAE,GAAG;CAE/D,OACE,kBAAC,GAAD;EACE,GAAI;EACc;EAClB,KAAK;EACO;CA8BA,GA5BZ,kBAAC,GAAD;EAAU,UAAU,kBAAC,GAAD,CAA4B,CAAA;YAC9C,kBAAC,GAAD;GACmB;GACjB,UAAU,EAAM;GAChB,eAAe,EAAM;GACF;GACnB,oBAAoB,EAAM;GAC1B,eAAe,EAAM;GACrB,kBAAkB,EAAM;GACxB,qBAAqB,EAAM;GAC3B,uBACG,EAAM,wBAAwB,MAC/B,CAAC,EAAM;GAET,gCAAgC,EAAM;GACtC,sBAAsB,EAAM;GACT;GACnB,0BAA0B,EAAyB;GACnD,gBAAgB,MAAM,QAAQ,CAAW,KAAK,EAAY,SAAS;GACjC;aAElC,kBAAC,GAAD;IACE,GAAI;IACqB;IAChB;GACV,CAAA;EACwB,CAAA;CACnB,CAAA,CACE;AAElB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryWrapperSynapsePlot.js","names":[],"sources":["../../../src/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { SynapsePlot } from '../Plot'\nimport { QueryContextType, useQueryContext } from '../QueryContext'\nimport {\n QueryWrapperPlotNavCustomPlotParams,\n SynapsePlotWidgetParams,\n} from '../Plot/SynapsePlot'\nimport {\n FacetColumnRequest,\n QueryFilter,\n Row,\n} from '@sage-bionetworks/synapse-types'\nimport { useQueryVisualizationContext } from '../QueryVisualizationWrapper'\nimport PlotPanelHeader from '../Plot/PlotPanelHeader'\nexport type QueryWrapperSynapsePlotProps = Pick<\n QueryWrapperPlotNavCustomPlotParams,\n 'onCustomPlotClick'\n> &\n Omit<SynapsePlotWidgetParams, 'selectedFacets' | 'additionalFilters'>\ntype QueryWrapperSynapsePlotInternalProps = {\n onHide: () => void\n}\nexport type QueryWrapperSynapsePlotRowClickEvent = {\n row: Row\n queryContext?: QueryContextType\n}\n\n/**\n * This component wraps a SynapsePlot. It passes in the current query context, and has a custom\n * \"title\" style so that it looks like it belongs in the QueryWrapperPlotNav plots.\n * @param props\n * @returns\n */\nexport default function QueryWrapperSynapsePlot(\n props: QueryWrapperSynapsePlotProps & QueryWrapperSynapsePlotInternalProps,\n) {\n const queryContext = useQueryContext()\n const { currentQueryRequest } = queryContext\n const { title, onCustomPlotClick, onHide } = props\n const { showPlots } = useQueryVisualizationContext()\n\n const widgetParamsMapped: SynapsePlotWidgetParams = useMemo(() => {\n return {\n ...props,\n title: undefined, // we are handling the plot title here in this component\n showlegend: false,\n displayModebar: false,\n }\n }, [props])\n\n const customPlotParams: QueryWrapperPlotNavCustomPlotParams = useMemo(() => {\n const { selectedFacets, additionalFilters } = currentQueryRequest.query\n return {\n selectedFacets: selectedFacets as FacetColumnRequest[],\n additionalFilters: additionalFilters as QueryFilter[],\n onCustomPlotClick,\n queryContext,\n }\n }, [currentQueryRequest.query, onCustomPlotClick, queryContext])\n return (\n <div role=\"figure\" className=\"SynapsePlot\">\n {showPlots && (\n <>\n {title && <PlotPanelHeader title={title} onHide={onHide} />}\n <SynapsePlot\n synapsePlotWidgetParams={widgetParamsMapped}\n customPlotParams={customPlotParams}\n />\n </>\n )}\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;AAiCA,SAAwB,EACtB,GACA;CACA,IAAM,IAAe,
|
|
1
|
+
{"version":3,"file":"QueryWrapperSynapsePlot.js","names":[],"sources":["../../../src/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { SynapsePlot } from '../Plot'\nimport { QueryContextType, useQueryContext } from '../QueryContext'\nimport {\n QueryWrapperPlotNavCustomPlotParams,\n SynapsePlotWidgetParams,\n} from '../Plot/SynapsePlot'\nimport {\n FacetColumnRequest,\n QueryFilter,\n Row,\n} from '@sage-bionetworks/synapse-types'\nimport { useQueryVisualizationContext } from '../QueryVisualizationWrapper'\nimport PlotPanelHeader from '../Plot/PlotPanelHeader'\nexport type QueryWrapperSynapsePlotProps = Pick<\n QueryWrapperPlotNavCustomPlotParams,\n 'onCustomPlotClick'\n> &\n Omit<SynapsePlotWidgetParams, 'selectedFacets' | 'additionalFilters'>\ntype QueryWrapperSynapsePlotInternalProps = {\n onHide: () => void\n}\nexport type QueryWrapperSynapsePlotRowClickEvent = {\n row: Row\n queryContext?: QueryContextType\n}\n\n/**\n * This component wraps a SynapsePlot. It passes in the current query context, and has a custom\n * \"title\" style so that it looks like it belongs in the QueryWrapperPlotNav plots.\n * @param props\n * @returns\n */\nexport default function QueryWrapperSynapsePlot(\n props: QueryWrapperSynapsePlotProps & QueryWrapperSynapsePlotInternalProps,\n) {\n const queryContext = useQueryContext()\n const { currentQueryRequest } = queryContext\n const { title, onCustomPlotClick, onHide } = props\n const { showPlots } = useQueryVisualizationContext()\n\n const widgetParamsMapped: SynapsePlotWidgetParams = useMemo(() => {\n return {\n ...props,\n title: undefined, // we are handling the plot title here in this component\n showlegend: false,\n displayModebar: false,\n }\n }, [props])\n\n const customPlotParams: QueryWrapperPlotNavCustomPlotParams = useMemo(() => {\n const { selectedFacets, additionalFilters } = currentQueryRequest.query\n return {\n selectedFacets: selectedFacets as FacetColumnRequest[],\n additionalFilters: additionalFilters as QueryFilter[],\n onCustomPlotClick,\n queryContext,\n }\n }, [currentQueryRequest.query, onCustomPlotClick, queryContext])\n return (\n <div role=\"figure\" className=\"SynapsePlot\">\n {showPlots && (\n <>\n {title && <PlotPanelHeader title={title} onHide={onHide} />}\n <SynapsePlot\n synapsePlotWidgetParams={widgetParamsMapped}\n customPlotParams={customPlotParams}\n />\n </>\n )}\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;AAiCA,SAAwB,EACtB,GACA;CACA,IAAM,IAAe,EAAgB,GAC/B,EAAE,2BAAwB,GAC1B,EAAE,UAAO,sBAAmB,cAAW,GACvC,EAAE,iBAAc,EAA6B,GAE7C,IAA8C,SAC3C;EACL,GAAG;EACH,OAAO,KAAA;EACP,YAAY;EACZ,gBAAgB;CAClB,IACC,CAAC,CAAK,CAAC,GAEJ,IAAwD,QAAc;EAC1E,IAAM,EAAE,mBAAgB,yBAAsB,EAAoB;EAClE,OAAO;GACW;GACG;GACnB;GACA;EACF;CACF,GAAG;EAAC,EAAoB;EAAO;EAAmB;CAAY,CAAC;CAC/D,OACE,kBAAC,OAAD;EAAK,MAAK;EAAS,WAAU;YAC1B,KACC,kBAAA,GAAA,EAAA,UAAA,CACG,KAAS,kBAAC,GAAD;GAAwB;GAAe;EAAS,CAAA,GAC1D,kBAAC,GAAD;GACE,yBAAyB;GACP;EACnB,CAAA,CACD,EAAA,CAAA;CAED,CAAA;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowSetView.js","names":[],"sources":["../../../src/components/QueryWrapperPlotNav/RowSetView.tsx"],"sourcesContent":["import { Suspense, useState } from 'react'\nimport { CardContainer } from '../CardContainer/CardContainer'\nimport { SynapseTable, SynapseTableConfiguration } from '../SynapseTable'\nimport { CardConfiguration } from '../CardContainer/CardConfiguration'\nimport LastUpdatedOn from './LastUpdatedOn'\nimport { useDeepCompareMemoize } from 'use-deep-compare-effect'\nimport QueryWrapperLoadingScreen from '../QueryWrapper/QueryWrapperLoadingScreen'\nimport { SynapseErrorBoundary } from '../error'\nimport { useQueryContext } from '../QueryContext'\nimport { Box } from '@mui/material'\nimport { TablePagination } from '../SynapseTable/TablePagination'\nimport { ViewMoreQueryResultsButton } from '../QueryWrapper/ViewMoreQueryResultsButton'\nimport { useRowSet } from './UseRowSet'\n\nexport type RowSetViewProps = {\n tableConfiguration?: SynapseTableConfiguration\n cardConfiguration?: CardConfiguration\n initialLimit?: number\n hideDownload?: boolean\n multiCardList?: boolean\n}\n\n/**\n * Renders a table or cards representing the RowSet. Also displays appropriate pagination controls\n * depending on the value of QueryContext.isInfinite.\n * @param props\n * @constructor\n */\nexport function RowSetView(props: RowSetViewProps) {\n const { cardConfiguration, hideDownload, initialLimit, multiCardList } = props\n\n const [initialLimitIsApplied, setInitialLimitIsApplied] = useState(\n initialLimit != null,\n )\n\n const { isInfinite } = useQueryContext()\n const tableConfiguration = useDeepCompareMemoize(\n props.tableConfiguration\n ? {\n ...props.tableConfiguration,\n hideDownload,\n }\n : undefined,\n )\n\n const {\n rowSet,\n progressMessage,\n isLoading,\n isLoadingNewPage,\n fetchNextPageOfInfiniteData,\n hasNextPageOfInfiniteData,\n } = useRowSet(initialLimitIsApplied ? initialLimit : undefined)\n\n return (\n <SynapseErrorBoundary>\n <div className={`RowSetView`}>\n {isLoading && (\n <QueryWrapperLoadingScreen progressMessage={progressMessage} />\n )}\n {!isLoading &&\n rowSet && (\n // even after the rowSet is loaded, a child component may suspend\n <Suspense\n fallback={\n <QueryWrapperLoadingScreen progressMessage={progressMessage} />\n }\n >\n {tableConfiguration && (\n <SynapseTable\n {...tableConfiguration}\n rowSet={rowSet}\n isLoadingNewPage={isLoadingNewPage}\n />\n )}\n {cardConfiguration && (\n <CardContainer\n {...cardConfiguration}\n rowSet={rowSet}\n multiCardList={multiCardList}\n />\n )}\n </Suspense>\n )}\n <Suspense fallback={<></>}>\n {!isInfinite && (\n <Box sx={{ mt: 2, textAlign: 'right' }}>\n <TablePagination />\n </Box>\n )}\n {isInfinite && (\n <ViewMoreQueryResultsButton\n initialLimit={initialLimit}\n initialLimitIsApplied={initialLimitIsApplied}\n onRemoveInitialLimit={() => {\n setInitialLimitIsApplied(false)\n }}\n fetchNextPage={() => {\n void fetchNextPageOfInfiniteData()\n }}\n hasNextPage={hasNextPageOfInfiniteData}\n isFetchingNextPage={isLoadingNewPage}\n />\n )}\n </Suspense>\n <LastUpdatedOn />\n </div>\n </SynapseErrorBoundary>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AA4BA,SAAgB,EAAW,GAAwB;CACjD,IAAM,EAAE,sBAAmB,iBAAc,iBAAc,qBAAkB,GAEnE,CAAC,GAAuB,KAA4B,EACxD,KAAgB,
|
|
1
|
+
{"version":3,"file":"RowSetView.js","names":[],"sources":["../../../src/components/QueryWrapperPlotNav/RowSetView.tsx"],"sourcesContent":["import { Suspense, useState } from 'react'\nimport { CardContainer } from '../CardContainer/CardContainer'\nimport { SynapseTable, SynapseTableConfiguration } from '../SynapseTable'\nimport { CardConfiguration } from '../CardContainer/CardConfiguration'\nimport LastUpdatedOn from './LastUpdatedOn'\nimport { useDeepCompareMemoize } from 'use-deep-compare-effect'\nimport QueryWrapperLoadingScreen from '../QueryWrapper/QueryWrapperLoadingScreen'\nimport { SynapseErrorBoundary } from '../error'\nimport { useQueryContext } from '../QueryContext'\nimport { Box } from '@mui/material'\nimport { TablePagination } from '../SynapseTable/TablePagination'\nimport { ViewMoreQueryResultsButton } from '../QueryWrapper/ViewMoreQueryResultsButton'\nimport { useRowSet } from './UseRowSet'\n\nexport type RowSetViewProps = {\n tableConfiguration?: SynapseTableConfiguration\n cardConfiguration?: CardConfiguration\n initialLimit?: number\n hideDownload?: boolean\n multiCardList?: boolean\n}\n\n/**\n * Renders a table or cards representing the RowSet. Also displays appropriate pagination controls\n * depending on the value of QueryContext.isInfinite.\n * @param props\n * @constructor\n */\nexport function RowSetView(props: RowSetViewProps) {\n const { cardConfiguration, hideDownload, initialLimit, multiCardList } = props\n\n const [initialLimitIsApplied, setInitialLimitIsApplied] = useState(\n initialLimit != null,\n )\n\n const { isInfinite } = useQueryContext()\n const tableConfiguration = useDeepCompareMemoize(\n props.tableConfiguration\n ? {\n ...props.tableConfiguration,\n hideDownload,\n }\n : undefined,\n )\n\n const {\n rowSet,\n progressMessage,\n isLoading,\n isLoadingNewPage,\n fetchNextPageOfInfiniteData,\n hasNextPageOfInfiniteData,\n } = useRowSet(initialLimitIsApplied ? initialLimit : undefined)\n\n return (\n <SynapseErrorBoundary>\n <div className={`RowSetView`}>\n {isLoading && (\n <QueryWrapperLoadingScreen progressMessage={progressMessage} />\n )}\n {!isLoading &&\n rowSet && (\n // even after the rowSet is loaded, a child component may suspend\n <Suspense\n fallback={\n <QueryWrapperLoadingScreen progressMessage={progressMessage} />\n }\n >\n {tableConfiguration && (\n <SynapseTable\n {...tableConfiguration}\n rowSet={rowSet}\n isLoadingNewPage={isLoadingNewPage}\n />\n )}\n {cardConfiguration && (\n <CardContainer\n {...cardConfiguration}\n rowSet={rowSet}\n multiCardList={multiCardList}\n />\n )}\n </Suspense>\n )}\n <Suspense fallback={<></>}>\n {!isInfinite && (\n <Box sx={{ mt: 2, textAlign: 'right' }}>\n <TablePagination />\n </Box>\n )}\n {isInfinite && (\n <ViewMoreQueryResultsButton\n initialLimit={initialLimit}\n initialLimitIsApplied={initialLimitIsApplied}\n onRemoveInitialLimit={() => {\n setInitialLimitIsApplied(false)\n }}\n fetchNextPage={() => {\n void fetchNextPageOfInfiniteData()\n }}\n hasNextPage={hasNextPageOfInfiniteData}\n isFetchingNextPage={isLoadingNewPage}\n />\n )}\n </Suspense>\n <LastUpdatedOn />\n </div>\n </SynapseErrorBoundary>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AA4BA,SAAgB,EAAW,GAAwB;CACjD,IAAM,EAAE,sBAAmB,iBAAc,iBAAc,qBAAkB,GAEnE,CAAC,GAAuB,KAA4B,EACxD,KAAgB,IAClB,GAEM,EAAE,kBAAe,EAAgB,GACjC,IAAqB,EACzB,EAAM,qBACF;EACE,GAAG,EAAM;EACT;CACF,IACA,KAAA,CACN,GAEM,EACJ,WACA,oBACA,cACA,qBACA,gCACA,iCACE,EAAU,IAAwB,IAAe,KAAA,CAAS;CAE9D,OACE,kBAAC,GAAD,EAAA,UACE,kBAAC,OAAD;EAAK,WAAW;YAAhB;GACG,KACC,kBAAC,GAAD,EAA4C,mBAAkB,CAAA;GAE/D,CAAC,KACA,KAEE,kBAAC,GAAD;IACE,UACE,kBAAC,GAAD,EAA4C,mBAAkB,CAAA;cAFlE,CAKG,KACC,kBAAC,GAAD;KACE,GAAI;KACI;KACU;IACnB,CAAA,GAEF,KACC,kBAAC,GAAD;KACE,GAAI;KACI;KACO;IAChB,CAAA,CAEK;;GAEd,kBAAC,GAAD;IAAU,UAAU,kBAAA,GAAA,CAAI,CAAA;cAAxB,CACG,CAAC,KACA,kBAAC,GAAD;KAAK,IAAI;MAAE,IAAI;MAAG,WAAW;KAAQ;eACnC,kBAAC,GAAD,CAAkB,CAAA;IACf,CAAA,GAEN,KACC,kBAAC,GAAD;KACgB;KACS;KACvB,4BAA4B;MAC1B,EAAyB,EAAK;KAChC;KACA,qBAAqB;MACnB,EAAiC;KACnC;KACA,aAAa;KACb,oBAAoB;IACrB,CAAA,CAEK;;GACV,kBAAC,GAAD,CAAgB,CAAA;EACb;IACe,CAAA;AAE1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UseRowSet.js","names":[],"sources":["../../../src/components/QueryWrapperPlotNav/UseRowSet.ts"],"sourcesContent":["import { queryRequestsHaveSameTotalResults } from '@/utils/functions/queryUtils'\nimport { RowSet } from '@sage-bionetworks/synapse-types'\nimport { useInfiniteQuery, useQuery } from '@tanstack/react-query'\nimport { cloneDeep } from 'lodash-es'\nimport { useMemo } from 'react'\nimport { useQueryContext } from '../QueryContext'\n\nfunction useGetInfiniteRowSet() {\n const { isInfinite, rowDataInfiniteQueryOptions } = useQueryContext()\n const infiniteQuery = useInfiniteQuery({\n ...rowDataInfiniteQueryOptions,\n enabled: isInfinite,\n })\n\n const infiniteQueryProgressMessage = useInfiniteQuery({\n ...rowDataInfiniteQueryOptions,\n select: asyncJob => asyncJob.pages[0].progressMessage,\n enabled: isInfinite,\n })\n\n const infiniteQueryRowSet: RowSet | undefined = useMemo(() => {\n const rowSet = cloneDeep(\n infiniteQuery.data?.pages[0]?.responseBody?.queryResult?.queryResults,\n )\n if (rowSet) {\n rowSet.rows =\n infiniteQuery.data?.pages.flatMap(\n page => page.responseBody?.queryResult?.queryResults.rows || [],\n ) || []\n }\n return rowSet\n }, [infiniteQuery.data?.pages])\n\n return {\n infiniteQuery,\n infiniteQueryRowSet,\n infiniteQueryProgressMessage,\n }\n}\n\nfunction useGetPaginatedRowSet() {\n const { isInfinite, rowDataQueryOptions, getCurrentQueryRequest } =\n useQueryContext()\n const paginatedQuery = useQuery({\n ...rowDataQueryOptions,\n enabled: !isInfinite,\n // Keep the previous data when fetching a new page. We will use `UseQueryResult.isPlaceholderData` to trigger a showing placeholder UI\n placeholderData: prevData => {\n if (prevData) {\n const prevQuery = prevData.requestBody?.query\n // Check that only the page/sort changed; if the filters/sql changed, then don't hold on to the old data\n // prevQuery may be undefined when the requestBody is not a QueryBundleRequest (e.g. SearchQueryWrapper)\n if (\n prevQuery &&\n queryRequestsHaveSameTotalResults(\n prevQuery,\n getCurrentQueryRequest().query,\n )\n ) {\n return prevData\n }\n }\n return undefined\n },\n })\n const paginatedQueryProgressMessage = useQuery({\n ...rowDataQueryOptions,\n select: asyncJob => asyncJob.progressMessage,\n enabled: !isInfinite,\n // Keep the previous data when fetching a new page. We will use `isPlaceholderData` to trigger a showing placeholder UI\n placeholderData: prevData => prevData,\n })\n\n return { paginatedQuery, paginatedQueryProgressMessage }\n}\n\n/**\n * Fetches the row data for a query and returns a RowSet that can be rendered as cards or a table. Respects the value of\n * QueryContext.isInfinite.\n * @param initialLimit\n */\nexport function useRowSet(initialLimit?: number) {\n const { isInfinite } = useQueryContext()\n\n const { paginatedQuery, paginatedQueryProgressMessage } =\n useGetPaginatedRowSet()\n const { infiniteQuery, infiniteQueryRowSet, infiniteQueryProgressMessage } =\n useGetInfiniteRowSet()\n\n const rowSet = useMemo(() => {\n let rowSet: RowSet | undefined\n if (isInfinite) {\n rowSet = infiniteQueryRowSet\n } else {\n rowSet = paginatedQuery.data\n }\n if (rowSet && initialLimit != null) {\n rowSet = { ...rowSet, rows: rowSet.rows.slice(0, initialLimit) }\n }\n return rowSet\n }, [infiniteQueryRowSet, initialLimit, isInfinite, paginatedQuery.data])\n\n const progressMessage: string | undefined = isInfinite\n ? infiniteQueryProgressMessage.data\n : paginatedQueryProgressMessage.data\n\n const isLoading = isInfinite\n ? infiniteQuery.isLoading\n : paginatedQuery.isLoading\n\n const isLoadingNewPage = isInfinite\n ? infiniteQuery.isFetchingNextPage\n : paginatedQuery.isPlaceholderData\n\n return {\n rowSet,\n progressMessage,\n isLoading,\n isLoadingNewPage,\n fetchNextPageOfInfiniteData: infiniteQuery.fetchNextPage,\n hasNextPageOfInfiniteData: infiniteQuery.hasNextPage,\n }\n}\n"],"mappings":";;;;;;;AAOA,SAAS,IAAuB;CAC9B,IAAM,EAAE,eAAY,mCAAgC,
|
|
1
|
+
{"version":3,"file":"UseRowSet.js","names":[],"sources":["../../../src/components/QueryWrapperPlotNav/UseRowSet.ts"],"sourcesContent":["import { queryRequestsHaveSameTotalResults } from '@/utils/functions/queryUtils'\nimport { RowSet } from '@sage-bionetworks/synapse-types'\nimport { useInfiniteQuery, useQuery } from '@tanstack/react-query'\nimport { cloneDeep } from 'lodash-es'\nimport { useMemo } from 'react'\nimport { useQueryContext } from '../QueryContext'\n\nfunction useGetInfiniteRowSet() {\n const { isInfinite, rowDataInfiniteQueryOptions } = useQueryContext()\n const infiniteQuery = useInfiniteQuery({\n ...rowDataInfiniteQueryOptions,\n enabled: isInfinite,\n })\n\n const infiniteQueryProgressMessage = useInfiniteQuery({\n ...rowDataInfiniteQueryOptions,\n select: asyncJob => asyncJob.pages[0].progressMessage,\n enabled: isInfinite,\n })\n\n const infiniteQueryRowSet: RowSet | undefined = useMemo(() => {\n const rowSet = cloneDeep(\n infiniteQuery.data?.pages[0]?.responseBody?.queryResult?.queryResults,\n )\n if (rowSet) {\n rowSet.rows =\n infiniteQuery.data?.pages.flatMap(\n page => page.responseBody?.queryResult?.queryResults.rows || [],\n ) || []\n }\n return rowSet\n }, [infiniteQuery.data?.pages])\n\n return {\n infiniteQuery,\n infiniteQueryRowSet,\n infiniteQueryProgressMessage,\n }\n}\n\nfunction useGetPaginatedRowSet() {\n const { isInfinite, rowDataQueryOptions, getCurrentQueryRequest } =\n useQueryContext()\n const paginatedQuery = useQuery({\n ...rowDataQueryOptions,\n enabled: !isInfinite,\n // Keep the previous data when fetching a new page. We will use `UseQueryResult.isPlaceholderData` to trigger a showing placeholder UI\n placeholderData: prevData => {\n if (prevData) {\n const prevQuery = prevData.requestBody?.query\n // Check that only the page/sort changed; if the filters/sql changed, then don't hold on to the old data\n // prevQuery may be undefined when the requestBody is not a QueryBundleRequest (e.g. SearchQueryWrapper)\n if (\n prevQuery &&\n queryRequestsHaveSameTotalResults(\n prevQuery,\n getCurrentQueryRequest().query,\n )\n ) {\n return prevData\n }\n }\n return undefined\n },\n })\n const paginatedQueryProgressMessage = useQuery({\n ...rowDataQueryOptions,\n select: asyncJob => asyncJob.progressMessage,\n enabled: !isInfinite,\n // Keep the previous data when fetching a new page. We will use `isPlaceholderData` to trigger a showing placeholder UI\n placeholderData: prevData => prevData,\n })\n\n return { paginatedQuery, paginatedQueryProgressMessage }\n}\n\n/**\n * Fetches the row data for a query and returns a RowSet that can be rendered as cards or a table. Respects the value of\n * QueryContext.isInfinite.\n * @param initialLimit\n */\nexport function useRowSet(initialLimit?: number) {\n const { isInfinite } = useQueryContext()\n\n const { paginatedQuery, paginatedQueryProgressMessage } =\n useGetPaginatedRowSet()\n const { infiniteQuery, infiniteQueryRowSet, infiniteQueryProgressMessage } =\n useGetInfiniteRowSet()\n\n const rowSet = useMemo(() => {\n let rowSet: RowSet | undefined\n if (isInfinite) {\n rowSet = infiniteQueryRowSet\n } else {\n rowSet = paginatedQuery.data\n }\n if (rowSet && initialLimit != null) {\n rowSet = { ...rowSet, rows: rowSet.rows.slice(0, initialLimit) }\n }\n return rowSet\n }, [infiniteQueryRowSet, initialLimit, isInfinite, paginatedQuery.data])\n\n const progressMessage: string | undefined = isInfinite\n ? infiniteQueryProgressMessage.data\n : paginatedQueryProgressMessage.data\n\n const isLoading = isInfinite\n ? infiniteQuery.isLoading\n : paginatedQuery.isLoading\n\n const isLoadingNewPage = isInfinite\n ? infiniteQuery.isFetchingNextPage\n : paginatedQuery.isPlaceholderData\n\n return {\n rowSet,\n progressMessage,\n isLoading,\n isLoadingNewPage,\n fetchNextPageOfInfiniteData: infiniteQuery.fetchNextPage,\n hasNextPageOfInfiniteData: infiniteQuery.hasNextPage,\n }\n}\n"],"mappings":";;;;;;;AAOA,SAAS,IAAuB;CAC9B,IAAM,EAAE,eAAY,mCAAgC,EAAgB,GAC9D,IAAgB,EAAiB;EACrC,GAAG;EACH,SAAS;CACX,CAAC,GAEK,IAA+B,EAAiB;EACpD,GAAG;EACH,SAAQ,MAAY,EAAS,MAAM,GAAG;EACtC,SAAS;CACX,CAAC;CAeD,OAAO;EACL;EACA,qBAf8C,QAAc;GAC5D,IAAM,IAAS,EACb,EAAc,MAAM,MAAM,IAAI,cAAc,aAAa,YAC3D;GAOA,OANI,MACF,EAAO,OACL,EAAc,MAAM,MAAM,SACxB,MAAQ,EAAK,cAAc,aAAa,aAAa,QAAQ,CAAC,CAChE,KAAK,CAAC,IAEH;EACT,GAAG,CAAC,EAAc,MAAM,KAAK,CAI3B;EACA;CACF;AACF;AAEA,SAAS,IAAwB;CAC/B,IAAM,EAAE,eAAY,wBAAqB,8BACvC,EAAgB;CA+BlB,OAAO;EAAE,gBA9Bc,EAAS;GAC9B,GAAG;GACH,SAAS,CAAC;GAEV,kBAAiB,MAAY;IAC3B,IAAI,GAAU;KACZ,IAAM,IAAY,EAAS,aAAa;KAGxC,IACE,KACA,EACE,GACA,EAAuB,EAAE,KAC3B,GAEA,OAAO;IAEX;GAEF;EACF,CASS;EAAgB,+BARa,EAAS;GAC7C,GAAG;GACH,SAAQ,MAAY,EAAS;GAC7B,SAAS,CAAC;GAEV,kBAAiB,MAAY;EAC/B,CAEyB;CAA8B;AACzD;AAOA,SAAgB,EAAU,GAAuB;CAC/C,IAAM,EAAE,kBAAe,EAAgB,GAEjC,EAAE,mBAAgB,qCACtB,EAAsB,GAClB,EAAE,kBAAe,wBAAqB,oCAC1C,EAAqB;CA2BvB,OAAO;EACL,QA1Ba,QAAc;GAC3B,IAAI;GASJ,OARA,AAGE,IAHE,IACO,IAEA,EAAe,MAEtB,KAAU,KAAgB,SAC5B,IAAS;IAAE,GAAG;IAAQ,MAAM,EAAO,KAAK,MAAM,GAAG,CAAY;GAAE,IAE1D;EACT,GAAG;GAAC;GAAqB;GAAc;GAAY,EAAe;EAAI,CAepE;EACA,iBAd0C,IACxC,EAA6B,OAC7B,EAA8B;EAahC,WAXgB,IACd,EAAc,YACd,EAAe;EAUjB,kBARuB,IACrB,EAAc,qBACd,EAAe;EAOjB,6BAA6B,EAAc;EAC3C,2BAA2B,EAAc;CAC3C;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RORInstitutionField.js","names":[],"sources":["../../../src/components/RORInstitutionField/RORInstitutionField.tsx"],"sourcesContent":["import { ROROrganization } from '@/ror-client/types/ROROrganization'\nimport { useSearchRegistry } from '@/synapse-queries/ror'\nimport {\n Autocomplete,\n Box,\n TextField,\n TextFieldProps,\n Typography,\n} from '@mui/material'\nimport { useDebouncedEffect } from '@react-hookz/web'\nimport noop from 'lodash-es/noop'\nimport { useState } from 'react'\n\nexport type RORLinkedInstitutionFieldProps = {\n value?: string\n onChange?: (value: string | undefined, rorIdentifier?: string) => void\n error?: TextFieldProps['error']\n}\n\nfunction getOrganizationDisplayName(organization: ROROrganization) {\n return organization.names.find(name => name.types.includes('ror_display'))!\n}\n\n/**\n * Provides a text field for entering an organization name with an autocomplete dropdown of ROR organizations, fetched from the\n * ROR API.\n * @param props\n * @constructor\n */\nexport default function RORInstitutionField(\n props: RORLinkedInstitutionFieldProps,\n) {\n const { value: valueFromProps, onChange = noop, error } = props\n\n const isControlled = valueFromProps !== undefined\n\n const [internalInputValue, setInternalInputValue] = useState('')\n const [searchValue, setSearchValue] = useState('')\n\n useDebouncedEffect(\n () => {\n if (isControlled) {\n setSearchValue(valueFromProps || '')\n } else {\n setSearchValue(internalInputValue)\n }\n },\n [valueFromProps, internalInputValue, isControlled],\n 500,\n )\n\n const { data: searchResults, isLoading: isLoadingSearch } = useSearchRegistry(\n `${searchValue}`,\n {\n enabled: searchValue.length > 0,\n },\n )\n\n return (\n <Autocomplete\n freeSolo\n loading={isLoadingSearch}\n onInputChange={(_event, newValue) => {\n if (!isControlled) {\n setInternalInputValue(newValue)\n }\n onChange(newValue)\n }}\n renderInput={params => (\n <TextField\n {...params}\n label=\"Current Affiliation\"\n placeholder={'Type to search, or enter free text.'}\n error={error}\n />\n )}\n inputValue={isControlled ? valueFromProps : internalInputValue}\n getOptionLabel={option =>\n typeof option === 'string'\n ? option\n : getOrganizationDisplayName(option).value\n }\n renderOption={(props, option) => {\n const displayName = getOrganizationDisplayName(option).value\n const otherNames = option.names.filter(\n name => !name.types.includes('ror_display'),\n )\n return (\n <Box component=\"li\" {...props}>\n <div>\n <Typography variant={'body1'}>{displayName}</Typography>\n <Typography\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n fontStyle: 'italic',\n fontSize: '11px',\n }}\n >\n {otherNames.map(name => name.value).join(', ')}\n </Typography>\n </div>\n </Box>\n )\n }}\n filterOptions={x => x}\n options={searchResults?.items || []}\n />\n )\n}\n"],"mappings":";;;;;;;AAmBA,SAAS,EAA2B,GAA+B;
|
|
1
|
+
{"version":3,"file":"RORInstitutionField.js","names":[],"sources":["../../../src/components/RORInstitutionField/RORInstitutionField.tsx"],"sourcesContent":["import { ROROrganization } from '@/ror-client/types/ROROrganization'\nimport { useSearchRegistry } from '@/synapse-queries/ror'\nimport {\n Autocomplete,\n Box,\n TextField,\n TextFieldProps,\n Typography,\n} from '@mui/material'\nimport { useDebouncedEffect } from '@react-hookz/web'\nimport noop from 'lodash-es/noop'\nimport { useState } from 'react'\n\nexport type RORLinkedInstitutionFieldProps = {\n value?: string\n onChange?: (value: string | undefined, rorIdentifier?: string) => void\n error?: TextFieldProps['error']\n}\n\nfunction getOrganizationDisplayName(organization: ROROrganization) {\n return organization.names.find(name => name.types.includes('ror_display'))!\n}\n\n/**\n * Provides a text field for entering an organization name with an autocomplete dropdown of ROR organizations, fetched from the\n * ROR API.\n * @param props\n * @constructor\n */\nexport default function RORInstitutionField(\n props: RORLinkedInstitutionFieldProps,\n) {\n const { value: valueFromProps, onChange = noop, error } = props\n\n const isControlled = valueFromProps !== undefined\n\n const [internalInputValue, setInternalInputValue] = useState('')\n const [searchValue, setSearchValue] = useState('')\n\n useDebouncedEffect(\n () => {\n if (isControlled) {\n setSearchValue(valueFromProps || '')\n } else {\n setSearchValue(internalInputValue)\n }\n },\n [valueFromProps, internalInputValue, isControlled],\n 500,\n )\n\n const { data: searchResults, isLoading: isLoadingSearch } = useSearchRegistry(\n `${searchValue}`,\n {\n enabled: searchValue.length > 0,\n },\n )\n\n return (\n <Autocomplete\n freeSolo\n loading={isLoadingSearch}\n onInputChange={(_event, newValue) => {\n if (!isControlled) {\n setInternalInputValue(newValue)\n }\n onChange(newValue)\n }}\n renderInput={params => (\n <TextField\n {...params}\n label=\"Current Affiliation\"\n placeholder={'Type to search, or enter free text.'}\n error={error}\n />\n )}\n inputValue={isControlled ? valueFromProps : internalInputValue}\n getOptionLabel={option =>\n typeof option === 'string'\n ? option\n : getOrganizationDisplayName(option).value\n }\n renderOption={(props, option) => {\n const displayName = getOrganizationDisplayName(option).value\n const otherNames = option.names.filter(\n name => !name.types.includes('ror_display'),\n )\n return (\n <Box component=\"li\" {...props}>\n <div>\n <Typography variant={'body1'}>{displayName}</Typography>\n <Typography\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n fontStyle: 'italic',\n fontSize: '11px',\n }}\n >\n {otherNames.map(name => name.value).join(', ')}\n </Typography>\n </div>\n </Box>\n )\n }}\n filterOptions={x => x}\n options={searchResults?.items || []}\n />\n )\n}\n"],"mappings":";;;;;;;AAmBA,SAAS,EAA2B,GAA+B;CACjE,OAAO,EAAa,MAAM,MAAK,MAAQ,EAAK,MAAM,SAAS,aAAa,CAAC;AAC3E;AAQA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,OAAO,GAAgB,cAAW,GAAM,aAAU,GAEpD,IAAe,MAAmB,KAAA,GAElC,CAAC,GAAoB,KAAyB,EAAS,EAAE,GACzD,CAAC,GAAa,KAAkB,EAAS,EAAE;CAEjD,QACQ;EACJ,AACE,EADE,IACa,KAAkB,KAElB,CAAkB;CAErC,GACA;EAAC;EAAgB;EAAoB;CAAY,GACjD,GACF;CAEA,IAAM,EAAE,MAAM,GAAe,WAAW,MAAoB,EAC1D,GAAG,KACH,EACE,SAAS,EAAY,SAAS,EAChC,CACF;CAEA,OACE,kBAAC,GAAD;EACE,UAAA;EACA,SAAS;EACT,gBAAgB,GAAQ,MAAa;GAInC,AAHK,KACH,EAAsB,CAAQ,GAEhC,EAAS,CAAQ;EACnB;EACA,cAAa,MACX,kBAAC,GAAD;GACE,GAAI;GACJ,OAAM;GACN,aAAa;GACN;EACR,CAAA;EAEH,YAAY,IAAe,IAAiB;EAC5C,iBAAgB,MACd,OAAO,KAAW,WACd,IACA,EAA2B,CAAM,EAAE;EAEzC,eAAe,GAAO,MAAW;GAC/B,IAAM,IAAc,EAA2B,CAAM,EAAE,OACjD,IAAa,EAAO,MAAM,QAC9B,MAAQ,CAAC,EAAK,MAAM,SAAS,aAAa,CAC5C;GACA,OACE,kBAAC,GAAD;IAAK,WAAU;IAAK,GAAI;cACtB,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;KAAY,SAAS;eAAU;IAAwB,CAAA,GACvD,kBAAC,GAAD;KACE,SAAS;KACT,IAAI;MACF,OAAO;MACP,WAAW;MACX,UAAU;KACZ;eAEC,EAAW,KAAI,MAAQ,EAAK,KAAK,EAAE,KAAK,IAAI;IACnC,CAAA,CACT,EAAA,CAAA;GACF,CAAA;EAET;EACA,gBAAe,MAAK;EACpB,SAAS,GAAe,SAAS,CAAC;CACnC,CAAA;AAEL"}
|
|
@@ -102,9 +102,7 @@ function g(e) {
|
|
|
102
102
|
concreteType: "org.sagebionetworks.repo.model.table.QueryBundleRequest",
|
|
103
103
|
entityId: t(i),
|
|
104
104
|
query: { sql: i }
|
|
105
|
-
}), m = u?.queryResult.queryResults.rows ?? [], g =
|
|
106
|
-
return e.CATEGORY = "Category", e.JOURNAL = "Journal", e.TITLE = "Title", e.PUBLICATION_DATE = "publicationDate", e.DOI = "DOI", e;
|
|
107
|
-
}({}), _ = n(g.CATEGORY, u), v = n(g.JOURNAL, u), y = n(g.TITLE, u), b = n(g.PUBLICATION_DATE, u), x = n(g.DOI, u);
|
|
105
|
+
}), m = u?.queryResult.queryResults.rows ?? [], g = n("Category", u), _ = n("Journal", u), v = n("Title", u), y = n("publicationDate", u), b = n("DOI", u);
|
|
108
106
|
return /* @__PURE__ */ f(o, {
|
|
109
107
|
sx: {
|
|
110
108
|
display: "grid",
|
|
@@ -145,11 +143,11 @@ function g(e) {
|
|
|
145
143
|
children: m.map((e) => /* @__PURE__ */ d(h, {
|
|
146
144
|
pub: e,
|
|
147
145
|
isLoading: p,
|
|
148
|
-
categoryColIndex:
|
|
149
|
-
titleColIndex:
|
|
150
|
-
journalColIndex:
|
|
151
|
-
publicationDateColIndex:
|
|
152
|
-
doiColIndex:
|
|
146
|
+
categoryColIndex: g,
|
|
147
|
+
titleColIndex: v,
|
|
148
|
+
journalColIndex: _,
|
|
149
|
+
publicationDateColIndex: y,
|
|
150
|
+
doiColIndex: b
|
|
153
151
|
}, e.rowId))
|
|
154
152
|
})
|
|
155
153
|
}), /* @__PURE__ */ d(o, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecentPublicationsGrid.js","names":[],"sources":["../../../src/components/RecentPublicationsGrid/RecentPublicationsGrid.tsx"],"sourcesContent":["import React from 'react'\nimport useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/index'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport { convertDoiToLink } from '@/utils/functions/RegularExpressions'\nimport {\n BUNDLE_MASK_QUERY_RESULTS,\n BUNDLE_MASK_QUERY_SELECT_COLUMNS,\n} from '@/utils/SynapseConstants'\nimport { Box, Chip, Link as MuiLink, Skeleton, Typography } from '@mui/material'\nimport Grid from '@mui/material/Grid'\nimport { QueryBundleRequest, Row } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport PortalSectionHeader from '../PortalSectionHeader'\n\nexport type RecentPublicationsGridProps = {\n sql: string\n buttonLink?: string\n buttonLinkText?: string\n summaryText?: string\n}\n\ntype PublicationCardProps = {\n pub: Row\n isLoading: boolean\n categoryColIndex: number\n titleColIndex: number\n journalColIndex: number\n publicationDateColIndex: number\n doiColIndex: number\n}\n\nconst PublicationCard = ({\n pub,\n isLoading,\n categoryColIndex: _categoryColIndex, // PORTALS-3426 - category was dropped\n titleColIndex,\n journalColIndex,\n publicationDateColIndex,\n doiColIndex,\n}: PublicationCardProps): React.ReactNode => (\n <Grid\n key={pub.rowId}\n sx={{\n height: { xs: 'auto', sm: 'initial' },\n minWidth: { xs: '280px', lg: 'initial' },\n maxWidth: { xs: '450px', lg: 'initial' },\n }}\n >\n <Box sx={{ height: '100%' }}>\n {isLoading ? (\n <Skeleton variant=\"rectangular\" height={275} width=\"100%\" />\n ) : (\n <div>\n {pub.values[journalColIndex] && (\n <Chip\n label={\n <Typography\n variant={'overline'}\n sx={{ fontSize: '14px', lineHeight: 'initial' }}\n >\n {pub.values[journalColIndex]}\n </Typography>\n }\n sx={{\n borderRadius: '3px',\n height: 'auto',\n padding: '4px 8px',\n '& .MuiChip-label': {\n padding: '0',\n display: 'block',\n whiteSpace: 'normal',\n },\n }}\n />\n )}\n <Typography\n variant=\"headline2\"\n sx={{\n color: 'grey.1000',\n fontSize: '21px',\n padding: '20px 0px',\n }}\n >\n <MuiLink\n href={convertDoiToLink(pub.values[doiColIndex] || '')}\n target=\"_blank\"\n sx={{\n color: 'inherit',\n textDecoration: 'none',\n fontWeight: 'inherit',\n '&:hover': {\n textDecoration: 'none',\n },\n }}\n >\n {pub.values[titleColIndex]}\n </MuiLink>\n </Typography>\n <Box\n sx={{\n display: 'flex',\n gap: '8px',\n flexDirection: 'column',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n color: 'grey.700',\n fontSize: '14px',\n lineHeight: 1.35,\n paddingBottom: { xs: 0, md: '35px' },\n }}\n >\n {pub.values[publicationDateColIndex] &&\n formatDate(\n dayjs(Number(pub.values[publicationDateColIndex])),\n 'MMMM, YYYY',\n )}\n </Typography>\n </Box>\n </div>\n )}\n </Box>\n </Grid>\n)\n\nfunction RecentPublicationsGrid(props: RecentPublicationsGridProps) {\n const { sql, buttonLink, buttonLinkText, summaryText } = props\n\n const entityId = parseEntityIdFromSqlStatement(sql)\n\n const queryBundleRequest: QueryBundleRequest = {\n partMask: BUNDLE_MASK_QUERY_SELECT_COLUMNS | 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 CATEGORY = 'Category',\n JOURNAL = 'Journal',\n TITLE = 'Title',\n PUBLICATION_DATE = 'publicationDate',\n DOI = 'DOI',\n }\n\n const categoryColIndex = getFieldIndex(\n ExpectedColumns.CATEGORY,\n queryResultBundle,\n )\n const journalColIndex = getFieldIndex(\n ExpectedColumns.JOURNAL,\n queryResultBundle,\n )\n const titleColIndex = getFieldIndex(ExpectedColumns.TITLE, queryResultBundle)\n const publicationDateColIndex = getFieldIndex(\n ExpectedColumns.PUBLICATION_DATE,\n queryResultBundle,\n )\n const doiColIndex = getFieldIndex(ExpectedColumns.DOI, queryResultBundle)\n\n return (\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: { xs: '1fr', md: '3fr 1fr' },\n height: { xs: 'auto', md: 'initial' },\n gap: { xs: '24px', md: '80px' },\n padding: { xs: '40px', lg: '80px' },\n }}\n >\n <Box\n sx={{\n order: { xs: 1, md: 0 },\n }}\n >\n <Box\n sx={theme => ({\n display: 'grid',\n gap: '32px',\n gridTemplateColumns: {\n xs: '1fr',\n sm: 'repeat(auto-fill, minmax(280px, 1fr))',\n lg: 'repeat(auto-fill, minmax(255px, 1fr))',\n xl: 'repeat(auto-fill, minmax(322px, 1fr))',\n },\n [theme.breakpoints.down('sm')]: {\n '& > :nth-of-type(n+4)': {\n display: 'none',\n },\n },\n })}\n >\n {dataRows.map(pub => (\n <PublicationCard\n pub={pub}\n key={pub.rowId}\n isLoading={isLoading}\n categoryColIndex={categoryColIndex}\n titleColIndex={titleColIndex}\n journalColIndex={journalColIndex}\n publicationDateColIndex={publicationDateColIndex}\n doiColIndex={doiColIndex}\n />\n ))}\n </Box>\n </Box>\n <Box sx={{ paddingBottom: '30px' }}>\n <PortalSectionHeader\n title=\"Recently Published\"\n summaryText={summaryText}\n buttonText={buttonLinkText}\n link={buttonLink}\n reverseButtonAndText\n sx={{\n h2: { fontSize: '24px', paddingTop: '30px', width: '100%' },\n '& p': { fontSize: '16px', lineHeight: '24px' },\n }}\n />\n </Box>\n </Box>\n )\n}\n\nexport default RecentPublicationsGrid\n"],"mappings":";;;;;;;;;;;;;;AAiCA,IAAM,KAAmB,EACvB,QACA,cACA,kBAAkB,GAClB,kBACA,oBACA,4BACA,qBAEA,kBAAC,GAAD;CAEE,IAAI;EACF,QAAQ;GAAE,IAAI;GAAQ,IAAI;
|
|
1
|
+
{"version":3,"file":"RecentPublicationsGrid.js","names":[],"sources":["../../../src/components/RecentPublicationsGrid/RecentPublicationsGrid.tsx"],"sourcesContent":["import React from 'react'\nimport useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/index'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport { convertDoiToLink } from '@/utils/functions/RegularExpressions'\nimport {\n BUNDLE_MASK_QUERY_RESULTS,\n BUNDLE_MASK_QUERY_SELECT_COLUMNS,\n} from '@/utils/SynapseConstants'\nimport { Box, Chip, Link as MuiLink, Skeleton, Typography } from '@mui/material'\nimport Grid from '@mui/material/Grid'\nimport { QueryBundleRequest, Row } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport PortalSectionHeader from '../PortalSectionHeader'\n\nexport type RecentPublicationsGridProps = {\n sql: string\n buttonLink?: string\n buttonLinkText?: string\n summaryText?: string\n}\n\ntype PublicationCardProps = {\n pub: Row\n isLoading: boolean\n categoryColIndex: number\n titleColIndex: number\n journalColIndex: number\n publicationDateColIndex: number\n doiColIndex: number\n}\n\nconst PublicationCard = ({\n pub,\n isLoading,\n categoryColIndex: _categoryColIndex, // PORTALS-3426 - category was dropped\n titleColIndex,\n journalColIndex,\n publicationDateColIndex,\n doiColIndex,\n}: PublicationCardProps): React.ReactNode => (\n <Grid\n key={pub.rowId}\n sx={{\n height: { xs: 'auto', sm: 'initial' },\n minWidth: { xs: '280px', lg: 'initial' },\n maxWidth: { xs: '450px', lg: 'initial' },\n }}\n >\n <Box sx={{ height: '100%' }}>\n {isLoading ? (\n <Skeleton variant=\"rectangular\" height={275} width=\"100%\" />\n ) : (\n <div>\n {pub.values[journalColIndex] && (\n <Chip\n label={\n <Typography\n variant={'overline'}\n sx={{ fontSize: '14px', lineHeight: 'initial' }}\n >\n {pub.values[journalColIndex]}\n </Typography>\n }\n sx={{\n borderRadius: '3px',\n height: 'auto',\n padding: '4px 8px',\n '& .MuiChip-label': {\n padding: '0',\n display: 'block',\n whiteSpace: 'normal',\n },\n }}\n />\n )}\n <Typography\n variant=\"headline2\"\n sx={{\n color: 'grey.1000',\n fontSize: '21px',\n padding: '20px 0px',\n }}\n >\n <MuiLink\n href={convertDoiToLink(pub.values[doiColIndex] || '')}\n target=\"_blank\"\n sx={{\n color: 'inherit',\n textDecoration: 'none',\n fontWeight: 'inherit',\n '&:hover': {\n textDecoration: 'none',\n },\n }}\n >\n {pub.values[titleColIndex]}\n </MuiLink>\n </Typography>\n <Box\n sx={{\n display: 'flex',\n gap: '8px',\n flexDirection: 'column',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n color: 'grey.700',\n fontSize: '14px',\n lineHeight: 1.35,\n paddingBottom: { xs: 0, md: '35px' },\n }}\n >\n {pub.values[publicationDateColIndex] &&\n formatDate(\n dayjs(Number(pub.values[publicationDateColIndex])),\n 'MMMM, YYYY',\n )}\n </Typography>\n </Box>\n </div>\n )}\n </Box>\n </Grid>\n)\n\nfunction RecentPublicationsGrid(props: RecentPublicationsGridProps) {\n const { sql, buttonLink, buttonLinkText, summaryText } = props\n\n const entityId = parseEntityIdFromSqlStatement(sql)\n\n const queryBundleRequest: QueryBundleRequest = {\n partMask: BUNDLE_MASK_QUERY_SELECT_COLUMNS | 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 CATEGORY = 'Category',\n JOURNAL = 'Journal',\n TITLE = 'Title',\n PUBLICATION_DATE = 'publicationDate',\n DOI = 'DOI',\n }\n\n const categoryColIndex = getFieldIndex(\n ExpectedColumns.CATEGORY,\n queryResultBundle,\n )\n const journalColIndex = getFieldIndex(\n ExpectedColumns.JOURNAL,\n queryResultBundle,\n )\n const titleColIndex = getFieldIndex(ExpectedColumns.TITLE, queryResultBundle)\n const publicationDateColIndex = getFieldIndex(\n ExpectedColumns.PUBLICATION_DATE,\n queryResultBundle,\n )\n const doiColIndex = getFieldIndex(ExpectedColumns.DOI, queryResultBundle)\n\n return (\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: { xs: '1fr', md: '3fr 1fr' },\n height: { xs: 'auto', md: 'initial' },\n gap: { xs: '24px', md: '80px' },\n padding: { xs: '40px', lg: '80px' },\n }}\n >\n <Box\n sx={{\n order: { xs: 1, md: 0 },\n }}\n >\n <Box\n sx={theme => ({\n display: 'grid',\n gap: '32px',\n gridTemplateColumns: {\n xs: '1fr',\n sm: 'repeat(auto-fill, minmax(280px, 1fr))',\n lg: 'repeat(auto-fill, minmax(255px, 1fr))',\n xl: 'repeat(auto-fill, minmax(322px, 1fr))',\n },\n [theme.breakpoints.down('sm')]: {\n '& > :nth-of-type(n+4)': {\n display: 'none',\n },\n },\n })}\n >\n {dataRows.map(pub => (\n <PublicationCard\n pub={pub}\n key={pub.rowId}\n isLoading={isLoading}\n categoryColIndex={categoryColIndex}\n titleColIndex={titleColIndex}\n journalColIndex={journalColIndex}\n publicationDateColIndex={publicationDateColIndex}\n doiColIndex={doiColIndex}\n />\n ))}\n </Box>\n </Box>\n <Box sx={{ paddingBottom: '30px' }}>\n <PortalSectionHeader\n title=\"Recently Published\"\n summaryText={summaryText}\n buttonText={buttonLinkText}\n link={buttonLink}\n reverseButtonAndText\n sx={{\n h2: { fontSize: '24px', paddingTop: '30px', width: '100%' },\n '& p': { fontSize: '16px', lineHeight: '24px' },\n }}\n />\n </Box>\n </Box>\n )\n}\n\nexport default RecentPublicationsGrid\n"],"mappings":";;;;;;;;;;;;;;AAiCA,IAAM,KAAmB,EACvB,QACA,cACA,kBAAkB,GAClB,kBACA,oBACA,4BACA,qBAEA,kBAAC,GAAD;CAEE,IAAI;EACF,QAAQ;GAAE,IAAI;GAAQ,IAAI;EAAU;EACpC,UAAU;GAAE,IAAI;GAAS,IAAI;EAAU;EACvC,UAAU;GAAE,IAAI;GAAS,IAAI;EAAU;CACzC;WAEA,kBAAC,GAAD;EAAK,IAAI,EAAE,QAAQ,OAAO;YACvB,IACC,kBAAC,GAAD;GAAU,SAAQ;GAAc,QAAQ;GAAK,OAAM;EAAQ,CAAA,IAE3D,kBAAC,OAAD,EAAA,UAAA;GACG,EAAI,OAAO,MACV,kBAAC,GAAD;IACE,OACE,kBAAC,GAAD;KACE,SAAS;KACT,IAAI;MAAE,UAAU;MAAQ,YAAY;KAAU;eAE7C,EAAI,OAAO;IACF,CAAA;IAEd,IAAI;KACF,cAAc;KACd,QAAQ;KACR,SAAS;KACT,oBAAoB;MAClB,SAAS;MACT,SAAS;MACT,YAAY;KACd;IACF;GACD,CAAA;GAEH,kBAAC,GAAD;IACE,SAAQ;IACR,IAAI;KACF,OAAO;KACP,UAAU;KACV,SAAS;IACX;cAEA,kBAAC,GAAD;KACE,MAAM,EAAiB,EAAI,OAAO,MAAgB,EAAE;KACpD,QAAO;KACP,IAAI;MACF,OAAO;MACP,gBAAgB;MAChB,YAAY;MACZ,WAAW,EACT,gBAAgB,OAClB;KACF;eAEC,EAAI,OAAO;IACL,CAAA;GACC,CAAA;GACZ,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,KAAK;KACL,eAAe;IACjB;cAEA,kBAAC,GAAD;KACE,SAAQ;KACR,IAAI;MACF,OAAO;MACP,UAAU;MACV,YAAY;MACZ,eAAe;OAAE,IAAI;OAAG,IAAI;MAAO;KACrC;eAEC,EAAI,OAAO,MACV,EACE,EAAM,OAAO,EAAI,OAAO,EAAwB,CAAC,GACjD,YACF;IACQ,CAAA;GACT,CAAA;EACF,EAAA,CAAA;CAEJ,CAAA;AACD,GAnFC,EAAI,KAmFL;AAGR,SAAS,EAAuB,GAAoC;CAClE,IAAM,EAAE,QAAK,eAAY,mBAAgB,mBAAgB,GAYnD,EAAE,MAAM,GAAmB,iBAC/B,EAAwB;EARxB,UAAA;EACA,cAAc;EACd,UALe,EAA8B,CAK7C;EACA,OAAO,EACL,OACF;CAGwB,CAAkB,GAEtC,IAAW,GAAmB,YAAa,aAAa,QAAQ,CAAC,GAUjE,IAAmB,EAAA,YAEvB,CACF,GACM,IAAkB,EAAA,WAEtB,CACF,GACM,IAAgB,EAAA,SAAqC,CAAiB,GACtE,IAA0B,EAAA,mBAE9B,CACF,GACM,IAAc,EAAA,OAAmC,CAAiB;CAExE,OACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,qBAAqB;IAAE,IAAI;IAAO,IAAI;GAAU;GAChD,QAAQ;IAAE,IAAI;IAAQ,IAAI;GAAU;GACpC,KAAK;IAAE,IAAI;IAAQ,IAAI;GAAO;GAC9B,SAAS;IAAE,IAAI;IAAQ,IAAI;GAAO;EACpC;YAPF,CASE,kBAAC,GAAD;GACE,IAAI,EACF,OAAO;IAAE,IAAI;IAAG,IAAI;GAAE,EACxB;aAEA,kBAAC,GAAD;IACE,KAAI,OAAU;KACZ,SAAS;KACT,KAAK;KACL,qBAAqB;MACnB,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;KACN;MACC,EAAM,YAAY,KAAK,IAAI,IAAI,EAC9B,yBAAyB,EACvB,SAAS,OACX,EACF;IACF;cAEC,EAAS,KAAI,MACZ,kBAAC,GAAD;KACO;KAEM;KACO;KACH;KACE;KACQ;KACZ;IACd,GAPM,EAAI,KAOV,CACF;GACE,CAAA;EACF,CAAA,GACL,kBAAC,GAAD;GAAK,IAAI,EAAE,eAAe,OAAO;aAC/B,kBAAC,GAAD;IACE,OAAM;IACO;IACb,YAAY;IACZ,MAAM;IACN,sBAAA;IACA,IAAI;KACF,IAAI;MAAE,UAAU;MAAQ,YAAY;MAAQ,OAAO;KAAO;KAC1D,OAAO;MAAE,UAAU;MAAQ,YAAY;KAAO;IAChD;GACD,CAAA;EACE,CAAA,CACF;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegisterPageLogoutPrompt.js","names":[],"sources":["../../../src/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.tsx"],"sourcesContent":["import SageFullLogo from '@/assets/icons/SageFullLogo'\nimport { Button, Paper, Typography } from '@mui/material'\nimport { ReactNode } from 'react'\nimport { useApplicationSessionContext } from '@/utils'\n\nexport type RegisterPageLogoutPromptProps = {\n logo?: ReactNode\n}\n\nexport default function RegisterPageLogoutPrompt(\n props: RegisterPageLogoutPromptProps,\n) {\n const { logo = <SageFullLogo width={'100%'} /> } = props\n\n const { clearSession } = useApplicationSessionContext()\n\n return (\n <Paper\n sx={{\n width: '450px',\n px: 8,\n py: 6,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n }}\n >\n {logo}\n <Typography\n variant={'headline3'}\n sx={{\n my: 1,\n }}\n >\n Already Logged In\n </Typography>\n <Typography\n variant={'smallText1'}\n sx={{\n my: 1,\n }}\n >\n To register an account, please log out first\n </Typography>\n <Button\n variant={'contained'}\n size={'large'}\n fullWidth\n sx={{ p: 1.5, mt: 5, fontSize: '16px' }}\n onClick={() => {\n clearSession()\n }}\n >\n Log Out\n </Button>\n </Paper>\n )\n}\n"],"mappings":";;;;;;AASA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,UAAO,kBAAC,GAAD,EAAc,OAAO,
|
|
1
|
+
{"version":3,"file":"RegisterPageLogoutPrompt.js","names":[],"sources":["../../../src/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.tsx"],"sourcesContent":["import SageFullLogo from '@/assets/icons/SageFullLogo'\nimport { Button, Paper, Typography } from '@mui/material'\nimport { ReactNode } from 'react'\nimport { useApplicationSessionContext } from '@/utils'\n\nexport type RegisterPageLogoutPromptProps = {\n logo?: ReactNode\n}\n\nexport default function RegisterPageLogoutPrompt(\n props: RegisterPageLogoutPromptProps,\n) {\n const { logo = <SageFullLogo width={'100%'} /> } = props\n\n const { clearSession } = useApplicationSessionContext()\n\n return (\n <Paper\n sx={{\n width: '450px',\n px: 8,\n py: 6,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n }}\n >\n {logo}\n <Typography\n variant={'headline3'}\n sx={{\n my: 1,\n }}\n >\n Already Logged In\n </Typography>\n <Typography\n variant={'smallText1'}\n sx={{\n my: 1,\n }}\n >\n To register an account, please log out first\n </Typography>\n <Button\n variant={'contained'}\n size={'large'}\n fullWidth\n sx={{ p: 1.5, mt: 5, fontSize: '16px' }}\n onClick={() => {\n clearSession()\n }}\n >\n Log Out\n </Button>\n </Paper>\n )\n}\n"],"mappings":";;;;;;AASA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,UAAO,kBAAC,GAAD,EAAc,OAAO,OAAS,CAAA,MAAM,GAE7C,EAAE,oBAAiB,EAA6B;CAEtD,OACE,kBAAC,GAAD;EACE,IAAI;GACF,OAAO;GACP,IAAI;GACJ,IAAI;GACJ,SAAS;GACT,eAAe;GACf,YAAY;EACd;YARF;GAUG;GACD,kBAAC,GAAD;IACE,SAAS;IACT,IAAI,EACF,IAAI,EACN;cACD;GAEW,CAAA;GACZ,kBAAC,GAAD;IACE,SAAS;IACT,IAAI,EACF,IAAI,EACN;cACD;GAEW,CAAA;GACZ,kBAAC,GAAD;IACE,SAAS;IACT,MAAM;IACN,WAAA;IACA,IAAI;KAAE,GAAG;KAAK,IAAI;KAAG,UAAU;IAAO;IACtC,eAAe;KACb,EAAa;IACf;cACD;GAEO,CAAA;EACH;;AAEX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleaseCard.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCard.tsx"],"sourcesContent":["import { ReleaseCardLarge } from './ReleaseCardLarge'\nimport { ReleaseCardMedium } from './ReleaseCardMedium'\nimport { ReleaseCardConfig } from './ReleaseCardTypes'\n\n/**\n * Column index values into the row values given provided in \"data\"\n * Used to define release metadata (entity id, name, date)\n * as well as statistics and button to explore data\n */\nexport type ReleaseCardSchema = Record<string, number>\n\nexport type ReleaseCardProps = {\n schema: ReleaseCardSchema\n data: (string | null)[]\n includePortalCardClass?: boolean\n releaseCardConfig: ReleaseCardConfig\n}\n\n/**\n * Specialized Release Card, initially implemented for the GENIE portal.\n * Expects columns used to define release metadata (entity id, name, date)\n * as well as statistics columns and columns for defining a button to explore data\n * as defined in the releaseCardConfig\n */\nexport function ReleaseCard(props: ReleaseCardProps) {\n const { releaseCardConfig, ...rest } = props\n switch (releaseCardConfig.cardSize) {\n case 'large':\n return (\n <ReleaseCardLarge releaseCardConfig={releaseCardConfig} {...rest} />\n )\n case 'medium':\n return (\n <ReleaseCardMedium releaseCardConfig={releaseCardConfig} {...rest} />\n )\n default:\n console.error('No size specified for ReleaseCard')\n return <div />\n }\n}\n"],"mappings":";;;;AAwBA,SAAgB,EAAY,GAAyB;CACnD,IAAM,EAAE,sBAAmB,GAAG,MAAS;
|
|
1
|
+
{"version":3,"file":"ReleaseCard.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCard.tsx"],"sourcesContent":["import { ReleaseCardLarge } from './ReleaseCardLarge'\nimport { ReleaseCardMedium } from './ReleaseCardMedium'\nimport { ReleaseCardConfig } from './ReleaseCardTypes'\n\n/**\n * Column index values into the row values given provided in \"data\"\n * Used to define release metadata (entity id, name, date)\n * as well as statistics and button to explore data\n */\nexport type ReleaseCardSchema = Record<string, number>\n\nexport type ReleaseCardProps = {\n schema: ReleaseCardSchema\n data: (string | null)[]\n includePortalCardClass?: boolean\n releaseCardConfig: ReleaseCardConfig\n}\n\n/**\n * Specialized Release Card, initially implemented for the GENIE portal.\n * Expects columns used to define release metadata (entity id, name, date)\n * as well as statistics columns and columns for defining a button to explore data\n * as defined in the releaseCardConfig\n */\nexport function ReleaseCard(props: ReleaseCardProps) {\n const { releaseCardConfig, ...rest } = props\n switch (releaseCardConfig.cardSize) {\n case 'large':\n return (\n <ReleaseCardLarge releaseCardConfig={releaseCardConfig} {...rest} />\n )\n case 'medium':\n return (\n <ReleaseCardMedium releaseCardConfig={releaseCardConfig} {...rest} />\n )\n default:\n console.error('No size specified for ReleaseCard')\n return <div />\n }\n}\n"],"mappings":";;;;AAwBA,SAAgB,EAAY,GAAyB;CACnD,IAAM,EAAE,sBAAmB,GAAG,MAAS;CACvC,QAAQ,EAAkB,UAA1B;EACE,KAAK,SACH,OACE,kBAAC,GAAD;GAAqC;GAAmB,GAAI;EAAO,CAAA;EAEvE,KAAK,UACH,OACE,kBAAC,GAAD;GAAsC;GAAmB,GAAI;EAAO,CAAA;EAExE,SAEE,OADA,QAAQ,MAAM,mCAAmC,GAC1C,kBAAC,OAAD,CAAM,CAAA;CACjB;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleaseCardLarge.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardLarge.tsx"],"sourcesContent":["import { CalendarTodayTwoTone } from '@mui/icons-material'\nimport { Box, Button, Divider, Stack, Typography } from '@mui/material'\nimport { Fragment, useEffect, useState } from 'react'\nimport { Link as ReactRouterLink } from 'react-router'\nimport { ReleaseCardProps } from './ReleaseCard'\nimport { ReleaseCardLargeConfig, ReleaseCardStat } from './ReleaseCardTypes'\nimport {\n formatExplorePagePathAndQueryString,\n formatReleaseCardData,\n} from './ReleaseCardUtils'\n\nfunction StatFlex({ value, label }: ReleaseCardStat) {\n return (\n <Stack\n direction=\"column\"\n sx={{\n alignItems: 'center',\n padding: { xs: '20px 10px', md: '20px 40px' },\n gap: '10px',\n // ensure that stats are aligned when multiple cards are stacked vertically\n width: { xs: 'unset', lg: '200px' },\n }}\n >\n <Typography variant=\"headline1\">{value}</Typography>\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n color: 'grey.700',\n }}\n >\n {label}\n </Typography>\n </Stack>\n )\n}\n\nexport type ReleaseCardLargeProps = Omit<\n ReleaseCardProps,\n 'releaseCardConfig'\n> & { releaseCardConfig: ReleaseCardLargeConfig }\n\nexport function ReleaseCardLarge({\n data,\n schema,\n includePortalCardClass = true,\n releaseCardConfig,\n}: ReleaseCardLargeProps) {\n const { releaseName, releaseDate, stats } = formatReleaseCardData(\n schema,\n data,\n releaseCardConfig.releaseMetadataConfig,\n releaseCardConfig.statsConfig,\n )\n const { primaryBtnConfig, secondaryBtnConfig } = releaseCardConfig\n\n const [primaryBtnPathAndQuery, setPrimaryBtnPathAndQuery] = useState<\n string | null\n >(null)\n const [secondaryBtnPathAndQuery, setSecondaryBtnPathAndQuery] = useState<\n string | null\n >(null)\n\n useEffect(() => {\n formatExplorePagePathAndQueryString(schema, data, primaryBtnConfig).then(\n setPrimaryBtnPathAndQuery,\n )\n\n formatExplorePagePathAndQueryString(schema, data, secondaryBtnConfig).then(\n setSecondaryBtnPathAndQuery,\n )\n }, [schema, data, primaryBtnConfig, secondaryBtnConfig])\n\n if (releaseName === null) return <></>\n\n return (\n <Box\n className={`ReleaseCard ${\n includePortalCardClass ? 'SRC-portalCard' : ''\n }`}\n sx={{\n minWidth: '200px',\n }}\n >\n <Stack\n direction={{ xs: 'column', lg: 'row' }}\n sx={{\n justifyContent: 'space-between',\n gap: '20px',\n padding: '20px',\n }}\n >\n <Stack\n direction=\"column\"\n sx={{\n gap: '20px',\n }}\n >\n <Stack\n direction=\"row\"\n sx={{\n alignItems: 'center',\n gap: '10px',\n }}\n >\n <CalendarTodayTwoTone sx={{ color: 'grey.700' }} />\n <Typography variant=\"headline1\">\n {releaseCardConfig.prependRelease && 'Release '}\n {releaseName}\n </Typography>\n </Stack>\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n sx={{\n alignItems: { xs: 'flex-start', sm: 'center' },\n gap: '20px',\n }}\n >\n {primaryBtnConfig && primaryBtnPathAndQuery && (\n <Button\n component={ReactRouterLink}\n variant=\"contained\"\n color=\"primary\"\n to={primaryBtnPathAndQuery}\n >\n {primaryBtnConfig.label}\n </Button>\n )}\n {secondaryBtnConfig && secondaryBtnPathAndQuery && (\n <Button component={ReactRouterLink} to={secondaryBtnPathAndQuery}>\n {secondaryBtnConfig.label}\n </Button>\n )}\n </Stack>\n </Stack>\n <Divider /> {/* divides stacks when page is narrow */}\n <Stack\n direction=\"row\"\n sx={{\n gap: { xs: 0, lg: '10px' },\n alignItems: 'center',\n justifyContent: { xs: 'space-evenly', lg: 'unset' },\n flexWrap: { xs: 'wrap', lg: 'nowrap' },\n }}\n >\n <StatFlex {...releaseDate} />\n {stats.map(stat => {\n return (\n <Fragment key={stat.label}>\n <Divider orientation=\"vertical\" flexItem />\n <StatFlex {...stat} />\n </Fragment>\n )\n })}\n </Stack>\n </Stack>\n </Box>\n )\n}\n"],"mappings":";;;;;;;AAWA,SAAS,EAAS,EAAE,UAAO,YAA0B;
|
|
1
|
+
{"version":3,"file":"ReleaseCardLarge.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardLarge.tsx"],"sourcesContent":["import { CalendarTodayTwoTone } from '@mui/icons-material'\nimport { Box, Button, Divider, Stack, Typography } from '@mui/material'\nimport { Fragment, useEffect, useState } from 'react'\nimport { Link as ReactRouterLink } from 'react-router'\nimport { ReleaseCardProps } from './ReleaseCard'\nimport { ReleaseCardLargeConfig, ReleaseCardStat } from './ReleaseCardTypes'\nimport {\n formatExplorePagePathAndQueryString,\n formatReleaseCardData,\n} from './ReleaseCardUtils'\n\nfunction StatFlex({ value, label }: ReleaseCardStat) {\n return (\n <Stack\n direction=\"column\"\n sx={{\n alignItems: 'center',\n padding: { xs: '20px 10px', md: '20px 40px' },\n gap: '10px',\n // ensure that stats are aligned when multiple cards are stacked vertically\n width: { xs: 'unset', lg: '200px' },\n }}\n >\n <Typography variant=\"headline1\">{value}</Typography>\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n color: 'grey.700',\n }}\n >\n {label}\n </Typography>\n </Stack>\n )\n}\n\nexport type ReleaseCardLargeProps = Omit<\n ReleaseCardProps,\n 'releaseCardConfig'\n> & { releaseCardConfig: ReleaseCardLargeConfig }\n\nexport function ReleaseCardLarge({\n data,\n schema,\n includePortalCardClass = true,\n releaseCardConfig,\n}: ReleaseCardLargeProps) {\n const { releaseName, releaseDate, stats } = formatReleaseCardData(\n schema,\n data,\n releaseCardConfig.releaseMetadataConfig,\n releaseCardConfig.statsConfig,\n )\n const { primaryBtnConfig, secondaryBtnConfig } = releaseCardConfig\n\n const [primaryBtnPathAndQuery, setPrimaryBtnPathAndQuery] = useState<\n string | null\n >(null)\n const [secondaryBtnPathAndQuery, setSecondaryBtnPathAndQuery] = useState<\n string | null\n >(null)\n\n useEffect(() => {\n formatExplorePagePathAndQueryString(schema, data, primaryBtnConfig).then(\n setPrimaryBtnPathAndQuery,\n )\n\n formatExplorePagePathAndQueryString(schema, data, secondaryBtnConfig).then(\n setSecondaryBtnPathAndQuery,\n )\n }, [schema, data, primaryBtnConfig, secondaryBtnConfig])\n\n if (releaseName === null) return <></>\n\n return (\n <Box\n className={`ReleaseCard ${\n includePortalCardClass ? 'SRC-portalCard' : ''\n }`}\n sx={{\n minWidth: '200px',\n }}\n >\n <Stack\n direction={{ xs: 'column', lg: 'row' }}\n sx={{\n justifyContent: 'space-between',\n gap: '20px',\n padding: '20px',\n }}\n >\n <Stack\n direction=\"column\"\n sx={{\n gap: '20px',\n }}\n >\n <Stack\n direction=\"row\"\n sx={{\n alignItems: 'center',\n gap: '10px',\n }}\n >\n <CalendarTodayTwoTone sx={{ color: 'grey.700' }} />\n <Typography variant=\"headline1\">\n {releaseCardConfig.prependRelease && 'Release '}\n {releaseName}\n </Typography>\n </Stack>\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n sx={{\n alignItems: { xs: 'flex-start', sm: 'center' },\n gap: '20px',\n }}\n >\n {primaryBtnConfig && primaryBtnPathAndQuery && (\n <Button\n component={ReactRouterLink}\n variant=\"contained\"\n color=\"primary\"\n to={primaryBtnPathAndQuery}\n >\n {primaryBtnConfig.label}\n </Button>\n )}\n {secondaryBtnConfig && secondaryBtnPathAndQuery && (\n <Button component={ReactRouterLink} to={secondaryBtnPathAndQuery}>\n {secondaryBtnConfig.label}\n </Button>\n )}\n </Stack>\n </Stack>\n <Divider /> {/* divides stacks when page is narrow */}\n <Stack\n direction=\"row\"\n sx={{\n gap: { xs: 0, lg: '10px' },\n alignItems: 'center',\n justifyContent: { xs: 'space-evenly', lg: 'unset' },\n flexWrap: { xs: 'wrap', lg: 'nowrap' },\n }}\n >\n <StatFlex {...releaseDate} />\n {stats.map(stat => {\n return (\n <Fragment key={stat.label}>\n <Divider orientation=\"vertical\" flexItem />\n <StatFlex {...stat} />\n </Fragment>\n )\n })}\n </Stack>\n </Stack>\n </Box>\n )\n}\n"],"mappings":";;;;;;;AAWA,SAAS,EAAS,EAAE,UAAO,YAA0B;CACnD,OACE,kBAAC,GAAD;EACE,WAAU;EACV,IAAI;GACF,YAAY;GACZ,SAAS;IAAE,IAAI;IAAa,IAAI;GAAY;GAC5C,KAAK;GAEL,OAAO;IAAE,IAAI;IAAS,IAAI;GAAQ;EACpC;YARF,CAUE,kBAAC,GAAD;GAAY,SAAQ;aAAa;EAAkB,CAAA,GACnD,kBAAC,GAAD;GACE,SAAQ;GACR,IAAI;IACF,YAAY;IACZ,OAAO;GACT;aAEC;EACS,CAAA,CACP;;AAEX;AAOA,SAAgB,EAAiB,EAC/B,SACA,WACA,4BAAyB,IACzB,wBACwB;CACxB,IAAM,EAAE,gBAAa,gBAAa,aAAU,EAC1C,GACA,GACA,EAAkB,uBAClB,EAAkB,WACpB,GACM,EAAE,qBAAkB,0BAAuB,GAE3C,CAAC,GAAwB,KAA6B,EAE1D,IAAI,GACA,CAAC,GAA0B,KAA+B,EAE9D,IAAI;CAcN,OAZA,QAAgB;EAKd,AAJA,EAAoC,GAAQ,GAAM,CAAgB,EAAE,KAClE,CACF,GAEA,EAAoC,GAAQ,GAAM,CAAkB,EAAE,KACpE,CACF;CACF,GAAG;EAAC;EAAQ;EAAM;EAAkB;CAAkB,CAAC,GAEnD,MAAgB,OAAa,kBAAA,GAAA,CAAI,CAAA,IAGnC,kBAAC,GAAD;EACE,WAAW,eACT,IAAyB,mBAAmB;EAE9C,IAAI,EACF,UAAU,QACZ;YAEA,kBAAC,GAAD;GACE,WAAW;IAAE,IAAI;IAAU,IAAI;GAAM;GACrC,IAAI;IACF,gBAAgB;IAChB,KAAK;IACL,SAAS;GACX;aANF;IAQE,kBAAC,GAAD;KACE,WAAU;KACV,IAAI,EACF,KAAK,OACP;eAJF,CAME,kBAAC,GAAD;MACE,WAAU;MACV,IAAI;OACF,YAAY;OACZ,KAAK;MACP;gBALF,CAOE,kBAAC,GAAD,EAAsB,IAAI,EAAE,OAAO,WAAW,EAAI,CAAA,GAClD,kBAAC,GAAD;OAAY,SAAQ;iBAApB,CACG,EAAkB,kBAAkB,YACpC,CACS;QACP;SACP,kBAAC,GAAD;MACE,WAAW;OAAE,IAAI;OAAU,IAAI;MAAM;MACrC,IAAI;OACF,YAAY;QAAE,IAAI;QAAc,IAAI;OAAS;OAC7C,KAAK;MACP;gBALF,CAOG,KAAoB,KACnB,kBAAC,GAAD;OACE,WAAW;OACX,SAAQ;OACR,OAAM;OACN,IAAI;iBAEH,EAAiB;MACZ,CAAA,GAET,KAAsB,KACrB,kBAAC,GAAD;OAAQ,WAAW;OAAiB,IAAI;iBACrC,EAAmB;MACd,CAAA,CAEL;OACF;;IACP,kBAAC,GAAD,CAAU,CAAA;IAAC;IACX,kBAAC,GAAD;KACE,WAAU;KACV,IAAI;MACF,KAAK;OAAE,IAAI;OAAG,IAAI;MAAO;MACzB,YAAY;MACZ,gBAAgB;OAAE,IAAI;OAAgB,IAAI;MAAQ;MAClD,UAAU;OAAE,IAAI;OAAQ,IAAI;MAAS;KACvC;eAPF,CASE,kBAAC,GAAD,EAAU,GAAI,EAAc,CAAA,GAC3B,EAAM,KAAI,MAEP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAS,aAAY;MAAW,UAAA;KAAU,CAAA,GAC1C,kBAAC,GAAD,EAAU,GAAI,EAAO,CAAA,CACb,EAAA,GAHK,EAAK,KAGV,CAEb,CACI;;GACF;;CACJ,CAAA;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleaseCardMedium.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardMedium.tsx"],"sourcesContent":["import { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { Box, Button, Link, Typography } from '@mui/material'\nimport { Link as ReactRouterLink } from 'react-router'\nimport { ReleaseCardProps } from './ReleaseCard'\nimport { ReleaseCardMediumConfig, ReleaseCardStat } from './ReleaseCardTypes'\nimport { formatReleaseCardData } from './ReleaseCardUtils'\n\nfunction StatGrid({ value, label }: ReleaseCardStat) {\n return (\n <>\n <Box\n sx={{\n gridColumn: 'span 1',\n gridRow: 'span 1',\n justifySelf: 'flex-end',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n }}\n >\n {value}\n </Typography>\n </Box>\n <Box\n sx={{\n gridColumn: 'span 1',\n gridRow: 'span 1',\n justifySelf: 'flex-start',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n color: 'grey.700',\n }}\n >\n {label}\n </Typography>\n </Box>\n </>\n )\n}\n\nexport type ReleaseCardMediumProps = Omit<\n ReleaseCardProps,\n 'releaseCardConfig'\n> & { releaseCardConfig: ReleaseCardMediumConfig }\n\nexport function ReleaseCardMedium({\n data,\n schema,\n includePortalCardClass = true,\n releaseCardConfig,\n}: ReleaseCardMediumProps) {\n const { releaseName, releaseEntityId, releaseDate, stats } =\n formatReleaseCardData(\n schema,\n data,\n releaseCardConfig.releaseMetadataConfig,\n releaseCardConfig.statsConfig,\n )\n\n if (releaseName === null) return <></>\n\n const nCols = 2\n const SPAN_ALL_COLS = `span ${nCols}`\n const nRows = stats.length + 4\n\n return (\n <Box\n className={`ReleaseCard ${\n includePortalCardClass ? 'SRC-portalCard' : ''\n }`}\n sx={{\n display: 'grid',\n gridTemplateColumns: `repeat(${nCols}, 1fr)`, // columns are controlled by this component, not the parent grid\n columnGap: '10px',\n gridTemplateRows: 'subgrid', // rows are controlled by parent grid, so text will be aligned across cards\n gridRow: `span ${nRows}`, // ensures that card spans the correct number of rows in the parent grid\n rowGap: '0px', // prevent parent grid from applying its gap to the subgrid rows\n alignItems: 'center',\n justifyItems: 'center',\n textAlign: 'center',\n padding: '30px 40px 40px',\n my: 0, // remove margin added by .SRC-portalCard - CardContainer list will set the gap between cards\n }}\n >\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n alignSelf: 'end',\n }}\n >\n <Typography variant=\"headline1\">{releaseName}</Typography>\n </Box>\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n mb: '30px',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n fontStyle: 'italic',\n color: 'grey.800',\n }}\n >{`Released ${releaseDate.value}`}</Typography>\n </Box>\n {stats.map(stat => (\n <StatGrid key={stat.label} {...stat} />\n ))}\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n mt: '20px',\n mb: '5px',\n }}\n >\n <Button\n component={ReactRouterLink}\n to={releaseCardConfig.requestAccessPath}\n sx={{ fontSize: '14px' }}\n >\n Request Access\n </Button>\n </Box>\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n }}\n >\n {releaseEntityId && (\n <Link\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${releaseEntityId}`}\n target=\"_blank\"\n rel=\"noreferrer\"\n sx={{\n fontSize: '14px',\n textDecoration: 'none',\n }}\n >\n View on Synapse.org\n </Link>\n )}\n </Box>\n </Box>\n )\n}\n"],"mappings":";;;;;;AAOA,SAAS,EAAS,EAAE,UAAO,YAA0B;
|
|
1
|
+
{"version":3,"file":"ReleaseCardMedium.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardMedium.tsx"],"sourcesContent":["import { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { Box, Button, Link, Typography } from '@mui/material'\nimport { Link as ReactRouterLink } from 'react-router'\nimport { ReleaseCardProps } from './ReleaseCard'\nimport { ReleaseCardMediumConfig, ReleaseCardStat } from './ReleaseCardTypes'\nimport { formatReleaseCardData } from './ReleaseCardUtils'\n\nfunction StatGrid({ value, label }: ReleaseCardStat) {\n return (\n <>\n <Box\n sx={{\n gridColumn: 'span 1',\n gridRow: 'span 1',\n justifySelf: 'flex-end',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n }}\n >\n {value}\n </Typography>\n </Box>\n <Box\n sx={{\n gridColumn: 'span 1',\n gridRow: 'span 1',\n justifySelf: 'flex-start',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n color: 'grey.700',\n }}\n >\n {label}\n </Typography>\n </Box>\n </>\n )\n}\n\nexport type ReleaseCardMediumProps = Omit<\n ReleaseCardProps,\n 'releaseCardConfig'\n> & { releaseCardConfig: ReleaseCardMediumConfig }\n\nexport function ReleaseCardMedium({\n data,\n schema,\n includePortalCardClass = true,\n releaseCardConfig,\n}: ReleaseCardMediumProps) {\n const { releaseName, releaseEntityId, releaseDate, stats } =\n formatReleaseCardData(\n schema,\n data,\n releaseCardConfig.releaseMetadataConfig,\n releaseCardConfig.statsConfig,\n )\n\n if (releaseName === null) return <></>\n\n const nCols = 2\n const SPAN_ALL_COLS = `span ${nCols}`\n const nRows = stats.length + 4\n\n return (\n <Box\n className={`ReleaseCard ${\n includePortalCardClass ? 'SRC-portalCard' : ''\n }`}\n sx={{\n display: 'grid',\n gridTemplateColumns: `repeat(${nCols}, 1fr)`, // columns are controlled by this component, not the parent grid\n columnGap: '10px',\n gridTemplateRows: 'subgrid', // rows are controlled by parent grid, so text will be aligned across cards\n gridRow: `span ${nRows}`, // ensures that card spans the correct number of rows in the parent grid\n rowGap: '0px', // prevent parent grid from applying its gap to the subgrid rows\n alignItems: 'center',\n justifyItems: 'center',\n textAlign: 'center',\n padding: '30px 40px 40px',\n my: 0, // remove margin added by .SRC-portalCard - CardContainer list will set the gap between cards\n }}\n >\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n alignSelf: 'end',\n }}\n >\n <Typography variant=\"headline1\">{releaseName}</Typography>\n </Box>\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n mb: '30px',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n fontStyle: 'italic',\n color: 'grey.800',\n }}\n >{`Released ${releaseDate.value}`}</Typography>\n </Box>\n {stats.map(stat => (\n <StatGrid key={stat.label} {...stat} />\n ))}\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n mt: '20px',\n mb: '5px',\n }}\n >\n <Button\n component={ReactRouterLink}\n to={releaseCardConfig.requestAccessPath}\n sx={{ fontSize: '14px' }}\n >\n Request Access\n </Button>\n </Box>\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n }}\n >\n {releaseEntityId && (\n <Link\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${releaseEntityId}`}\n target=\"_blank\"\n rel=\"noreferrer\"\n sx={{\n fontSize: '14px',\n textDecoration: 'none',\n }}\n >\n View on Synapse.org\n </Link>\n )}\n </Box>\n </Box>\n )\n}\n"],"mappings":";;;;;;AAOA,SAAS,EAAS,EAAE,UAAO,YAA0B;CACnD,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,IAAI;GACF,YAAY;GACZ,SAAS;GACT,aAAa;EACf;YAEA,kBAAC,GAAD;GACE,SAAQ;GACR,IAAI,EACF,YAAY,OACd;aAEC;EACS,CAAA;CACT,CAAA,GACL,kBAAC,GAAD;EACE,IAAI;GACF,YAAY;GACZ,SAAS;GACT,aAAa;EACf;YAEA,kBAAC,GAAD;GACE,SAAQ;GACR,IAAI;IACF,YAAY;IACZ,OAAO;GACT;aAEC;EACS,CAAA;CACT,CAAA,CACL,EAAA,CAAA;AAEN;AAOA,SAAgB,EAAkB,EAChC,SACA,WACA,4BAAyB,IACzB,wBACyB;CACzB,IAAM,EAAE,gBAAa,oBAAiB,gBAAa,aACjD,EACE,GACA,GACA,EAAkB,uBAClB,EAAkB,WACpB;CAEF,IAAI,MAAgB,MAAM,OAAO,kBAAA,GAAA,CAAI,CAAA;CAErC,IACM,IAAgB,UAChB,IAAQ,EAAM,SAAS;CAE7B,OACE,kBAAC,GAAD;EACE,WAAW,eACT,IAAyB,mBAAmB;EAE9C,IAAI;GACF,SAAS;GACT,qBAAqB;GACrB,WAAW;GACX,kBAAkB;GAClB,SAAS,QAAQ;GACjB,QAAQ;GACR,YAAY;GACZ,cAAc;GACd,WAAW;GACX,SAAS;GACT,IAAI;EACN;YAhBF;GAkBE,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;KACT,WAAW;IACb;cAEA,kBAAC,GAAD;KAAY,SAAQ;eAAa;IAAwB,CAAA;GACtD,CAAA;GACL,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;KACT,IAAI;IACN;cAEA,kBAAC,GAAD;KACE,SAAQ;KACR,IAAI;MACF,YAAY;MACZ,WAAW;MACX,OAAO;KACT;eACA,YAAY,EAAY;IAAoB,CAAA;GAC3C,CAAA;GACJ,EAAM,KAAI,MACT,kBAAC,GAAD,EAA2B,GAAI,EAAO,GAAvB,EAAK,KAAkB,CACvC;GACD,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;KACT,IAAI;KACJ,IAAI;IACN;cAEA,kBAAC,GAAD;KACE,WAAW;KACX,IAAI,EAAkB;KACtB,IAAI,EAAE,UAAU,OAAO;eACxB;IAEO,CAAA;GACL,CAAA;GACL,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;IACX;cAEC,KACC,kBAAC,GAAD;KACE,MAAM,GAAG,EAA2B,OAAO,UAAU;KACrD,QAAO;KACP,KAAI;KACJ,IAAI;MACF,UAAU;MACV,gBAAgB;KAClB;eACD;IAEK,CAAA;GAEL,CAAA;EACF;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleaseCardUtils.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardUtils.ts"],"sourcesContent":["import { formatDate } from '@/utils/functions/DateFormatter'\nimport dayjs from 'dayjs'\nimport { generateEncodedPathAndQueryForSelectedFacetURL } from '../QueryWrapper'\nimport { SelectedFacet } from '../QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL'\nimport { ReleaseCardSchema } from './ReleaseCard'\nimport {\n ButtonToExplorePageConfig,\n ReleaseCardStat,\n ReleaseMetadataConfig,\n SelectedFacetConfig,\n StatConfig,\n} from './ReleaseCardTypes'\n\nconst MISSING_STAT_DEFAULT_VALUE = 'Unknown'\n\nconst formatNumber = (num: number) => {\n if (num < 1_000_000) return num.toLocaleString()\n const numberFormatter = new Intl.NumberFormat([], {\n minimumFractionDigits: 1,\n maximumFractionDigits: 2,\n notation: 'compact',\n localeMatcher: 'best fit',\n })\n return numberFormatter.format(num)\n}\n\nconst getValueFromData = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n columnName: string,\n) => {\n const columnIndex = schema[columnName]\n let columnValue\n if (columnIndex === undefined) {\n console.error(`Could not find column named ${columnName}`)\n columnValue = null\n } else {\n columnValue = data[columnIndex]\n }\n return columnValue\n}\n\nconst formatReleaseStats = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n statsConfig: StatConfig[],\n) => {\n return statsConfig.map(statConfig => {\n const { columnName, label } = statConfig\n const statString = getValueFromData(schema, data, columnName)\n const cardStat: ReleaseCardStat = {\n label: label,\n value: statString\n ? formatNumber(Number(statString))\n : MISSING_STAT_DEFAULT_VALUE,\n }\n return cardStat\n })\n}\n\nconst formatReleaseDate = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n releaseDateColumnName: string,\n) => {\n const releaseDateString = getValueFromData(\n schema,\n data,\n releaseDateColumnName,\n )\n const cardStat: ReleaseCardStat = {\n label: 'Date of release',\n value: releaseDateString\n ? formatDate(dayjs(Number(releaseDateString)), 'MM/DD/YYYY')\n : MISSING_STAT_DEFAULT_VALUE,\n }\n return cardStat\n}\n\nexport const formatReleaseCardData = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n releaseMetdataConfig: ReleaseMetadataConfig,\n statsConfig: StatConfig[],\n) => {\n return {\n releaseName: getValueFromData(\n schema,\n data,\n releaseMetdataConfig.releaseNameColumnName,\n ),\n releaseEntityId: getValueFromData(\n schema,\n data,\n releaseMetdataConfig.releaseEntityIdColumnName,\n ),\n releaseDate: formatReleaseDate(\n schema,\n data,\n releaseMetdataConfig.releaseDateColumnName,\n ),\n stats: formatReleaseStats(schema, data, statsConfig),\n }\n}\n\nconst getAllSelectedFacets = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n selectedFacetConfigs: SelectedFacetConfig[] | undefined,\n staticSelectedFacets: SelectedFacet[] | undefined,\n): SelectedFacet[] => {\n const allSelectedFacets: SelectedFacet[] = staticSelectedFacets\n ? [...staticSelectedFacets]\n : []\n\n if (selectedFacetConfigs) {\n selectedFacetConfigs.forEach(selectedFacetConfig => {\n const sourceDataFacetValueColumnName =\n selectedFacetConfig.sourceTableColumnName\n const facetValue = sourceDataFacetValueColumnName\n ? getValueFromData(schema, data, sourceDataFacetValueColumnName)\n : null\n if (facetValue) {\n allSelectedFacets.push({\n facet: selectedFacetConfig.destinationTableColumnName,\n facetValue: facetValue,\n })\n }\n })\n }\n\n return allSelectedFacets\n}\n\nexport const formatExplorePagePathAndQueryString = async (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n btnConfig?: ButtonToExplorePageConfig,\n): Promise<string | null> => {\n if (!btnConfig) return null\n const path = getValueFromData(\n schema,\n data,\n btnConfig.sourceTablePathColumnName,\n )\n if (!path) {\n console.warn(\n `Column not found in source table or cell did not have value in source table for ${btnConfig.sourceTablePathColumnName}`,\n )\n return null\n }\n\n const {\n sourceTableSqlColumnName: sourceExploreDataSqlColumnName,\n selectedFacetConfigs,\n staticSelectedFacets,\n } = btnConfig\n\n const exploreDataSql = sourceExploreDataSqlColumnName\n ? getValueFromData(schema, data, sourceExploreDataSqlColumnName)\n : null\n const allSelectedFacets = getAllSelectedFacets(\n schema,\n data,\n selectedFacetConfigs,\n staticSelectedFacets,\n )\n const hasSelectedFacets = exploreDataSql && allSelectedFacets.length > 0\n\n return hasSelectedFacets\n ? await generateEncodedPathAndQueryForSelectedFacetURL(\n path,\n exploreDataSql,\n allSelectedFacets,\n )\n : path\n}\n"],"mappings":";;;;;AAaA,IAAM,IAA6B,WAE7B,KAAgB,MAChB,IAAM,MAAkB,EAAI,
|
|
1
|
+
{"version":3,"file":"ReleaseCardUtils.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardUtils.ts"],"sourcesContent":["import { formatDate } from '@/utils/functions/DateFormatter'\nimport dayjs from 'dayjs'\nimport { generateEncodedPathAndQueryForSelectedFacetURL } from '../QueryWrapper'\nimport { SelectedFacet } from '../QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL'\nimport { ReleaseCardSchema } from './ReleaseCard'\nimport {\n ButtonToExplorePageConfig,\n ReleaseCardStat,\n ReleaseMetadataConfig,\n SelectedFacetConfig,\n StatConfig,\n} from './ReleaseCardTypes'\n\nconst MISSING_STAT_DEFAULT_VALUE = 'Unknown'\n\nconst formatNumber = (num: number) => {\n if (num < 1_000_000) return num.toLocaleString()\n const numberFormatter = new Intl.NumberFormat([], {\n minimumFractionDigits: 1,\n maximumFractionDigits: 2,\n notation: 'compact',\n localeMatcher: 'best fit',\n })\n return numberFormatter.format(num)\n}\n\nconst getValueFromData = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n columnName: string,\n) => {\n const columnIndex = schema[columnName]\n let columnValue\n if (columnIndex === undefined) {\n console.error(`Could not find column named ${columnName}`)\n columnValue = null\n } else {\n columnValue = data[columnIndex]\n }\n return columnValue\n}\n\nconst formatReleaseStats = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n statsConfig: StatConfig[],\n) => {\n return statsConfig.map(statConfig => {\n const { columnName, label } = statConfig\n const statString = getValueFromData(schema, data, columnName)\n const cardStat: ReleaseCardStat = {\n label: label,\n value: statString\n ? formatNumber(Number(statString))\n : MISSING_STAT_DEFAULT_VALUE,\n }\n return cardStat\n })\n}\n\nconst formatReleaseDate = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n releaseDateColumnName: string,\n) => {\n const releaseDateString = getValueFromData(\n schema,\n data,\n releaseDateColumnName,\n )\n const cardStat: ReleaseCardStat = {\n label: 'Date of release',\n value: releaseDateString\n ? formatDate(dayjs(Number(releaseDateString)), 'MM/DD/YYYY')\n : MISSING_STAT_DEFAULT_VALUE,\n }\n return cardStat\n}\n\nexport const formatReleaseCardData = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n releaseMetdataConfig: ReleaseMetadataConfig,\n statsConfig: StatConfig[],\n) => {\n return {\n releaseName: getValueFromData(\n schema,\n data,\n releaseMetdataConfig.releaseNameColumnName,\n ),\n releaseEntityId: getValueFromData(\n schema,\n data,\n releaseMetdataConfig.releaseEntityIdColumnName,\n ),\n releaseDate: formatReleaseDate(\n schema,\n data,\n releaseMetdataConfig.releaseDateColumnName,\n ),\n stats: formatReleaseStats(schema, data, statsConfig),\n }\n}\n\nconst getAllSelectedFacets = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n selectedFacetConfigs: SelectedFacetConfig[] | undefined,\n staticSelectedFacets: SelectedFacet[] | undefined,\n): SelectedFacet[] => {\n const allSelectedFacets: SelectedFacet[] = staticSelectedFacets\n ? [...staticSelectedFacets]\n : []\n\n if (selectedFacetConfigs) {\n selectedFacetConfigs.forEach(selectedFacetConfig => {\n const sourceDataFacetValueColumnName =\n selectedFacetConfig.sourceTableColumnName\n const facetValue = sourceDataFacetValueColumnName\n ? getValueFromData(schema, data, sourceDataFacetValueColumnName)\n : null\n if (facetValue) {\n allSelectedFacets.push({\n facet: selectedFacetConfig.destinationTableColumnName,\n facetValue: facetValue,\n })\n }\n })\n }\n\n return allSelectedFacets\n}\n\nexport const formatExplorePagePathAndQueryString = async (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n btnConfig?: ButtonToExplorePageConfig,\n): Promise<string | null> => {\n if (!btnConfig) return null\n const path = getValueFromData(\n schema,\n data,\n btnConfig.sourceTablePathColumnName,\n )\n if (!path) {\n console.warn(\n `Column not found in source table or cell did not have value in source table for ${btnConfig.sourceTablePathColumnName}`,\n )\n return null\n }\n\n const {\n sourceTableSqlColumnName: sourceExploreDataSqlColumnName,\n selectedFacetConfigs,\n staticSelectedFacets,\n } = btnConfig\n\n const exploreDataSql = sourceExploreDataSqlColumnName\n ? getValueFromData(schema, data, sourceExploreDataSqlColumnName)\n : null\n const allSelectedFacets = getAllSelectedFacets(\n schema,\n data,\n selectedFacetConfigs,\n staticSelectedFacets,\n )\n const hasSelectedFacets = exploreDataSql && allSelectedFacets.length > 0\n\n return hasSelectedFacets\n ? await generateEncodedPathAndQueryForSelectedFacetURL(\n path,\n exploreDataSql,\n allSelectedFacets,\n )\n : path\n}\n"],"mappings":";;;;;AAaA,IAAM,IAA6B,WAE7B,KAAgB,MAChB,IAAM,MAAkB,EAAI,eAAe,IAOxC,IANqB,KAAK,aAAa,CAAC,GAAG;CAChD,uBAAuB;CACvB,uBAAuB;CACvB,UAAU;CACV,eAAe;AACjB,CACO,EAAgB,OAAO,CAAG,GAG7B,KACJ,GACA,GACA,MACG;CACH,IAAM,IAAc,EAAO,IACvB;CAOJ,OANI,MAAgB,KAAA,KAClB,QAAQ,MAAM,+BAA+B,GAAY,GACzD,IAAc,QAEd,IAAc,EAAK,IAEd;AACT,GAEM,KACJ,GACA,GACA,MAEO,EAAY,KAAI,MAAc;CACnC,IAAM,EAAE,eAAY,aAAU,GACxB,IAAa,EAAiB,GAAQ,GAAM,CAAU;CAO5D,OAAO;EALE;EACP,OAAO,IACH,EAAa,OAAO,CAAU,CAAC,IAC/B;CAEC;AACT,CAAC,GAGG,KACJ,GACA,GACA,MACG;CACH,IAAM,IAAoB,EACxB,GACA,GACA,CACF;CAOA,OAAO;EALL,OAAO;EACP,OAAO,IACH,EAAW,EAAM,OAAO,CAAiB,CAAC,GAAG,YAAY,IACzD;CAEC;AACT,GAEa,KACX,GACA,GACA,GACA,OAEO;CACL,aAAa,EACX,GACA,GACA,EAAqB,qBACvB;CACA,iBAAiB,EACf,GACA,GACA,EAAqB,yBACvB;CACA,aAAa,EACX,GACA,GACA,EAAqB,qBACvB;CACA,OAAO,EAAmB,GAAQ,GAAM,CAAW;AACrD,IAGI,KACJ,GACA,GACA,GACA,MACoB;CACpB,IAAM,IAAqC,IACvC,CAAC,GAAG,CAAoB,IACxB,CAAC;CAkBL,OAhBI,KACF,EAAqB,SAAQ,MAAuB;EAClD,IAAM,IACJ,EAAoB,uBAChB,IAAa,IACf,EAAiB,GAAQ,GAAM,CAA8B,IAC7D;EACJ,AAAI,KACF,EAAkB,KAAK;GACrB,OAAO,EAAoB;GACf;EACd,CAAC;CAEL,CAAC,GAGI;AACT,GAEa,IAAsC,OACjD,GACA,GACA,MAC2B;CAC3B,IAAI,CAAC,GAAW,OAAO;CACvB,IAAM,IAAO,EACX,GACA,GACA,EAAU,yBACZ;CACA,IAAI,CAAC,GAIH,OAHA,QAAQ,KACN,mFAAmF,EAAU,2BAC/F,GACO;CAGT,IAAM,EACJ,0BAA0B,GAC1B,yBACA,4BACE,GAEE,IAAiB,IACnB,EAAiB,GAAQ,GAAM,CAA8B,IAC7D,MACE,IAAoB,EACxB,GACA,GACA,GACA,CACF;CAGA,OAF0B,KAAkB,EAAkB,SAAS,IAGnE,MAAM,EACJ,GACA,GACA,CACF,IACA;AACN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderIfInView.js","names":[],"sources":["../../../src/components/RenderIfInView/RenderIfInView.tsx"],"sourcesContent":["import VisibilityObserver from '@/components/utils/VisibilityObserver'\nimport { Component, PropsWithChildren } from 'react'\n\nexport class RenderIfInView extends Component<PropsWithChildren<unknown>> {\n public render() {\n return <VisibilityObserver renderInView={this.getChildren} />\n }\n\n private getChildren = () => {\n return <>{this.props.children}</>\n }\n}\n\nexport default RenderIfInView\n"],"mappings":";;;;AAGA,IAAa,IAAb,cAAoC,EAAsC;CACxE,SAAgB;
|
|
1
|
+
{"version":3,"file":"RenderIfInView.js","names":[],"sources":["../../../src/components/RenderIfInView/RenderIfInView.tsx"],"sourcesContent":["import VisibilityObserver from '@/components/utils/VisibilityObserver'\nimport { Component, PropsWithChildren } from 'react'\n\nexport class RenderIfInView extends Component<PropsWithChildren<unknown>> {\n public render() {\n return <VisibilityObserver renderInView={this.getChildren} />\n }\n\n private getChildren = () => {\n return <>{this.props.children}</>\n }\n}\n\nexport default RenderIfInView\n"],"mappings":";;;;AAGA,IAAa,IAAb,cAAoC,EAAsC;CACxE,SAAgB;EACd,OAAO,kBAAC,GAAD,EAAoB,cAAc,KAAK,YAAc,CAAA;CAC9D;CAEA,oBACS,kBAAA,GAAA,EAAA,UAAG,KAAK,MAAM,SAAW,CAAA;AAEpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResizableContainer.js","names":[],"sources":["../../../src/components/ResizableContainer/ResizableContainer.tsx"],"sourcesContent":["import { Box, SxProps, Theme } from '@mui/material'\nimport { ReactNode } from 'react'\n\nexport interface ResizeHandleProps {\n onMouseDown: (e: React.MouseEvent) => void\n sx?: SxProps<Theme>\n}\n\nexport function ResizeHandle({ onMouseDown, sx }: ResizeHandleProps) {\n return (\n <Box\n onMouseDown={onMouseDown}\n sx={{\n position: 'absolute',\n bottom: 0,\n right: 0,\n width: 20,\n height: 20,\n cursor: 'se-resize',\n // Add a simple diagonal lines to indicate resize handle\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n right: 7,\n bottom: 7,\n width: 5,\n height: 5,\n borderRight: '2px solid #999',\n borderBottom: '2px solid #999',\n },\n ...sx,\n }}\n />\n )\n}\n\nexport interface ResizableContainerProps {\n children: ReactNode\n width: number\n height: number\n onResizeStart: (e: React.MouseEvent) => void\n showResizeHandle?: boolean\n resizeHandleSx?: SxProps<Theme>\n sx?: SxProps<Theme>\n}\n\n/** See DraggableDialog for an example on how to use useResizable with a ResizableContainer */\nexport function ResizableContainer({\n children,\n width,\n height,\n onResizeStart,\n showResizeHandle = true,\n resizeHandleSx,\n sx,\n}: ResizableContainerProps) {\n return (\n <Box\n sx={{\n position: 'relative',\n width: `${width}px`,\n height: `${height}px`,\n ...sx,\n }}\n >\n {children}\n {showResizeHandle && (\n <ResizeHandle onMouseDown={onResizeStart} sx={resizeHandleSx} />\n )}\n </Box>\n )\n}\n"],"mappings":";;;AAQA,SAAgB,EAAa,EAAE,gBAAa,SAAyB;
|
|
1
|
+
{"version":3,"file":"ResizableContainer.js","names":[],"sources":["../../../src/components/ResizableContainer/ResizableContainer.tsx"],"sourcesContent":["import { Box, SxProps, Theme } from '@mui/material'\nimport { ReactNode } from 'react'\n\nexport interface ResizeHandleProps {\n onMouseDown: (e: React.MouseEvent) => void\n sx?: SxProps<Theme>\n}\n\nexport function ResizeHandle({ onMouseDown, sx }: ResizeHandleProps) {\n return (\n <Box\n onMouseDown={onMouseDown}\n sx={{\n position: 'absolute',\n bottom: 0,\n right: 0,\n width: 20,\n height: 20,\n cursor: 'se-resize',\n // Add a simple diagonal lines to indicate resize handle\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n right: 7,\n bottom: 7,\n width: 5,\n height: 5,\n borderRight: '2px solid #999',\n borderBottom: '2px solid #999',\n },\n ...sx,\n }}\n />\n )\n}\n\nexport interface ResizableContainerProps {\n children: ReactNode\n width: number\n height: number\n onResizeStart: (e: React.MouseEvent) => void\n showResizeHandle?: boolean\n resizeHandleSx?: SxProps<Theme>\n sx?: SxProps<Theme>\n}\n\n/** See DraggableDialog for an example on how to use useResizable with a ResizableContainer */\nexport function ResizableContainer({\n children,\n width,\n height,\n onResizeStart,\n showResizeHandle = true,\n resizeHandleSx,\n sx,\n}: ResizableContainerProps) {\n return (\n <Box\n sx={{\n position: 'relative',\n width: `${width}px`,\n height: `${height}px`,\n ...sx,\n }}\n >\n {children}\n {showResizeHandle && (\n <ResizeHandle onMouseDown={onResizeStart} sx={resizeHandleSx} />\n )}\n </Box>\n )\n}\n"],"mappings":";;;AAQA,SAAgB,EAAa,EAAE,gBAAa,SAAyB;CACnE,OACE,kBAAC,GAAD;EACe;EACb,IAAI;GACF,UAAU;GACV,QAAQ;GACR,OAAO;GACP,OAAO;GACP,QAAQ;GACR,QAAQ;GAER,aAAa;IACX,SAAS;IACT,UAAU;IACV,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,aAAa;IACb,cAAc;GAChB;GACA,GAAG;EACL;CACD,CAAA;AAEL;AAaA,SAAgB,EAAmB,EACjC,aACA,UACA,WACA,kBACA,sBAAmB,IACnB,mBACA,SAC0B;CAC1B,OACE,kBAAC,GAAD;EACE,IAAI;GACF,UAAU;GACV,OAAO,GAAG,EAAM;GAChB,QAAQ,GAAG,EAAO;GAClB,GAAG;EACL;YANF,CAQG,GACA,KACC,kBAAC,GAAD;GAAc,aAAa;GAAe,IAAI;EAAiB,CAAA,CAE9D;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResizable.js","names":[],"sources":["../../../../src/components/ResizableContainer/hooks/useResizable.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react'\n\nexport interface ResizableOptions {\n initialWidth?: number\n initialHeight?: number\n minWidth?: number\n minHeight?: number\n maxWidth?: number\n maxHeight?: number\n onResize?: (size: { width: number; height: number }) => void\n}\n\nexport interface ResizableState {\n width: number\n height: number\n isResizing: boolean\n}\n\nexport interface ResizableHandlers {\n handleResizeStart: (e: React.MouseEvent) => void\n setSize: (size: { width: number; height: number }) => void\n}\n\n/** See DraggableDialog for an example on how to use useResizable with a ResizableContainer */\nexport function useResizable(\n options: ResizableOptions = {},\n): ResizableState & ResizableHandlers {\n const {\n initialWidth = 600,\n initialHeight = 500,\n minWidth = 300,\n minHeight = 200,\n maxWidth = 1200,\n maxHeight = 800,\n onResize,\n } = options\n\n const [size, setSize] = useState({\n width: initialWidth,\n height: initialHeight,\n })\n const [isResizing, setIsResizing] = useState(false)\n const resizeStartRef = useRef<{\n x: number\n y: number\n width: number\n height: number\n } | null>(null)\n\n const handleResizeStart = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setIsResizing(true)\n resizeStartRef.current = {\n x: e.clientX,\n y: e.clientY,\n width: size.width,\n height: size.height,\n }\n },\n [size],\n )\n\n const handleResizeMove = useCallback(\n (e: MouseEvent) => {\n if (!isResizing || !resizeStartRef.current) return\n\n const deltaX = e.clientX - resizeStartRef.current.x\n const deltaY = e.clientY - resizeStartRef.current.y\n\n const newWidth = Math.max(\n minWidth,\n Math.min(maxWidth, resizeStartRef.current.width + deltaX),\n )\n const newHeight = Math.max(\n minHeight,\n Math.min(maxHeight, resizeStartRef.current.height + deltaY),\n )\n\n const newSize = { width: newWidth, height: newHeight }\n setSize(newSize)\n onResize?.(newSize)\n },\n [isResizing, minWidth, maxWidth, minHeight, maxHeight, onResize],\n )\n\n const handleResizeEnd = useCallback(() => {\n setIsResizing(false)\n resizeStartRef.current = null\n }, [])\n\n useEffect(() => {\n if (isResizing) {\n document.addEventListener('mousemove', handleResizeMove)\n document.addEventListener('mouseup', handleResizeEnd)\n }\n return () => {\n document.removeEventListener('mousemove', handleResizeMove)\n document.removeEventListener('mouseup', handleResizeEnd)\n }\n }, [isResizing, handleResizeMove, handleResizeEnd])\n\n return {\n width: size.width,\n height: size.height,\n isResizing,\n handleResizeStart,\n setSize,\n }\n}\n"],"mappings":";;AAwBA,SAAgB,EACd,IAA4B,
|
|
1
|
+
{"version":3,"file":"useResizable.js","names":[],"sources":["../../../../src/components/ResizableContainer/hooks/useResizable.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react'\n\nexport interface ResizableOptions {\n initialWidth?: number\n initialHeight?: number\n minWidth?: number\n minHeight?: number\n maxWidth?: number\n maxHeight?: number\n onResize?: (size: { width: number; height: number }) => void\n}\n\nexport interface ResizableState {\n width: number\n height: number\n isResizing: boolean\n}\n\nexport interface ResizableHandlers {\n handleResizeStart: (e: React.MouseEvent) => void\n setSize: (size: { width: number; height: number }) => void\n}\n\n/** See DraggableDialog for an example on how to use useResizable with a ResizableContainer */\nexport function useResizable(\n options: ResizableOptions = {},\n): ResizableState & ResizableHandlers {\n const {\n initialWidth = 600,\n initialHeight = 500,\n minWidth = 300,\n minHeight = 200,\n maxWidth = 1200,\n maxHeight = 800,\n onResize,\n } = options\n\n const [size, setSize] = useState({\n width: initialWidth,\n height: initialHeight,\n })\n const [isResizing, setIsResizing] = useState(false)\n const resizeStartRef = useRef<{\n x: number\n y: number\n width: number\n height: number\n } | null>(null)\n\n const handleResizeStart = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setIsResizing(true)\n resizeStartRef.current = {\n x: e.clientX,\n y: e.clientY,\n width: size.width,\n height: size.height,\n }\n },\n [size],\n )\n\n const handleResizeMove = useCallback(\n (e: MouseEvent) => {\n if (!isResizing || !resizeStartRef.current) return\n\n const deltaX = e.clientX - resizeStartRef.current.x\n const deltaY = e.clientY - resizeStartRef.current.y\n\n const newWidth = Math.max(\n minWidth,\n Math.min(maxWidth, resizeStartRef.current.width + deltaX),\n )\n const newHeight = Math.max(\n minHeight,\n Math.min(maxHeight, resizeStartRef.current.height + deltaY),\n )\n\n const newSize = { width: newWidth, height: newHeight }\n setSize(newSize)\n onResize?.(newSize)\n },\n [isResizing, minWidth, maxWidth, minHeight, maxHeight, onResize],\n )\n\n const handleResizeEnd = useCallback(() => {\n setIsResizing(false)\n resizeStartRef.current = null\n }, [])\n\n useEffect(() => {\n if (isResizing) {\n document.addEventListener('mousemove', handleResizeMove)\n document.addEventListener('mouseup', handleResizeEnd)\n }\n return () => {\n document.removeEventListener('mousemove', handleResizeMove)\n document.removeEventListener('mouseup', handleResizeEnd)\n }\n }, [isResizing, handleResizeMove, handleResizeEnd])\n\n return {\n width: size.width,\n height: size.height,\n isResizing,\n handleResizeStart,\n setSize,\n }\n}\n"],"mappings":";;AAwBA,SAAgB,EACd,IAA4B,CAAC,GACO;CACpC,IAAM,EACJ,kBAAe,KACf,mBAAgB,KAChB,cAAW,KACX,eAAY,KACZ,cAAW,MACX,eAAY,KACZ,gBACE,GAEE,CAAC,GAAM,KAAW,EAAS;EAC/B,OAAO;EACP,QAAQ;CACV,CAAC,GACK,CAAC,GAAY,KAAiB,EAAS,EAAK,GAC5C,IAAiB,EAKb,IAAI,GAER,IAAoB,GACvB,MAAwB;EAIvB,AAHA,EAAE,eAAe,GACjB,EAAE,gBAAgB,GAClB,EAAc,EAAI,GAClB,EAAe,UAAU;GACvB,GAAG,EAAE;GACL,GAAG,EAAE;GACL,OAAO,EAAK;GACZ,QAAQ,EAAK;EACf;CACF,GACA,CAAC,CAAI,CACP,GAEM,IAAmB,GACtB,MAAkB;EACjB,IAAI,CAAC,KAAc,CAAC,EAAe,SAAS;EAE5C,IAAM,IAAS,EAAE,UAAU,EAAe,QAAQ,GAC5C,IAAS,EAAE,UAAU,EAAe,QAAQ,GAW5C,IAAU;GAAE,OATD,KAAK,IACpB,GACA,KAAK,IAAI,GAAU,EAAe,QAAQ,QAAQ,CAAM,CAOjC;GAAU,QALjB,KAAK,IACrB,GACA,KAAK,IAAI,GAAW,EAAe,QAAQ,SAAS,CAAM,CAGjB;EAAU;EAErD,AADA,EAAQ,CAAO,GACf,IAAW,CAAO;CACpB,GACA;EAAC;EAAY;EAAU;EAAU;EAAW;EAAW;CAAQ,CACjE,GAEM,IAAkB,QAAkB;EAExC,AADA,EAAc,EAAK,GACnB,EAAe,UAAU;CAC3B,GAAG,CAAC,CAAC;CAaL,OAXA,SACM,MACF,SAAS,iBAAiB,aAAa,CAAgB,GACvD,SAAS,iBAAiB,WAAW,CAAe,UAEzC;EAEX,AADA,SAAS,oBAAoB,aAAa,CAAgB,GAC1D,SAAS,oBAAoB,WAAW,CAAe;CACzD,IACC;EAAC;EAAY;EAAkB;CAAe,CAAC,GAE3C;EACL,OAAO,EAAK;EACZ,QAAQ,EAAK;EACb;EACA;EACA;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resources.Desktop.js","names":[],"sources":["../../../src/components/Resources/Resources.Desktop.tsx"],"sourcesContent":["import { Data } from './Resources'\nimport { useState } from 'react'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\n\nexport type ResourcesDesktopProps = {\n data: Data\n}\n\nexport default function ResourcesDesktop({ data }: ResourcesDesktopProps) {\n const [index, setIndex] = useState(0)\n return (\n <div className=\"control-container\">\n <div className=\"button-container\">\n {data?.map((el, curIndex) => {\n return (\n <button\n className={index === curIndex ? 'isSelected' : ''}\n onClick={() => setIndex(curIndex)}\n key={el.name}\n >\n {el.name}\n </button>\n )\n })}\n {/*\n This button keeps the border line in the button container running from top to bottom,\n it doesn't have any functionality.\n */}\n <button className=\"gap-fill\" />\n </div>\n <div className=\"content-container\">\n {data?.map((el, curIndex) => {\n const { ownerId, wikiId } = el\n return (\n <span key={ownerId} className={index === curIndex ? '' : 'hide'}>\n <MarkdownSynapse ownerId={ownerId} wikiId={wikiId} />\n </span>\n )\n })}\n </div>\n </div>\n )\n}\n"],"mappings":";;;;AAQA,SAAwB,EAAiB,EAAE,WAA+B;CACxE,IAAM,CAAC,GAAO,KAAY,EAAS,
|
|
1
|
+
{"version":3,"file":"Resources.Desktop.js","names":[],"sources":["../../../src/components/Resources/Resources.Desktop.tsx"],"sourcesContent":["import { Data } from './Resources'\nimport { useState } from 'react'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\n\nexport type ResourcesDesktopProps = {\n data: Data\n}\n\nexport default function ResourcesDesktop({ data }: ResourcesDesktopProps) {\n const [index, setIndex] = useState(0)\n return (\n <div className=\"control-container\">\n <div className=\"button-container\">\n {data?.map((el, curIndex) => {\n return (\n <button\n className={index === curIndex ? 'isSelected' : ''}\n onClick={() => setIndex(curIndex)}\n key={el.name}\n >\n {el.name}\n </button>\n )\n })}\n {/*\n This button keeps the border line in the button container running from top to bottom,\n it doesn't have any functionality.\n */}\n <button className=\"gap-fill\" />\n </div>\n <div className=\"content-container\">\n {data?.map((el, curIndex) => {\n const { ownerId, wikiId } = el\n return (\n <span key={ownerId} className={index === curIndex ? '' : 'hide'}>\n <MarkdownSynapse ownerId={ownerId} wikiId={wikiId} />\n </span>\n )\n })}\n </div>\n </div>\n )\n}\n"],"mappings":";;;;AAQA,SAAwB,EAAiB,EAAE,WAA+B;CACxE,IAAM,CAAC,GAAO,KAAY,EAAS,CAAC;CACpC,OACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACG,GAAM,KAAK,GAAI,MAEZ,kBAAC,UAAD;IACE,WAAW,MAAU,IAAW,eAAe;IAC/C,eAAe,EAAS,CAAQ;cAG/B,EAAG;GACE,GAHD,EAAG,IAGF,CAEX,GAKD,kBAAC,UAAD,EAAQ,WAAU,WAAY,CAAA,CAC3B;MACL,kBAAC,OAAD;GAAK,WAAU;aACZ,GAAM,KAAK,GAAI,MAAa;IAC3B,IAAM,EAAE,YAAS,cAAW;IAC5B,OACE,kBAAC,QAAD;KAAoB,WAAW,MAAU,IAAW,KAAK;eACvD,kBAAC,GAAD;MAA0B;MAAiB;KAAS,CAAA;IAChD,GAFK,CAEL;GAEV,CAAC;EACE,CAAA,CACF;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resources.Mobile.js","names":[],"sources":["../../../src/components/Resources/Resources.Mobile.tsx"],"sourcesContent":["import { Data } from './Resources'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\nimport ExpandableContent from '../home_page/ExpandableContent'\n\nexport type ResourcesMobileProps = {\n data: Data\n}\n\nexport default function ResourcesMobile({ data }: ResourcesMobileProps) {\n return (\n <div className=\"Resources_Mobile\">\n {data.map(({ name, ownerId, wikiId }) => {\n const title = <> {name} </>\n const markdown = <MarkdownSynapse ownerId={ownerId} wikiId={wikiId} />\n return <ExpandableContent key={name} title={title} content={markdown} />\n })}\n </div>\n )\n}\n"],"mappings":";;;;AAQA,SAAwB,EAAgB,EAAE,WAA8B;
|
|
1
|
+
{"version":3,"file":"Resources.Mobile.js","names":[],"sources":["../../../src/components/Resources/Resources.Mobile.tsx"],"sourcesContent":["import { Data } from './Resources'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\nimport ExpandableContent from '../home_page/ExpandableContent'\n\nexport type ResourcesMobileProps = {\n data: Data\n}\n\nexport default function ResourcesMobile({ data }: ResourcesMobileProps) {\n return (\n <div className=\"Resources_Mobile\">\n {data.map(({ name, ownerId, wikiId }) => {\n const title = <> {name} </>\n const markdown = <MarkdownSynapse ownerId={ownerId} wikiId={wikiId} />\n return <ExpandableContent key={name} title={title} content={markdown} />\n })}\n </div>\n )\n}\n"],"mappings":";;;;AAQA,SAAwB,EAAgB,EAAE,WAA8B;CACtE,OACE,kBAAC,OAAD;EAAK,WAAU;YACZ,EAAK,KAAK,EAAE,SAAM,YAAS,gBAGnB,kBAAC,GAAD;GAAqC,OAF9B,kBAAA,GAAA,EAAA,UAAA;IAAE;IAAE;IAAK;GAAG,EAAA,CAEkB;GAAO,SADlC,kBAAC,GAAD;IAA0B;IAAiB;GAAS,CACT;EAAW,GAAxC,CAAwC,CACxE;CACE,CAAA;AAET"}
|
|
@@ -8,19 +8,16 @@ import i from "./Resources.Desktop.js";
|
|
|
8
8
|
import a from "./Resources.Mobile.js";
|
|
9
9
|
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
10
10
|
//#region src/components/Resources/Resources.tsx
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}(c || {});
|
|
14
|
-
function l(l) {
|
|
15
|
-
let { entityId: u } = l, d = t(), { data: f, error: p } = r({
|
|
11
|
+
function c(c) {
|
|
12
|
+
let { entityId: l } = c, u = t(), { data: d, error: f } = r({
|
|
16
13
|
concreteType: "org.sagebionetworks.repo.model.table.QueryBundleRequest",
|
|
17
|
-
entityId:
|
|
14
|
+
entityId: l,
|
|
18
15
|
partMask: 5,
|
|
19
|
-
query: { sql: `SELECT Name, Wiki FROM ${
|
|
20
|
-
}),
|
|
16
|
+
query: { sql: `SELECT Name, Wiki FROM ${l} ORDER BY ItemOrder` }
|
|
17
|
+
}), p = n("Name", d), m = n("Wiki", d), h = d?.queryResult?.queryResults.rows.map((e) => {
|
|
21
18
|
let t = e.values;
|
|
22
19
|
t.some((e) => e === null) && console.warn("Row has null value(s) when no nulls expected");
|
|
23
|
-
let n = t[
|
|
20
|
+
let n = t[p], r = (t[m] ?? "").split("/");
|
|
24
21
|
return {
|
|
25
22
|
name: n,
|
|
26
23
|
ownerId: r[0],
|
|
@@ -29,10 +26,10 @@ function l(l) {
|
|
|
29
26
|
}) ?? [];
|
|
30
27
|
return /* @__PURE__ */ s("div", {
|
|
31
28
|
className: "Resources",
|
|
32
|
-
children: [/* @__PURE__ */ o(e, { error:
|
|
29
|
+
children: [/* @__PURE__ */ o(e, { error: f }), o(u ? i : a, { data: h })]
|
|
33
30
|
});
|
|
34
31
|
}
|
|
35
32
|
//#endregion
|
|
36
|
-
export {
|
|
33
|
+
export { c as Resources, c as default };
|
|
37
34
|
|
|
38
35
|
//# sourceMappingURL=Resources.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resources.js","names":[],"sources":["../../../src/components/Resources/Resources.tsx"],"sourcesContent":["import useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { SynapseConstants } from '@/utils'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport useShowDesktop from '@/utils/hooks/useShowDesktop'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport ResourcesDesktop from './Resources.Desktop'\nimport ResourcesMobile from './Resources.Mobile'\n\nexport type ResourcesProps = {\n entityId: string\n}\n\nenum ExpectedColumns {\n NAME = 'Name',\n WIKI = 'Wiki',\n}\n\nexport type Data = {\n name: string\n ownerId: string\n wikiId: string\n}[]\n\nexport function Resources(props: ResourcesProps) {\n const { entityId } = props\n const showDesktop = useShowDesktop()\n\n const queryBundleRequest: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS,\n query: {\n sql: `SELECT Name, Wiki FROM ${entityId} ORDER BY ItemOrder`,\n },\n }\n const { data: queryResultBundle, error } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const nameIndex = getFieldIndex(ExpectedColumns.NAME, queryResultBundle)\n const wikiIndex = getFieldIndex(ExpectedColumns.WIKI, queryResultBundle)\n const data: Data =\n queryResultBundle?.queryResult?.queryResults.rows.map(el => {\n const values = el.values as string[]\n if (values.some(value => value === null)) {\n console.warn('Row has null value(s) when no nulls expected')\n }\n\n const name = values[nameIndex]\n const wikiValue = values[wikiIndex] ?? ''\n const split = wikiValue.split('/')\n const ownerId = split[0]\n const wikiId = split[2]\n return {\n name,\n ownerId,\n wikiId,\n }\n }) ?? []\n return (\n <div className=\"Resources\">\n <ErrorBanner error={error} />\n {showDesktop ? (\n <ResourcesDesktop data={data} />\n ) : (\n <ResourcesMobile data={data} />\n )}\n </div>\n )\n}\n\nexport default Resources\n"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Resources.js","names":[],"sources":["../../../src/components/Resources/Resources.tsx"],"sourcesContent":["import useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { SynapseConstants } from '@/utils'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport useShowDesktop from '@/utils/hooks/useShowDesktop'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport ResourcesDesktop from './Resources.Desktop'\nimport ResourcesMobile from './Resources.Mobile'\n\nexport type ResourcesProps = {\n entityId: string\n}\n\nenum ExpectedColumns {\n NAME = 'Name',\n WIKI = 'Wiki',\n}\n\nexport type Data = {\n name: string\n ownerId: string\n wikiId: string\n}[]\n\nexport function Resources(props: ResourcesProps) {\n const { entityId } = props\n const showDesktop = useShowDesktop()\n\n const queryBundleRequest: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS,\n query: {\n sql: `SELECT Name, Wiki FROM ${entityId} ORDER BY ItemOrder`,\n },\n }\n const { data: queryResultBundle, error } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const nameIndex = getFieldIndex(ExpectedColumns.NAME, queryResultBundle)\n const wikiIndex = getFieldIndex(ExpectedColumns.WIKI, queryResultBundle)\n const data: Data =\n queryResultBundle?.queryResult?.queryResults.rows.map(el => {\n const values = el.values as string[]\n if (values.some(value => value === null)) {\n console.warn('Row has null value(s) when no nulls expected')\n }\n\n const name = values[nameIndex]\n const wikiValue = values[wikiIndex] ?? ''\n const split = wikiValue.split('/')\n const ownerId = split[0]\n const wikiId = split[2]\n return {\n name,\n ownerId,\n wikiId,\n }\n }) ?? []\n return (\n <div className=\"Resources\">\n <ErrorBanner error={error} />\n {showDesktop ? (\n <ResourcesDesktop data={data} />\n ) : (\n <ResourcesMobile data={data} />\n )}\n </div>\n )\n}\n\nexport default Resources\n"],"mappings":";;;;;;;;;;AAwBA,SAAgB,EAAU,GAAuB;CAC/C,IAAM,EAAE,gBAAa,GACf,IAAc,EAAe,GAY7B,EAAE,MAAM,GAAmB,aAC/B,EAAwB;EAVxB,cAAc;EACd;EACA,UACE;EAEF,OAAO,EACL,KAAK,0BAA0B,EAAS,qBAC1C;CAGwB,CAAkB,GAEtC,IAAY,EAAA,QAAoC,CAAiB,GACjE,IAAY,EAAA,QAAoC,CAAiB,GACjE,IACJ,GAAmB,aAAa,aAAa,KAAK,KAAI,MAAM;EAC1D,IAAM,IAAS,EAAG;EAClB,AAAI,EAAO,MAAK,MAAS,MAAU,IAAI,KACrC,QAAQ,KAAK,8CAA8C;EAG7D,IAAM,IAAO,EAAO,IAEd,KADY,EAAO,MAAc,IACf,MAAM,GAAG;EAGjC,OAAO;GACL;GACA,SAJc,EAAM;GAKpB,QAJa,EAAM;EAKrB;CACF,CAAC,KAAK,CAAC;CACT,OACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,GAAD,EAAoB,SAAQ,CAAA,GAE1B,EADD,IACE,IAEA,GAFD,EAAwB,QAAO,CAED,CAE7B;;AAET"}
|