synapse-react-client 4.0.18 → 4.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SWC.index.d.ts +3 -1
- package/dist/SWC.index.d.ts.map +1 -1
- package/dist/SWC.index.js +3 -1
- package/dist/SWC.index.js.map +1 -1
- package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
- package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
- package/dist/assets/DefaultColorfulPortalCardBackground.js.map +1 -1
- package/dist/assets/GoogleIcon.js.map +1 -1
- package/dist/assets/GoogleIcon24.js.map +1 -1
- package/dist/assets/homepage/BlinkingLiveIcon.d.ts +1 -1
- package/dist/assets/homepage/BlinkingLiveIcon.js.map +1 -1
- package/dist/assets/homepage/aacr.js.map +1 -1
- package/dist/assets/homepage/cri.js.map +1 -1
- package/dist/assets/homepage/ctf.js.map +1 -1
- package/dist/assets/homepage/egress.js.map +1 -1
- package/dist/assets/homepage/facebook.js.map +1 -1
- package/dist/assets/homepage/fisma.js.map +1 -1
- package/dist/assets/homepage/gff.js.map +1 -1
- package/dist/assets/homepage/github.js.map +1 -1
- package/dist/assets/homepage/gray.js.map +1 -1
- package/dist/assets/homepage/hipaa-compliant.js.map +1 -1
- package/dist/assets/homepage/instagram.js.map +1 -1
- package/dist/assets/homepage/linkedin.js.map +1 -1
- package/dist/assets/homepage/ml-commons.js.map +1 -1
- package/dist/assets/homepage/nih-aging.js.map +1 -1
- package/dist/assets/homepage/nih-heart.js.map +1 -1
- package/dist/assets/homepage/nih-nci.js.map +1 -1
- package/dist/assets/homepage/nih-nimh.js.map +1 -1
- package/dist/assets/homepage/ntap.js.map +1 -1
- package/dist/assets/homepage/plan-item.js.map +1 -1
- package/dist/assets/homepage/powered-by-synapse-feature.js.map +1 -1
- package/dist/assets/homepage/precision-governance-feature.js.map +1 -1
- package/dist/assets/homepage/python.js.map +1 -1
- package/dist/assets/homepage/r.js.map +1 -1
- package/dist/assets/homepage/research-credit-feature.js.map +1 -1
- package/dist/assets/homepage/seamless-integration-feature.js.map +1 -1
- package/dist/assets/homepage/sloan.js.map +1 -1
- package/dist/assets/homepage/twitter.js.map +1 -1
- package/dist/assets/homepage/users.js.map +1 -1
- package/dist/assets/homepage/youtube.js.map +1 -1
- package/dist/assets/icons/AccessDataAnywhere.js.map +1 -1
- package/dist/assets/icons/AccessPending.js.map +1 -1
- package/dist/assets/icons/AccessPendingCloud.js.map +1 -1
- package/dist/assets/icons/AddAd.js.map +1 -1
- package/dist/assets/icons/AddToList.js.map +1 -1
- package/dist/assets/icons/Alert.js.map +1 -1
- package/dist/assets/icons/Arrow.js.map +1 -1
- package/dist/assets/icons/AwardScroll.js.map +1 -1
- package/dist/assets/icons/Baseline.js.map +1 -1
- package/dist/assets/icons/Cavatica.js.map +1 -1
- package/dist/assets/icons/CertifiedUser.js.map +1 -1
- package/dist/assets/icons/Challenge.js.map +1 -1
- package/dist/assets/icons/Checkbox/Checked.js.map +1 -1
- package/dist/assets/icons/Checkbox/Checked2.js.map +1 -1
- package/dist/assets/icons/Checkbox/Indeterminate.js.map +1 -1
- package/dist/assets/icons/Checkbox/Indeterminate2.js.map +1 -1
- package/dist/assets/icons/Checkbox/Unchecked.js.map +1 -1
- package/dist/assets/icons/Checkbox/Unchecked2.js.map +1 -1
- package/dist/assets/icons/ClappingHands.js.map +1 -1
- package/dist/assets/icons/CloudWarning.js.map +1 -1
- package/dist/assets/icons/CommunicateFindings.js.map +1 -1
- package/dist/assets/icons/CreateVersion.js.map +1 -1
- package/dist/assets/icons/DNA_Two.js.map +1 -1
- package/dist/assets/icons/Data2.js.map +1 -1
- package/dist/assets/icons/DoubleQuotes.js.map +1 -1
- package/dist/assets/icons/EmailAddressAdornment.js.map +1 -1
- package/dist/assets/icons/FileWithShield.js.map +1 -1
- package/dist/assets/icons/FileWithShield2.js.map +1 -1
- package/dist/assets/icons/FrontHand.js.map +1 -1
- package/dist/assets/icons/HandWithMoney.js.map +1 -1
- package/dist/assets/icons/IconCopy.js.map +1 -1
- package/dist/assets/icons/IconMinus.js.map +1 -1
- package/dist/assets/icons/IconPlus.js.map +1 -1
- package/dist/assets/icons/Java.js.map +1 -1
- package/dist/assets/icons/MintDoi.js.map +1 -1
- package/dist/assets/icons/MultiFile.js.map +1 -1
- package/dist/assets/icons/MultiFile2.js.map +1 -1
- package/dist/assets/icons/NoData.js.map +1 -1
- package/dist/assets/icons/NoSearchResults.js.map +1 -1
- package/dist/assets/icons/ORCIDIcon.js.map +1 -1
- package/dist/assets/icons/OpenBook.js.map +1 -1
- package/dist/assets/icons/Podium.js.map +1 -1
- package/dist/assets/icons/Python.js.map +1 -1
- package/dist/assets/icons/QueryStructuredData.js.map +1 -1
- package/dist/assets/icons/RLogo.js.map +1 -1
- package/dist/assets/icons/RecordProvenance.js.map +1 -1
- package/dist/assets/icons/RosetteRibbon.js.map +1 -1
- package/dist/assets/icons/SageFullLogo.js.map +1 -1
- package/dist/assets/icons/SearchImage.js.map +1 -1
- package/dist/assets/icons/ShareYourResearch.js.map +1 -1
- package/dist/assets/icons/Sort.js.map +1 -1
- package/dist/assets/icons/StarTrophy.js.map +1 -1
- package/dist/assets/icons/SynapseFullLogo.js.map +1 -1
- package/dist/assets/icons/SynapseIconWhite.js.map +1 -1
- package/dist/assets/icons/SynapseLogoName.js.map +1 -1
- package/dist/assets/icons/TasksIcon.js.map +1 -1
- package/dist/assets/icons/Terminal.js.map +1 -1
- package/dist/assets/icons/ThreeStars.js.map +1 -1
- package/dist/assets/icons/UnpackagableFile.js.map +1 -1
- package/dist/assets/icons/UnpackagableFile2.js.map +1 -1
- package/dist/assets/icons/ValidatedProfile.js.map +1 -1
- package/dist/assets/icons/account-certified.js.map +1 -1
- package/dist/assets/icons/account-enabled-mfa.js.map +1 -1
- package/dist/assets/icons/account-validated.js.map +1 -1
- package/dist/assets/icons/bioChemicalPhysical.js.map +1 -1
- package/dist/assets/icons/chart2.js.map +1 -1
- package/dist/assets/icons/columns.js.map +1 -1
- package/dist/assets/icons/columnsDarkTheme.js.map +1 -1
- package/dist/assets/icons/computationalTool.js.map +1 -1
- package/dist/assets/icons/dataReuse.js.map +1 -1
- package/dist/assets/icons/emailAddressAdornment2.js.map +1 -1
- package/dist/assets/icons/emailWithNotification.js.map +1 -1
- package/dist/assets/icons/error_page/maintenance.js.map +1 -1
- package/dist/assets/icons/error_page/no-access.js.map +1 -1
- package/dist/assets/icons/error_page/unavailable.js.map +1 -1
- package/dist/assets/icons/file.js.map +1 -1
- package/dist/assets/icons/inSilicoModel.js.map +1 -1
- package/dist/assets/icons/institution.js.map +1 -1
- package/dist/assets/icons/json-form-tool-no-submissions.js.map +1 -1
- package/dist/assets/icons/modelSystem.js.map +1 -1
- package/dist/assets/icons/mouse.js.map +1 -1
- package/dist/assets/icons/organizations.js.map +1 -1
- package/dist/assets/icons/person.js.map +1 -1
- package/dist/assets/icons/spatialProfiling.js.map +1 -1
- package/dist/assets/icons/standardDataModel.js.map +1 -1
- package/dist/assets/icons/study-active.js.map +1 -1
- package/dist/assets/icons/study-complete.js.map +1 -1
- package/dist/assets/icons/subscribe_plus.js.map +1 -1
- package/dist/assets/icons/synapse-logo.js.map +1 -1
- package/dist/assets/icons/terms/CheckIcon.js.map +1 -1
- package/dist/assets/icons/translational.js.map +1 -1
- package/dist/assets/icons/tree_horizontal.js.map +1 -1
- package/dist/assets/illustrations/acknowledgement_statements_illustration.js.map +1 -1
- package/dist/assets/illustrations/challenges_illustration.js.map +1 -1
- package/dist/assets/illustrations/cohort_builder_illustration.js.map +1 -1
- package/dist/assets/illustrations/data_access_management_illustration.js.map +1 -1
- package/dist/assets/illustrations/datasets_illustration.js.map +1 -1
- package/dist/assets/illustrations/diagonalLinePattern.js.map +1 -1
- package/dist/assets/illustrations/discussions_illustration.js.map +1 -1
- package/dist/assets/illustrations/docker_illustration.js.map +1 -1
- package/dist/assets/illustrations/donation_illustration.js.map +1 -1
- package/dist/assets/illustrations/favorites_illustration.js.map +1 -1
- package/dist/assets/illustrations/files_illustration.js.map +1 -1
- package/dist/assets/illustrations/following_illustration.js.map +1 -1
- package/dist/assets/illustrations/index.js.map +1 -1
- package/dist/assets/illustrations/left_dot_blob_dark_illustration.js.map +1 -1
- package/dist/assets/illustrations/left_dot_blob_illustration.js.map +1 -1
- package/dist/assets/illustrations/projects_illustration.js.map +1 -1
- package/dist/assets/illustrations/right_dot_blob_dark_illustration.js.map +1 -1
- package/dist/assets/illustrations/right_dot_blob_illustration.js.map +1 -1
- package/dist/assets/illustrations/tables_illustration.js.map +1 -1
- package/dist/assets/illustrations/teams_illustration.js.map +1 -1
- package/dist/assets/illustrations/trash_can_illustration.js.map +1 -1
- package/dist/assets/illustrations/underconstruction_illustration.js.map +1 -1
- package/dist/assets/illustrations/wikis_illustration.js.map +1 -1
- package/dist/assets/logos/other/ad-workbench-logo.js.map +1 -1
- package/dist/assets/logos/other/cavatica-logo.js.map +1 -1
- package/dist/assets/logos/other/pluto-logo.js.map +1 -1
- package/dist/assets/logos/other/terra-logo.js.map +1 -1
- package/dist/assets/mui_components/AccessManagement.js.map +1 -1
- package/dist/assets/mui_components/AccountCertified.js.map +1 -1
- package/dist/assets/mui_components/AccountRegistered.js.map +1 -1
- package/dist/assets/mui_components/AccountValidated.js.map +1 -1
- package/dist/assets/mui_components/ActionKey.js.map +1 -1
- package/dist/assets/mui_components/BioChemicalPhysical.js.map +1 -1
- package/dist/assets/mui_components/Chromatin.js.map +1 -1
- package/dist/assets/mui_components/Clinical.js.map +1 -1
- package/dist/assets/mui_components/ComputationalTool.js.map +1 -1
- package/dist/assets/mui_components/Data.js.map +1 -1
- package/dist/assets/mui_components/DataLocked.js.map +1 -1
- package/dist/assets/mui_components/DataReuse.js.map +1 -1
- package/dist/assets/mui_components/Dataset.js.map +1 -1
- package/dist/assets/mui_components/DatasetCollection.js.map +1 -1
- package/dist/assets/mui_components/Docker.js.map +1 -1
- package/dist/assets/mui_components/GeneExpression.js.map +1 -1
- package/dist/assets/mui_components/GeneVariants.js.map +1 -1
- package/dist/assets/mui_components/HelpChatBubble.js.map +1 -1
- package/dist/assets/mui_components/Imaging.js.map +1 -1
- package/dist/assets/mui_components/InSilicoModel.js.map +1 -1
- package/dist/assets/mui_components/Kinomics.js.map +1 -1
- package/dist/assets/mui_components/LineGraph.js.map +1 -1
- package/dist/assets/mui_components/ModelSystem.js.map +1 -1
- package/dist/assets/mui_components/Other.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile2.js.map +1 -1
- package/dist/assets/mui_components/Proteomics.js.map +1 -1
- package/dist/assets/mui_components/Rat.js.map +1 -1
- package/dist/assets/mui_components/SpatialProfiling.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition1.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition2.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition3.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition4.js.map +1 -1
- package/dist/assets/sustainability/dialPosition1.js.map +1 -1
- package/dist/assets/sustainability/dialPosition2.js.map +1 -1
- package/dist/assets/sustainability/dialPosition3.js.map +1 -1
- package/dist/assets/sustainability/dialPosition4.js.map +1 -1
- package/dist/assets/themed_icons/Active.js.map +1 -1
- package/dist/assets/themed_icons/Chart.js.map +1 -1
- package/dist/assets/themed_icons/Close.js.map +1 -1
- package/dist/assets/themed_icons/Collapse.js.map +1 -1
- package/dist/assets/themed_icons/Columns.js.map +1 -1
- package/dist/assets/themed_icons/ColumnsDark.js.map +1 -1
- package/dist/assets/themed_icons/Database.js.map +1 -1
- package/dist/assets/themed_icons/Download.js.map +1 -1
- package/dist/assets/themed_icons/Expand.js.map +1 -1
- package/dist/assets/themed_icons/Explore.js.map +1 -1
- package/dist/assets/themed_icons/ExternalLink.js.map +1 -1
- package/dist/assets/themed_icons/Filter.js.map +1 -1
- package/dist/assets/themed_icons/Program.js.map +1 -1
- package/dist/assets/themed_icons/Project.js.map +1 -1
- package/dist/assets/themed_icons/Publication.js.map +1 -1
- package/dist/assets/themed_icons/Search.js.map +1 -1
- package/dist/assets/themed_icons/Settings.js.map +1 -1
- package/dist/assets/themed_icons/SortDown.js.map +1 -1
- package/dist/assets/themed_icons/SortUp.js.map +1 -1
- package/dist/assets/themed_icons/SqlEditorIcon.js.map +1 -1
- package/dist/assets/themed_icons/Study.js.map +1 -1
- package/dist/assets/themed_icons/ToolClinical.js.map +1 -1
- package/dist/assets/themed_icons/ToolComputational.js.map +1 -1
- package/dist/assets/themed_icons/ToolExperimental.js.map +1 -1
- package/dist/assets/themed_icons/VerticalDots.js.map +1 -1
- package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js.map +1 -1
- package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
- package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js.map +1 -1
- package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +10 -11
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +73 -76
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/AuthenticatedRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/CertificationRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/LockAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/ValidationRequirement.js.map +1 -1
- package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
- package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
- package/dist/components/AccountLevelBadge/AccountLevelBadge.js.map +1 -1
- package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
- package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgement.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
- package/dist/components/AclEditor/AclEditorSkeleton.js.map +1 -1
- package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
- package/dist/components/AclEditor/ReadOnlyPermissionLevel.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js +2 -4
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessItem.js.map +1 -1
- package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
- package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
- package/dist/components/AdaptiveTwoColumnLayout/AdaptiveTwoColumnLayout.js.map +1 -1
- package/dist/components/AddToDownloadListV2.js.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
- package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
- package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
- package/dist/components/Authentication/LoginFlowBackButton.js.map +1 -1
- package/dist/components/Authentication/LoginForm.js.map +1 -1
- package/dist/components/Authentication/LoginMethod.js.map +1 -1
- package/dist/components/Authentication/LoginMethodButton.js.map +1 -1
- package/dist/components/Authentication/Logout.js.map +1 -1
- package/dist/components/Authentication/OneTimePasswordForm.js.map +1 -1
- package/dist/components/Authentication/PasswordField.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
- package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
- package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
- package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
- package/dist/components/Authentication/TOTPForm.js.map +1 -1
- package/dist/components/Authentication/TwoFactorAuthSettingsPanel.js.map +1 -1
- package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
- package/dist/components/Authentication/TwoFactorSecretDialog.js.map +1 -1
- package/dist/components/Authentication/UsernamePasswordForm.js.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/components/CTASectionWrapper/CTASectionWrapper.js.map +1 -1
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
- package/dist/components/CardContainer/CardContainer.js.map +1 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Desktop.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.js.map +1 -1
- package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
- package/dist/components/CardGridWithLinks/CardGridWithLinks.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationAnswer.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
- package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
- package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js.map +1 -1
- package/dist/components/ChallengeRegisterButton/ChallengeRegisterButton.js.map +1 -1
- package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
- package/dist/components/ChallengeSubmission/AddExternalRepo.js.map +1 -1
- package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +62 -64
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionCommitList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamSearch.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +96 -102
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/OpenMembershipInvitation.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/RegistrationSuccessful.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
- package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
- package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopover.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
- package/dist/components/CitationPopover/useCitation.js.map +1 -1
- package/dist/components/ColorGradient/ColorGradient.js.map +1 -1
- package/dist/components/ColoredBulletListItem/ColoredBulletListItem.js.map +1 -1
- package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
- package/dist/components/ComponentCollapse.js.map +1 -1
- package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiePreferencesDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.d.ts.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.js +9 -9
- package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
- package/dist/components/CopyToClipboardIcon.js.map +1 -1
- package/dist/components/CopyToClipboardInput/CopyToClipboardInput.js.map +1 -1
- package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizardUtils.js.map +1 -1
- package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
- package/dist/components/CreateProjectModal/ProjectVisibilityRadioGroup.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableTypeSelection.js.map +1 -1
- package/dist/components/CreateTableViewWizard/ViewTypeSelection.js.map +1 -1
- package/dist/components/CrispChat/CrispChat.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.css +1 -0
- package/dist/components/DataExplorer/DataExplorer.d.ts +13 -0
- package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -0
- package/dist/components/DataExplorer/DataExplorer.js +116 -0
- package/dist/components/DataExplorer/DataExplorer.js.map +1 -0
- package/dist/components/DataExplorer/DataExplorer.module.js +22 -0
- package/dist/components/DataExplorer/DataExplorer.module.js.map +1 -0
- package/dist/components/DataExplorer/DataExplorer.module.scss +156 -0
- package/dist/components/DataGrid/DataGrid.js +72 -72
- package/dist/components/DataGrid/DataGrid.js.map +1 -1
- package/dist/components/DataGrid/DataGridTypes.js.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.d.ts +2 -0
- package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.js +9 -10
- package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
- package/dist/components/DataGrid/StartGridSession.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts +3 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +219 -211
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.js +106 -102
- package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js +97 -89
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/GridAutocompleteChip.js.map +1 -1
- package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts +19 -8
- package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js +64 -43
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
- package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js.map +1 -1
- package/dist/components/DataGrid/components/GridSessionSelectionField.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.d.ts.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +9 -9
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
- package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
- package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +2 -0
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
- package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js +8 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridReplicaUsers.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
- package/dist/components/DataGrid/hooks/useRemoteSelections.js.map +1 -1
- package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
- package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts +2 -0
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js +12 -2
- package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
- package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
- package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
- package/dist/components/DataGrid/utils/MessageCounter.js.map +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/calculateColumnWidth.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
- package/dist/components/DataGrid/utils/convertActionToModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/createTestModel.js.map +1 -1
- package/dist/components/DataGrid/utils/enrichRowsWithChangeInfo.js.map +1 -1
- package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellAuthorSid.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
- package/dist/components/DataGrid/utils/getChangeTooltipText.js.map +1 -1
- package/dist/components/DataGrid/utils/getEmptyValue.js.map +1 -1
- package/dist/components/DataGrid/utils/getReplicaCategory.js.map +1 -1
- package/dist/components/DataGrid/utils/isValidationUpToDateForRow.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxMessage.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxNotification.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxRequest.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxRequestComplete.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxResponse.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
- package/dist/components/DataGrid/utils/logicalTimestampToString.js.map +1 -1
- package/dist/components/DataGrid/utils/mapOperationsToModelChanges.js.map +1 -1
- package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
- package/dist/components/DataGrid/utils/replicaSelectionToGridSelection.js.map +1 -1
- package/dist/components/DataGrid/utils/schemaAwarePasteValue.js.map +1 -1
- package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
- package/dist/components/DatasetJsonLdScript.js.map +1 -1
- package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
- package/dist/components/Dialog/ConfirmCloseWithoutSavingDialog.js.map +1 -1
- package/dist/components/DialogBase.js.map +1 -1
- package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
- package/dist/components/DirectDownload/FileEntityDirectDownload.js.map +1 -1
- package/dist/components/DirectDownloadButton.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
- package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
- package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
- package/dist/components/DownloadCart/DirectProgrammaticDownload.js.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
- package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListStats.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
- package/dist/components/DownloadCart/EnableTwoFaRequirementCard.js.map +1 -1
- package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
- package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
- package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
- package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
- package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
- package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
- package/dist/components/DynamicForm/DynamicForm.js.map +1 -1
- package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemCard.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemLayout.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
- package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
- package/dist/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditorModal.js.map +1 -1
- package/dist/components/EntityAclEditor/InheritanceMessage.js.map +1 -1
- package/dist/components/EntityAclEditor/OpenData.js.map +1 -1
- package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +68 -70
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js +32 -35
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
- package/dist/components/EntityFinder/Breadcrumbs.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinder.js +134 -136
- package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinderModal.js.map +1 -1
- package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
- package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
- package/dist/components/EntityFinder/details/EntityDetailsList.js +20 -20
- package/dist/components/EntityFinder/details/EntityDetailsList.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ReferenceDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/SearchDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.js +67 -67
- package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
- package/dist/components/EntityFinder/details/view/VersionColumnHeader.js +1 -1
- package/dist/components/EntityFinder/details/view/VersionColumnHeader.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/DateCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityBadgeIconsCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityFinderCheckboxCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityFinderVersionCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityNameCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityTypeCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityDirectDownloadCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/UserBadgeCell.js.map +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.js +80 -80
- package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
- package/dist/components/EntityFinder/tree/VirtualizedTree.js +31 -31
- package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
- package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
- package/dist/components/EntityForm/EntityForm.js.map +1 -1
- package/dist/components/EntityHeaderTable/DebouncedInput.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTableCellRenderers.js.map +1 -1
- package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
- package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
- package/dist/components/EntityIcon.js.map +1 -1
- package/dist/components/EntityLink.js.map +1 -1
- package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
- package/dist/components/EntityTreeTable/EntityTreeTable.js.map +1 -1
- package/dist/components/EntityTreeTable/components/AutoLoadMore.js.map +1 -1
- package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityBadgeIconsCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableContext.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableRow.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
- package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
- package/dist/components/EntityUpload/EntityUploadModal.js +29 -31
- package/dist/components/EntityUpload/EntityUploadModal.js.map +1 -1
- package/dist/components/EntityUpload/EntityUploadPromptDialog.js.map +1 -1
- package/dist/components/EntityUpload/ExternalObjectStoreCredentialsForm.js.map +1 -1
- package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
- package/dist/components/EntityUpload/LinkToURL.js.map +1 -1
- package/dist/components/EntityUpload/ProjectStorageLimitAlert.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewScopeEditor.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewScopeEditorModal.js.map +1 -1
- package/dist/components/Evaluation/CreatedOnByUserDiv.js.map +1 -1
- package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -1
- package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditorPage.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditorDropdown.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditorList.js.map +1 -1
- package/dist/components/Evaluation/input_models/models.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
- package/dist/components/EvaluationFinder/EvaluationFinder.js.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.d.ts.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js +24 -30
- package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
- package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataPlots.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
- package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
- package/dist/components/FeaturedResearch/FeaturedResearch.js +16 -18
- package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolCard.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
- package/dist/components/FilePreview/EntityPreview.js.map +1 -1
- package/dist/components/FilePreview/FileEntityPreview.js.map +1 -1
- package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
- package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
- package/dist/components/FilePreview/PdfPreview.js.map +1 -1
- package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
- package/dist/components/FilePreview/PreviewUtils.js.map +1 -1
- package/dist/components/FileUpload/FileUpload.js.map +1 -1
- package/dist/components/Forum/DiscussionReply.js.map +1 -1
- package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
- package/dist/components/Forum/DiscussionThread.js.map +1 -1
- package/dist/components/Forum/ForumPage.js.map +1 -1
- package/dist/components/Forum/ForumTable.js.map +1 -1
- package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
- package/dist/components/Forum/SubscribersModal.js.map +1 -1
- package/dist/components/ForumSearch/ForumSearch.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearch.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
- package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
- package/dist/components/GenericCard/BioregistryRules.js.map +1 -1
- package/dist/components/GenericCard/CardUtils.js.map +1 -1
- package/dist/components/GenericCard/CollapsibleDescription.js.map +1 -1
- package/dist/components/GenericCard/CroissantButton/CroissantButton.js.map +1 -1
- package/dist/components/GenericCard/GenericCard.js.map +1 -1
- package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
- package/dist/components/GenericCard/GenericCardIcon.js.map +1 -1
- package/dist/components/GenericCard/GenericCardTitle.js.map +1 -1
- package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -1
- package/dist/components/GenericCard/Linkify.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/GenericCard/useResolvedSynapseEntity.js.map +1 -1
- package/dist/components/Goals/Goals.Desktop.js.map +1 -1
- package/dist/components/Goals/Goals.Mobile.js.map +1 -1
- package/dist/components/Goals/Goals.js +25 -27
- package/dist/components/Goals/Goals.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.js +14 -16
- package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Desktop.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.js +14 -16
- package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
- package/dist/components/GoogleAnalytics/GoogleAnalytics.js.map +1 -1
- package/dist/components/GoogleMap/GoogleMap.js.map +1 -1
- package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
- package/dist/components/HasAccess/AccessIcon.js +10 -10
- package/dist/components/HasAccess/AccessIcon.js.map +1 -1
- package/dist/components/HasAccess/HasAccessV2.js.map +1 -1
- package/dist/components/HasAccess/useHasAccess.js.map +1 -1
- package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
- package/dist/components/HeaderCard.js.map +1 -1
- package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
- package/dist/components/HexGrid/HexGrid.js.map +1 -1
- package/dist/components/IDUReport/IDUReport.js.map +1 -1
- package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
- package/dist/components/Icon/Icon.js.map +1 -1
- package/dist/components/IconList.js.map +1 -1
- package/dist/components/IconSvg/IconSvg.js.map +1 -1
- package/dist/components/IconSvgButton.js.map +1 -1
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js +7 -9
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
- package/dist/components/ImageFromSynapseTable.js.map +1 -1
- package/dist/components/InteractiveCopyIdsIcon.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditorModal.js.map +1 -1
- package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
- package/dist/components/JsonLdScript.js.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTitleTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/DescriptionFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ErrorListTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldDescriptionTable.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldErrorTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/BooleanWidget.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/DateTimeWidget.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
- package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
- package/dist/components/Markdown/GovernanceMarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
- package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.js +75 -106
- package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.d.ts +14 -4
- package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.js +38 -37
- package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
- package/dist/components/Markdown/MarkdownWidget.js.map +1 -1
- package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
- package/dist/components/Markdown/UserMentionModal.js.map +1 -1
- package/dist/components/Markdown/widget/Bookmarks.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownEntityPreview.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownIDUReport.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapseImage.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapseTable.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownTableOfContents.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownUserOrTeamBadge.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownVideo.js.map +1 -1
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.FormSchema.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
- package/dist/components/MuiContainer.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
- package/dist/components/OAuthClientManagement/CreateOAuthClient.js.map +1 -1
- package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
- package/dist/components/OrientationBanner/OrientationBanner.js.map +1 -1
- package/dist/components/PageProgress/PageProgress.js.map +1 -1
- package/dist/components/Plot/BarPlot.js.map +1 -1
- package/dist/components/Plot/DotPlot.js.map +1 -1
- package/dist/components/Plot/Plot.d.ts +12 -1
- package/dist/components/Plot/Plot.d.ts.map +1 -1
- package/dist/components/Plot/Plot.js +5 -1
- package/dist/components/Plot/Plot.js.map +1 -1
- package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
- package/dist/components/Plot/SynapsePlot.js.map +1 -1
- package/dist/components/Plot/SynapseSankeyPlot.d.ts +12 -0
- package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -0
- package/dist/components/Plot/SynapseSankeyPlot.js +54 -0
- package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -0
- package/dist/components/Plot/ThemesPlot.js.map +1 -1
- package/dist/components/Plot/UpsetPlot.js.map +1 -1
- package/dist/components/Plot/index.d.ts +3 -1
- package/dist/components/Plot/index.d.ts.map +1 -1
- package/dist/components/Plot/index.js +2 -1
- package/dist/components/Plot/safe-react-plotly-factory.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditorModal.js.map +1 -1
- package/dist/components/PortalFeatureHighlights/PortalFeatureHighlights.js.map +1 -1
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js +4 -6
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
- package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
- package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
- package/dist/components/PortalList/PortalCard.js.map +1 -1
- package/dist/components/PortalList/PortalList.js.map +1 -1
- package/dist/components/PortalSectionHeader/PortalSectionHeader.js.map +1 -1
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js +69 -69
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
- package/dist/components/Programs/Programs.Desktop.js.map +1 -1
- package/dist/components/Programs/Programs.Mobile.js.map +1 -1
- package/dist/components/Programs/Programs.js.map +1 -1
- package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
- package/dist/components/ProvenanceGraph/ActivityNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/EntityNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/EntityPlaceholderNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ExpandGraphNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ExternalGraphNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceEntityIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js +13 -13
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/UndefinedNodeLabel.js.map +1 -1
- package/dist/components/QueryContext/QueryContext.js.map +1 -1
- package/dist/components/QueryCount/QueryCount.js.map +1 -1
- package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
- package/dist/components/QuerySortSelector.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/NoContentPlaceholder.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationContext.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.d.ts.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +67 -65
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapper.js +27 -27
- package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapperLoadingScreen.js.map +1 -1
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
- package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
- package/dist/components/QueryWrapper/ViewMoreQueryResultsButton.js.map +1 -1
- package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
- package/dist/components/QueryWrapper/useComputeRowSelectionPrimaryKey.js.map +1 -1
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
- package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
- package/dist/components/QueryWrapper/useHasFacetedSelectColumn.js.map +1 -1
- package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +1 -0
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
- package/dist/components/RORInstitutionField/RORInstitutionField.js.map +1 -1
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js +6 -8
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
- package/dist/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCard.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardMedium.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
- package/dist/components/RenderIfInView/RenderIfInView.js.map +1 -1
- package/dist/components/ResizableContainer/ResizableContainer.js.map +1 -1
- package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
- package/dist/components/Resources/Resources.Desktop.js.map +1 -1
- package/dist/components/Resources/Resources.Mobile.js.map +1 -1
- package/dist/components/Resources/Resources.js +8 -11
- package/dist/components/Resources/Resources.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
- package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
- package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/SynapseAnnotationsWrapIfAdditionalTemplate.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/widget/TextWidget.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.d.ts +1 -1
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js +1 -0
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessRequirementTextInstructions.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
- package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
- package/dist/components/ShowMore/ShowMore.js.map +1 -1
- package/dist/components/SignInButton.js.map +1 -1
- package/dist/components/SignInRequiredModal/SignInRequiredModal.js.map +1 -1
- package/dist/components/Skeleton/SkeletonButton.js.map +1 -1
- package/dist/components/Skeleton/SkeletonInlineBlock.js.map +1 -1
- package/dist/components/Skeleton/SkeletonParagraph.js.map +1 -1
- package/dist/components/Skeleton/SkeletonTable.js.map +1 -1
- package/dist/components/SmartLink/SmartButton.js.map +1 -1
- package/dist/components/SmartLink/SmartLink.js.map +1 -1
- package/dist/components/SmartLink/useSmartLink.js.map +1 -1
- package/dist/components/SourceAppImage.js.map +1 -1
- package/dist/components/SpinnerButton/SpinnerButton.js.map +1 -1
- package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditor.js.map +1 -1
- package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.js.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.d.ts +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.d.ts.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
- package/dist/components/StatisticsPlot.js.map +1 -1
- package/dist/components/StepperDialog/StepperDialog.js.map +1 -1
- package/dist/components/StorybookComponentWrapper.js.map +1 -1
- package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.js.map +1 -1
- package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.js.map +1 -1
- package/dist/components/SubscriptionPage/ForumTopic.js.map +1 -1
- package/dist/components/SubscriptionPage/SubscriptionItem.js.map +1 -1
- package/dist/components/SubscriptionPage/SubscriptionPage.js.map +1 -1
- package/dist/components/SubscriptionPage/ThreadTopic.js.map +1 -1
- package/dist/components/SubscriptionPage/Topic.js.map +1 -1
- package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
- package/dist/components/SustainabilityScorecard/Dial.js.map +1 -1
- package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardUtils.js.map +1 -1
- package/dist/components/SynapseChat/AccessLevelMenu.js.map +1 -1
- package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatDialog.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
- package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
- package/dist/components/SynapseChat/useChatState.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseLinksColumn.js.map +1 -1
- package/dist/components/SynapseForm/DataDebug.js.map +1 -1
- package/dist/components/SynapseForm/Header.js.map +1 -1
- package/dist/components/SynapseForm/NavButtons.js.map +1 -1
- package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
- package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
- package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormCheckboxWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormCheckboxesWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormRadioWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormSubmissionGrid.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormUtils.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
- package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
- package/dist/components/SynapseForm/types.js.map +1 -1
- package/dist/components/SynapseForm/useGetFormPropsFromSearchParams.js.map +1 -1
- package/dist/components/SynapseHomepageV2/FloatingBlobsBackground.js.map +1 -1
- package/dist/components/SynapseHomepageV2/HomepageStyles.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbers.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasets.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatures.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +18 -21
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageV2.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHotdrops.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHotdropsItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInAction.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlan.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlanContent.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlansPage.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +78 -78
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HasAccessChip.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageRouter.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/chipStyles.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControlButton.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControlPanel.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControls.js.map +1 -1
- package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
- package/dist/components/SynapseTable/ExpandCollapseButton.js.map +1 -1
- package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
- package/dist/components/SynapseTable/NoContentAvailable.js.map +1 -1
- package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
- package/dist/components/SynapseTable/SearchResultsNotFound.js.map +1 -1
- package/dist/components/SynapseTable/SearchV2.js.map +1 -1
- package/dist/components/SynapseTable/SqlEditor.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/EntityIdList.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/EvaluationIdRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/ComplexJSONRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONArrayRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONObjectRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONPrimitiveRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONRendererUtils.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONTableCellRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/UserIdList.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableConstants.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableContext.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
- package/dist/components/SynapseTable/TableIsEmpty.js.map +1 -1
- package/dist/components/SynapseTable/TablePagination.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorCheckboxCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorUtils.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +131 -133
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/components/SynapseTable/datasets/EntityFetchErrorCell.js.map +1 -1
- package/dist/components/SynapseTable/export/ADDiscoveryPortalInstructions.js.map +1 -1
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +48 -51
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformDisclaimer.js.map +1 -1
- package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadLoginModal.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
- package/dist/components/SynapseTable/useTableSort.js.map +1 -1
- package/dist/components/SystemUseNotification/SystemUseNotification.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +12 -12
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js +4 -4
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +32 -32
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DefaultValueValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EnumValuesValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js.map +1 -1
- package/dist/components/TableFeedCards/TableFeedCards.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/TableBody.js.map +1 -1
- package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
- package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
- package/dist/components/TeamBadge.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
- package/dist/components/TemplateComponent.js.map +1 -1
- package/dist/components/TemporaryBanner/TemporaryBanner.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditionsItem.js.map +1 -1
- package/dist/components/TextField/TextField.js.map +1 -1
- package/dist/components/TextField/TextFieldWithWordLimit.js.map +1 -1
- package/dist/components/TextToComponentCollapse.js.map +1 -1
- package/dist/components/ThemeGallery/ThemeGallery.js.map +1 -1
- package/dist/components/TimelinePlot/TimelineLegendItem.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
- package/dist/components/TimelinePlot/phasesQueryResponseData.js.map +1 -1
- package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
- package/dist/components/TotalQueryResults.js.map +1 -1
- package/dist/components/UserCard/Avatar.js.map +1 -1
- package/dist/components/UserCard/UserBadge.js.map +1 -1
- package/dist/components/UserCard/UserCard.js.map +1 -1
- package/dist/components/UserCard/UserCardContextMenu.js.map +1 -1
- package/dist/components/UserCard/UserCardLarge.js.map +1 -1
- package/dist/components/UserCard/UserCardMedium.js.map +1 -1
- package/dist/components/UserCardList/UserCardList.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.js.map +1 -1
- package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
- package/dist/components/UserOrTeamBadge/UserOrTeamBadge.js.map +1 -1
- package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
- package/dist/components/UserProfileLinks/UserChallenges.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProfileLinks.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
- package/dist/components/UserProfileLinks/UserTeams.js.map +1 -1
- package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
- package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
- package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
- package/dist/components/Webhook/WebhookVerificationDialog.js.map +1 -1
- package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
- package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButton.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButtonDescription.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButtonGroup.js.map +1 -1
- package/dist/components/WordPress/WordPressLatestPostChip.js.map +1 -1
- package/dist/components/WordPress/useWordPressCategories.js.map +1 -1
- package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
- package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
- package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementSearchBox/AccessRequirementSearchBox.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
- package/dist/components/dataaccess/RejectDataAccessRequestModal.js.map +1 -1
- package/dist/components/dataaccess/RejectProfileValidationRequestModal.js.map +1 -1
- package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
- package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/SubmissionSortStateTranslator.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
- package/dist/components/doi/DoiFormSchemas.js.map +1 -1
- package/dist/components/doi/PrivateEntityDoiWarning.js.map +1 -1
- package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUI.js +30 -32
- package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
- package/dist/components/download_list/DownloadDetails.js.map +1 -1
- package/dist/components/download_list/index.js.map +1 -1
- package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
- package/dist/components/entity/metadata/EntityAnnotationKey.js.map +1 -1
- package/dist/components/entity/metadata/EntityModal.js.map +1 -1
- package/dist/components/entity/metadata/MetadataTable.js.map +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
- package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
- package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
- package/dist/components/entity/page/title_bar/CitationsDialog.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js.map +1 -1
- package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
- package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
- package/dist/components/error/ErrorBanner.js.map +1 -1
- package/dist/components/error/ErrorChip.js.map +1 -1
- package/dist/components/error/ErrorPage.js +24 -24
- package/dist/components/error/ErrorPage.js.map +1 -1
- package/dist/components/error/RouteErrorBoundary.js.map +1 -1
- package/dist/components/error/SendMessageToEntityOwnerDialog.js.map +1 -1
- package/dist/components/error/SynapseObjectDOIInfo.js.map +1 -1
- package/dist/components/favorites/FavoriteButton.js.map +1 -1
- package/dist/components/favorites/FavoritesPage.js.map +1 -1
- package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
- package/dist/components/file/upload/MultiFileUploadProgress.js.map +1 -1
- package/dist/components/file/upload/UploadFilePanel.js.map +1 -1
- package/dist/components/form/RadioGroupWithOtherString.js.map +1 -1
- package/dist/components/home_page/ExpandableContent.js.map +1 -1
- package/dist/components/index.js +48 -47
- package/dist/components/layout/InfiniteTableLayout.js.map +1 -1
- package/dist/components/layout/SWCHeader.js.map +1 -1
- package/dist/components/layout/SWCPageLayout.js.map +1 -1
- package/dist/components/menu/ComplexMenu.js.map +1 -1
- package/dist/components/menu/DropdownMenu.js.map +1 -1
- package/dist/components/row_renderers/Dataset.js.map +1 -1
- package/dist/components/row_renderers/Funder.js.map +1 -1
- package/dist/components/row_renderers/ObservationCard.js.map +1 -1
- package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
- package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
- package/dist/components/styled/HoverPopover.js.map +1 -1
- package/dist/components/styled/InlineBadge.js.map +1 -1
- package/dist/components/styled/InputSizedButton.js.map +1 -1
- package/dist/components/styled/LargeButton.js.map +1 -1
- package/dist/components/styled/LeftRightPanel.js.map +1 -1
- package/dist/components/styled/LightTooltip.js.map +1 -1
- package/dist/components/styled/StyledFormControl.js.map +1 -1
- package/dist/components/styled/StyledPopover.js.map +1 -1
- package/dist/components/styled/StyledTableContainer.js.map +1 -1
- package/dist/components/styled/WideButton.js.map +1 -1
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.d.ts +18 -0
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +113 -0
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -0
- package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewDialog.d.ts +5 -5
- package/dist/components/table/CsvPreview/CsvPreviewDialog.d.ts.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js +27 -76
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.d.ts +19 -0
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js +41 -0
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -0
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.d.ts +12 -0
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js +25 -0
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -0
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.d.ts +18 -0
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js +55 -0
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -0
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.d.ts +19 -0
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.js +35 -0
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -0
- package/dist/components/table/CsvPreview/useCsvUploadPreview.d.ts +22 -0
- package/dist/components/table/CsvPreview/useCsvUploadPreview.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js +32 -0
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -0
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.d.ts +14 -0
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js +23 -0
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -0
- package/dist/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm.js.map +1 -1
- package/dist/components/trash/TrashCanList.js.map +1 -1
- package/dist/components/utils/Blocker.js.map +1 -1
- package/dist/components/utils/ConditionalWrapper.js.map +1 -1
- package/dist/components/utils/VisibilityObserver.js.map +1 -1
- package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
- package/dist/components/widgets/EntityColumnImage.js.map +1 -1
- package/dist/components/widgets/FileHandleLink.js.map +1 -1
- package/dist/components/widgets/ImageFileHandle.js.map +1 -1
- package/dist/components/widgets/LoginAwareButton.js.map +1 -1
- package/dist/components/widgets/Range.js.map +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/components/widgets/SynapseImage.js.map +1 -1
- package/dist/components/widgets/SynapseVideo.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainerSkeleton.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPill.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
- package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
- package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetChip.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterHeader.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterSkeleton.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.js +3 -3
- package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +41 -41
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
- package/dist/features/curator/GridPage/GridPage.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageRouter.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
- package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
- package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
- package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
- package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
- package/dist/features/curator/dashboard/components/UserOrTeamChip.js.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +5 -0
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +227 -181
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +3 -0
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +37 -34
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.d.ts +11 -3
- package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.js +2 -2
- package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getLatestGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/taskHasAssignee.js.map +1 -1
- package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
- package/dist/index.js +54 -53
- package/dist/index.js.map +1 -1
- package/dist/mocks/MockAccessApprovals.js.map +1 -1
- package/dist/mocks/MockSynapseContext.js.map +1 -1
- package/dist/mocks/accessRequirement/mockAccessRequirementAcls.js.map +1 -1
- package/dist/mocks/accessRequirement/mockAccessRequirements.js.map +1 -1
- package/dist/mocks/applicationSessionContext/MockApplicationSessionContext.js.map +1 -1
- package/dist/mocks/challenge/mockChallenge.js.map +1 -1
- package/dist/mocks/chat/mockChat.js.map +1 -1
- package/dist/mocks/curation/mockCurationTask.js.map +1 -1
- package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
- package/dist/mocks/dataaccess/MockResearchProject.js.map +1 -1
- package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
- package/dist/mocks/dataaccess/mockAccessRequest.js.map +1 -1
- package/dist/mocks/discussion/mock_discussion.js.map +1 -1
- package/dist/mocks/doi/MockDoi.js.map +1 -1
- package/dist/mocks/entity/index.js.map +1 -1
- package/dist/mocks/entity/mockDataset.js.map +1 -1
- package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
- package/dist/mocks/entity/mockEntity.js.map +1 -1
- package/dist/mocks/entity/mockEvaluationQueue.js.map +1 -1
- package/dist/mocks/entity/mockFileEntity.js.map +1 -1
- package/dist/mocks/entity/mockFileEntityACLVariants.js.map +1 -1
- package/dist/mocks/entity/mockFileView.js.map +1 -1
- package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
- package/dist/mocks/entity/mockProject.js.map +1 -1
- package/dist/mocks/entity/mockProjectView.js.map +1 -1
- package/dist/mocks/entity/mockReleaseCardsTable.js.map +1 -1
- package/dist/mocks/entity/mockRootEntity.js.map +1 -1
- package/dist/mocks/entity/mockTableEntity.js.map +1 -1
- package/dist/mocks/faker/fakerUtils.js.map +1 -1
- package/dist/mocks/faker/generateDiscussion.js.map +1 -1
- package/dist/mocks/faker/generateEvaluation.js.map +1 -1
- package/dist/mocks/faker/generateFakeEntity.js.map +1 -1
- package/dist/mocks/faker/generateSubscription.js.map +1 -1
- package/dist/mocks/mockAnnotationColumns.js.map +1 -1
- package/dist/mocks/mockCertificationQuiz.js.map +1 -1
- package/dist/mocks/mockDataCatalogQuery.js.map +1 -1
- package/dist/mocks/mockFileViewQuery.js.map +1 -1
- package/dist/mocks/mockOAuthClientAcls.js.map +1 -1
- package/dist/mocks/mockQueryResponseData.js.map +1 -1
- package/dist/mocks/mockQueryResponseDataWithManyEnumFacets.js.map +1 -1
- package/dist/mocks/mockSchema.js.map +1 -1
- package/dist/mocks/mockSearchQueryData.js.map +1 -1
- package/dist/mocks/mockShortIo.js.map +1 -1
- package/dist/mocks/mockSourceAppConfigQuery.js.map +1 -1
- package/dist/mocks/mockSubscription.js.map +1 -1
- package/dist/mocks/mockWiki.js.map +1 -1
- package/dist/mocks/mockWikiPageKey.js.map +1 -1
- package/dist/mocks/mock_drug_tool_data.js.map +1 -1
- package/dist/mocks/mock_file_handle.js.map +1 -1
- package/dist/mocks/mock_file_statistics.js.map +1 -1
- package/dist/mocks/mock_has_access_data.js.map +1 -1
- package/dist/mocks/mock_upload_destination.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementAclHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/dataciteHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/doiHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/evaluationHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/messageHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/oauthClientAclHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/projectStorageHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/realmHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/researchProjectHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/shortIoHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryService.js.map +1 -1
- package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/termsOfServiceHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/webhookHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers.js.map +1 -1
- package/dist/mocks/msw/server.d.ts +1 -1
- package/dist/mocks/msw/server.d.ts.map +1 -1
- package/dist/mocks/msw/server.js.map +1 -1
- package/dist/mocks/msw/util/BasicMockedCrudService.js.map +1 -1
- package/dist/mocks/oauth/MockClient.js.map +1 -1
- package/dist/mocks/personalAccessToken/mockPersonalAccessToken.js.map +1 -1
- package/dist/mocks/projectStorage/mockProjectStorageLimits.js.map +1 -1
- package/dist/mocks/provenance/mockActivity.js.map +1 -1
- package/dist/mocks/query/defaultFileViewColumnModels.js.map +1 -1
- package/dist/mocks/query/mockFeaturedDataTabsQueryData.js.map +1 -1
- package/dist/mocks/query/mockHomepageQueryResultData.js.map +1 -1
- package/dist/mocks/query/mockProjectViewQueryResults.js.map +1 -1
- package/dist/mocks/query/mockRejectionReasonsTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mockUserCardTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mock_query_data.js.map +1 -1
- package/dist/mocks/query/syn16787123.js.map +1 -1
- package/dist/mocks/query/syn17328596.js.map +1 -1
- package/dist/mocks/query/syn51735464.js.map +1 -1
- package/dist/mocks/query/syn51735464GroupBySpecies.js.map +1 -1
- package/dist/mocks/realm/mockRealmPrincipal.js.map +1 -1
- package/dist/mocks/team/mockTeam.js.map +1 -1
- package/dist/mocks/termsOfService/mockTermsOfService.js.map +1 -1
- package/dist/mocks/user/mock_user_profile.js.map +1 -1
- package/dist/mocks/usergroup/mockUserGroup.js.map +1 -1
- package/dist/ror-client/index.js.map +1 -1
- package/dist/stories/ColorPaletteInspector.js.map +1 -1
- package/dist/stories/ToastDemo.js.map +1 -1
- package/dist/stories/stubs/Alert/MuiAlert.js.map +1 -1
- package/dist/stories/stubs/Button/MuiButton.js.map +1 -1
- package/dist/stories/stubs/Dialog/MuiDialog.js.map +1 -1
- package/dist/stories/stubs/TextField/MuiTextField.js.map +1 -1
- package/dist/stories/stubs/Tooltip/MuiTooltip.js.map +1 -1
- package/dist/synapse-client/HttpClient.js.map +1 -1
- package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
- package/dist/synapse-client/SynapseClient.js +61 -69
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-client/SynapseClientUtils.js.map +1 -1
- package/dist/synapse-queries/InfiniteQueryUtils.js.map +1 -1
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
- package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
- package/dist/synapse-queries/asynchronous/usePollAsynchronousJob.js.map +1 -1
- package/dist/synapse-queries/auth/useChangePassword.js.map +1 -1
- package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
- package/dist/synapse-queries/auth/useResetPassword.js.map +1 -1
- package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
- package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
- package/dist/synapse-queries/chat/useChat.js.map +1 -1
- package/dist/synapse-queries/croissant/useGetCroissantUrl.js.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.js +12 -2
- package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessApprovals.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useGetApprovedSubmissionInfo.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
- package/dist/synapse-queries/docker/useGetDockerTag.js.map +1 -1
- package/dist/synapse-queries/doi/useDOI.js.map +1 -1
- package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
- package/dist/synapse-queries/entity/useActionsRequiredForTableQuery.js.map +1 -1
- package/dist/synapse-queries/entity/useEntity.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityActionsRequired.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityChallenge.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityChildren.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityForum.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityHeaders.js.map +1 -1
- package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useProjectStorage.js.map +1 -1
- package/dist/synapse-queries/entity/useSchema.js.map +1 -1
- package/dist/synapse-queries/evaluation/useEvaluation.js.map +1 -1
- package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
- package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
- package/dist/synapse-queries/file/useFiles.js.map +1 -1
- package/dist/synapse-queries/file/useSynapseMultipartUpload.js.map +1 -1
- package/dist/synapse-queries/file/useUploadDestination.js.map +1 -1
- package/dist/synapse-queries/forum/useForum.js.map +1 -1
- package/dist/synapse-queries/forum/useReply.js.map +1 -1
- package/dist/synapse-queries/forum/useThread.js.map +1 -1
- package/dist/synapse-queries/github/useGithub.js.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
- package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
- package/dist/synapse-queries/grid/useGridPresignedUrl.js.map +1 -1
- package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
- package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
- package/dist/synapse-queries/message/useMessage.js.map +1 -1
- package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
- package/dist/synapse-queries/portal/useListPortals.js.map +1 -1
- package/dist/synapse-queries/portal/usePortal.js.map +1 -1
- package/dist/synapse-queries/provenance/useGetActivityForEntity.js.map +1 -1
- package/dist/synapse-queries/realm/useRealmPrincipals.js.map +1 -1
- package/dist/synapse-queries/ror/index.js.map +1 -1
- package/dist/synapse-queries/search/useSearch.js.map +1 -1
- package/dist/synapse-queries/search/useSuggestion.js.map +1 -1
- package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
- package/dist/synapse-queries/table/useColumnModel.js.map +1 -1
- package/dist/synapse-queries/table/useDefiningSql.js.map +1 -1
- package/dist/synapse-queries/table/useDownloadTable.js.map +1 -1
- package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
- package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
- package/dist/synapse-queries/team/useTeam.js.map +1 -1
- package/dist/synapse-queries/team/useTeamList.js.map +1 -1
- package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
- package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
- package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
- package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
- package/dist/synapse-queries/user/useFavorites.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserProjects.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserTeams.js.map +1 -1
- package/dist/synapse-queries/user/usePersonalAccessToken.js.map +1 -1
- package/dist/synapse-queries/user/useProjects.js.map +1 -1
- package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
- package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
- package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
- package/dist/synapse-queries/verificationSubmission/useVerificationSubmission.js.map +1 -1
- package/dist/synapse-queries/webhook/useWebhook.js.map +1 -1
- package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
- package/dist/testutils/ComponentToBePassedPropsCustomMatcher.js.map +1 -1
- package/dist/testutils/IsEditingStoreTestUtils.js +17 -0
- package/dist/testutils/IsEditingStoreTestUtils.js.map +1 -0
- package/dist/testutils/LocationTracker.js.map +1 -1
- package/dist/testutils/MarkdownSynapseUtils.js.map +1 -1
- package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
- package/dist/testutils/TestingLibraryUtils.js +18 -16
- package/dist/testutils/TestingLibraryUtils.js.map +1 -1
- package/dist/testutils/muiDatePickerMock.js.map +1 -1
- package/dist/testutils/vitest.setup.js.map +1 -1
- package/dist/theme/DefaultTheme.js.map +1 -1
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/mergeTheme.js.map +1 -1
- package/dist/theme/palette/Palettes.js.map +1 -1
- package/dist/theme/spreadSx.js.map +1 -1
- package/dist/theme/typography/Link.js.map +1 -1
- package/dist/theme/typography/Typography.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/AppUtils/AppUtils.d.ts.map +1 -1
- package/dist/utils/AppUtils/AppUtils.js +11 -11
- package/dist/utils/AppUtils/AppUtils.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionContext.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/AuthenticationGuard.js.map +1 -1
- package/dist/utils/AppUtils/session/SessionInitializedGuard.js.map +1 -1
- package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
- package/dist/utils/ContentTypeUtils.js.map +1 -1
- package/dist/utils/OrientationBannerConstants.js.map +1 -1
- package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
- package/dist/utils/SynapseConstants.js.map +1 -1
- package/dist/utils/analytics/sendAnalyticsEvent.js.map +1 -1
- package/dist/utils/analytics/sendSearchEvent.js.map +1 -1
- package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
- package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
- package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
- package/dist/utils/context/AridhiaContext.js.map +1 -1
- package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
- package/dist/utils/context/FullContextProvider.js.map +1 -1
- package/dist/utils/context/GlobalIsEditingContext.js.map +1 -1
- package/dist/utils/context/SynapseContext.js.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.d.ts +2 -1
- package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.js +1 -1
- package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
- package/dist/utils/functions/ArrayUtils.js.map +1 -1
- package/dist/utils/functions/DateFormatter.js.map +1 -1
- package/dist/utils/functions/DateTimeUtils.js.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
- package/dist/utils/functions/FileHandleUtils.js.map +1 -1
- package/dist/utils/functions/GridApiUtils.js.map +1 -1
- package/dist/utils/functions/IsEqualTreatUndefinedAsMissing.js.map +1 -1
- package/dist/utils/functions/IsExternalLink.js.map +1 -1
- package/dist/utils/functions/ObjectUtils.js.map +1 -1
- package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
- package/dist/utils/functions/RealmUtils.js.map +1 -1
- package/dist/utils/functions/RegularExpressions.js.map +1 -1
- package/dist/utils/functions/ResolveLinkEntity.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
- package/dist/utils/functions/SqlFunctions.js.map +1 -1
- package/dist/utils/functions/StringUtils.js.map +1 -1
- package/dist/utils/functions/TableColumnSchemaUtils.js.map +1 -1
- package/dist/utils/functions/calculateFriendlyFileSize.js.map +1 -1
- package/dist/utils/functions/colorPalette.js.map +1 -1
- package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
- package/dist/utils/functions/dispatchDownloadListChangeEvent.js.map +1 -1
- package/dist/utils/functions/generateCsrfToken.js.map +1 -1
- package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
- package/dist/utils/functions/getEndpoint.js +3 -3
- package/dist/utils/functions/getEndpoint.js.map +1 -1
- package/dist/utils/functions/getPrincipalDisplayName.js.map +1 -1
- package/dist/utils/functions/getSynapseEntityUrl.js.map +1 -1
- package/dist/utils/functions/getSynapseWebClientLink.js.map +1 -1
- package/dist/utils/functions/getUserData.js.map +1 -1
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
- package/dist/utils/functions/unCamelCase.js.map +1 -1
- package/dist/utils/hooks/useConfirmItems.js.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.d.ts.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.js +24 -23
- package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
- package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
- package/dist/utils/hooks/useDebouncedEffect.js.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
- package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
- package/dist/utils/hooks/useGetEntityMetadata.js.map +1 -1
- package/dist/utils/hooks/useGetGoalData.js +2 -4
- package/dist/utils/hooks/useGetGoalData.js.map +1 -1
- package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
- package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
- package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
- package/dist/utils/hooks/useIsBot.js.map +1 -1
- package/dist/utils/hooks/useJsonLdScriptElement.js.map +1 -1
- package/dist/utils/hooks/useListState.js.map +1 -1
- package/dist/utils/hooks/useLogin.js.map +1 -1
- package/dist/utils/hooks/useMediaPrintOnly.js.map +1 -1
- package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
- package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
- package/dist/utils/hooks/useOneSageURL.js.map +1 -1
- package/dist/utils/hooks/useOverlay.js.map +1 -1
- package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
- package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
- package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
- package/dist/utils/hooks/useSet.js.map +1 -1
- package/dist/utils/hooks/useShowDesktop.js.map +1 -1
- package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
- package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
- package/dist/utils/hooks/useTraceUpdate.js.map +1 -1
- package/dist/utils/hooks/useTrackTransientListItems.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/getActiveUploadCount.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/getFileEntityIdWithSameName.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
- package/dist/utils/html/TargetEnum.js.map +1 -1
- package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
- package/dist/utils/jsonschema/getEnumeratedValues.js.map +1 -1
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
- package/dist/utils/jsonschema/getRequiredAttributes.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaForProperty.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
- package/dist/utils/jsonschema/getType.js.map +1 -1
- package/dist/utils/searchDefaults.js.map +1 -1
- package/dist/utils/slots/SlotUtils.js.map +1 -1
- package/dist/utils/types/IsType.js.map +1 -1
- package/package.json +67 -66
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnumFacetFilter.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.tsx"],"sourcesContent":["import { isFacetColumnValuesRequest, SynapseConstants } from '@/utils'\nimport {\n getCorrespondingColumnForFacet,\n getCorrespondingSelectedFacet,\n} from '@/utils/functions/queryUtils'\nimport useGetInfoFromIds from '@/utils/hooks/useGetInfoFromIds'\nimport {\n ColumnTypeEnum,\n EntityHeader,\n Evaluation,\n FacetColumnRequest,\n FacetColumnResultValueCount,\n FacetColumnResultValues,\n FacetColumnValuesRequest,\n QueryBundleRequest,\n UserGroupHeader,\n} from '@sage-bionetworks/synapse-types'\nimport { cloneDeep, partition, pick, sortBy } from 'lodash-es'\nimport { Suspense, useMemo } from 'react'\nimport { useQueryContext } from '../../../QueryContext'\nimport { useQueryVisualizationContext } from '../../../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../../../QueryWrapper/useGetQueryMetadata'\nimport { EnumFacetFilterSkeleton } from './EnumFacetFilterSkeleton'\nimport EnumFacetFilterUI, { RenderedFacetValue } from './EnumFacetFilterUI'\nimport { getAllIsSelected, valueToLabel } from './EnumFacetFilterUtils'\n\nexport type EnumFacetFilterProps = {\n labelId?: string\n facet: FacetColumnResultValues\n containerAs?: 'Collapsible' | 'Dropdown'\n dropdownType?: 'Icon' | 'SelectBox'\n hideCollapsible?: boolean\n defaultShowAllValues?: boolean\n}\n\nfunction EnumFacetFilterInternal(props: EnumFacetFilterProps) {\n const {\n facet,\n containerAs = 'Collapsible',\n dropdownType = 'Icon',\n hideCollapsible = false,\n defaultShowAllValues = false,\n labelId,\n } = props\n const {\n nextQueryRequest,\n addValueToSelectedFacet,\n removeSelectedFacet,\n removeValueFromSelectedFacet,\n resetDebounceTimer,\n } = useQueryContext()\n\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n const { getColumnDisplayName } = useQueryVisualizationContext()\n\n const currentSelectedFacet: FacetColumnValuesRequest | undefined =\n useMemo(() => {\n const facetColumnRequest = getCorrespondingSelectedFacet(\n facet,\n cloneDeep(nextQueryRequest.query.selectedFacets) as\n | FacetColumnRequest[]\n | undefined,\n )\n\n if (\n facetColumnRequest &&\n !isFacetColumnValuesRequest(facetColumnRequest)\n ) {\n console.error(\n `The facet rendered in EnumFacetFilter is not a FacetColumnValuesRequest`,\n facet,\n )\n return undefined\n }\n return facetColumnRequest\n }, [facet, nextQueryRequest.query.selectedFacets])\n\n // Must compare the known facet values to the \"uncommitted\" current query\n const allIsSelected = getAllIsSelected(\n cloneDeep(nextQueryRequest) as QueryBundleRequest,\n facet,\n )\n\n const columnModel = queryMetadata.columnModels\n ? getCorrespondingColumnForFacet(facet, queryMetadata.columnModels)\n : undefined\n\n const isNumberColumnType = useMemo(() => {\n switch (columnModel?.columnType) {\n case ColumnTypeEnum.DOUBLE:\n case ColumnTypeEnum.DATE:\n case ColumnTypeEnum.INTEGER:\n return true\n default:\n return false\n }\n }, [columnModel])\n\n const userIds =\n columnModel?.columnType === ColumnTypeEnum.USERID ||\n columnModel?.columnType === ColumnTypeEnum.USERID_LIST\n ? facet.facetValues.map(facet => facet.value)\n : []\n const userGroupHeaders = useGetInfoFromIds<UserGroupHeader>({\n ids: userIds,\n type: 'USER_PROFILE',\n })\n\n const entityIds =\n columnModel?.columnType === ColumnTypeEnum.ENTITYID ||\n columnModel?.columnType === ColumnTypeEnum.ENTITYID_LIST\n ? facet.facetValues.map(facet => facet.value)\n : []\n const entityHeaders = useGetInfoFromIds<EntityHeader>({\n ids: entityIds,\n type: 'ENTITY_HEADER',\n })\n\n const evaluationIds =\n columnModel?.columnType === ColumnTypeEnum.EVALUATIONID\n ? facet.facetValues.map(facet => facet.value)\n : []\n const evaluations = useGetInfoFromIds<Evaluation>({\n ids: evaluationIds,\n type: 'EVALUATION_QUEUE',\n })\n\n const displayedFacetValues: RenderedFacetValue[] = useMemo(() => {\n const renderedFacetValues = facet.facetValues.map(\n (facetValue: FacetColumnResultValueCount): RenderedFacetValue => {\n return {\n ...facetValue,\n // Selected status should be based on the 'nextQuery', not the result data\n // This ensures the checkboxes respond instantly to user interaction, like while waiting for multiple changes to debounce\n isSelected:\n currentSelectedFacet?.facetValues.includes(facetValue.value) ??\n false,\n displayText: valueToLabel(\n facetValue,\n userGroupHeaders,\n entityHeaders,\n evaluations,\n ),\n }\n },\n )\n //Abby V's suggestion, always show the VALUE_NOT_SET facet value on the bottom of this sorted list\n const partitions = partition(\n renderedFacetValues,\n facet => facet.value === SynapseConstants.VALUE_NOT_SET,\n )\n const valueNotSetFacetArray = partitions[0]\n const restOfFacetValuesArray = partitions[1]\n\n // Apply client-side sorting if no server-side sort is specified\n let sortedValues: RenderedFacetValue[] = restOfFacetValuesArray\n const isClientSideSort =\n columnModel == undefined || columnModel.facetSortConfig == undefined\n if (isClientSideSort) {\n if (isNumberColumnType) {\n sortedValues = sortBy(restOfFacetValuesArray, fv => Number(fv.value))\n } else {\n sortedValues = sortBy(restOfFacetValuesArray, fv =>\n fv.displayText.toLowerCase(),\n )\n }\n }\n\n return [...sortedValues, ...valueNotSetFacetArray]\n }, [\n facet.facetValues,\n columnModel,\n currentSelectedFacet?.facetValues,\n userGroupHeaders,\n entityHeaders,\n evaluations,\n isNumberColumnType,\n ])\n\n if (!columnModel) {\n return <></>\n }\n\n return (\n <EnumFacetFilterUI\n labelId={labelId}\n facetTitle={getColumnDisplayName(facet.columnName, facet.jsonPath)}\n filterIsActive={!allIsSelected}\n facetValues={displayedFacetValues}\n containerAs={containerAs}\n dropdownType={dropdownType}\n hideCollapsible={hideCollapsible}\n defaultShowAllValues={defaultShowAllValues}\n onHoverOverValue={() => {\n // SWC-6698: delay the query execution (via the debounce) when an item is hovered over\n resetDebounceTimer()\n }}\n onAddValueToSelection={value => {\n addValueToSelectedFacet(\n pick(facet, ['columnName', 'jsonPath']),\n value,\n { debounce: true },\n )\n }}\n onRemoveValueFromSelection={value => {\n removeValueFromSelectedFacet(\n pick(facet, ['columnName', 'jsonPath']),\n value,\n { debounce: true },\n )\n }}\n onRemoveAllFacetSelections={() =>\n removeSelectedFacet(pick(facet, ['columnName', 'jsonPath']))\n }\n canMultiSelect={true}\n />\n )\n}\n\nexport function EnumFacetFilter(props: EnumFacetFilterProps) {\n const { containerAs = 'Collapsible', dropdownType = 'Icon' } = props\n return (\n <Suspense\n fallback={\n <EnumFacetFilterSkeleton\n containerAs={containerAs}\n dropdownType={dropdownType}\n />\n }\n >\n <EnumFacetFilterInternal {...props} />\n </Suspense>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAmCA,SAAS,EAAwB,GAA6B;CAC5D,IAAM,EACJ,UACA,iBAAc,eACd,kBAAe,QACf,qBAAkB,IAClB,0BAAuB,IACvB,eACE,GACE,EACJ,qBACA,4BACA,wBACA,iCACA,0BACE,
|
|
1
|
+
{"version":3,"file":"EnumFacetFilter.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.tsx"],"sourcesContent":["import { isFacetColumnValuesRequest, SynapseConstants } from '@/utils'\nimport {\n getCorrespondingColumnForFacet,\n getCorrespondingSelectedFacet,\n} from '@/utils/functions/queryUtils'\nimport useGetInfoFromIds from '@/utils/hooks/useGetInfoFromIds'\nimport {\n ColumnTypeEnum,\n EntityHeader,\n Evaluation,\n FacetColumnRequest,\n FacetColumnResultValueCount,\n FacetColumnResultValues,\n FacetColumnValuesRequest,\n QueryBundleRequest,\n UserGroupHeader,\n} from '@sage-bionetworks/synapse-types'\nimport { cloneDeep, partition, pick, sortBy } from 'lodash-es'\nimport { Suspense, useMemo } from 'react'\nimport { useQueryContext } from '../../../QueryContext'\nimport { useQueryVisualizationContext } from '../../../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../../../QueryWrapper/useGetQueryMetadata'\nimport { EnumFacetFilterSkeleton } from './EnumFacetFilterSkeleton'\nimport EnumFacetFilterUI, { RenderedFacetValue } from './EnumFacetFilterUI'\nimport { getAllIsSelected, valueToLabel } from './EnumFacetFilterUtils'\n\nexport type EnumFacetFilterProps = {\n labelId?: string\n facet: FacetColumnResultValues\n containerAs?: 'Collapsible' | 'Dropdown'\n dropdownType?: 'Icon' | 'SelectBox'\n hideCollapsible?: boolean\n defaultShowAllValues?: boolean\n}\n\nfunction EnumFacetFilterInternal(props: EnumFacetFilterProps) {\n const {\n facet,\n containerAs = 'Collapsible',\n dropdownType = 'Icon',\n hideCollapsible = false,\n defaultShowAllValues = false,\n labelId,\n } = props\n const {\n nextQueryRequest,\n addValueToSelectedFacet,\n removeSelectedFacet,\n removeValueFromSelectedFacet,\n resetDebounceTimer,\n } = useQueryContext()\n\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n const { getColumnDisplayName } = useQueryVisualizationContext()\n\n const currentSelectedFacet: FacetColumnValuesRequest | undefined =\n useMemo(() => {\n const facetColumnRequest = getCorrespondingSelectedFacet(\n facet,\n cloneDeep(nextQueryRequest.query.selectedFacets) as\n | FacetColumnRequest[]\n | undefined,\n )\n\n if (\n facetColumnRequest &&\n !isFacetColumnValuesRequest(facetColumnRequest)\n ) {\n console.error(\n `The facet rendered in EnumFacetFilter is not a FacetColumnValuesRequest`,\n facet,\n )\n return undefined\n }\n return facetColumnRequest\n }, [facet, nextQueryRequest.query.selectedFacets])\n\n // Must compare the known facet values to the \"uncommitted\" current query\n const allIsSelected = getAllIsSelected(\n cloneDeep(nextQueryRequest) as QueryBundleRequest,\n facet,\n )\n\n const columnModel = queryMetadata.columnModels\n ? getCorrespondingColumnForFacet(facet, queryMetadata.columnModels)\n : undefined\n\n const isNumberColumnType = useMemo(() => {\n switch (columnModel?.columnType) {\n case ColumnTypeEnum.DOUBLE:\n case ColumnTypeEnum.DATE:\n case ColumnTypeEnum.INTEGER:\n return true\n default:\n return false\n }\n }, [columnModel])\n\n const userIds =\n columnModel?.columnType === ColumnTypeEnum.USERID ||\n columnModel?.columnType === ColumnTypeEnum.USERID_LIST\n ? facet.facetValues.map(facet => facet.value)\n : []\n const userGroupHeaders = useGetInfoFromIds<UserGroupHeader>({\n ids: userIds,\n type: 'USER_PROFILE',\n })\n\n const entityIds =\n columnModel?.columnType === ColumnTypeEnum.ENTITYID ||\n columnModel?.columnType === ColumnTypeEnum.ENTITYID_LIST\n ? facet.facetValues.map(facet => facet.value)\n : []\n const entityHeaders = useGetInfoFromIds<EntityHeader>({\n ids: entityIds,\n type: 'ENTITY_HEADER',\n })\n\n const evaluationIds =\n columnModel?.columnType === ColumnTypeEnum.EVALUATIONID\n ? facet.facetValues.map(facet => facet.value)\n : []\n const evaluations = useGetInfoFromIds<Evaluation>({\n ids: evaluationIds,\n type: 'EVALUATION_QUEUE',\n })\n\n const displayedFacetValues: RenderedFacetValue[] = useMemo(() => {\n const renderedFacetValues = facet.facetValues.map(\n (facetValue: FacetColumnResultValueCount): RenderedFacetValue => {\n return {\n ...facetValue,\n // Selected status should be based on the 'nextQuery', not the result data\n // This ensures the checkboxes respond instantly to user interaction, like while waiting for multiple changes to debounce\n isSelected:\n currentSelectedFacet?.facetValues.includes(facetValue.value) ??\n false,\n displayText: valueToLabel(\n facetValue,\n userGroupHeaders,\n entityHeaders,\n evaluations,\n ),\n }\n },\n )\n //Abby V's suggestion, always show the VALUE_NOT_SET facet value on the bottom of this sorted list\n const partitions = partition(\n renderedFacetValues,\n facet => facet.value === SynapseConstants.VALUE_NOT_SET,\n )\n const valueNotSetFacetArray = partitions[0]\n const restOfFacetValuesArray = partitions[1]\n\n // Apply client-side sorting if no server-side sort is specified\n let sortedValues: RenderedFacetValue[] = restOfFacetValuesArray\n const isClientSideSort =\n columnModel == undefined || columnModel.facetSortConfig == undefined\n if (isClientSideSort) {\n if (isNumberColumnType) {\n sortedValues = sortBy(restOfFacetValuesArray, fv => Number(fv.value))\n } else {\n sortedValues = sortBy(restOfFacetValuesArray, fv =>\n fv.displayText.toLowerCase(),\n )\n }\n }\n\n return [...sortedValues, ...valueNotSetFacetArray]\n }, [\n facet.facetValues,\n columnModel,\n currentSelectedFacet?.facetValues,\n userGroupHeaders,\n entityHeaders,\n evaluations,\n isNumberColumnType,\n ])\n\n if (!columnModel) {\n return <></>\n }\n\n return (\n <EnumFacetFilterUI\n labelId={labelId}\n facetTitle={getColumnDisplayName(facet.columnName, facet.jsonPath)}\n filterIsActive={!allIsSelected}\n facetValues={displayedFacetValues}\n containerAs={containerAs}\n dropdownType={dropdownType}\n hideCollapsible={hideCollapsible}\n defaultShowAllValues={defaultShowAllValues}\n onHoverOverValue={() => {\n // SWC-6698: delay the query execution (via the debounce) when an item is hovered over\n resetDebounceTimer()\n }}\n onAddValueToSelection={value => {\n addValueToSelectedFacet(\n pick(facet, ['columnName', 'jsonPath']),\n value,\n { debounce: true },\n )\n }}\n onRemoveValueFromSelection={value => {\n removeValueFromSelectedFacet(\n pick(facet, ['columnName', 'jsonPath']),\n value,\n { debounce: true },\n )\n }}\n onRemoveAllFacetSelections={() =>\n removeSelectedFacet(pick(facet, ['columnName', 'jsonPath']))\n }\n canMultiSelect={true}\n />\n )\n}\n\nexport function EnumFacetFilter(props: EnumFacetFilterProps) {\n const { containerAs = 'Collapsible', dropdownType = 'Icon' } = props\n return (\n <Suspense\n fallback={\n <EnumFacetFilterSkeleton\n containerAs={containerAs}\n dropdownType={dropdownType}\n />\n }\n >\n <EnumFacetFilterInternal {...props} />\n </Suspense>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnumFacetFilterDropdown.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.tsx"],"sourcesContent":["import {\n Box,\n Fade,\n IconButton,\n Menu,\n MenuItem,\n Select,\n Tooltip,\n} from '@mui/material'\nimport { MouseEvent, PropsWithChildren, useState } from 'react'\nimport IconSvg from '../../../IconSvg'\n\nexport type EnumFacetFilterDropdownProps = PropsWithChildren<{\n facetTitle: string\n menuText: string\n filterIsActive: boolean\n dropdownType?: 'Icon' | 'SelectBox'\n labelId?: string\n}>\n\nfunction EnumFacetFilterSelectBox(\n props: Omit<EnumFacetFilterDropdownProps, 'dropdownType'>,\n) {\n const { menuText, children, labelId } = props\n\n return (\n <Select\n labelId={labelId}\n className={'EnumFacetFilter EnumFacetFilterSelect'}\n value={menuText}\n renderValue={() => menuText}\n onChange={() => {\n // noop - the children will handle change events\n }}\n >\n {/* Hack to prevent Select warnings - add a hidden MenuItem */}\n <MenuItem value={menuText} sx={{ display: 'none' }} />\n <Box\n sx={{\n // expand the dropdown menu width for this component only\n '& .EnumFacetFilter__dropdown_menu': {\n maxWidth: '100%',\n },\n }}\n >\n {children}\n </Box>\n </Select>\n )\n}\n\nfunction EnumFacetFilterIconDropdown(\n props: Omit<EnumFacetFilterDropdownProps, 'dropdownType'>,\n) {\n const { children, filterIsActive, facetTitle } = props\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n const handleClickDropdownIcon = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget)\n }\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const open = Boolean(anchorEl)\n\n return (\n <div className=\"EnumFacetFilter\">\n <Tooltip title={`Filter by ${facetTitle}`}>\n <IconButton onClick={handleClickDropdownIcon} size={'small'}>\n <IconSvg\n icon={'filter'}\n wrap={false}\n sx={{\n color: filterIsActive ? 'primary.main' : 'grey.700',\n fontSize: '20px',\n }}\n />\n </IconButton>\n </Tooltip>\n <Menu\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n transformOrigin={{ vertical: 'top', horizontal: 'left' }}\n slots={{\n transition: Fade,\n }}\n >\n {children}\n </Menu>\n </div>\n )\n}\n\nexport default function EnumFacetFilterDropdown(\n props: EnumFacetFilterDropdownProps,\n) {\n const { dropdownType } = props\n if (dropdownType === 'SelectBox') {\n return <EnumFacetFilterSelectBox {...props} />\n } else {\n return <EnumFacetFilterIconDropdown {...props} />\n }\n}\n"],"mappings":";;;;;AAoBA,SAAS,EACP,GACA;CACA,IAAM,EAAE,aAAU,aAAU,eAAY;
|
|
1
|
+
{"version":3,"file":"EnumFacetFilterDropdown.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.tsx"],"sourcesContent":["import {\n Box,\n Fade,\n IconButton,\n Menu,\n MenuItem,\n Select,\n Tooltip,\n} from '@mui/material'\nimport { MouseEvent, PropsWithChildren, useState } from 'react'\nimport IconSvg from '../../../IconSvg'\n\nexport type EnumFacetFilterDropdownProps = PropsWithChildren<{\n facetTitle: string\n menuText: string\n filterIsActive: boolean\n dropdownType?: 'Icon' | 'SelectBox'\n labelId?: string\n}>\n\nfunction EnumFacetFilterSelectBox(\n props: Omit<EnumFacetFilterDropdownProps, 'dropdownType'>,\n) {\n const { menuText, children, labelId } = props\n\n return (\n <Select\n labelId={labelId}\n className={'EnumFacetFilter EnumFacetFilterSelect'}\n value={menuText}\n renderValue={() => menuText}\n onChange={() => {\n // noop - the children will handle change events\n }}\n >\n {/* Hack to prevent Select warnings - add a hidden MenuItem */}\n <MenuItem value={menuText} sx={{ display: 'none' }} />\n <Box\n sx={{\n // expand the dropdown menu width for this component only\n '& .EnumFacetFilter__dropdown_menu': {\n maxWidth: '100%',\n },\n }}\n >\n {children}\n </Box>\n </Select>\n )\n}\n\nfunction EnumFacetFilterIconDropdown(\n props: Omit<EnumFacetFilterDropdownProps, 'dropdownType'>,\n) {\n const { children, filterIsActive, facetTitle } = props\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n const handleClickDropdownIcon = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget)\n }\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const open = Boolean(anchorEl)\n\n return (\n <div className=\"EnumFacetFilter\">\n <Tooltip title={`Filter by ${facetTitle}`}>\n <IconButton onClick={handleClickDropdownIcon} size={'small'}>\n <IconSvg\n icon={'filter'}\n wrap={false}\n sx={{\n color: filterIsActive ? 'primary.main' : 'grey.700',\n fontSize: '20px',\n }}\n />\n </IconButton>\n </Tooltip>\n <Menu\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n transformOrigin={{ vertical: 'top', horizontal: 'left' }}\n slots={{\n transition: Fade,\n }}\n >\n {children}\n </Menu>\n </div>\n )\n}\n\nexport default function EnumFacetFilterDropdown(\n props: EnumFacetFilterDropdownProps,\n) {\n const { dropdownType } = props\n if (dropdownType === 'SelectBox') {\n return <EnumFacetFilterSelectBox {...props} />\n } else {\n return <EnumFacetFilterIconDropdown {...props} />\n }\n}\n"],"mappings":";;;;;AAoBA,SAAS,EACP,GACA;CACA,IAAM,EAAE,aAAU,aAAU,eAAY;CAExC,OACE,kBAAC,GAAD;EACW;EACT,WAAW;EACX,OAAO;EACP,mBAAmB;EACnB,gBAAgB,CAEhB;YAPF,CAUE,kBAAC,GAAD;GAAU,OAAO;GAAU,IAAI,EAAE,SAAS,OAAO;EAAI,CAAA,GACrD,kBAAC,GAAD;GACE,IAAI,EAEF,qCAAqC,EACnC,UAAU,OACZ,EACF;GAEC;EACE,CAAA,CACC;;AAEZ;AAEA,SAAS,EACP,GACA;CACA,IAAM,EAAE,aAAU,mBAAgB,kBAAe,GAE3C,CAAC,GAAU,KAAe,EAA6B,IAAI,GAC3D,KAA2B,MAAmC;EAClE,EAAY,EAAM,aAAa;CACjC,GACM,UAAoB;EACxB,EAAY,IAAI;CAClB,GAEM,IAAO,EAAQ;CAErB,OACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,GAAD;GAAS,OAAO,aAAa;aAC3B,kBAAC,GAAD;IAAY,SAAS;IAAyB,MAAM;cAClD,kBAAC,GAAD;KACE,MAAM;KACN,MAAM;KACN,IAAI;MACF,OAAO,IAAiB,iBAAiB;MACzC,UAAU;KACZ;IACD,CAAA;GACS,CAAA;EACL,CAAA,GACT,kBAAC,GAAD;GACY;GACJ;GACN,SAAS;GACT,cAAc;IAAE,UAAU;IAAU,YAAY;GAAO;GACvD,iBAAiB;IAAE,UAAU;IAAO,YAAY;GAAO;GACvD,OAAO,EACL,YAAY,EACd;GAEC;EACG,CAAA,CACH;;AAET;AAEA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,oBAAiB;CAIvB,OAFO,EADL,MAAiB,cACX,IAEA,GAFD,EAA0B,GAAI,EAAQ,CAEG;AAEpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnumFacetFilterOption.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.tsx"],"sourcesContent":["import { Box, Checkbox, FormControlLabel, Radio } from '@mui/material'\n\ntype EnumFacetFilterOptionProps = {\n readonly id: string\n readonly label: string\n readonly count?: number\n readonly isDropdown: boolean\n readonly checked: boolean\n readonly onChange: (selected: boolean) => void\n readonly onHover: () => void\n readonly inputType: 'checkbox' | 'radio'\n}\n\nexport function EnumFacetFilterOption(props: EnumFacetFilterOptionProps) {\n const {\n id,\n label,\n count,\n isDropdown,\n checked,\n onChange,\n onHover,\n inputType,\n } = props\n\n const control = inputType === 'checkbox' ? <Checkbox /> : <Radio />\n\n return (\n <Box\n className=\"EnumFacetFilter__checkboxContainer\"\n onClick={() => {\n // If this is a dropdown option, clicking anywhere in the field should toggle selection\n if (isDropdown) {\n onChange(!checked)\n }\n }}\n onMouseEnter={onHover}\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <FormControlLabel\n control={control}\n className=\"EnumFacetFilter__checkbox\"\n sx={{\n overflowWrap: 'anywhere',\n }}\n onClick={event => event.stopPropagation()}\n onChange={(_event, newValue) => {\n onChange(newValue)\n }}\n key={`${id}`}\n checked={checked}\n label={label}\n />\n\n {count != null && (\n <>\n {isDropdown && (\n <span className=\"EnumFacetFilter__count\">\n ({count.toLocaleString()})\n </span>\n )}\n {!isDropdown && (\n <div className=\"EnumFacetFilter__count\">\n {count.toLocaleString()}\n </div>\n )}\n </>\n )}\n </Box>\n )\n}\n"],"mappings":";;;AAaA,SAAgB,EAAsB,GAAmC;CACvE,IAAM,EACJ,OACA,UACA,UACA,eACA,YACA,aACA,YACA,iBACE;
|
|
1
|
+
{"version":3,"file":"EnumFacetFilterOption.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.tsx"],"sourcesContent":["import { Box, Checkbox, FormControlLabel, Radio } from '@mui/material'\n\ntype EnumFacetFilterOptionProps = {\n readonly id: string\n readonly label: string\n readonly count?: number\n readonly isDropdown: boolean\n readonly checked: boolean\n readonly onChange: (selected: boolean) => void\n readonly onHover: () => void\n readonly inputType: 'checkbox' | 'radio'\n}\n\nexport function EnumFacetFilterOption(props: EnumFacetFilterOptionProps) {\n const {\n id,\n label,\n count,\n isDropdown,\n checked,\n onChange,\n onHover,\n inputType,\n } = props\n\n const control = inputType === 'checkbox' ? <Checkbox /> : <Radio />\n\n return (\n <Box\n className=\"EnumFacetFilter__checkboxContainer\"\n onClick={() => {\n // If this is a dropdown option, clicking anywhere in the field should toggle selection\n if (isDropdown) {\n onChange(!checked)\n }\n }}\n onMouseEnter={onHover}\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <FormControlLabel\n control={control}\n className=\"EnumFacetFilter__checkbox\"\n sx={{\n overflowWrap: 'anywhere',\n }}\n onClick={event => event.stopPropagation()}\n onChange={(_event, newValue) => {\n onChange(newValue)\n }}\n key={`${id}`}\n checked={checked}\n label={label}\n />\n\n {count != null && (\n <>\n {isDropdown && (\n <span className=\"EnumFacetFilter__count\">\n ({count.toLocaleString()})\n </span>\n )}\n {!isDropdown && (\n <div className=\"EnumFacetFilter__count\">\n {count.toLocaleString()}\n </div>\n )}\n </>\n )}\n </Box>\n )\n}\n"],"mappings":";;;AAaA,SAAgB,EAAsB,GAAmC;CACvE,IAAM,EACJ,OACA,UACA,UACA,eACA,YACA,aACA,YACA,iBACE;CAIJ,OACE,kBAAC,GAAD;EACE,WAAU;EACV,eAAe;GAEb,AAAI,KACF,EAAS,CAAC,CAAO;EAErB;EACA,cAAc;EACd,IAAI;GACF,SAAS;GACT,gBAAgB;GAChB,YAAY;EACd;YAbF,CAeE,kBAAC,GAAD;GACW,SAnB4B,EAA3B,MAAc,aAAc,IAAe,GAAhB,CAAW,CAAY;GAoB5D,WAAU;GACV,IAAI,EACF,cAAc,WAChB;GACA,UAAS,MAAS,EAAM,gBAAgB;GACxC,WAAW,GAAQ,MAAa;IAC9B,EAAS,CAAQ;GACnB;GAES;GACF;EACR,GAHM,GAAG,GAGT,GAEA,KAAS,QACR,kBAAA,GAAA,EAAA,UAAA,CACG,KACC,kBAAC,QAAD;GAAM,WAAU;aAAhB;IAAyC;IACrC,EAAM,eAAe;IAAE;GACrB;MAEP,CAAC,KACA,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAM,eAAe;EACnB,CAAA,CAEP,EAAA,CAAA,CAED;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnumFacetFilterSkeleton.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.tsx"],"sourcesContent":["import { FacetFilterSkeleton } from '../FacetFilterSkeleton'\nimport { Skeleton } from '@mui/material'\nimport { EnumFacetFilterUIProps } from './EnumFacetFilterUI'\n\nexport function EnumFacetFilterSkeleton(\n props: Pick<EnumFacetFilterUIProps, 'containerAs' | 'dropdownType'>,\n) {\n const { containerAs = 'Collapsible', dropdownType = 'Icon' } = props\n if (containerAs === 'Collapsible') {\n return <FacetFilterSkeleton />\n } else {\n // containerAs is 'Dropdown'\n if (dropdownType === 'Icon') {\n return <Skeleton variant={'rectangular'} width={25} height={25} />\n } else {\n return <Skeleton variant={'rectangular'} width={100} height={25} />\n }\n }\n}\n"],"mappings":";;;;AAIA,SAAgB,EACd,GACA;CACA,IAAM,EAAE,iBAAc,eAAe,kBAAe,WAAW;
|
|
1
|
+
{"version":3,"file":"EnumFacetFilterSkeleton.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.tsx"],"sourcesContent":["import { FacetFilterSkeleton } from '../FacetFilterSkeleton'\nimport { Skeleton } from '@mui/material'\nimport { EnumFacetFilterUIProps } from './EnumFacetFilterUI'\n\nexport function EnumFacetFilterSkeleton(\n props: Pick<EnumFacetFilterUIProps, 'containerAs' | 'dropdownType'>,\n) {\n const { containerAs = 'Collapsible', dropdownType = 'Icon' } = props\n if (containerAs === 'Collapsible') {\n return <FacetFilterSkeleton />\n } else {\n // containerAs is 'Dropdown'\n if (dropdownType === 'Icon') {\n return <Skeleton variant={'rectangular'} width={25} height={25} />\n } else {\n return <Skeleton variant={'rectangular'} width={100} height={25} />\n }\n }\n}\n"],"mappings":";;;;AAIA,SAAgB,EACd,GACA;CACA,IAAM,EAAE,iBAAc,eAAe,kBAAe,WAAW;CAQ3D,OAPA,MAAgB,gBACX,kBAAC,GAAD,CAAsB,CAAA,IAGzB,MAAiB,SACZ,kBAAC,GAAD;EAAU,SAAS;EAAe,OAAO;EAAI,QAAQ;CAAK,CAAA,IAE1D,kBAAC,GAAD;EAAU,SAAS;EAAe,OAAO;EAAK,QAAQ;CAAK,CAAA;AAGxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnumFacetFilterUI.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.tsx"],"sourcesContent":["import {\n Checkbox,\n Collapse,\n FormControlLabel,\n IconButton,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport { useMemo, useRef, useState } from 'react'\nimport { FacetColumnResultValueCount } from '@sage-bionetworks/synapse-types'\nimport IconSvg from '../../../IconSvg/IconSvg'\nimport { FacetFilterHeader } from '../FacetFilterHeader'\nimport { EnumFacetFilterOption } from './EnumFacetFilterOption'\nimport EnumFacetFilterDropdown from './EnumFacetFilterDropdown'\nimport { SetOptional } from 'type-fest'\n\nconst MAX_ENUMERATION_VALUES_TO_SHOW = 5\n\nexport type RenderedFacetValue<TValue = string> = Omit<\n SetOptional<FacetColumnResultValueCount, 'count'>,\n 'value'\n> & {\n value: TValue\n /* Text displayed for the option, and also used to filter in search */\n displayText: string\n}\n\nexport type EnumFacetFilterUIProps<TValue = string> = {\n /* The ID of the corresponding label, for testing and accessibility */\n labelId?: string\n /* The title of the faceted column to be displayed */\n facetTitle: string\n /* List of all facet values and information associated with each value */\n facetValues: RenderedFacetValue<TValue>[]\n /* Determines how the component is styled and whether the 'All' checkbox should be selected. */\n filterIsActive: boolean // filterIsActive cannot be derived from facetValues[*].isSelected. See PORTALS-2680\n /* The EnumFacetFilter can be rendered as a collapsible panel or a dropdown. Default is `'Collapsible'` */\n containerAs?: 'Collapsible' | 'Dropdown'\n /* If `containerAs` is a dropdown, the dropdown can be either an IconButton or a SelectBox. Default is `'Icon'` */\n dropdownType?: 'Icon' | 'SelectBox'\n /* If true, hides the button to collapse the panel (only shown if `containerAs` is 'Collapsible'). Default is false.*/\n hideCollapsible?: boolean\n /* Called when an unselected value is selected */\n onAddValueToSelection: (value: TValue) => void\n /* Called when a selected value is unselected */\n onRemoveValueFromSelection: (value: TValue) => void\n /* Called when all values should be unselected (e.g. 'All' is clicked) */\n onRemoveAllFacetSelections: () => void\n /* Called when an value is hovered over */\n onHoverOverValue: (value: TValue) => void\n /* Set to true if multiple values can be selected for the filter */\n canMultiSelect: boolean\n /* By default, all values are not shown (defaultShowAllValues = false) */\n defaultShowAllValues?: boolean\n}\n\nfunction removeWhitespace(value: string): string {\n return value.replace(/\\s/g, '').toLowerCase()\n}\n\nexport default function EnumFacetFilterUI<TValue = string>(\n props: EnumFacetFilterUIProps<TValue>,\n) {\n const {\n labelId,\n filterIsActive,\n containerAs = 'Collapsible',\n dropdownType = 'Icon',\n hideCollapsible = false,\n facetValues,\n onAddValueToSelection,\n onRemoveValueFromSelection,\n facetTitle,\n onRemoveAllFacetSelections,\n onHoverOverValue,\n canMultiSelect = true,\n defaultShowAllValues = false,\n } = props\n const [toggleShowAll, setToggleShowAll] =\n useState<boolean>(defaultShowAllValues)\n const [isCollapsed, setIsCollapsed] = useState<boolean>(false)\n const [showSearch, setShowSearch] = useState<boolean>(false)\n const [searchTerm, setSearchText] = useState<string>('')\n\n // e.g. we show a subset of facet values before hiding the rest behind \"Show More\"\n // If the user has selected a value that would normally be hidden, always show all of the values\n const valueIndexedGreaterThanMaxToShowIsSelected =\n facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW &&\n facetValues\n .slice(MAX_ENUMERATION_VALUES_TO_SHOW)\n .some(({ isSelected }) => isSelected)\n const showAll =\n containerAs === 'Dropdown' ||\n toggleShowAll ||\n showSearch ||\n valueIndexedGreaterThanMaxToShowIsSelected\n\n const facetValuesToShow = useMemo(() => {\n if (showSearch && searchTerm.length > 0) {\n return facetValues.filter(({ displayText }) => {\n return (\n displayText.toLowerCase().indexOf(searchTerm.trim().toLowerCase()) >\n -1\n )\n })\n }\n if (showAll) {\n return facetValues\n }\n return facetValues.slice(0, MAX_ENUMERATION_VALUES_TO_SHOW)\n }, [facetValues, searchTerm, showSearch, showAll])\n\n const textInput = useRef<HTMLInputElement>(null)\n\n const isDropdown = containerAs === 'Dropdown'\n const showMoreButtonIsVisible =\n !showAll && facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW\n const showLessButtonIsVisible =\n showAll &&\n !searchTerm &&\n !valueIndexedGreaterThanMaxToShowIsSelected &&\n facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW\n\n const content = (\n <div className={isDropdown ? 'EnumFacetFilter__dropdown_menu' : ''}>\n <div className=\"EnumFacetFilter__checkboxContainer--forAll\">\n <TextField // Search Filter Text\n sx={{\n display: showSearch ? undefined : 'none',\n }}\n size={'small'}\n fullWidth={true}\n slotProps={{\n input: {\n startAdornment: (\n <Tooltip title={'Close search'}>\n <IconButton\n size={'small'}\n onClick={() => {\n setShowSearch(false)\n setToggleShowAll(defaultShowAllValues)\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"arrowBack\"\n />\n </IconButton>\n </Tooltip>\n ),\n endAdornment: searchTerm.length > 0 && (\n <Tooltip title={'Clear'}>\n <IconButton\n size={'small'}\n onClick={() => {\n setSearchText('')\n textInput.current?.focus()\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"close\"\n />\n </IconButton>\n </Tooltip>\n ),\n },\n }}\n type=\"text\"\n placeholder=\"Find values\"\n value={searchTerm}\n ref={textInput}\n onChange={e => {\n setSearchText(e.target.value)\n }}\n />\n {!showSearch && (\n <div className=\"EnumFacetFilter__checkAll\">\n <FormControlLabel\n control={<Checkbox />}\n className=\"EnumFacetFilter__checkbox\"\n onChange={() => {\n if (filterIsActive) {\n onRemoveAllFacetSelections()\n }\n }}\n key=\"select_all\"\n checked={!filterIsActive}\n label=\"All\"\n />\n <Tooltip title={'Search'}>\n <IconButton\n size={'small'}\n sx={{ aspectRatio: '1 / 1' }}\n onClick={() => {\n setSearchText('')\n setShowSearch(true)\n textInput.current?.focus()\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"search\"\n />\n </IconButton>\n </Tooltip>\n </div>\n )}\n </div>\n <div>\n {facetValuesToShow.map((facetValueAndCount, index: number) => {\n const { isSelected, displayText, value, count } = facetValueAndCount\n\n return (\n <EnumFacetFilterOption\n key={String(value)}\n id={[\n removeWhitespace(facetTitle),\n removeWhitespace(String(value)),\n index,\n ].join('-')}\n label={displayText}\n count={count}\n isDropdown={isDropdown}\n checked={isSelected}\n onHover={() => {\n onHoverOverValue(value)\n }}\n onChange={(newIsSelected: boolean) => {\n if (newIsSelected) {\n onAddValueToSelection(value)\n } else {\n onRemoveValueFromSelection(value)\n }\n }}\n inputType={canMultiSelect ? 'checkbox' : 'radio'}\n />\n )\n })}\n {!isDropdown && (\n <>\n {showMoreButtonIsVisible && (\n <button\n className=\"EnumFacetFilter__showMoreFacetsBtn\"\n onClick={() => setToggleShowAll(true)}\n >\n <div className=\"EnumFacetFilter__checkboxContainer\">\n <div className=\"EnumFacetFilter__showMoreFacetsLabel\">\n Show all ({facetValues.length})\n </div>\n </div>\n </button>\n )}\n {showLessButtonIsVisible && (\n <button\n className=\"EnumFacetFilter__showMoreFacetsBtn\"\n onClick={() => setToggleShowAll(false)}\n >\n <div className=\"EnumFacetFilter__checkboxContainer\">\n <div className=\"EnumFacetFilter__showMoreFacetsLabel\">\n Show less\n </div>\n </div>\n </button>\n )}\n </>\n )}\n {facetValuesToShow.length <= 0 && (\n <div className=\"EnumFacetFilter__noMatch\">No match found</div>\n )}\n </div>\n </div>\n )\n\n const menuText = useMemo(() => {\n if (!filterIsActive) {\n return 'All'\n } else if (\n filterIsActive &&\n facetValuesToShow.filter(item => item.isSelected).length === 1\n ) {\n return facetValuesToShow.filter(item => item.isSelected)[0].displayText\n } else {\n return 'Multiple Values Selected'\n }\n }, [filterIsActive, facetValuesToShow])\n\n if (isDropdown) {\n return (\n <EnumFacetFilterDropdown\n facetTitle={facetTitle}\n dropdownType={dropdownType}\n menuText={menuText}\n filterIsActive={filterIsActive}\n labelId={labelId}\n >\n {content}\n </EnumFacetFilterDropdown>\n )\n } else {\n return (\n <>\n <FacetFilterHeader\n hideCollapsible={hideCollapsible}\n isCollapsed={isCollapsed}\n label={facetTitle}\n onClick={(isCollapsed: boolean) => setIsCollapsed(isCollapsed)}\n />\n <Collapse className=\"EnumFacetFilter\" in={!isCollapsed}>\n {content}\n </Collapse>\n </>\n )\n }\n}\n"],"mappings":";;;;;;;;AAgBA,IAAM,IAAiC;AAwCvC,SAAS,EAAiB,GAAuB;AAC/C,QAAO,EAAM,QAAQ,OAAO,GAAG,CAAC,aAAa;;AAG/C,SAAwB,EACtB,GACA;CACA,IAAM,EACJ,YACA,mBACA,iBAAc,eACd,kBAAe,QACf,qBAAkB,IAClB,gBACA,0BACA,+BACA,eACA,+BACA,qBACA,oBAAiB,IACjB,0BAAuB,OACrB,GACE,CAAC,GAAe,KACpB,EAAkB,EAAqB,EACnC,CAAC,GAAa,KAAkB,EAAkB,GAAM,EACxD,CAAC,GAAY,KAAiB,EAAkB,GAAM,EACtD,CAAC,GAAY,KAAiB,EAAiB,GAAG,EAIlD,IACJ,EAAY,SAAS,KACrB,EACG,MAAM,EAA+B,CACrC,MAAM,EAAE,oBAAiB,EAAW,EACnC,IACJ,MAAgB,cAChB,KACA,KACA,GAEI,IAAoB,QACpB,KAAc,EAAW,SAAS,IAC7B,EAAY,QAAQ,EAAE,qBAEzB,EAAY,aAAa,CAAC,QAAQ,EAAW,MAAM,CAAC,aAAa,CAAC,GAClE,GAEF,GAEA,IACK,IAEF,EAAY,MAAM,GAAG,EAA+B,EAC1D;EAAC;EAAa;EAAY;EAAY;EAAQ,CAAC,EAE5C,IAAY,EAAyB,KAAK,EAE1C,IAAa,MAAgB,YAC7B,IACJ,CAAC,KAAW,EAAY,SAAS,GAC7B,IACJ,KACA,CAAC,KACD,CAAC,KACD,EAAY,SAAS,GAEjB,IACJ,kBAAC,OAAD;EAAK,WAAW,IAAa,mCAAmC;YAAhE,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,GAAD;IACE,IAAI,EACF,SAAS,IAAa,KAAA,IAAY,QACnC;IACD,MAAM;IACN,WAAW;IACX,WAAW,EACT,OAAO;KACL,gBACE,kBAAC,GAAD;MAAS,OAAO;gBACd,kBAAC,GAAD;OACE,MAAM;OACN,eAAe;AAEb,QADA,EAAc,GAAM,EACpB,EAAiB,EAAqB;;iBAGxC,kBAAC,GAAD;QACE,IAAI,EAAE,UAAU,WAAW;QAC3B,MAAM;QACN,MAAK;QACL,CAAA;OACS,CAAA;MACL,CAAA;KAEZ,cAAc,EAAW,SAAS,KAChC,kBAAC,GAAD;MAAS,OAAO;gBACd,kBAAC,GAAD;OACE,MAAM;OACN,eAAe;AAEb,QADA,EAAc,GAAG,EACjB,EAAU,SAAS,OAAO;;iBAG5B,kBAAC,GAAD;QACE,IAAI,EAAE,UAAU,WAAW;QAC3B,MAAM;QACN,MAAK;QACL,CAAA;OACS,CAAA;MACL,CAAA;KAEb,EACF;IACD,MAAK;IACL,aAAY;IACZ,OAAO;IACP,KAAK;IACL,WAAU,MAAK;AACb,OAAc,EAAE,OAAO,MAAM;;IAE/B,CAAA,EACD,CAAC,KACA,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD;KACE,SAAS,kBAAC,GAAD,EAAY,CAAA;KACrB,WAAU;KACV,gBAAgB;AACd,MAAI,KACF,GAA4B;;KAIhC,SAAS,CAAC;KACV,OAAM;KACN,EAHI,aAGJ,EACF,kBAAC,GAAD;KAAS,OAAO;eACd,kBAAC,GAAD;MACE,MAAM;MACN,IAAI,EAAE,aAAa,SAAS;MAC5B,eAAe;AAGb,OAFA,EAAc,GAAG,EACjB,EAAc,GAAK,EACnB,EAAU,SAAS,OAAO;;gBAG5B,kBAAC,GAAD;OACE,IAAI,EAAE,UAAU,WAAW;OAC3B,MAAM;OACN,MAAK;OACL,CAAA;MACS,CAAA;KACL,CAAA,CACN;MAEJ;MACN,kBAAC,OAAD,EAAA,UAAA;GACG,EAAkB,KAAK,GAAoB,MAAkB;IAC5D,IAAM,EAAE,eAAY,gBAAa,UAAO,aAAU;AAElD,WACE,kBAAC,GAAD;KAEE,IAAI;MACF,EAAiB,EAAW;MAC5B,EAAiB,OAAO,EAAM,CAAC;MAC/B;MACD,CAAC,KAAK,IAAI;KACX,OAAO;KACA;KACK;KACZ,SAAS;KACT,eAAe;AACb,QAAiB,EAAM;;KAEzB,WAAW,MAA2B;AACpC,MAAI,IACF,EAAsB,EAAM,GAE5B,EAA2B,EAAM;;KAGrC,WAAW,IAAiB,aAAa;KACzC,EArBK,OAAO,EAAM,CAqBlB;KAEJ;GACD,CAAC,KACA,kBAAA,GAAA,EAAA,UAAA,CACG,KACC,kBAAC,UAAD;IACE,WAAU;IACV,eAAe,EAAiB,GAAK;cAErC,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,OAAD;MAAK,WAAU;gBAAf;OAAsD;OACzC,EAAY;OAAO;OAC1B;;KACF,CAAA;IACC,CAAA,EAEV,KACC,kBAAC,UAAD;IACE,WAAU;IACV,eAAe,EAAiB,GAAM;cAEtC,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,OAAD;MAAK,WAAU;gBAAuC;MAEhD,CAAA;KACF,CAAA;IACC,CAAA,CAEV,EAAA,CAAA;GAEJ,EAAkB,UAAU,KAC3B,kBAAC,OAAD;IAAK,WAAU;cAA2B;IAAoB,CAAA;GAE5D,EAAA,CAAA,CACF;KAGF,IAAW,QACV,IAGH,KACA,EAAkB,QAAO,MAAQ,EAAK,WAAW,CAAC,WAAW,IAEtD,EAAkB,QAAO,MAAQ,EAAK,WAAW,CAAC,GAAG,cAErD,6BAPA,OASR,CAAC,GAAgB,EAAkB,CAAC;AAerC,QAbE,IAEA,kBAAC,GAAD;EACc;EACE;EACJ;EACM;EACP;YAER;EACuB,CAAA,GAI1B,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACmB;EACJ;EACb,OAAO;EACP,UAAU,MAAyB,EAAe,EAAY;EAC9D,CAAA,EACF,kBAAC,GAAD;EAAU,WAAU;EAAkB,IAAI,CAAC;YACxC;EACQ,CAAA,CACV,EAAA,CAAA"}
|
|
1
|
+
{"version":3,"file":"EnumFacetFilterUI.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.tsx"],"sourcesContent":["import {\n Checkbox,\n Collapse,\n FormControlLabel,\n IconButton,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport { useMemo, useRef, useState } from 'react'\nimport { FacetColumnResultValueCount } from '@sage-bionetworks/synapse-types'\nimport IconSvg from '../../../IconSvg/IconSvg'\nimport { FacetFilterHeader } from '../FacetFilterHeader'\nimport { EnumFacetFilterOption } from './EnumFacetFilterOption'\nimport EnumFacetFilterDropdown from './EnumFacetFilterDropdown'\nimport { SetOptional } from 'type-fest'\n\nconst MAX_ENUMERATION_VALUES_TO_SHOW = 5\n\nexport type RenderedFacetValue<TValue = string> = Omit<\n SetOptional<FacetColumnResultValueCount, 'count'>,\n 'value'\n> & {\n value: TValue\n /* Text displayed for the option, and also used to filter in search */\n displayText: string\n}\n\nexport type EnumFacetFilterUIProps<TValue = string> = {\n /* The ID of the corresponding label, for testing and accessibility */\n labelId?: string\n /* The title of the faceted column to be displayed */\n facetTitle: string\n /* List of all facet values and information associated with each value */\n facetValues: RenderedFacetValue<TValue>[]\n /* Determines how the component is styled and whether the 'All' checkbox should be selected. */\n filterIsActive: boolean // filterIsActive cannot be derived from facetValues[*].isSelected. See PORTALS-2680\n /* The EnumFacetFilter can be rendered as a collapsible panel or a dropdown. Default is `'Collapsible'` */\n containerAs?: 'Collapsible' | 'Dropdown'\n /* If `containerAs` is a dropdown, the dropdown can be either an IconButton or a SelectBox. Default is `'Icon'` */\n dropdownType?: 'Icon' | 'SelectBox'\n /* If true, hides the button to collapse the panel (only shown if `containerAs` is 'Collapsible'). Default is false.*/\n hideCollapsible?: boolean\n /* Called when an unselected value is selected */\n onAddValueToSelection: (value: TValue) => void\n /* Called when a selected value is unselected */\n onRemoveValueFromSelection: (value: TValue) => void\n /* Called when all values should be unselected (e.g. 'All' is clicked) */\n onRemoveAllFacetSelections: () => void\n /* Called when an value is hovered over */\n onHoverOverValue: (value: TValue) => void\n /* Set to true if multiple values can be selected for the filter */\n canMultiSelect: boolean\n /* By default, all values are not shown (defaultShowAllValues = false) */\n defaultShowAllValues?: boolean\n}\n\nfunction removeWhitespace(value: string): string {\n return value.replace(/\\s/g, '').toLowerCase()\n}\n\nexport default function EnumFacetFilterUI<TValue = string>(\n props: EnumFacetFilterUIProps<TValue>,\n) {\n const {\n labelId,\n filterIsActive,\n containerAs = 'Collapsible',\n dropdownType = 'Icon',\n hideCollapsible = false,\n facetValues,\n onAddValueToSelection,\n onRemoveValueFromSelection,\n facetTitle,\n onRemoveAllFacetSelections,\n onHoverOverValue,\n canMultiSelect = true,\n defaultShowAllValues = false,\n } = props\n const [toggleShowAll, setToggleShowAll] =\n useState<boolean>(defaultShowAllValues)\n const [isCollapsed, setIsCollapsed] = useState<boolean>(false)\n const [showSearch, setShowSearch] = useState<boolean>(false)\n const [searchTerm, setSearchText] = useState<string>('')\n\n // e.g. we show a subset of facet values before hiding the rest behind \"Show More\"\n // If the user has selected a value that would normally be hidden, always show all of the values\n const valueIndexedGreaterThanMaxToShowIsSelected =\n facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW &&\n facetValues\n .slice(MAX_ENUMERATION_VALUES_TO_SHOW)\n .some(({ isSelected }) => isSelected)\n const showAll =\n containerAs === 'Dropdown' ||\n toggleShowAll ||\n showSearch ||\n valueIndexedGreaterThanMaxToShowIsSelected\n\n const facetValuesToShow = useMemo(() => {\n if (showSearch && searchTerm.length > 0) {\n return facetValues.filter(({ displayText }) => {\n return (\n displayText.toLowerCase().indexOf(searchTerm.trim().toLowerCase()) >\n -1\n )\n })\n }\n if (showAll) {\n return facetValues\n }\n return facetValues.slice(0, MAX_ENUMERATION_VALUES_TO_SHOW)\n }, [facetValues, searchTerm, showSearch, showAll])\n\n const textInput = useRef<HTMLInputElement>(null)\n\n const isDropdown = containerAs === 'Dropdown'\n const showMoreButtonIsVisible =\n !showAll && facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW\n const showLessButtonIsVisible =\n showAll &&\n !searchTerm &&\n !valueIndexedGreaterThanMaxToShowIsSelected &&\n facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW\n\n const content = (\n <div className={isDropdown ? 'EnumFacetFilter__dropdown_menu' : ''}>\n <div className=\"EnumFacetFilter__checkboxContainer--forAll\">\n <TextField // Search Filter Text\n sx={{\n display: showSearch ? undefined : 'none',\n }}\n size={'small'}\n fullWidth={true}\n slotProps={{\n input: {\n startAdornment: (\n <Tooltip title={'Close search'}>\n <IconButton\n size={'small'}\n onClick={() => {\n setShowSearch(false)\n setToggleShowAll(defaultShowAllValues)\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"arrowBack\"\n />\n </IconButton>\n </Tooltip>\n ),\n endAdornment: searchTerm.length > 0 && (\n <Tooltip title={'Clear'}>\n <IconButton\n size={'small'}\n onClick={() => {\n setSearchText('')\n textInput.current?.focus()\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"close\"\n />\n </IconButton>\n </Tooltip>\n ),\n },\n }}\n type=\"text\"\n placeholder=\"Find values\"\n value={searchTerm}\n ref={textInput}\n onChange={e => {\n setSearchText(e.target.value)\n }}\n />\n {!showSearch && (\n <div className=\"EnumFacetFilter__checkAll\">\n <FormControlLabel\n control={<Checkbox />}\n className=\"EnumFacetFilter__checkbox\"\n onChange={() => {\n if (filterIsActive) {\n onRemoveAllFacetSelections()\n }\n }}\n key=\"select_all\"\n checked={!filterIsActive}\n label=\"All\"\n />\n <Tooltip title={'Search'}>\n <IconButton\n size={'small'}\n sx={{ aspectRatio: '1 / 1' }}\n onClick={() => {\n setSearchText('')\n setShowSearch(true)\n textInput.current?.focus()\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"search\"\n />\n </IconButton>\n </Tooltip>\n </div>\n )}\n </div>\n <div>\n {facetValuesToShow.map((facetValueAndCount, index: number) => {\n const { isSelected, displayText, value, count } = facetValueAndCount\n\n return (\n <EnumFacetFilterOption\n key={String(value)}\n id={[\n removeWhitespace(facetTitle),\n removeWhitespace(String(value)),\n index,\n ].join('-')}\n label={displayText}\n count={count}\n isDropdown={isDropdown}\n checked={isSelected}\n onHover={() => {\n onHoverOverValue(value)\n }}\n onChange={(newIsSelected: boolean) => {\n if (newIsSelected) {\n onAddValueToSelection(value)\n } else {\n onRemoveValueFromSelection(value)\n }\n }}\n inputType={canMultiSelect ? 'checkbox' : 'radio'}\n />\n )\n })}\n {!isDropdown && (\n <>\n {showMoreButtonIsVisible && (\n <button\n className=\"EnumFacetFilter__showMoreFacetsBtn\"\n onClick={() => setToggleShowAll(true)}\n >\n <div className=\"EnumFacetFilter__checkboxContainer\">\n <div className=\"EnumFacetFilter__showMoreFacetsLabel\">\n Show all ({facetValues.length})\n </div>\n </div>\n </button>\n )}\n {showLessButtonIsVisible && (\n <button\n className=\"EnumFacetFilter__showMoreFacetsBtn\"\n onClick={() => setToggleShowAll(false)}\n >\n <div className=\"EnumFacetFilter__checkboxContainer\">\n <div className=\"EnumFacetFilter__showMoreFacetsLabel\">\n Show less\n </div>\n </div>\n </button>\n )}\n </>\n )}\n {facetValuesToShow.length <= 0 && (\n <div className=\"EnumFacetFilter__noMatch\">No match found</div>\n )}\n </div>\n </div>\n )\n\n const menuText = useMemo(() => {\n if (!filterIsActive) {\n return 'All'\n } else if (\n filterIsActive &&\n facetValuesToShow.filter(item => item.isSelected).length === 1\n ) {\n return facetValuesToShow.filter(item => item.isSelected)[0].displayText\n } else {\n return 'Multiple Values Selected'\n }\n }, [filterIsActive, facetValuesToShow])\n\n if (isDropdown) {\n return (\n <EnumFacetFilterDropdown\n facetTitle={facetTitle}\n dropdownType={dropdownType}\n menuText={menuText}\n filterIsActive={filterIsActive}\n labelId={labelId}\n >\n {content}\n </EnumFacetFilterDropdown>\n )\n } else {\n return (\n <>\n <FacetFilterHeader\n hideCollapsible={hideCollapsible}\n isCollapsed={isCollapsed}\n label={facetTitle}\n onClick={(isCollapsed: boolean) => setIsCollapsed(isCollapsed)}\n />\n <Collapse className=\"EnumFacetFilter\" in={!isCollapsed}>\n {content}\n </Collapse>\n </>\n )\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnumFacetFilterUtils.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.ts"],"sourcesContent":["import { SynapseConstants } from '@/utils'\nimport { getCorrespondingSelectedFacet } from '@/utils/functions/queryUtils'\nimport { isFacetColumnValuesRequest } from '@/utils/types/IsType'\nimport {\n EntityHeader,\n Evaluation,\n FacetColumnRequest,\n FacetColumnResultValueCount,\n FacetColumnResultValues,\n QueryBundleRequest,\n UserGroupHeader,\n} from '@sage-bionetworks/synapse-types'\n\nexport function valueToLabel(\n facet: FacetColumnResultValueCount,\n profiles: UserGroupHeader[] = [],\n entityHeaders: EntityHeader[] = [],\n evaluations: Evaluation[] = [],\n): string {\n const { value } = facet\n let displayValue = value\n if (value === SynapseConstants.VALUE_NOT_SET) {\n return SynapseConstants.FRIENDLY_VALUE_NOT_SET\n }\n const profile = profiles.find(profile => profile.ownerId === value)\n if (profiles.length) {\n displayValue = profile ? profile.userName : `unknown (${value})`\n }\n\n const eh = entityHeaders.find(eh => eh.id === value)\n if (entityHeaders.length) {\n displayValue = eh ? eh.name : `unknown (${value})`\n }\n\n const evaluation = evaluations.find(evaluation => evaluation.id === value)\n if (evaluation?.name) {\n displayValue = evaluation.name\n }\n\n return displayValue\n}\n\n/**\n * Based on the uncommitted query, should the \"All\" checkbox be selected?\n * This only considers filters applied via selectedFacets. Filters applied via\n * sql or additionalFilters will be ignored.\n *\n * @returns true iff no values have been selected for this facet filter\n * @param nextQueryRequest\n * @param facet\n */\nexport function getAllIsSelected(\n nextQueryRequest: QueryBundleRequest,\n facet: FacetColumnResultValues,\n) {\n const matchingSelectedFacet: FacetColumnRequest | undefined =\n getCorrespondingSelectedFacet(facet, nextQueryRequest.query.selectedFacets)\n if (!matchingSelectedFacet) {\n return true\n }\n\n if (!isFacetColumnValuesRequest(matchingSelectedFacet)) {\n console.error(\n 'getAllIsSelected: matchingSelectedFacet is not a FacetColumnValuesRequest',\n matchingSelectedFacet,\n )\n return true\n }\n\n return matchingSelectedFacet.facetValues.length === 0\n}\n"],"mappings":";;;;;AAaA,SAAgB,EACd,GACA,IAA8B,
|
|
1
|
+
{"version":3,"file":"EnumFacetFilterUtils.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.ts"],"sourcesContent":["import { SynapseConstants } from '@/utils'\nimport { getCorrespondingSelectedFacet } from '@/utils/functions/queryUtils'\nimport { isFacetColumnValuesRequest } from '@/utils/types/IsType'\nimport {\n EntityHeader,\n Evaluation,\n FacetColumnRequest,\n FacetColumnResultValueCount,\n FacetColumnResultValues,\n QueryBundleRequest,\n UserGroupHeader,\n} from '@sage-bionetworks/synapse-types'\n\nexport function valueToLabel(\n facet: FacetColumnResultValueCount,\n profiles: UserGroupHeader[] = [],\n entityHeaders: EntityHeader[] = [],\n evaluations: Evaluation[] = [],\n): string {\n const { value } = facet\n let displayValue = value\n if (value === SynapseConstants.VALUE_NOT_SET) {\n return SynapseConstants.FRIENDLY_VALUE_NOT_SET\n }\n const profile = profiles.find(profile => profile.ownerId === value)\n if (profiles.length) {\n displayValue = profile ? profile.userName : `unknown (${value})`\n }\n\n const eh = entityHeaders.find(eh => eh.id === value)\n if (entityHeaders.length) {\n displayValue = eh ? eh.name : `unknown (${value})`\n }\n\n const evaluation = evaluations.find(evaluation => evaluation.id === value)\n if (evaluation?.name) {\n displayValue = evaluation.name\n }\n\n return displayValue\n}\n\n/**\n * Based on the uncommitted query, should the \"All\" checkbox be selected?\n * This only considers filters applied via selectedFacets. Filters applied via\n * sql or additionalFilters will be ignored.\n *\n * @returns true iff no values have been selected for this facet filter\n * @param nextQueryRequest\n * @param facet\n */\nexport function getAllIsSelected(\n nextQueryRequest: QueryBundleRequest,\n facet: FacetColumnResultValues,\n) {\n const matchingSelectedFacet: FacetColumnRequest | undefined =\n getCorrespondingSelectedFacet(facet, nextQueryRequest.query.selectedFacets)\n if (!matchingSelectedFacet) {\n return true\n }\n\n if (!isFacetColumnValuesRequest(matchingSelectedFacet)) {\n console.error(\n 'getAllIsSelected: matchingSelectedFacet is not a FacetColumnValuesRequest',\n matchingSelectedFacet,\n )\n return true\n }\n\n return matchingSelectedFacet.facetValues.length === 0\n}\n"],"mappings":";;;;;AAaA,SAAgB,EACd,GACA,IAA8B,CAAC,GAC/B,IAAgC,CAAC,GACjC,IAA4B,CAAC,GACrB;CACR,IAAM,EAAE,aAAU,GACd,IAAe;CACnB,IAAI,MAAU,6CACZ,OAAO;CAET,IAAM,IAAU,EAAS,MAAK,MAAW,EAAQ,YAAY,CAAK;CAClE,AAAI,EAAS,WACX,IAAe,IAAU,EAAQ,WAAW,YAAY,EAAM;CAGhE,IAAM,IAAK,EAAc,MAAK,MAAM,EAAG,OAAO,CAAK;CACnD,AAAI,EAAc,WAChB,IAAe,IAAK,EAAG,OAAO,YAAY,EAAM;CAGlD,IAAM,IAAa,EAAY,MAAK,MAAc,EAAW,OAAO,CAAK;CAKzE,OAJI,GAAY,SACd,IAAe,EAAW,OAGrB;AACT;AAWA,SAAgB,EACd,GACA,GACA;CACA,IAAM,IACJ,EAA8B,GAAO,EAAiB,MAAM,cAAc;CAa5E,OAZK,IAIA,EAA2B,CAAqB,IAQ9C,EAAsB,YAAY,WAAW,KAPlD,QAAQ,MACN,6EACA,CACF,GACO,MARA;AAYX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacetChip.js","names":[],"sources":["../../../../src/components/widgets/query-filter/FacetChip.tsx"],"sourcesContent":["import { PropsWithChildren } from 'react'\nimport IconSvg from '../../IconSvg/IconSvg'\n\nexport type FacetChipProps = PropsWithChildren<{\n isChecked: boolean\n onClick: () => void\n}>\n\nexport function FacetChip(props: FacetChipProps) {\n const { isChecked, onClick, children } = props\n return (\n <button className={`Chip ${isChecked ? 'Checked' : ''}`} onClick={onClick}>\n {children}\n <IconSvg\n icon={isChecked ? 'check' : 'add'}\n sx={{\n width: '14px',\n paddingLeft: '0.2rem',\n }}\n ></IconSvg>\n </button>\n )\n}\n"],"mappings":";;;AAQA,SAAgB,EAAU,GAAuB;CAC/C,IAAM,EAAE,cAAW,YAAS,gBAAa;
|
|
1
|
+
{"version":3,"file":"FacetChip.js","names":[],"sources":["../../../../src/components/widgets/query-filter/FacetChip.tsx"],"sourcesContent":["import { PropsWithChildren } from 'react'\nimport IconSvg from '../../IconSvg/IconSvg'\n\nexport type FacetChipProps = PropsWithChildren<{\n isChecked: boolean\n onClick: () => void\n}>\n\nexport function FacetChip(props: FacetChipProps) {\n const { isChecked, onClick, children } = props\n return (\n <button className={`Chip ${isChecked ? 'Checked' : ''}`} onClick={onClick}>\n {children}\n <IconSvg\n icon={isChecked ? 'check' : 'add'}\n sx={{\n width: '14px',\n paddingLeft: '0.2rem',\n }}\n ></IconSvg>\n </button>\n )\n}\n"],"mappings":";;;AAQA,SAAgB,EAAU,GAAuB;CAC/C,IAAM,EAAE,cAAW,YAAS,gBAAa;CACzC,OACE,kBAAC,UAAD;EAAQ,WAAW,QAAQ,IAAY,YAAY;EAAe;YAAlE,CACG,GACD,kBAAC,GAAD;GACE,MAAM,IAAY,UAAU;GAC5B,IAAI;IACF,OAAO;IACP,aAAa;GACf;EACQ,CAAA,CACJ;;AAEZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacetFilterControls.js","names":[],"sources":["../../../../src/components/widgets/query-filter/FacetFilterControls.tsx"],"sourcesContent":["import {\n facetObjectMatchesDefinition,\n getCorrespondingColumnForFacet,\n isSingleNotSetValue,\n} from '@/utils/functions/queryUtils'\nimport {\n FacetColumnRequest,\n FacetColumnResultRange,\n FacetColumnResultValues,\n FacetColumnValuesRequest,\n QueryBundleRequest,\n} from '@sage-bionetworks/synapse-types'\nimport { groupBy, noop, sortBy, union } from 'lodash-es'\nimport { Suspense, useCallback, useMemo, useState } from 'react'\nimport { useDeepCompareEffectNoCheck } from 'use-deep-compare-effect'\nimport { useQueryContext } from '../../QueryContext'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport { CombinedRangeFacetFilter } from './CombinedRangeFacetFilter'\nimport { EnumFacetFilter } from './EnumFacetFilter/EnumFacetFilter'\nimport { FacetChip } from './FacetChip'\nimport { FacetFilterHeader } from './FacetFilterHeader'\nimport { FacetFilterControlsSkeleton } from './FacetFilterSkeleton'\nimport { getDefaultShownFacetFilters } from './FacetFilterUtils'\nimport JsonColumnFacetFilters from './JsonColumnFacetFilters'\nimport { RangeFacetFilter } from './RangeFacetFilter'\n\nexport type FacetFilterControlsProps = {\n /* The set of faceted column names that should be shown in the Facet controls. If undefined, all faceted columns with\n at least one non-null value will be shown. */\n availableFacets?: string[]\n initialExpandedFacetControls?: string[]\n}\n\nconst convertFacetToFacetColumnValuesRequest = (\n facet: FacetColumnResultValues,\n): FacetColumnValuesRequest => ({\n concreteType: 'org.sagebionetworks.repo.model.table.FacetColumnValuesRequest',\n columnName: facet.columnName,\n facetValues: facet.facetValues\n .filter(facet => facet.isSelected)\n .map(facet => facet.value),\n})\n\nconst patchRequestFacets = (\n changedFacet: FacetColumnRequest,\n selections: FacetColumnRequest[] = [],\n): FacetColumnRequest[] => {\n const changedFacetIndex = selections.findIndex(facet =>\n facetObjectMatchesDefinition(facet, changedFacet),\n )\n const isEmptyValuesFacet =\n changedFacet.concreteType ===\n 'org.sagebionetworks.repo.model.table.FacetColumnValuesRequest' &&\n (!changedFacet.facetValues || !changedFacet.facetValues.length)\n const isEmptyRangesFacet =\n changedFacet.concreteType ===\n 'org.sagebionetworks.repo.model.table.FacetColumnRangeRequest' &&\n (!changedFacet.min || !changedFacet.max)\n\n if (changedFacetIndex > -1) {\n if (isEmptyValuesFacet || isEmptyRangesFacet) {\n selections.splice(changedFacetIndex, 1)\n } else {\n selections[changedFacetIndex] = changedFacet\n }\n } else {\n selections.push(changedFacet)\n }\n return selections\n}\n\nexport function applyChangesToValuesColumn(\n lastRequest: QueryBundleRequest | undefined,\n facet: FacetColumnResultValues,\n onChangeFn: (result: FacetColumnRequest[]) => void,\n facetName?: string,\n checked: boolean = false,\n) {\n if (facetName) {\n facet.facetValues.forEach(facetValue => {\n if (facetValue.value === facetName) {\n facetValue.isSelected = checked\n }\n })\n } else {\n // else clear all\n facet.facetValues.forEach(facet => {\n facet.isSelected = false\n })\n }\n\n const changedFacet = convertFacetToFacetColumnValuesRequest(facet)\n const result = patchRequestFacets(\n changedFacet,\n lastRequest?.query?.selectedFacets,\n )\n onChangeFn(result)\n}\n\nfunction FacetFilterControls(props: FacetFilterControlsProps) {\n const { availableFacets, initialExpandedFacetControls } = props\n const { getCurrentQueryRequest, combineRangeFacetConfig } = useQueryContext()\n const { getColumnDisplayName } = useQueryVisualizationContext()\n const lastRequest = useMemo(\n () => getCurrentQueryRequest(),\n [getCurrentQueryRequest],\n )\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n\n const facets = queryMetadata\n .facets!.filter(\n facet =>\n // If availableFacets is configured, remove those that don't match.\n availableFacets == null || availableFacets.includes(facet.columnName),\n )\n // Don't include json subcolumn facets, those will be handled separately\n .filter(facet => facet.jsonPath == null)\n .filter(\n facet =>\n // Don't show facets if included in the combine range facet config, handled separately\n combineRangeFacetConfig == null ||\n (combineRangeFacetConfig.maxFacetColumn !== facet.columnName &&\n combineRangeFacetConfig.minFacetColumn !== facet.columnName),\n )\n .filter(\n facet =>\n // Don't show facets where there are no values\n !isSingleNotSetValue(facet),\n )\n\n const combinedRangeFacets = combineRangeFacetConfig\n ? queryMetadata.facets!.filter(\n facet =>\n combineRangeFacetConfig.maxFacetColumn === facet.columnName ||\n combineRangeFacetConfig.minFacetColumn === facet.columnName,\n )\n : []\n\n // Group JSON facets by column name, so they can be grouped in the UI under their parent column name\n const jsonFacetsGroupedByColumn = groupBy(\n queryMetadata.facets!.filter(f => !!f.jsonPath),\n 'columnName',\n )\n\n const allFacetColumns: string[] = useMemo(() => {\n const allFacetColumns: string[] = []\n facets.forEach(facet => allFacetColumns.push(facet.columnName))\n if (combineRangeFacetConfig) {\n allFacetColumns.push(combineRangeFacetConfig.label)\n }\n if (jsonFacetsGroupedByColumn) {\n Object.keys(jsonFacetsGroupedByColumn).forEach(jsonColumn =>\n allFacetColumns.push(jsonColumn),\n )\n }\n return allFacetColumns\n }, [combineRangeFacetConfig, facets, jsonFacetsGroupedByColumn])\n\n // Controls which facet columns are shown/hidden by clicking on chips. NOTE: One column may have multiple facets (e.g. JSON subcolumn facets)\n const [facetColumnsShown, setFacetColumnsShown] = useState<Set<string>>(\n getDefaultShownFacetFilters(\n allFacetColumns,\n lastRequest.query.selectedFacets,\n ),\n )\n\n /**\n * When the data facets change, reset the initially-selected chips\n */\n useDeepCompareEffectNoCheck(() => {\n // Select the first three facet columns, plus any columns where a facet is already filtered,\n // (PORTALS-3513) plus the initially expanded filters and any filters that the user explicitly expanded\n const expandedFacets = union(\n initialExpandedFacetControls ?? [],\n Array.from(facetColumnsShown),\n )\n setFacetColumnsShown(\n getDefaultShownFacetFilters(\n allFacetColumns,\n lastRequest.query.selectedFacets,\n expandedFacets,\n ),\n )\n }, [facets])\n\n const columnModels = queryMetadata.columnModels\n\n const toggleShowFacetFilter = useCallback(\n (facetColumnName: string) => {\n const newFacetColumnsShown = new Set(facetColumnsShown)\n if (newFacetColumnsShown.has(facetColumnName)) {\n newFacetColumnsShown.delete(facetColumnName)\n } else {\n newFacetColumnsShown.add(facetColumnName)\n }\n setFacetColumnsShown(newFacetColumnsShown)\n },\n [facetColumnsShown],\n )\n const combinedRangeFacetsColumnModelType = combineRangeFacetConfig\n ? columnModels?.find(\n model => model.name === combineRangeFacetConfig.minFacetColumn,\n )?.columnType\n : undefined\n\n const shownTopLevelFacets = useMemo(\n () =>\n (facets ?? []).filter(facet => facetColumnsShown.has(facet.columnName)),\n [facetColumnsShown, facets],\n )\n\n const shownJsonFacetGroups = useMemo(\n () =>\n Object.entries(jsonFacetsGroupedByColumn).filter(([columnName]) =>\n facetColumnsShown.has(columnName),\n ),\n [facetColumnsShown, jsonFacetsGroupedByColumn],\n )\n\n return (\n <div className={`FacetFilterControls`}>\n <div>\n <FacetFilterHeader\n label={'Available Filters'}\n hideCollapsible\n isCollapsed={false}\n onClick={noop}\n />\n {sortBy(allFacetColumns).map(columnName => {\n return (\n <FacetChip\n key={columnName}\n onClick={() => toggleShowFacetFilter(columnName)}\n isChecked={facetColumnsShown.has(columnName)}\n >\n {getColumnDisplayName(columnName)}\n </FacetChip>\n )\n })}\n </div>\n {combineRangeFacetConfig && combinedRangeFacets.length >= 2 && (\n <CombinedRangeFacetFilter\n facetResults={combinedRangeFacets as FacetColumnResultRange[]}\n label={combineRangeFacetConfig.label}\n columnType={combinedRangeFacetsColumnModelType!}\n />\n )}\n {shownTopLevelFacets.map(facet => {\n const columnModel = getCorrespondingColumnForFacet(\n facet,\n columnModels ?? [],\n )\n return (\n <div className=\"FacetFilterControls__facet\" key={facet.columnName}>\n {facet.facetType === 'enumeration' && columnModel && (\n <EnumFacetFilter containerAs=\"Collapsible\" facet={facet} />\n )}\n {facet.facetType === 'range' && columnModel && (\n <RangeFacetFilter facetResult={facet} />\n )}\n </div>\n )\n })}\n {shownJsonFacetGroups.map(([columnName, facets]) => {\n const columnModel = queryMetadata?.columnModels?.find(\n cm => cm.name === columnName,\n )\n return (\n columnModel && (\n <JsonColumnFacetFilters\n key={columnName}\n columnModel={columnModel}\n facets={facets}\n />\n )\n )\n })}\n </div>\n )\n}\n\nexport default function FacetFilterControlsWithSuspense(\n props: FacetFilterControlsProps,\n) {\n return (\n <Suspense fallback={<FacetFilterControlsSkeleton />}>\n <FacetFilterControls {...props} />\n </Suspense>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FacetFilterControls.js","names":[],"sources":["../../../../src/components/widgets/query-filter/FacetFilterControls.tsx"],"sourcesContent":["import {\n facetObjectMatchesDefinition,\n getCorrespondingColumnForFacet,\n isSingleNotSetValue,\n} from '@/utils/functions/queryUtils'\nimport {\n FacetColumnRequest,\n FacetColumnResultRange,\n FacetColumnResultValues,\n FacetColumnValuesRequest,\n QueryBundleRequest,\n} from '@sage-bionetworks/synapse-types'\nimport { groupBy, noop, sortBy, union } from 'lodash-es'\nimport { Suspense, useCallback, useMemo, useState } from 'react'\nimport { useDeepCompareEffectNoCheck } from 'use-deep-compare-effect'\nimport { useQueryContext } from '../../QueryContext'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport { CombinedRangeFacetFilter } from './CombinedRangeFacetFilter'\nimport { EnumFacetFilter } from './EnumFacetFilter/EnumFacetFilter'\nimport { FacetChip } from './FacetChip'\nimport { FacetFilterHeader } from './FacetFilterHeader'\nimport { FacetFilterControlsSkeleton } from './FacetFilterSkeleton'\nimport { getDefaultShownFacetFilters } from './FacetFilterUtils'\nimport JsonColumnFacetFilters from './JsonColumnFacetFilters'\nimport { RangeFacetFilter } from './RangeFacetFilter'\n\nexport type FacetFilterControlsProps = {\n /* The set of faceted column names that should be shown in the Facet controls. If undefined, all faceted columns with\n at least one non-null value will be shown. */\n availableFacets?: string[]\n initialExpandedFacetControls?: string[]\n}\n\nconst convertFacetToFacetColumnValuesRequest = (\n facet: FacetColumnResultValues,\n): FacetColumnValuesRequest => ({\n concreteType: 'org.sagebionetworks.repo.model.table.FacetColumnValuesRequest',\n columnName: facet.columnName,\n facetValues: facet.facetValues\n .filter(facet => facet.isSelected)\n .map(facet => facet.value),\n})\n\nconst patchRequestFacets = (\n changedFacet: FacetColumnRequest,\n selections: FacetColumnRequest[] = [],\n): FacetColumnRequest[] => {\n const changedFacetIndex = selections.findIndex(facet =>\n facetObjectMatchesDefinition(facet, changedFacet),\n )\n const isEmptyValuesFacet =\n changedFacet.concreteType ===\n 'org.sagebionetworks.repo.model.table.FacetColumnValuesRequest' &&\n (!changedFacet.facetValues || !changedFacet.facetValues.length)\n const isEmptyRangesFacet =\n changedFacet.concreteType ===\n 'org.sagebionetworks.repo.model.table.FacetColumnRangeRequest' &&\n (!changedFacet.min || !changedFacet.max)\n\n if (changedFacetIndex > -1) {\n if (isEmptyValuesFacet || isEmptyRangesFacet) {\n selections.splice(changedFacetIndex, 1)\n } else {\n selections[changedFacetIndex] = changedFacet\n }\n } else {\n selections.push(changedFacet)\n }\n return selections\n}\n\nexport function applyChangesToValuesColumn(\n lastRequest: QueryBundleRequest | undefined,\n facet: FacetColumnResultValues,\n onChangeFn: (result: FacetColumnRequest[]) => void,\n facetName?: string,\n checked: boolean = false,\n) {\n if (facetName) {\n facet.facetValues.forEach(facetValue => {\n if (facetValue.value === facetName) {\n facetValue.isSelected = checked\n }\n })\n } else {\n // else clear all\n facet.facetValues.forEach(facet => {\n facet.isSelected = false\n })\n }\n\n const changedFacet = convertFacetToFacetColumnValuesRequest(facet)\n const result = patchRequestFacets(\n changedFacet,\n lastRequest?.query?.selectedFacets,\n )\n onChangeFn(result)\n}\n\nfunction FacetFilterControls(props: FacetFilterControlsProps) {\n const { availableFacets, initialExpandedFacetControls } = props\n const { getCurrentQueryRequest, combineRangeFacetConfig } = useQueryContext()\n const { getColumnDisplayName } = useQueryVisualizationContext()\n const lastRequest = useMemo(\n () => getCurrentQueryRequest(),\n [getCurrentQueryRequest],\n )\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n\n const facets = queryMetadata\n .facets!.filter(\n facet =>\n // If availableFacets is configured, remove those that don't match.\n availableFacets == null || availableFacets.includes(facet.columnName),\n )\n // Don't include json subcolumn facets, those will be handled separately\n .filter(facet => facet.jsonPath == null)\n .filter(\n facet =>\n // Don't show facets if included in the combine range facet config, handled separately\n combineRangeFacetConfig == null ||\n (combineRangeFacetConfig.maxFacetColumn !== facet.columnName &&\n combineRangeFacetConfig.minFacetColumn !== facet.columnName),\n )\n .filter(\n facet =>\n // Don't show facets where there are no values\n !isSingleNotSetValue(facet),\n )\n\n const combinedRangeFacets = combineRangeFacetConfig\n ? queryMetadata.facets!.filter(\n facet =>\n combineRangeFacetConfig.maxFacetColumn === facet.columnName ||\n combineRangeFacetConfig.minFacetColumn === facet.columnName,\n )\n : []\n\n // Group JSON facets by column name, so they can be grouped in the UI under their parent column name\n const jsonFacetsGroupedByColumn = groupBy(\n queryMetadata.facets!.filter(f => !!f.jsonPath),\n 'columnName',\n )\n\n const allFacetColumns: string[] = useMemo(() => {\n const allFacetColumns: string[] = []\n facets.forEach(facet => allFacetColumns.push(facet.columnName))\n if (combineRangeFacetConfig) {\n allFacetColumns.push(combineRangeFacetConfig.label)\n }\n if (jsonFacetsGroupedByColumn) {\n Object.keys(jsonFacetsGroupedByColumn).forEach(jsonColumn =>\n allFacetColumns.push(jsonColumn),\n )\n }\n return allFacetColumns\n }, [combineRangeFacetConfig, facets, jsonFacetsGroupedByColumn])\n\n // Controls which facet columns are shown/hidden by clicking on chips. NOTE: One column may have multiple facets (e.g. JSON subcolumn facets)\n const [facetColumnsShown, setFacetColumnsShown] = useState<Set<string>>(\n getDefaultShownFacetFilters(\n allFacetColumns,\n lastRequest.query.selectedFacets,\n ),\n )\n\n /**\n * When the data facets change, reset the initially-selected chips\n */\n useDeepCompareEffectNoCheck(() => {\n // Select the first three facet columns, plus any columns where a facet is already filtered,\n // (PORTALS-3513) plus the initially expanded filters and any filters that the user explicitly expanded\n const expandedFacets = union(\n initialExpandedFacetControls ?? [],\n Array.from(facetColumnsShown),\n )\n setFacetColumnsShown(\n getDefaultShownFacetFilters(\n allFacetColumns,\n lastRequest.query.selectedFacets,\n expandedFacets,\n ),\n )\n }, [facets])\n\n const columnModels = queryMetadata.columnModels\n\n const toggleShowFacetFilter = useCallback(\n (facetColumnName: string) => {\n const newFacetColumnsShown = new Set(facetColumnsShown)\n if (newFacetColumnsShown.has(facetColumnName)) {\n newFacetColumnsShown.delete(facetColumnName)\n } else {\n newFacetColumnsShown.add(facetColumnName)\n }\n setFacetColumnsShown(newFacetColumnsShown)\n },\n [facetColumnsShown],\n )\n const combinedRangeFacetsColumnModelType = combineRangeFacetConfig\n ? columnModels?.find(\n model => model.name === combineRangeFacetConfig.minFacetColumn,\n )?.columnType\n : undefined\n\n const shownTopLevelFacets = useMemo(\n () =>\n (facets ?? []).filter(facet => facetColumnsShown.has(facet.columnName)),\n [facetColumnsShown, facets],\n )\n\n const shownJsonFacetGroups = useMemo(\n () =>\n Object.entries(jsonFacetsGroupedByColumn).filter(([columnName]) =>\n facetColumnsShown.has(columnName),\n ),\n [facetColumnsShown, jsonFacetsGroupedByColumn],\n )\n\n return (\n <div className={`FacetFilterControls`}>\n <div>\n <FacetFilterHeader\n label={'Available Filters'}\n hideCollapsible\n isCollapsed={false}\n onClick={noop}\n />\n {sortBy(allFacetColumns).map(columnName => {\n return (\n <FacetChip\n key={columnName}\n onClick={() => toggleShowFacetFilter(columnName)}\n isChecked={facetColumnsShown.has(columnName)}\n >\n {getColumnDisplayName(columnName)}\n </FacetChip>\n )\n })}\n </div>\n {combineRangeFacetConfig && combinedRangeFacets.length >= 2 && (\n <CombinedRangeFacetFilter\n facetResults={combinedRangeFacets as FacetColumnResultRange[]}\n label={combineRangeFacetConfig.label}\n columnType={combinedRangeFacetsColumnModelType!}\n />\n )}\n {shownTopLevelFacets.map(facet => {\n const columnModel = getCorrespondingColumnForFacet(\n facet,\n columnModels ?? [],\n )\n return (\n <div className=\"FacetFilterControls__facet\" key={facet.columnName}>\n {facet.facetType === 'enumeration' && columnModel && (\n <EnumFacetFilter containerAs=\"Collapsible\" facet={facet} />\n )}\n {facet.facetType === 'range' && columnModel && (\n <RangeFacetFilter facetResult={facet} />\n )}\n </div>\n )\n })}\n {shownJsonFacetGroups.map(([columnName, facets]) => {\n const columnModel = queryMetadata?.columnModels?.find(\n cm => cm.name === columnName,\n )\n return (\n columnModel && (\n <JsonColumnFacetFilters\n key={columnName}\n columnModel={columnModel}\n facets={facets}\n />\n )\n )\n })}\n </div>\n )\n}\n\nexport default function FacetFilterControlsWithSuspense(\n props: FacetFilterControlsProps,\n) {\n return (\n <Suspense fallback={<FacetFilterControlsSkeleton />}>\n <FacetFilterControls {...props} />\n </Suspense>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacetFilterHeader.js","names":[],"sources":["../../../../src/components/widgets/query-filter/FacetFilterHeader.tsx"],"sourcesContent":["import IconMinus from '@/assets/icons/IconMinus'\nimport IconPlus from '@/assets/icons/IconPlus'\nimport { IconButton } from '@mui/material'\n\nexport type FacetFilterHeaderProps = {\n label: string\n hideCollapsible?: boolean\n isCollapsed: boolean\n onClick: (newValue: boolean) => void\n}\n\nexport function FacetFilterHeader(props: FacetFilterHeaderProps) {\n const { label, isCollapsed, onClick, hideCollapsible = false } = props\n return (\n <div className=\"FacetFilterHeader\">\n <label className=\"FacetFilterHeader__label\">{label}</label>\n {!hideCollapsible && (\n <IconButton\n size={'small'}\n className=\"FacetFilterHeader__collapseToggleBtn\"\n onClick={() => onClick(!isCollapsed)}\n >\n {isCollapsed ? (\n <IconPlus className=\"icon-plus\" title=\"Expand Menu\" />\n ) : (\n <IconMinus className=\"icon-minus\" title=\"Collapse Menu\" />\n )}\n </IconButton>\n )}\n </div>\n )\n}\n"],"mappings":";;;;;AAWA,SAAgB,EAAkB,GAA+B;CAC/D,IAAM,EAAE,UAAO,gBAAa,YAAS,qBAAkB,OAAU;
|
|
1
|
+
{"version":3,"file":"FacetFilterHeader.js","names":[],"sources":["../../../../src/components/widgets/query-filter/FacetFilterHeader.tsx"],"sourcesContent":["import IconMinus from '@/assets/icons/IconMinus'\nimport IconPlus from '@/assets/icons/IconPlus'\nimport { IconButton } from '@mui/material'\n\nexport type FacetFilterHeaderProps = {\n label: string\n hideCollapsible?: boolean\n isCollapsed: boolean\n onClick: (newValue: boolean) => void\n}\n\nexport function FacetFilterHeader(props: FacetFilterHeaderProps) {\n const { label, isCollapsed, onClick, hideCollapsible = false } = props\n return (\n <div className=\"FacetFilterHeader\">\n <label className=\"FacetFilterHeader__label\">{label}</label>\n {!hideCollapsible && (\n <IconButton\n size={'small'}\n className=\"FacetFilterHeader__collapseToggleBtn\"\n onClick={() => onClick(!isCollapsed)}\n >\n {isCollapsed ? (\n <IconPlus className=\"icon-plus\" title=\"Expand Menu\" />\n ) : (\n <IconMinus className=\"icon-minus\" title=\"Collapse Menu\" />\n )}\n </IconButton>\n )}\n </div>\n )\n}\n"],"mappings":";;;;;AAWA,SAAgB,EAAkB,GAA+B;CAC/D,IAAM,EAAE,UAAO,gBAAa,YAAS,qBAAkB,OAAU;CACjE,OACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,SAAD;GAAO,WAAU;aAA4B;EAAa,CAAA,GACzD,CAAC,KACA,kBAAC,GAAD;GACE,MAAM;GACN,WAAU;GACV,eAAe,EAAQ,CAAC,CAAW;aAElC,IACC,kBAAC,GAAD;IAAU,WAAU;IAAY,OAAM;GAAe,CAAA,IAErD,kBAAC,GAAD;IAAW,WAAU;IAAa,OAAM;GAAiB,CAAA;EAEjD,CAAA,CAEX;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacetFilterSkeleton.js","names":[],"sources":["../../../../src/components/widgets/query-filter/FacetFilterSkeleton.tsx"],"sourcesContent":["import { Box, Skeleton, Stack } from '@mui/material'\n\nexport function FacetFilterSkeleton() {\n const facetFilterFormRow = (\n <Stack\n direction={'row'}\n sx={{\n gap: '10px',\n my: 1,\n }}\n >\n <Skeleton width={'15px'} />\n <Skeleton width={'40%'} />\n </Stack>\n )\n return (\n <Box className={'FacetFilterControls__facet'}>\n <Box className={'FacetFilterHeader'}>\n <Skeleton width={'100%'} />\n </Box>\n <Box>\n {facetFilterFormRow}\n {facetFilterFormRow}\n {facetFilterFormRow}\n </Box>\n </Box>\n )\n}\n\nexport function FacetFilterControlsSkeleton() {\n return (\n <div className={`FacetFilterControls`}>\n <FacetFilterSkeleton />\n <FacetFilterSkeleton />\n <FacetFilterSkeleton />\n <FacetFilterSkeleton />\n </div>\n )\n}\n"],"mappings":";;;AAEA,SAAgB,IAAsB;CACpC,IAAM,IACJ,kBAAC,GAAD;EACE,WAAW;EACX,IAAI;GACF,KAAK;GACL,IAAI;
|
|
1
|
+
{"version":3,"file":"FacetFilterSkeleton.js","names":[],"sources":["../../../../src/components/widgets/query-filter/FacetFilterSkeleton.tsx"],"sourcesContent":["import { Box, Skeleton, Stack } from '@mui/material'\n\nexport function FacetFilterSkeleton() {\n const facetFilterFormRow = (\n <Stack\n direction={'row'}\n sx={{\n gap: '10px',\n my: 1,\n }}\n >\n <Skeleton width={'15px'} />\n <Skeleton width={'40%'} />\n </Stack>\n )\n return (\n <Box className={'FacetFilterControls__facet'}>\n <Box className={'FacetFilterHeader'}>\n <Skeleton width={'100%'} />\n </Box>\n <Box>\n {facetFilterFormRow}\n {facetFilterFormRow}\n {facetFilterFormRow}\n </Box>\n </Box>\n )\n}\n\nexport function FacetFilterControlsSkeleton() {\n return (\n <div className={`FacetFilterControls`}>\n <FacetFilterSkeleton />\n <FacetFilterSkeleton />\n <FacetFilterSkeleton />\n <FacetFilterSkeleton />\n </div>\n )\n}\n"],"mappings":";;;AAEA,SAAgB,IAAsB;CACpC,IAAM,IACJ,kBAAC,GAAD;EACE,WAAW;EACX,IAAI;GACF,KAAK;GACL,IAAI;EACN;YALF,CAOE,kBAAC,GAAD,EAAU,OAAO,OAAS,CAAA,GAC1B,kBAAC,GAAD,EAAU,OAAO,MAAQ,CAAA,CACpB;;CAET,OACE,kBAAC,GAAD;EAAK,WAAW;YAAhB,CACE,kBAAC,GAAD;GAAK,WAAW;aACd,kBAAC,GAAD,EAAU,OAAO,OAAS,CAAA;EACvB,CAAA,GACL,kBAAC,GAAD,EAAA,UAAA;GACG;GACA;GACA;EACE,EAAA,CAAA,CACF;;AAET;AAEA,SAAgB,IAA8B;CAC5C,OACE,kBAAC,OAAD;EAAK,WAAW;YAAhB;GACE,kBAAC,GAAD,CAAsB,CAAA;GACtB,kBAAC,GAAD,CAAsB,CAAA;GACtB,kBAAC,GAAD,CAAsB,CAAA;GACtB,kBAAC,GAAD,CAAsB,CAAA;EACnB;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacetFilterUtils.js","names":[],"sources":["../../../../src/components/widgets/query-filter/FacetFilterUtils.ts"],"sourcesContent":["import { FacetColumnRequest } from '@sage-bionetworks/synapse-types'\n\n/**\n * Determines which facet filters should be shown after loading a new bundle. The shown facets will be the first\n * three available facets, plus any other facets that have a filter applied.\n * @param facetColumns\n * @param selectedFacets\n * @returns the columnNames of the facets that should be shown.\n */\nexport function getDefaultShownFacetFilters(\n facetColumns: string[],\n selectedFacets?: FacetColumnRequest[],\n initialExpandedFacetControls?: string[],\n): Set<string> {\n const columnsWithExistingFilters = (selectedFacets ?? []).map(\n fcr => fcr.columnName,\n )\n if (initialExpandedFacetControls == undefined) {\n return new Set([...facetColumns.slice(0, 3), ...columnsWithExistingFilters])\n } else {\n // initialExpandedFacetControls is set, use it\n const initialExpandedFacetControlsSet = new Set(\n initialExpandedFacetControls,\n )\n const availableInitialExpandedFacetControls = facetColumns.filter(\n columnName => initialExpandedFacetControlsSet.has(columnName),\n )\n const fillerExpandedFacetControls =\n availableInitialExpandedFacetControls.length < 3\n ? facetColumns.slice(0, 3)\n : []\n return new Set([\n ...fillerExpandedFacetControls,\n ...availableInitialExpandedFacetControls,\n ...columnsWithExistingFilters,\n ])\n }\n}\n"],"mappings":";AASA,SAAgB,EACd,GACA,GACA,GACa;CACb,IAAM,KAA8B,KAAkB,
|
|
1
|
+
{"version":3,"file":"FacetFilterUtils.js","names":[],"sources":["../../../../src/components/widgets/query-filter/FacetFilterUtils.ts"],"sourcesContent":["import { FacetColumnRequest } from '@sage-bionetworks/synapse-types'\n\n/**\n * Determines which facet filters should be shown after loading a new bundle. The shown facets will be the first\n * three available facets, plus any other facets that have a filter applied.\n * @param facetColumns\n * @param selectedFacets\n * @returns the columnNames of the facets that should be shown.\n */\nexport function getDefaultShownFacetFilters(\n facetColumns: string[],\n selectedFacets?: FacetColumnRequest[],\n initialExpandedFacetControls?: string[],\n): Set<string> {\n const columnsWithExistingFilters = (selectedFacets ?? []).map(\n fcr => fcr.columnName,\n )\n if (initialExpandedFacetControls == undefined) {\n return new Set([...facetColumns.slice(0, 3), ...columnsWithExistingFilters])\n } else {\n // initialExpandedFacetControls is set, use it\n const initialExpandedFacetControlsSet = new Set(\n initialExpandedFacetControls,\n )\n const availableInitialExpandedFacetControls = facetColumns.filter(\n columnName => initialExpandedFacetControlsSet.has(columnName),\n )\n const fillerExpandedFacetControls =\n availableInitialExpandedFacetControls.length < 3\n ? facetColumns.slice(0, 3)\n : []\n return new Set([\n ...fillerExpandedFacetControls,\n ...availableInitialExpandedFacetControls,\n ...columnsWithExistingFilters,\n ])\n }\n}\n"],"mappings":";AASA,SAAgB,EACd,GACA,GACA,GACa;CACb,IAAM,KAA8B,KAAkB,CAAC,GAAG,KACxD,MAAO,EAAI,UACb;CACA,IAAI,KAAgC,MAClC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAa,MAAM,GAAG,CAAC,GAAG,GAAG,CAA0B,CAAC;CACtE;EAEL,IAAM,IAAkC,IAAI,IAC1C,CACF,GACM,IAAwC,EAAa,QACzD,MAAc,EAAgC,IAAI,CAAU,CAC9D,GACM,IACJ,EAAsC,SAAS,IAC3C,EAAa,MAAM,GAAG,CAAC,IACvB,CAAC;EACP,OAAO,IAAI,IAAI;GACb,GAAG;GACH,GAAG;GACH,GAAG;EACL,CAAC;CACH;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonColumnFacetFilters.js","names":[],"sources":["../../../../src/components/widgets/query-filter/JsonColumnFacetFilters.tsx"],"sourcesContent":["import { getCorrespondingColumnForFacet } from '@/utils/functions/queryUtils'\nimport { Box, Collapse } from '@mui/material'\nimport { ColumnModel, FacetColumnResult } from '@sage-bionetworks/synapse-types'\nimport { useState } from 'react'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport { EnumFacetFilter } from './EnumFacetFilter/EnumFacetFilter'\nimport { FacetFilterHeader } from './FacetFilterHeader'\nimport { RangeFacetFilter } from './RangeFacetFilter'\n\nexport type JsonColumnFacetFiltersProps = {\n /* The parent ColumnModel that contains the JSON Subcolumns to show in this panel */\n columnModel: ColumnModel\n /* The set of JSON Subcolumn FacetColumnResults that will be shown in this panel */\n facets: FacetColumnResult[]\n}\n\n/**\n * Renders a set of facet filters that are all derived from the same JSON Column.\n * @param props\n * @constructor\n */\nexport default function JsonColumnFacetFilters(\n props: JsonColumnFacetFiltersProps,\n) {\n const { columnModel, facets } = props\n const { getColumnDisplayName } = useQueryVisualizationContext()\n\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n\n const [isCollapsed, setIsCollapsed] = useState<boolean>(false)\n\n if (queryMetadata.columnModels == undefined) {\n return <></>\n }\n if (!columnModel.jsonSubColumns) {\n console.warn('Supplied column model has no jsonSubColumns')\n return <></>\n }\n return (\n <Box className={'FacetFilterControls__facet'}>\n <FacetFilterHeader\n label={getColumnDisplayName(columnModel.name)}\n isCollapsed={isCollapsed}\n onClick={(isCollapsed: boolean) => setIsCollapsed(isCollapsed)}\n />\n <Collapse className=\"JsonColumnFacetFilters\" in={!isCollapsed}>\n <Box sx={{ my: 2 }}>\n {facets.map(jsonSubcolumnFacet => {\n const jsonSubColumnModel = getCorrespondingColumnForFacet(\n jsonSubcolumnFacet,\n queryMetadata.columnModels!,\n )\n return (\n <Box\n className=\"FacetFilterControls__facet\"\n key={jsonSubcolumnFacet.jsonPath}\n sx={{\n my: 1.5,\n backgroundColor: 'grey.100',\n p: 2.5,\n '.FacetFilterHeader': {\n borderBottom: 'none',\n },\n }}\n >\n {jsonSubcolumnFacet.facetType === 'enumeration' &&\n jsonSubColumnModel && (\n <EnumFacetFilter\n containerAs=\"Collapsible\"\n facet={jsonSubcolumnFacet}\n hideCollapsible={true}\n />\n )}\n {jsonSubcolumnFacet.facetType === 'range' &&\n jsonSubColumnModel && (\n <RangeFacetFilter\n facetResult={jsonSubcolumnFacet}\n hideCollapsible={true}\n />\n )}\n </Box>\n )\n })}\n </Box>\n </Collapse>\n </Box>\n )\n}\n"],"mappings":";;;;;;;;;;;AAsBA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,gBAAa,cAAW,GAC1B,EAAE,4BAAyB,
|
|
1
|
+
{"version":3,"file":"JsonColumnFacetFilters.js","names":[],"sources":["../../../../src/components/widgets/query-filter/JsonColumnFacetFilters.tsx"],"sourcesContent":["import { getCorrespondingColumnForFacet } from '@/utils/functions/queryUtils'\nimport { Box, Collapse } from '@mui/material'\nimport { ColumnModel, FacetColumnResult } from '@sage-bionetworks/synapse-types'\nimport { useState } from 'react'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport { EnumFacetFilter } from './EnumFacetFilter/EnumFacetFilter'\nimport { FacetFilterHeader } from './FacetFilterHeader'\nimport { RangeFacetFilter } from './RangeFacetFilter'\n\nexport type JsonColumnFacetFiltersProps = {\n /* The parent ColumnModel that contains the JSON Subcolumns to show in this panel */\n columnModel: ColumnModel\n /* The set of JSON Subcolumn FacetColumnResults that will be shown in this panel */\n facets: FacetColumnResult[]\n}\n\n/**\n * Renders a set of facet filters that are all derived from the same JSON Column.\n * @param props\n * @constructor\n */\nexport default function JsonColumnFacetFilters(\n props: JsonColumnFacetFiltersProps,\n) {\n const { columnModel, facets } = props\n const { getColumnDisplayName } = useQueryVisualizationContext()\n\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n\n const [isCollapsed, setIsCollapsed] = useState<boolean>(false)\n\n if (queryMetadata.columnModels == undefined) {\n return <></>\n }\n if (!columnModel.jsonSubColumns) {\n console.warn('Supplied column model has no jsonSubColumns')\n return <></>\n }\n return (\n <Box className={'FacetFilterControls__facet'}>\n <FacetFilterHeader\n label={getColumnDisplayName(columnModel.name)}\n isCollapsed={isCollapsed}\n onClick={(isCollapsed: boolean) => setIsCollapsed(isCollapsed)}\n />\n <Collapse className=\"JsonColumnFacetFilters\" in={!isCollapsed}>\n <Box sx={{ my: 2 }}>\n {facets.map(jsonSubcolumnFacet => {\n const jsonSubColumnModel = getCorrespondingColumnForFacet(\n jsonSubcolumnFacet,\n queryMetadata.columnModels!,\n )\n return (\n <Box\n className=\"FacetFilterControls__facet\"\n key={jsonSubcolumnFacet.jsonPath}\n sx={{\n my: 1.5,\n backgroundColor: 'grey.100',\n p: 2.5,\n '.FacetFilterHeader': {\n borderBottom: 'none',\n },\n }}\n >\n {jsonSubcolumnFacet.facetType === 'enumeration' &&\n jsonSubColumnModel && (\n <EnumFacetFilter\n containerAs=\"Collapsible\"\n facet={jsonSubcolumnFacet}\n hideCollapsible={true}\n />\n )}\n {jsonSubcolumnFacet.facetType === 'range' &&\n jsonSubColumnModel && (\n <RangeFacetFilter\n facetResult={jsonSubcolumnFacet}\n hideCollapsible={true}\n />\n )}\n </Box>\n )\n })}\n </Box>\n </Collapse>\n </Box>\n )\n}\n"],"mappings":";;;;;;;;;;;AAsBA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,gBAAa,cAAW,GAC1B,EAAE,4BAAyB,EAA6B,GAExD,EAAE,MAAM,MAAkB,EAA4B,GAEtD,CAAC,GAAa,KAAkB,EAAkB,EAAK;CAS7D,OAPI,EAAc,gBAAgB,OACzB,kBAAA,GAAA,CAAI,CAAA,IAER,EAAY,iBAKf,kBAAC,GAAD;EAAK,WAAW;YAAhB,CACE,kBAAC,GAAD;GACE,OAAO,EAAqB,EAAY,IAAI;GAC/B;GACb,UAAU,MAAyB,EAAe,CAAW;EAC9D,CAAA,GACD,kBAAC,GAAD;GAAU,WAAU;GAAyB,IAAI,CAAC;aAChD,kBAAC,GAAD;IAAK,IAAI,EAAE,IAAI,EAAE;cACd,EAAO,KAAI,MAAsB;KAChC,IAAM,IAAqB,EACzB,GACA,EAAc,YAChB;KACA,OACE,kBAAC,GAAD;MACE,WAAU;MAEV,IAAI;OACF,IAAI;OACJ,iBAAiB;OACjB,GAAG;OACH,sBAAsB,EACpB,cAAc,OAChB;MACF;gBAVF,CAYG,EAAmB,cAAc,iBAChC,KACE,kBAAC,GAAD;OACE,aAAY;OACZ,OAAO;OACP,iBAAiB;MAClB,CAAA,GAEJ,EAAmB,cAAc,WAChC,KACE,kBAAC,GAAD;OACE,aAAa;OACb,iBAAiB;MAClB,CAAA,CAEF;QAzBE,EAAmB,QAyBrB;IAET,CAAC;GACE,CAAA;EACG,CAAA,CACP;OAlDL,QAAQ,KAAK,6CAA6C,GACnD,kBAAA,GAAA,CAAI,CAAA;AAmDf"}
|
|
@@ -15,15 +15,15 @@ var d = /* @__PURE__ */ function(e) {
|
|
|
15
15
|
}({}), f = [
|
|
16
16
|
{
|
|
17
17
|
label: e,
|
|
18
|
-
value:
|
|
18
|
+
value: "org.sagebionetworks.UNDEFINED_NULL_NOTSET"
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
label: "Any",
|
|
22
|
-
value:
|
|
22
|
+
value: ""
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
label: "Range",
|
|
26
|
-
value:
|
|
26
|
+
value: "RANGE"
|
|
27
27
|
}
|
|
28
28
|
];
|
|
29
29
|
function p(e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeFacetFilter.js","names":[],"sources":["../../../../src/components/widgets/query-filter/RangeFacetFilter.tsx"],"sourcesContent":["import { getCorrespondingColumnForFacet } from '@/utils/functions/queryUtils'\nimport { FRIENDLY_VALUE_NOT_SET, VALUE_NOT_SET } from '@/utils/SynapseConstants'\nimport { FacetColumnResultRange } from '@sage-bionetworks/synapse-types'\nimport { isNumber } from 'lodash-es'\nimport { useMemo } from 'react'\nimport { useQueryContext } from '../../QueryContext'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport { RangeValues } from '../Range'\nimport { RangeFacetFilterUI } from './RangeFacetFilterUI'\n\nexport enum RadioValuesEnum {\n NOT_SET = 'org.sagebionetworks.UNDEFINED_NULL_NOTSET',\n RANGE = 'RANGE',\n ANY = '',\n}\nexport const options = [\n { label: FRIENDLY_VALUE_NOT_SET, value: RadioValuesEnum.NOT_SET },\n { label: 'Any', value: RadioValuesEnum.ANY },\n { label: 'Range', value: RadioValuesEnum.RANGE },\n]\nexport type RangeFacetFilterProps = {\n facetResult: FacetColumnResultRange\n hideCollapsible?: boolean\n}\n\nexport function RangeFacetFilter(props: RangeFacetFilterProps) {\n const { facetResult, hideCollapsible = false } = props\n const { setRangeFacetValue, removeSelectedFacet, getCurrentQueryRequest } =\n useQueryContext()\n\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n\n const columnModel = queryMetadata.columnModels\n ? getCorrespondingColumnForFacet(facetResult, queryMetadata.columnModels)\n : undefined\n\n const { getColumnDisplayName } = useQueryVisualizationContext()\n\n const lastQueryRequest = useMemo(\n () => getCurrentQueryRequest(),\n [getCurrentQueryRequest],\n )\n\n if (!columnModel) {\n return <></>\n }\n\n return (\n <RangeFacetFilterUI\n label={getColumnDisplayName(facetResult.columnName, facetResult.jsonPath)}\n facetResult={facetResult}\n columnType={columnModel.columnType}\n hideCollapsible={hideCollapsible}\n onRangeValueSelected={(values: RangeValues) => {\n setRangeFacetValue(\n facetResult,\n isNumber(values.min) ? String(values.min) : values.min,\n isNumber(values.max) ? String(values.max) : values.max,\n )\n }}\n onNotSetSelected={() => {\n setRangeFacetValue(facetResult, VALUE_NOT_SET, VALUE_NOT_SET)\n }}\n onAnySelected={() => {\n const selectedFacet = lastQueryRequest.query.selectedFacets?.find(\n selectedFacet =>\n selectedFacet.columnName === facetResult.columnName &&\n selectedFacet.jsonPath === facetResult.jsonPath,\n )\n if (selectedFacet) {\n removeSelectedFacet(selectedFacet)\n }\n }}\n />\n )\n}\n"],"mappings":";;;;;;;;;;;;AAWA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,
|
|
1
|
+
{"version":3,"file":"RangeFacetFilter.js","names":[],"sources":["../../../../src/components/widgets/query-filter/RangeFacetFilter.tsx"],"sourcesContent":["import { getCorrespondingColumnForFacet } from '@/utils/functions/queryUtils'\nimport { FRIENDLY_VALUE_NOT_SET, VALUE_NOT_SET } from '@/utils/SynapseConstants'\nimport { FacetColumnResultRange } from '@sage-bionetworks/synapse-types'\nimport { isNumber } from 'lodash-es'\nimport { useMemo } from 'react'\nimport { useQueryContext } from '../../QueryContext'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport { RangeValues } from '../Range'\nimport { RangeFacetFilterUI } from './RangeFacetFilterUI'\n\nexport enum RadioValuesEnum {\n NOT_SET = 'org.sagebionetworks.UNDEFINED_NULL_NOTSET',\n RANGE = 'RANGE',\n ANY = '',\n}\nexport const options = [\n { label: FRIENDLY_VALUE_NOT_SET, value: RadioValuesEnum.NOT_SET },\n { label: 'Any', value: RadioValuesEnum.ANY },\n { label: 'Range', value: RadioValuesEnum.RANGE },\n]\nexport type RangeFacetFilterProps = {\n facetResult: FacetColumnResultRange\n hideCollapsible?: boolean\n}\n\nexport function RangeFacetFilter(props: RangeFacetFilterProps) {\n const { facetResult, hideCollapsible = false } = props\n const { setRangeFacetValue, removeSelectedFacet, getCurrentQueryRequest } =\n useQueryContext()\n\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n\n const columnModel = queryMetadata.columnModels\n ? getCorrespondingColumnForFacet(facetResult, queryMetadata.columnModels)\n : undefined\n\n const { getColumnDisplayName } = useQueryVisualizationContext()\n\n const lastQueryRequest = useMemo(\n () => getCurrentQueryRequest(),\n [getCurrentQueryRequest],\n )\n\n if (!columnModel) {\n return <></>\n }\n\n return (\n <RangeFacetFilterUI\n label={getColumnDisplayName(facetResult.columnName, facetResult.jsonPath)}\n facetResult={facetResult}\n columnType={columnModel.columnType}\n hideCollapsible={hideCollapsible}\n onRangeValueSelected={(values: RangeValues) => {\n setRangeFacetValue(\n facetResult,\n isNumber(values.min) ? String(values.min) : values.min,\n isNumber(values.max) ? String(values.max) : values.max,\n )\n }}\n onNotSetSelected={() => {\n setRangeFacetValue(facetResult, VALUE_NOT_SET, VALUE_NOT_SET)\n }}\n onAnySelected={() => {\n const selectedFacet = lastQueryRequest.query.selectedFacets?.find(\n selectedFacet =>\n selectedFacet.columnName === facetResult.columnName &&\n selectedFacet.jsonPath === facetResult.jsonPath,\n )\n if (selectedFacet) {\n removeSelectedFacet(selectedFacet)\n }\n }}\n />\n )\n}\n"],"mappings":";;;;;;;;;;;;AAWA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,UAAA,6CACA,EAAA,QAAA,SACA,EAAA,MAAA;AACF,EAAA,CAAA,CAAA,GACa,IAAU;CACrB;EAAE,OAAO;EAAwB,OAAA;CAA+B;CAChE;EAAE,OAAO;EAAO,OAAA;CAA2B;CAC3C;EAAE,OAAO;EAAS,OAAA;CAA6B;AACjD;AAMA,SAAgB,EAAiB,GAA8B;CAC7D,IAAM,EAAE,gBAAa,qBAAkB,OAAU,GAC3C,EAAE,uBAAoB,wBAAqB,8BAC/C,EAAgB,GAEZ,EAAE,MAAM,MAAkB,EAA4B,GAEtD,IAAc,EAAc,eAC9B,EAA+B,GAAa,EAAc,YAAY,IACtE,KAAA,GAEE,EAAE,4BAAyB,EAA6B,GAExD,IAAmB,QACjB,EAAuB,GAC7B,CAAC,CAAsB,CACzB;CAMA,OAJK,IAKH,kBAAC,GAAD;EACE,OAAO,EAAqB,EAAY,YAAY,EAAY,QAAQ;EAC3D;EACb,YAAY,EAAY;EACP;EACjB,uBAAuB,MAAwB;GAC7C,EACE,GACA,EAAS,EAAO,GAAG,IAAI,OAAO,EAAO,GAAG,IAAI,EAAO,KACnD,EAAS,EAAO,GAAG,IAAI,OAAO,EAAO,GAAG,IAAI,EAAO,GACrD;EACF;EACA,wBAAwB;GACtB,EAAmB,GAAa,GAAe,CAAa;EAC9D;EACA,qBAAqB;GACnB,IAAM,IAAgB,EAAiB,MAAM,gBAAgB,MAC3D,MACE,EAAc,eAAe,EAAY,cACzC,EAAc,aAAa,EAAY,QAC3C;GACA,AAAI,KACF,EAAoB,CAAa;EAErC;CACD,CAAA,IA7BM,kBAAA,GAAA,CAAI,CAAA;AA+Bf"}
|
|
@@ -12,77 +12,77 @@ var p = /* @__PURE__ */ function(e) {
|
|
|
12
12
|
}({}), m = [
|
|
13
13
|
{
|
|
14
14
|
label: e,
|
|
15
|
-
value:
|
|
15
|
+
value: "org.sagebionetworks.UNDEFINED_NULL_NOTSET"
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
label: "Any",
|
|
19
|
-
value:
|
|
19
|
+
value: ""
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
label: "Range",
|
|
23
|
-
value:
|
|
23
|
+
value: "RANGE"
|
|
24
24
|
}
|
|
25
|
-
], h = (e, t) => t ?
|
|
25
|
+
], h = (e, t) => t ? "" : e === "org.sagebionetworks.UNDEFINED_NULL_NOTSET" ? "org.sagebionetworks.UNDEFINED_NULL_NOTSET" : "RANGE";
|
|
26
26
|
function g(e) {
|
|
27
|
-
let { label:
|
|
28
|
-
switch (
|
|
29
|
-
case
|
|
30
|
-
case
|
|
31
|
-
x();
|
|
32
|
-
break;
|
|
33
|
-
case p.ANY:
|
|
27
|
+
let { label: p, facetResult: g, hideCollapsible: _ = !1, columnType: v, onAnySelected: y, onNotSetSelected: b, onRangeValueSelected: x } = e, [S, C] = i(!1), { columnMin: w, columnMax: T, selectedMin: E, selectedMax: D } = g, O = !E && !D, k = E || w, A = D || T, j = v === "DOUBLE" ? "number" : "date", M = (e) => {
|
|
28
|
+
switch (P(e), e) {
|
|
29
|
+
case "RANGE": break;
|
|
30
|
+
case "org.sagebionetworks.UNDEFINED_NULL_NOTSET":
|
|
34
31
|
b();
|
|
35
32
|
break;
|
|
33
|
+
case "":
|
|
34
|
+
y();
|
|
35
|
+
break;
|
|
36
36
|
}
|
|
37
|
-
}, [
|
|
37
|
+
}, [N, P] = i(h(k ?? "", O));
|
|
38
38
|
return /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u(t, {
|
|
39
|
-
isCollapsed:
|
|
40
|
-
label:
|
|
41
|
-
onClick: (e) =>
|
|
42
|
-
hideCollapsible:
|
|
39
|
+
isCollapsed: S,
|
|
40
|
+
label: p,
|
|
41
|
+
onClick: (e) => C(e),
|
|
42
|
+
hideCollapsible: _
|
|
43
43
|
}), /* @__PURE__ */ d(a, {
|
|
44
|
-
in: !
|
|
44
|
+
in: !S,
|
|
45
45
|
children: [/* @__PURE__ */ u(c, {
|
|
46
|
-
value:
|
|
47
|
-
onChange: (e, t) =>
|
|
46
|
+
value: N,
|
|
47
|
+
onChange: (e, t) => M(t),
|
|
48
48
|
children: m.map(({ value: e, label: t }) => /* @__PURE__ */ u(o, {
|
|
49
49
|
control: /* @__PURE__ */ u(s, {}),
|
|
50
50
|
label: t,
|
|
51
51
|
value: e
|
|
52
52
|
}, e))
|
|
53
|
-
}),
|
|
54
|
-
|
|
55
|
-
domain: [
|
|
53
|
+
}), N === "RANGE" && (w && T && w === T ? /* @__PURE__ */ u("label", { children: T }) : /* @__PURE__ */ d(l, { children: [
|
|
54
|
+
v === "INTEGER" && (w && T ? /* @__PURE__ */ u(r, {
|
|
55
|
+
domain: [w, T],
|
|
56
56
|
initialValues: {
|
|
57
|
-
min: parseInt(
|
|
58
|
-
max: parseInt(
|
|
57
|
+
min: parseInt(k ?? w),
|
|
58
|
+
max: parseInt(A ?? T)
|
|
59
59
|
},
|
|
60
60
|
step: 1,
|
|
61
|
-
onApplyClicked:
|
|
61
|
+
onApplyClicked: x,
|
|
62
62
|
children: ">"
|
|
63
63
|
}, "RangeSlider") : /* @__PURE__ */ u(n, {
|
|
64
64
|
type: "number",
|
|
65
|
-
initialValues:
|
|
66
|
-
min:
|
|
67
|
-
max:
|
|
65
|
+
initialValues: k || A ? {
|
|
66
|
+
min: k ? parseInt(k) : void 0,
|
|
67
|
+
max: A ? parseInt(A) : void 0
|
|
68
68
|
} : void 0,
|
|
69
|
-
onApplyClicked:
|
|
69
|
+
onApplyClicked: x
|
|
70
70
|
}, "Range")),
|
|
71
|
-
|
|
72
|
-
initialValues:
|
|
73
|
-
min:
|
|
74
|
-
max:
|
|
71
|
+
v === "DATE" && /* @__PURE__ */ u(n, {
|
|
72
|
+
initialValues: E || D || w || T ? {
|
|
73
|
+
min: E ?? (w ? f(parseInt(w)).toString() : void 0),
|
|
74
|
+
max: D ?? (T ? f(parseInt(T)).toString() : void 0)
|
|
75
75
|
} : void 0,
|
|
76
|
-
type:
|
|
77
|
-
onApplyClicked:
|
|
76
|
+
type: j,
|
|
77
|
+
onApplyClicked: x
|
|
78
78
|
}, "Range"),
|
|
79
|
-
|
|
80
|
-
initialValues:
|
|
81
|
-
min:
|
|
82
|
-
max:
|
|
79
|
+
v === "DOUBLE" && /* @__PURE__ */ u(n, {
|
|
80
|
+
initialValues: k || A ? {
|
|
81
|
+
min: k ? parseFloat(k) : void 0,
|
|
82
|
+
max: A ? parseFloat(A) : void 0
|
|
83
83
|
} : void 0,
|
|
84
|
-
type:
|
|
85
|
-
onApplyClicked:
|
|
84
|
+
type: j,
|
|
85
|
+
onApplyClicked: x
|
|
86
86
|
}, "Range")
|
|
87
87
|
] }))]
|
|
88
88
|
})] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeFacetFilterUI.js","names":[],"sources":["../../../../src/components/widgets/query-filter/RangeFacetFilterUI.tsx"],"sourcesContent":["import { FRIENDLY_VALUE_NOT_SET, VALUE_NOT_SET } from '@/utils/SynapseConstants'\nimport { Collapse, FormControlLabel, Radio, RadioGroup } from '@mui/material'\nimport { ColumnType } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport { useState } from 'react'\nimport { Range, RangeValues } from '../Range'\nimport RangeSlider from '../RangeSlider/RangeSlider'\nimport { FacetFilterHeader } from './FacetFilterHeader'\n\nexport enum RadioValuesEnum {\n NOT_SET = 'org.sagebionetworks.UNDEFINED_NULL_NOTSET',\n RANGE = 'RANGE',\n ANY = '',\n}\nexport const options = [\n { label: FRIENDLY_VALUE_NOT_SET, value: RadioValuesEnum.NOT_SET },\n { label: 'Any', value: RadioValuesEnum.ANY },\n { label: 'Range', value: RadioValuesEnum.RANGE },\n]\nexport type RangeFacetFilterProps = {\n label: string\n facetResult: {\n /** The smallest value in the column. May be absent when the server cannot supply stats (e.g. Search API). */\n columnMin?: string\n /** The largest value in the column. May be absent when the server cannot supply stats (e.g. Search API). */\n columnMax?: string\n selectedMin?: string\n selectedMax?: string\n }\n columnType: ColumnType\n hideCollapsible?: boolean\n onRangeValueSelected: (values: RangeValues) => void\n onNotSetSelected: () => void\n onAnySelected: () => void\n}\n\nexport const getRadioValue = (min: string, isAnyValue: boolean) => {\n if (isAnyValue) {\n return RadioValuesEnum.ANY\n } else if (min === VALUE_NOT_SET) {\n return RadioValuesEnum.NOT_SET\n }\n return RadioValuesEnum.RANGE\n}\n\nexport function RangeFacetFilterUI(props: RangeFacetFilterProps) {\n const {\n label,\n facetResult,\n hideCollapsible = false,\n columnType,\n onAnySelected,\n onNotSetSelected,\n onRangeValueSelected,\n } = props\n\n const [isCollapsed, setIsCollapsed] = useState<boolean>(false)\n\n const { columnMin, columnMax, selectedMin, selectedMax } = facetResult // the upper bound of the selected range\n\n const hasAnyValue = !selectedMin && !selectedMax\n\n const currentMin = selectedMin || columnMin\n const currentMax = selectedMax || columnMax\n\n const rangeType = columnType === 'DOUBLE' ? 'number' : 'date'\n\n const handleRadioGroupChange = (radioValue: RadioValuesEnum) => {\n setRadioValue(radioValue)\n\n switch (radioValue) {\n case RadioValuesEnum.RANGE:\n // The range facet value will update when the user clicks the apply button\n break\n case RadioValuesEnum.NOT_SET:\n onNotSetSelected()\n break\n case RadioValuesEnum.ANY: {\n onAnySelected()\n break\n }\n }\n }\n\n const [radioValue, setRadioValue] = useState(\n getRadioValue(currentMin ?? '', hasAnyValue),\n )\n\n return (\n <div>\n <FacetFilterHeader\n isCollapsed={isCollapsed}\n label={label}\n onClick={(isCollapsed: boolean) => setIsCollapsed(isCollapsed)}\n hideCollapsible={hideCollapsible}\n />\n <Collapse in={!isCollapsed}>\n <RadioGroup\n value={radioValue}\n onChange={(_event, value) =>\n handleRadioGroupChange(value as RadioValuesEnum)\n }\n >\n {options.map(({ value, label }) => (\n <FormControlLabel\n key={value}\n control={<Radio />}\n label={label}\n value={value}\n />\n ))}\n </RadioGroup>\n {radioValue === RadioValuesEnum.RANGE &&\n (columnMin && columnMax && columnMin === columnMax ? (\n <label>{columnMax}</label>\n ) : (\n <>\n {columnType === 'INTEGER' &&\n (columnMin && columnMax ? (\n <RangeSlider\n key=\"RangeSlider\"\n domain={[columnMin, columnMax]}\n initialValues={{\n min: parseInt(currentMin ?? columnMin),\n max: parseInt(currentMax ?? columnMax),\n }}\n step={1}\n onApplyClicked={onRangeValueSelected}\n >\n {'>'}\n </RangeSlider>\n ) : (\n <Range\n key=\"Range\"\n type=\"number\"\n initialValues={\n currentMin || currentMax\n ? {\n min: currentMin ? parseInt(currentMin) : undefined,\n max: currentMax ? parseInt(currentMax) : undefined,\n }\n : undefined\n }\n onApplyClicked={onRangeValueSelected}\n />\n ))}\n\n {columnType === 'DATE' && (\n <Range\n key=\"Range\"\n initialValues={\n selectedMin || selectedMax || columnMin || columnMax\n ? {\n // From the backend, selectedMin is a formatted date (like \"2021-06-15\"), but columnMin is a unix timestamp in millis (like \"1624651794856\")\n min:\n selectedMin ??\n (columnMin\n ? dayjs(parseInt(columnMin)).toString()\n : undefined),\n max:\n selectedMax ??\n (columnMax\n ? dayjs(parseInt(columnMax)).toString()\n : undefined),\n }\n : undefined\n }\n type={rangeType}\n onApplyClicked={onRangeValueSelected}\n />\n )}\n {columnType === 'DOUBLE' && (\n <Range\n key=\"Range\"\n initialValues={\n currentMin || currentMax\n ? {\n min: currentMin ? parseFloat(currentMin) : undefined,\n max: currentMax ? parseFloat(currentMax) : undefined,\n }\n : undefined\n }\n type={rangeType}\n onApplyClicked={onRangeValueSelected}\n />\n )}\n </>\n ))}\n </Collapse>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;AASA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,
|
|
1
|
+
{"version":3,"file":"RangeFacetFilterUI.js","names":[],"sources":["../../../../src/components/widgets/query-filter/RangeFacetFilterUI.tsx"],"sourcesContent":["import { FRIENDLY_VALUE_NOT_SET, VALUE_NOT_SET } from '@/utils/SynapseConstants'\nimport { Collapse, FormControlLabel, Radio, RadioGroup } from '@mui/material'\nimport { ColumnType } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport { useState } from 'react'\nimport { Range, RangeValues } from '../Range'\nimport RangeSlider from '../RangeSlider/RangeSlider'\nimport { FacetFilterHeader } from './FacetFilterHeader'\n\nexport enum RadioValuesEnum {\n NOT_SET = 'org.sagebionetworks.UNDEFINED_NULL_NOTSET',\n RANGE = 'RANGE',\n ANY = '',\n}\nexport const options = [\n { label: FRIENDLY_VALUE_NOT_SET, value: RadioValuesEnum.NOT_SET },\n { label: 'Any', value: RadioValuesEnum.ANY },\n { label: 'Range', value: RadioValuesEnum.RANGE },\n]\nexport type RangeFacetFilterProps = {\n label: string\n facetResult: {\n /** The smallest value in the column. May be absent when the server cannot supply stats (e.g. Search API). */\n columnMin?: string\n /** The largest value in the column. May be absent when the server cannot supply stats (e.g. Search API). */\n columnMax?: string\n selectedMin?: string\n selectedMax?: string\n }\n columnType: ColumnType\n hideCollapsible?: boolean\n onRangeValueSelected: (values: RangeValues) => void\n onNotSetSelected: () => void\n onAnySelected: () => void\n}\n\nexport const getRadioValue = (min: string, isAnyValue: boolean) => {\n if (isAnyValue) {\n return RadioValuesEnum.ANY\n } else if (min === VALUE_NOT_SET) {\n return RadioValuesEnum.NOT_SET\n }\n return RadioValuesEnum.RANGE\n}\n\nexport function RangeFacetFilterUI(props: RangeFacetFilterProps) {\n const {\n label,\n facetResult,\n hideCollapsible = false,\n columnType,\n onAnySelected,\n onNotSetSelected,\n onRangeValueSelected,\n } = props\n\n const [isCollapsed, setIsCollapsed] = useState<boolean>(false)\n\n const { columnMin, columnMax, selectedMin, selectedMax } = facetResult // the upper bound of the selected range\n\n const hasAnyValue = !selectedMin && !selectedMax\n\n const currentMin = selectedMin || columnMin\n const currentMax = selectedMax || columnMax\n\n const rangeType = columnType === 'DOUBLE' ? 'number' : 'date'\n\n const handleRadioGroupChange = (radioValue: RadioValuesEnum) => {\n setRadioValue(radioValue)\n\n switch (radioValue) {\n case RadioValuesEnum.RANGE:\n // The range facet value will update when the user clicks the apply button\n break\n case RadioValuesEnum.NOT_SET:\n onNotSetSelected()\n break\n case RadioValuesEnum.ANY: {\n onAnySelected()\n break\n }\n }\n }\n\n const [radioValue, setRadioValue] = useState(\n getRadioValue(currentMin ?? '', hasAnyValue),\n )\n\n return (\n <div>\n <FacetFilterHeader\n isCollapsed={isCollapsed}\n label={label}\n onClick={(isCollapsed: boolean) => setIsCollapsed(isCollapsed)}\n hideCollapsible={hideCollapsible}\n />\n <Collapse in={!isCollapsed}>\n <RadioGroup\n value={radioValue}\n onChange={(_event, value) =>\n handleRadioGroupChange(value as RadioValuesEnum)\n }\n >\n {options.map(({ value, label }) => (\n <FormControlLabel\n key={value}\n control={<Radio />}\n label={label}\n value={value}\n />\n ))}\n </RadioGroup>\n {radioValue === RadioValuesEnum.RANGE &&\n (columnMin && columnMax && columnMin === columnMax ? (\n <label>{columnMax}</label>\n ) : (\n <>\n {columnType === 'INTEGER' &&\n (columnMin && columnMax ? (\n <RangeSlider\n key=\"RangeSlider\"\n domain={[columnMin, columnMax]}\n initialValues={{\n min: parseInt(currentMin ?? columnMin),\n max: parseInt(currentMax ?? columnMax),\n }}\n step={1}\n onApplyClicked={onRangeValueSelected}\n >\n {'>'}\n </RangeSlider>\n ) : (\n <Range\n key=\"Range\"\n type=\"number\"\n initialValues={\n currentMin || currentMax\n ? {\n min: currentMin ? parseInt(currentMin) : undefined,\n max: currentMax ? parseInt(currentMax) : undefined,\n }\n : undefined\n }\n onApplyClicked={onRangeValueSelected}\n />\n ))}\n\n {columnType === 'DATE' && (\n <Range\n key=\"Range\"\n initialValues={\n selectedMin || selectedMax || columnMin || columnMax\n ? {\n // From the backend, selectedMin is a formatted date (like \"2021-06-15\"), but columnMin is a unix timestamp in millis (like \"1624651794856\")\n min:\n selectedMin ??\n (columnMin\n ? dayjs(parseInt(columnMin)).toString()\n : undefined),\n max:\n selectedMax ??\n (columnMax\n ? dayjs(parseInt(columnMax)).toString()\n : undefined),\n }\n : undefined\n }\n type={rangeType}\n onApplyClicked={onRangeValueSelected}\n />\n )}\n {columnType === 'DOUBLE' && (\n <Range\n key=\"Range\"\n initialValues={\n currentMin || currentMax\n ? {\n min: currentMin ? parseFloat(currentMin) : undefined,\n max: currentMax ? parseFloat(currentMax) : undefined,\n }\n : undefined\n }\n type={rangeType}\n onApplyClicked={onRangeValueSelected}\n />\n )}\n </>\n ))}\n </Collapse>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;AASA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,UAAA,6CACA,EAAA,QAAA,SACA,EAAA,MAAA;AACF,EAAA,CAAA,CAAA,GACa,IAAU;CACrB;EAAE,OAAO;EAAwB,OAAA;CAA+B;CAChE;EAAE,OAAO;EAAO,OAAA;CAA2B;CAC3C;EAAE,OAAO;EAAS,OAAA;CAA6B;AACjD,GAkBa,KAAiB,GAAa,MACrC,IACF,KACS,MAAA,8CACT,8CAEF;AAGF,SAAgB,EAAmB,GAA8B;CAC/D,IAAM,EACJ,UACA,gBACA,qBAAkB,IAClB,eACA,kBACA,qBACA,4BACE,GAEE,CAAC,GAAa,KAAkB,EAAkB,EAAK,GAEvD,EAAE,cAAW,cAAW,gBAAa,mBAAgB,GAErD,IAAc,CAAC,KAAe,CAAC,GAE/B,IAAa,KAAe,GAC5B,IAAa,KAAe,GAE5B,IAAY,MAAe,WAAW,WAAW,QAEjD,KAA0B,MAAgC;EAG9D,QAFA,EAAc,CAAU,GAEhB,GAAR;GACE,KAAA,SAEE;GACF,KAAA;IACE,EAAiB;IACjB;GACF,KAAA;IACE,EAAc;IACd;EAEJ;CACF,GAEM,CAAC,GAAY,KAAiB,EAClC,EAAc,KAAc,IAAI,CAAW,CAC7C;CAEA,OACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACe;EACN;EACP,UAAU,MAAyB,EAAe,CAAW;EAC5C;CAClB,CAAA,GACD,kBAAC,GAAD;EAAU,IAAI,CAAC;YAAf,CACE,kBAAC,GAAD;GACE,OAAO;GACP,WAAW,GAAQ,MACjB,EAAuB,CAAwB;aAGhD,EAAQ,KAAK,EAAE,UAAO,eACrB,kBAAC,GAAD;IAEE,SAAS,kBAAC,GAAD,CAAQ,CAAA;IACV;IACA;GACR,GAJM,CAIN,CACF;EACS,CAAA,GACX,MAAA,YACE,KAAa,KAAa,MAAc,IACvC,kBAAC,SAAD,EAAA,UAAQ,EAAiB,CAAA,IAEzB,kBAAA,GAAA,EAAA,UAAA;GACG,MAAe,cACb,KAAa,IACZ,kBAAC,GAAD;IAEE,QAAQ,CAAC,GAAW,CAAS;IAC7B,eAAe;KACb,KAAK,SAAS,KAAc,CAAS;KACrC,KAAK,SAAS,KAAc,CAAS;IACvC;IACA,MAAM;IACN,gBAAgB;cAEf;GACU,GAVP,aAUO,IAEb,kBAAC,GAAD;IAEE,MAAK;IACL,eACE,KAAc,IACV;KACE,KAAK,IAAa,SAAS,CAAU,IAAI,KAAA;KACzC,KAAK,IAAa,SAAS,CAAU,IAAI,KAAA;IAC3C,IACA,KAAA;IAEN,gBAAgB;GACjB,GAXK,OAWL;GAGJ,MAAe,UACd,kBAAC,GAAD;IAEE,eACE,KAAe,KAAe,KAAa,IACvC;KAEE,KACE,MACC,IACG,EAAM,SAAS,CAAS,CAAC,EAAE,SAAS,IACpC,KAAA;KACN,KACE,MACC,IACG,EAAM,SAAS,CAAS,CAAC,EAAE,SAAS,IACpC,KAAA;IACR,IACA,KAAA;IAEN,MAAM;IACN,gBAAgB;GACjB,GApBK,OAoBL;GAEF,MAAe,YACd,kBAAC,GAAD;IAEE,eACE,KAAc,IACV;KACE,KAAK,IAAa,WAAW,CAAU,IAAI,KAAA;KAC3C,KAAK,IAAa,WAAW,CAAU,IAAI,KAAA;IAC7C,IACA,KAAA;IAEN,MAAM;IACN,gBAAgB;GACjB,GAXK,OAWL;EAEH,EAAA,CAAA,EAEE;GACP,EAAA,CAAA;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridPage.js","names":[],"sources":["../../../../src/features/curator/GridPage/GridPage.tsx"],"sourcesContent":["import SynapseGrid from '@/components/DataGrid/index'\nimport { ErrorBanner } from '@/components/index'\nimport GridPageRouter, {\n GridPageRouterProps,\n} from '@/features/curator/GridPage/components/GridPageRouter'\nimport GridPageTitle from '@/features/curator/GridPage/components/GridPageTitle'\nimport {\n GRID_PAGE_SESSION_ID_QUERY_PARAM,\n GRID_PAGE_AGENT_REGISTRATION_ID_QUERY_PARAM,\n GRID_PAGE_TASK_ID_QUERY_PARAM,\n} from '@/utils/SynapseConstants'\nimport { useSearchParams } from 'react-router'\n\nfunction GridPageInternal() {\n const [searchParams] = useSearchParams()\n\n const sessionId = decodeURIComponent(\n searchParams.get(GRID_PAGE_SESSION_ID_QUERY_PARAM) ?? '',\n )\n const rawTaskId = searchParams.get(GRID_PAGE_TASK_ID_QUERY_PARAM)\n const taskId = rawTaskId ? parseInt(rawTaskId) : undefined\n const agentRegistrationId = searchParams.get(\n GRID_PAGE_AGENT_REGISTRATION_ID_QUERY_PARAM,\n )\n\n // If no session id, error\n if (!sessionId) {\n return <ErrorBanner error={'Missing sessionId'} />\n }\n\n return (\n <>\n <GridPageTitle sessionId={sessionId} taskId={taskId} />\n <div className={'pageContent'}>\n <SynapseGrid\n agentRegistrationId={agentRegistrationId ?? undefined}\n ref={handle => {\n if (handle) {\n handle.loadExistingSession(sessionId)\n }\n }}\n />\n </div>\n </>\n )\n}\n\nexport type GridPageProps = Omit<GridPageRouterProps, 'children'>\n\n/**\n * A page that displays the Curator grid, with included routing logic\n */\nexport default function GridPage(props: GridPageProps) {\n return (\n <GridPageRouter {...props}>\n <GridPageInternal />\n </GridPageRouter>\n )\n}\n"],"mappings":";;;;;;;;;AAaA,SAAS,IAAmB;CAC1B,IAAM,CAAC,KAAgB,
|
|
1
|
+
{"version":3,"file":"GridPage.js","names":[],"sources":["../../../../src/features/curator/GridPage/GridPage.tsx"],"sourcesContent":["import SynapseGrid from '@/components/DataGrid/index'\nimport { ErrorBanner } from '@/components/index'\nimport GridPageRouter, {\n GridPageRouterProps,\n} from '@/features/curator/GridPage/components/GridPageRouter'\nimport GridPageTitle from '@/features/curator/GridPage/components/GridPageTitle'\nimport {\n GRID_PAGE_SESSION_ID_QUERY_PARAM,\n GRID_PAGE_AGENT_REGISTRATION_ID_QUERY_PARAM,\n GRID_PAGE_TASK_ID_QUERY_PARAM,\n} from '@/utils/SynapseConstants'\nimport { useSearchParams } from 'react-router'\n\nfunction GridPageInternal() {\n const [searchParams] = useSearchParams()\n\n const sessionId = decodeURIComponent(\n searchParams.get(GRID_PAGE_SESSION_ID_QUERY_PARAM) ?? '',\n )\n const rawTaskId = searchParams.get(GRID_PAGE_TASK_ID_QUERY_PARAM)\n const taskId = rawTaskId ? parseInt(rawTaskId) : undefined\n const agentRegistrationId = searchParams.get(\n GRID_PAGE_AGENT_REGISTRATION_ID_QUERY_PARAM,\n )\n\n // If no session id, error\n if (!sessionId) {\n return <ErrorBanner error={'Missing sessionId'} />\n }\n\n return (\n <>\n <GridPageTitle sessionId={sessionId} taskId={taskId} />\n <div className={'pageContent'}>\n <SynapseGrid\n agentRegistrationId={agentRegistrationId ?? undefined}\n ref={handle => {\n if (handle) {\n handle.loadExistingSession(sessionId)\n }\n }}\n />\n </div>\n </>\n )\n}\n\nexport type GridPageProps = Omit<GridPageRouterProps, 'children'>\n\n/**\n * A page that displays the Curator grid, with included routing logic\n */\nexport default function GridPage(props: GridPageProps) {\n return (\n <GridPageRouter {...props}>\n <GridPageInternal />\n </GridPageRouter>\n )\n}\n"],"mappings":";;;;;;;;;AAaA,SAAS,IAAmB;CAC1B,IAAM,CAAC,KAAgB,EAAgB,GAEjC,IAAY,mBAChB,EAAa,IAAA,WAAoC,KAAK,EACxD,GACM,IAAY,EAAa,IAAI,CAA6B,GAC1D,IAAS,IAAY,SAAS,CAAS,IAAI,KAAA,GAC3C,IAAsB,EAAa,IACvC,CACF;CAOA,OAJK,IAKH,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EAA0B;EAAmB;CAAS,CAAA,GACtD,kBAAC,OAAD;EAAK,WAAW;YACd,kBAAC,GAAD;GACE,qBAAqB,KAAuB,KAAA;GAC5C,MAAK,MAAU;IACb,AAAI,KACF,EAAO,oBAAoB,CAAS;GAExC;EACD,CAAA;CACE,CAAA,CACL,EAAA,CAAA,IAhBK,kBAAC,GAAD,EAAa,OAAO,oBAAsB,CAAA;AAkBrD;AAOA,SAAwB,EAAS,GAAsB;CACrD,OACE,kBAAC,GAAD;EAAgB,GAAI;YAClB,kBAAC,GAAD,CAAmB,CAAA;CACL,CAAA;AAEpB"}
|