synapse-react-client 4.0.19 → 4.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SWC.index.d.ts +1 -1
- package/dist/SWC.index.js +1 -1
- package/dist/SWC.index.js.map +1 -1
- package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
- package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
- package/dist/assets/DefaultColorfulPortalCardBackground.js.map +1 -1
- package/dist/assets/GoogleIcon.js.map +1 -1
- package/dist/assets/GoogleIcon24.js.map +1 -1
- package/dist/assets/homepage/BlinkingLiveIcon.d.ts +1 -1
- package/dist/assets/homepage/BlinkingLiveIcon.js.map +1 -1
- package/dist/assets/homepage/aacr.js.map +1 -1
- package/dist/assets/homepage/cri.js.map +1 -1
- package/dist/assets/homepage/ctf.js.map +1 -1
- package/dist/assets/homepage/egress.js.map +1 -1
- package/dist/assets/homepage/facebook.js.map +1 -1
- package/dist/assets/homepage/fisma.js.map +1 -1
- package/dist/assets/homepage/gff.js.map +1 -1
- package/dist/assets/homepage/github.js.map +1 -1
- package/dist/assets/homepage/gray.js.map +1 -1
- package/dist/assets/homepage/hipaa-compliant.js.map +1 -1
- package/dist/assets/homepage/instagram.js.map +1 -1
- package/dist/assets/homepage/linkedin.js.map +1 -1
- package/dist/assets/homepage/ml-commons.js.map +1 -1
- package/dist/assets/homepage/nih-aging.js.map +1 -1
- package/dist/assets/homepage/nih-heart.js.map +1 -1
- package/dist/assets/homepage/nih-nci.js.map +1 -1
- package/dist/assets/homepage/nih-nimh.js.map +1 -1
- package/dist/assets/homepage/ntap.js.map +1 -1
- package/dist/assets/homepage/plan-item.js.map +1 -1
- package/dist/assets/homepage/powered-by-synapse-feature.js.map +1 -1
- package/dist/assets/homepage/precision-governance-feature.js.map +1 -1
- package/dist/assets/homepage/python.js.map +1 -1
- package/dist/assets/homepage/r.js.map +1 -1
- package/dist/assets/homepage/research-credit-feature.js.map +1 -1
- package/dist/assets/homepage/seamless-integration-feature.js.map +1 -1
- package/dist/assets/homepage/sloan.js.map +1 -1
- package/dist/assets/homepage/twitter.js.map +1 -1
- package/dist/assets/homepage/users.js.map +1 -1
- package/dist/assets/homepage/youtube.js.map +1 -1
- package/dist/assets/icons/AccessDataAnywhere.js.map +1 -1
- package/dist/assets/icons/AccessPending.js.map +1 -1
- package/dist/assets/icons/AccessPendingCloud.js.map +1 -1
- package/dist/assets/icons/AddAd.js.map +1 -1
- package/dist/assets/icons/AddToList.js.map +1 -1
- package/dist/assets/icons/Alert.js.map +1 -1
- package/dist/assets/icons/Arrow.js.map +1 -1
- package/dist/assets/icons/AwardScroll.js.map +1 -1
- package/dist/assets/icons/Baseline.js.map +1 -1
- package/dist/assets/icons/Cavatica.js.map +1 -1
- package/dist/assets/icons/CertifiedUser.js.map +1 -1
- package/dist/assets/icons/Challenge.js.map +1 -1
- package/dist/assets/icons/Checkbox/Checked.js.map +1 -1
- package/dist/assets/icons/Checkbox/Checked2.js.map +1 -1
- package/dist/assets/icons/Checkbox/Indeterminate.js.map +1 -1
- package/dist/assets/icons/Checkbox/Indeterminate2.js.map +1 -1
- package/dist/assets/icons/Checkbox/Unchecked.js.map +1 -1
- package/dist/assets/icons/Checkbox/Unchecked2.js.map +1 -1
- package/dist/assets/icons/ClappingHands.js.map +1 -1
- package/dist/assets/icons/CloudWarning.js.map +1 -1
- package/dist/assets/icons/CommunicateFindings.js.map +1 -1
- package/dist/assets/icons/CreateVersion.js.map +1 -1
- package/dist/assets/icons/DNA_Two.js.map +1 -1
- package/dist/assets/icons/Data2.js.map +1 -1
- package/dist/assets/icons/DoubleQuotes.js.map +1 -1
- package/dist/assets/icons/EmailAddressAdornment.js.map +1 -1
- package/dist/assets/icons/FileWithShield.js.map +1 -1
- package/dist/assets/icons/FileWithShield2.js.map +1 -1
- package/dist/assets/icons/FrontHand.js.map +1 -1
- package/dist/assets/icons/HandWithMoney.js.map +1 -1
- package/dist/assets/icons/IconCopy.js.map +1 -1
- package/dist/assets/icons/IconMinus.js.map +1 -1
- package/dist/assets/icons/IconPlus.js.map +1 -1
- package/dist/assets/icons/Java.js.map +1 -1
- package/dist/assets/icons/MintDoi.js.map +1 -1
- package/dist/assets/icons/MultiFile.js.map +1 -1
- package/dist/assets/icons/MultiFile2.js.map +1 -1
- package/dist/assets/icons/NoData.js.map +1 -1
- package/dist/assets/icons/NoSearchResults.js.map +1 -1
- package/dist/assets/icons/ORCIDIcon.js.map +1 -1
- package/dist/assets/icons/OpenBook.js.map +1 -1
- package/dist/assets/icons/Podium.js.map +1 -1
- package/dist/assets/icons/Python.js.map +1 -1
- package/dist/assets/icons/QueryStructuredData.js.map +1 -1
- package/dist/assets/icons/RLogo.js.map +1 -1
- package/dist/assets/icons/RecordProvenance.js.map +1 -1
- package/dist/assets/icons/RosetteRibbon.js.map +1 -1
- package/dist/assets/icons/SageFullLogo.js.map +1 -1
- package/dist/assets/icons/SearchImage.js.map +1 -1
- package/dist/assets/icons/ShareYourResearch.js.map +1 -1
- package/dist/assets/icons/Sort.js.map +1 -1
- package/dist/assets/icons/StarTrophy.js.map +1 -1
- package/dist/assets/icons/SynapseFullLogo.js.map +1 -1
- package/dist/assets/icons/SynapseIconWhite.js.map +1 -1
- package/dist/assets/icons/SynapseLogoName.js.map +1 -1
- package/dist/assets/icons/TasksIcon.js.map +1 -1
- package/dist/assets/icons/Terminal.js.map +1 -1
- package/dist/assets/icons/ThreeStars.js.map +1 -1
- package/dist/assets/icons/UnpackagableFile.js.map +1 -1
- package/dist/assets/icons/UnpackagableFile2.js.map +1 -1
- package/dist/assets/icons/ValidatedProfile.js.map +1 -1
- package/dist/assets/icons/account-certified.js.map +1 -1
- package/dist/assets/icons/account-enabled-mfa.js.map +1 -1
- package/dist/assets/icons/account-validated.js.map +1 -1
- package/dist/assets/icons/bioChemicalPhysical.js.map +1 -1
- package/dist/assets/icons/chart2.js.map +1 -1
- package/dist/assets/icons/columns.js.map +1 -1
- package/dist/assets/icons/columnsDarkTheme.js.map +1 -1
- package/dist/assets/icons/computationalTool.js.map +1 -1
- package/dist/assets/icons/dataReuse.js.map +1 -1
- package/dist/assets/icons/emailAddressAdornment2.js.map +1 -1
- package/dist/assets/icons/emailWithNotification.js.map +1 -1
- package/dist/assets/icons/error_page/maintenance.js.map +1 -1
- package/dist/assets/icons/error_page/no-access.js.map +1 -1
- package/dist/assets/icons/error_page/unavailable.js.map +1 -1
- package/dist/assets/icons/file.js.map +1 -1
- package/dist/assets/icons/inSilicoModel.js.map +1 -1
- package/dist/assets/icons/institution.js.map +1 -1
- package/dist/assets/icons/json-form-tool-no-submissions.js.map +1 -1
- package/dist/assets/icons/modelSystem.js.map +1 -1
- package/dist/assets/icons/mouse.js.map +1 -1
- package/dist/assets/icons/organizations.js.map +1 -1
- package/dist/assets/icons/person.js.map +1 -1
- package/dist/assets/icons/spatialProfiling.js.map +1 -1
- package/dist/assets/icons/standardDataModel.js.map +1 -1
- package/dist/assets/icons/study-active.js.map +1 -1
- package/dist/assets/icons/study-complete.js.map +1 -1
- package/dist/assets/icons/subscribe_plus.js.map +1 -1
- package/dist/assets/icons/synapse-logo.js.map +1 -1
- package/dist/assets/icons/terms/CheckIcon.js.map +1 -1
- package/dist/assets/icons/translational.js.map +1 -1
- package/dist/assets/icons/tree_horizontal.js.map +1 -1
- package/dist/assets/illustrations/acknowledgement_statements_illustration.js.map +1 -1
- package/dist/assets/illustrations/challenges_illustration.js.map +1 -1
- package/dist/assets/illustrations/cohort_builder_illustration.js.map +1 -1
- package/dist/assets/illustrations/data_access_management_illustration.js.map +1 -1
- package/dist/assets/illustrations/datasets_illustration.js.map +1 -1
- package/dist/assets/illustrations/diagonalLinePattern.js.map +1 -1
- package/dist/assets/illustrations/discussions_illustration.js.map +1 -1
- package/dist/assets/illustrations/docker_illustration.js.map +1 -1
- package/dist/assets/illustrations/donation_illustration.js.map +1 -1
- package/dist/assets/illustrations/favorites_illustration.js.map +1 -1
- package/dist/assets/illustrations/files_illustration.js.map +1 -1
- package/dist/assets/illustrations/following_illustration.js.map +1 -1
- package/dist/assets/illustrations/index.js.map +1 -1
- package/dist/assets/illustrations/left_dot_blob_dark_illustration.js.map +1 -1
- package/dist/assets/illustrations/left_dot_blob_illustration.js.map +1 -1
- package/dist/assets/illustrations/projects_illustration.js.map +1 -1
- package/dist/assets/illustrations/right_dot_blob_dark_illustration.js.map +1 -1
- package/dist/assets/illustrations/right_dot_blob_illustration.js.map +1 -1
- package/dist/assets/illustrations/tables_illustration.js.map +1 -1
- package/dist/assets/illustrations/teams_illustration.js.map +1 -1
- package/dist/assets/illustrations/trash_can_illustration.js.map +1 -1
- package/dist/assets/illustrations/underconstruction_illustration.js.map +1 -1
- package/dist/assets/illustrations/wikis_illustration.js.map +1 -1
- package/dist/assets/logos/other/ad-workbench-logo.js.map +1 -1
- package/dist/assets/logos/other/cavatica-logo.js.map +1 -1
- package/dist/assets/logos/other/pluto-logo.js.map +1 -1
- package/dist/assets/logos/other/terra-logo.js.map +1 -1
- package/dist/assets/mui_components/AccessManagement.js.map +1 -1
- package/dist/assets/mui_components/AccountCertified.js.map +1 -1
- package/dist/assets/mui_components/AccountRegistered.js.map +1 -1
- package/dist/assets/mui_components/AccountValidated.js.map +1 -1
- package/dist/assets/mui_components/ActionKey.js.map +1 -1
- package/dist/assets/mui_components/BioChemicalPhysical.js.map +1 -1
- package/dist/assets/mui_components/Chromatin.js.map +1 -1
- package/dist/assets/mui_components/Clinical.js.map +1 -1
- package/dist/assets/mui_components/ComputationalTool.js.map +1 -1
- package/dist/assets/mui_components/Data.js.map +1 -1
- package/dist/assets/mui_components/DataLocked.js.map +1 -1
- package/dist/assets/mui_components/DataReuse.js.map +1 -1
- package/dist/assets/mui_components/Dataset.js.map +1 -1
- package/dist/assets/mui_components/DatasetCollection.js.map +1 -1
- package/dist/assets/mui_components/Docker.js.map +1 -1
- package/dist/assets/mui_components/GeneExpression.js.map +1 -1
- package/dist/assets/mui_components/GeneVariants.js.map +1 -1
- package/dist/assets/mui_components/HelpChatBubble.js.map +1 -1
- package/dist/assets/mui_components/Imaging.js.map +1 -1
- package/dist/assets/mui_components/InSilicoModel.js.map +1 -1
- package/dist/assets/mui_components/Kinomics.js.map +1 -1
- package/dist/assets/mui_components/LineGraph.js.map +1 -1
- package/dist/assets/mui_components/ModelSystem.js.map +1 -1
- package/dist/assets/mui_components/Other.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile2.js.map +1 -1
- package/dist/assets/mui_components/Proteomics.js.map +1 -1
- package/dist/assets/mui_components/Rat.js.map +1 -1
- package/dist/assets/mui_components/SpatialProfiling.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition1.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition2.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition3.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition4.js.map +1 -1
- package/dist/assets/sustainability/dialPosition1.js.map +1 -1
- package/dist/assets/sustainability/dialPosition2.js.map +1 -1
- package/dist/assets/sustainability/dialPosition3.js.map +1 -1
- package/dist/assets/sustainability/dialPosition4.js.map +1 -1
- package/dist/assets/themed_icons/Active.js.map +1 -1
- package/dist/assets/themed_icons/Chart.js.map +1 -1
- package/dist/assets/themed_icons/Close.js.map +1 -1
- package/dist/assets/themed_icons/Collapse.js.map +1 -1
- package/dist/assets/themed_icons/Columns.js.map +1 -1
- package/dist/assets/themed_icons/ColumnsDark.js.map +1 -1
- package/dist/assets/themed_icons/Database.js.map +1 -1
- package/dist/assets/themed_icons/Download.js.map +1 -1
- package/dist/assets/themed_icons/Expand.js.map +1 -1
- package/dist/assets/themed_icons/Explore.js.map +1 -1
- package/dist/assets/themed_icons/ExternalLink.js.map +1 -1
- package/dist/assets/themed_icons/Filter.js.map +1 -1
- package/dist/assets/themed_icons/Program.js.map +1 -1
- package/dist/assets/themed_icons/Project.js.map +1 -1
- package/dist/assets/themed_icons/Publication.js.map +1 -1
- package/dist/assets/themed_icons/Search.js.map +1 -1
- package/dist/assets/themed_icons/Settings.js.map +1 -1
- package/dist/assets/themed_icons/SortDown.js.map +1 -1
- package/dist/assets/themed_icons/SortUp.js.map +1 -1
- package/dist/assets/themed_icons/SqlEditorIcon.js.map +1 -1
- package/dist/assets/themed_icons/Study.js.map +1 -1
- package/dist/assets/themed_icons/ToolClinical.js.map +1 -1
- package/dist/assets/themed_icons/ToolComputational.js.map +1 -1
- package/dist/assets/themed_icons/ToolExperimental.js.map +1 -1
- package/dist/assets/themed_icons/VerticalDots.js.map +1 -1
- package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js.map +1 -1
- package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
- package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js.map +1 -1
- package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +10 -11
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +73 -76
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/AuthenticatedRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/CertificationRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/LockAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/ValidationRequirement.js.map +1 -1
- package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
- package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
- package/dist/components/AccountLevelBadge/AccountLevelBadge.js.map +1 -1
- package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
- package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgement.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
- package/dist/components/AclEditor/AclEditorSkeleton.js.map +1 -1
- package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
- package/dist/components/AclEditor/ReadOnlyPermissionLevel.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js +2 -4
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessItem.js.map +1 -1
- package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
- package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
- package/dist/components/AdaptiveTwoColumnLayout/AdaptiveTwoColumnLayout.js.map +1 -1
- package/dist/components/AddToDownloadListV2.js.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
- package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
- package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
- package/dist/components/Authentication/LoginFlowBackButton.js.map +1 -1
- package/dist/components/Authentication/LoginForm.js.map +1 -1
- package/dist/components/Authentication/LoginMethod.js.map +1 -1
- package/dist/components/Authentication/LoginMethodButton.js.map +1 -1
- package/dist/components/Authentication/Logout.js.map +1 -1
- package/dist/components/Authentication/OneTimePasswordForm.js.map +1 -1
- package/dist/components/Authentication/PasswordField.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
- package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
- package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
- package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
- package/dist/components/Authentication/TOTPForm.js.map +1 -1
- package/dist/components/Authentication/TwoFactorAuthSettingsPanel.js.map +1 -1
- package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
- package/dist/components/Authentication/TwoFactorSecretDialog.js.map +1 -1
- package/dist/components/Authentication/UsernamePasswordForm.js.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/components/CTASectionWrapper/CTASectionWrapper.js.map +1 -1
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
- package/dist/components/CardContainer/CardContainer.js.map +1 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Desktop.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.js.map +1 -1
- package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
- package/dist/components/CardGridWithLinks/CardGridWithLinks.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationAnswer.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
- package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
- package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js.map +1 -1
- package/dist/components/ChallengeRegisterButton/ChallengeRegisterButton.js.map +1 -1
- package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
- package/dist/components/ChallengeSubmission/AddExternalRepo.js.map +1 -1
- package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +62 -64
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionCommitList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamSearch.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +96 -102
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/OpenMembershipInvitation.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/RegistrationSuccessful.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
- package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
- package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopover.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
- package/dist/components/CitationPopover/useCitation.js.map +1 -1
- package/dist/components/ColorGradient/ColorGradient.js.map +1 -1
- package/dist/components/ColoredBulletListItem/ColoredBulletListItem.js.map +1 -1
- package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
- package/dist/components/ComponentCollapse.js.map +1 -1
- package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiePreferencesDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.d.ts.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.js +9 -9
- package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
- package/dist/components/CopyToClipboardIcon.js.map +1 -1
- package/dist/components/CopyToClipboardInput/CopyToClipboardInput.js.map +1 -1
- package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizardUtils.js.map +1 -1
- package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
- package/dist/components/CreateProjectModal/ProjectVisibilityRadioGroup.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableTypeSelection.js.map +1 -1
- package/dist/components/CreateTableViewWizard/ViewTypeSelection.js.map +1 -1
- package/dist/components/CrispChat/CrispChat.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.js +28 -31
- package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
- package/dist/components/DataGrid/DataGrid.js +72 -72
- package/dist/components/DataGrid/DataGrid.js.map +1 -1
- package/dist/components/DataGrid/DataGridTypes.js.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.d.ts +2 -0
- package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.js +9 -10
- package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
- package/dist/components/DataGrid/StartGridSession.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts +3 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +219 -211
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/GridAutocompleteChip.js.map +1 -1
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
- package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js.map +1 -1
- package/dist/components/DataGrid/components/GridSessionSelectionField.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
- package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
- package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +2 -0
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
- package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridReplicaUsers.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
- package/dist/components/DataGrid/hooks/useRemoteSelections.js.map +1 -1
- package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
- package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts +2 -0
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js +12 -2
- package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
- package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
- package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
- package/dist/components/DataGrid/utils/MessageCounter.js.map +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/calculateColumnWidth.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
- package/dist/components/DataGrid/utils/convertActionToModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/createTestModel.js.map +1 -1
- package/dist/components/DataGrid/utils/enrichRowsWithChangeInfo.js.map +1 -1
- package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellAuthorSid.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
- package/dist/components/DataGrid/utils/getChangeTooltipText.js.map +1 -1
- package/dist/components/DataGrid/utils/getEmptyValue.js.map +1 -1
- package/dist/components/DataGrid/utils/getReplicaCategory.js.map +1 -1
- package/dist/components/DataGrid/utils/isValidationUpToDateForRow.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxMessage.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxNotification.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxRequest.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxRequestComplete.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxResponse.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
- package/dist/components/DataGrid/utils/logicalTimestampToString.js.map +1 -1
- package/dist/components/DataGrid/utils/mapOperationsToModelChanges.js.map +1 -1
- package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
- package/dist/components/DataGrid/utils/replicaSelectionToGridSelection.js.map +1 -1
- package/dist/components/DataGrid/utils/schemaAwarePasteValue.js.map +1 -1
- package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
- package/dist/components/DatasetJsonLdScript.js.map +1 -1
- package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
- package/dist/components/Dialog/ConfirmCloseWithoutSavingDialog.js.map +1 -1
- package/dist/components/DialogBase.js.map +1 -1
- package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
- package/dist/components/DirectDownload/FileEntityDirectDownload.js.map +1 -1
- package/dist/components/DirectDownloadButton.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
- package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
- package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
- package/dist/components/DownloadCart/DirectProgrammaticDownload.js.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
- package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListStats.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
- package/dist/components/DownloadCart/EnableTwoFaRequirementCard.js.map +1 -1
- package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
- package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
- package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
- package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
- package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
- package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
- package/dist/components/DynamicForm/DynamicForm.js.map +1 -1
- package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemCard.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemLayout.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
- package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
- package/dist/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditorModal.js.map +1 -1
- package/dist/components/EntityAclEditor/InheritanceMessage.js.map +1 -1
- package/dist/components/EntityAclEditor/OpenData.js.map +1 -1
- package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +68 -70
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js +32 -35
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
- package/dist/components/EntityFinder/Breadcrumbs.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinder.js +134 -136
- package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinderModal.js.map +1 -1
- package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
- package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
- package/dist/components/EntityFinder/details/EntityDetailsList.js +20 -20
- package/dist/components/EntityFinder/details/EntityDetailsList.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ReferenceDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/SearchDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.js +67 -67
- package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
- package/dist/components/EntityFinder/details/view/VersionColumnHeader.js +1 -1
- package/dist/components/EntityFinder/details/view/VersionColumnHeader.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/DateCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityBadgeIconsCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityFinderCheckboxCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityFinderVersionCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityNameCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityTypeCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityDirectDownloadCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/UserBadgeCell.js.map +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.js +80 -80
- package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
- package/dist/components/EntityFinder/tree/VirtualizedTree.js +31 -31
- package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
- package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
- package/dist/components/EntityForm/EntityForm.js.map +1 -1
- package/dist/components/EntityHeaderTable/DebouncedInput.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTableCellRenderers.js.map +1 -1
- package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
- package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
- package/dist/components/EntityIcon.js.map +1 -1
- package/dist/components/EntityLink.js.map +1 -1
- package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
- package/dist/components/EntityTreeTable/EntityTreeTable.js.map +1 -1
- package/dist/components/EntityTreeTable/components/AutoLoadMore.js.map +1 -1
- package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityBadgeIconsCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableContext.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableRow.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
- package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
- package/dist/components/EntityUpload/EntityUploadModal.js +29 -31
- package/dist/components/EntityUpload/EntityUploadModal.js.map +1 -1
- package/dist/components/EntityUpload/EntityUploadPromptDialog.js.map +1 -1
- package/dist/components/EntityUpload/ExternalObjectStoreCredentialsForm.js.map +1 -1
- package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
- package/dist/components/EntityUpload/LinkToURL.js.map +1 -1
- package/dist/components/EntityUpload/ProjectStorageLimitAlert.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewScopeEditor.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewScopeEditorModal.js.map +1 -1
- package/dist/components/Evaluation/CreatedOnByUserDiv.js.map +1 -1
- package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -1
- package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditorPage.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditorDropdown.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditorList.js.map +1 -1
- package/dist/components/Evaluation/input_models/models.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
- package/dist/components/EvaluationFinder/EvaluationFinder.js.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.d.ts.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js +24 -30
- package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
- package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataPlots.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
- package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
- package/dist/components/FeaturedResearch/FeaturedResearch.js +16 -18
- package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolCard.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
- package/dist/components/FilePreview/EntityPreview.js.map +1 -1
- package/dist/components/FilePreview/FileEntityPreview.js.map +1 -1
- package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
- package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
- package/dist/components/FilePreview/PdfPreview.js.map +1 -1
- package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
- package/dist/components/FilePreview/PreviewUtils.js.map +1 -1
- package/dist/components/FileUpload/FileUpload.js.map +1 -1
- package/dist/components/Forum/DiscussionReply.js.map +1 -1
- package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
- package/dist/components/Forum/DiscussionThread.js.map +1 -1
- package/dist/components/Forum/ForumPage.js.map +1 -1
- package/dist/components/Forum/ForumTable.js.map +1 -1
- package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
- package/dist/components/Forum/SubscribersModal.js.map +1 -1
- package/dist/components/ForumSearch/ForumSearch.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearch.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
- package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
- package/dist/components/GenericCard/BioregistryRules.js.map +1 -1
- package/dist/components/GenericCard/CardUtils.js.map +1 -1
- package/dist/components/GenericCard/CollapsibleDescription.js.map +1 -1
- package/dist/components/GenericCard/CroissantButton/CroissantButton.js.map +1 -1
- package/dist/components/GenericCard/GenericCard.js.map +1 -1
- package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
- package/dist/components/GenericCard/GenericCardIcon.js.map +1 -1
- package/dist/components/GenericCard/GenericCardTitle.js.map +1 -1
- package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -1
- package/dist/components/GenericCard/Linkify.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/GenericCard/useResolvedSynapseEntity.js.map +1 -1
- package/dist/components/Goals/Goals.Desktop.js.map +1 -1
- package/dist/components/Goals/Goals.Mobile.js.map +1 -1
- package/dist/components/Goals/Goals.js +25 -27
- package/dist/components/Goals/Goals.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.js +14 -16
- package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Desktop.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.js +14 -16
- package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
- package/dist/components/GoogleAnalytics/GoogleAnalytics.js.map +1 -1
- package/dist/components/GoogleMap/GoogleMap.js.map +1 -1
- package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
- package/dist/components/HasAccess/AccessIcon.js +10 -10
- package/dist/components/HasAccess/AccessIcon.js.map +1 -1
- package/dist/components/HasAccess/HasAccessV2.js.map +1 -1
- package/dist/components/HasAccess/useHasAccess.js.map +1 -1
- package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
- package/dist/components/HeaderCard.js.map +1 -1
- package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
- package/dist/components/HexGrid/HexGrid.js.map +1 -1
- package/dist/components/IDUReport/IDUReport.js.map +1 -1
- package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
- package/dist/components/Icon/Icon.js.map +1 -1
- package/dist/components/IconList.js.map +1 -1
- package/dist/components/IconSvg/IconSvg.js.map +1 -1
- package/dist/components/IconSvgButton.js.map +1 -1
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js +7 -9
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
- package/dist/components/ImageFromSynapseTable.js.map +1 -1
- package/dist/components/InteractiveCopyIdsIcon.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditorModal.js.map +1 -1
- package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
- package/dist/components/JsonLdScript.js.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTitleTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/DescriptionFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ErrorListTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldDescriptionTable.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldErrorTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/BooleanWidget.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/DateTimeWidget.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
- package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
- package/dist/components/Markdown/GovernanceMarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
- package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.js +75 -106
- package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.d.ts +14 -4
- package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.js +38 -37
- package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
- package/dist/components/Markdown/MarkdownWidget.js.map +1 -1
- package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
- package/dist/components/Markdown/UserMentionModal.js.map +1 -1
- package/dist/components/Markdown/widget/Bookmarks.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownEntityPreview.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownIDUReport.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapseImage.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapseTable.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownTableOfContents.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownUserOrTeamBadge.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownVideo.js.map +1 -1
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.FormSchema.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
- package/dist/components/MuiContainer.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
- package/dist/components/OAuthClientManagement/CreateOAuthClient.js.map +1 -1
- package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
- package/dist/components/OrientationBanner/OrientationBanner.js.map +1 -1
- package/dist/components/PageProgress/PageProgress.js.map +1 -1
- package/dist/components/Plot/BarPlot.js.map +1 -1
- package/dist/components/Plot/DotPlot.js.map +1 -1
- package/dist/components/Plot/Plot.d.ts +12 -1
- package/dist/components/Plot/Plot.d.ts.map +1 -1
- package/dist/components/Plot/Plot.js +5 -1
- package/dist/components/Plot/Plot.js.map +1 -1
- package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
- package/dist/components/Plot/SynapsePlot.js.map +1 -1
- package/dist/components/Plot/SynapseSankeyPlot.d.ts +12 -0
- package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -0
- package/dist/components/Plot/SynapseSankeyPlot.js +54 -0
- package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -0
- package/dist/components/Plot/ThemesPlot.js.map +1 -1
- package/dist/components/Plot/UpsetPlot.js.map +1 -1
- package/dist/components/Plot/index.d.ts +3 -1
- package/dist/components/Plot/index.d.ts.map +1 -1
- package/dist/components/Plot/index.js +2 -1
- package/dist/components/Plot/safe-react-plotly-factory.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditorModal.js.map +1 -1
- package/dist/components/PortalFeatureHighlights/PortalFeatureHighlights.js.map +1 -1
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js +4 -6
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
- package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
- package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
- package/dist/components/PortalList/PortalCard.js.map +1 -1
- package/dist/components/PortalList/PortalList.js.map +1 -1
- package/dist/components/PortalSectionHeader/PortalSectionHeader.js.map +1 -1
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js +69 -69
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
- package/dist/components/Programs/Programs.Desktop.js.map +1 -1
- package/dist/components/Programs/Programs.Mobile.js.map +1 -1
- package/dist/components/Programs/Programs.js.map +1 -1
- package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
- package/dist/components/ProvenanceGraph/ActivityNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/EntityNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/EntityPlaceholderNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ExpandGraphNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ExternalGraphNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceEntityIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js +13 -13
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/UndefinedNodeLabel.js.map +1 -1
- package/dist/components/QueryContext/QueryContext.js.map +1 -1
- package/dist/components/QueryCount/QueryCount.js.map +1 -1
- package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
- package/dist/components/QuerySortSelector.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/NoContentPlaceholder.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationContext.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapper.js +27 -27
- package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapperLoadingScreen.js.map +1 -1
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
- package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
- package/dist/components/QueryWrapper/ViewMoreQueryResultsButton.js.map +1 -1
- package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
- package/dist/components/QueryWrapper/useComputeRowSelectionPrimaryKey.js.map +1 -1
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
- package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
- package/dist/components/QueryWrapper/useHasFacetedSelectColumn.js.map +1 -1
- package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
- package/dist/components/RORInstitutionField/RORInstitutionField.js.map +1 -1
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js +6 -8
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
- package/dist/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCard.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardMedium.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
- package/dist/components/RenderIfInView/RenderIfInView.js.map +1 -1
- package/dist/components/ResizableContainer/ResizableContainer.js.map +1 -1
- package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
- package/dist/components/Resources/Resources.Desktop.js.map +1 -1
- package/dist/components/Resources/Resources.Mobile.js.map +1 -1
- package/dist/components/Resources/Resources.js +8 -11
- package/dist/components/Resources/Resources.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
- package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
- package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/SynapseAnnotationsWrapIfAdditionalTemplate.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/widget/TextWidget.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessRequirementTextInstructions.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
- package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
- package/dist/components/ShowMore/ShowMore.js.map +1 -1
- package/dist/components/SignInButton.js.map +1 -1
- package/dist/components/SignInRequiredModal/SignInRequiredModal.js.map +1 -1
- package/dist/components/Skeleton/SkeletonButton.js.map +1 -1
- package/dist/components/Skeleton/SkeletonInlineBlock.js.map +1 -1
- package/dist/components/Skeleton/SkeletonParagraph.js.map +1 -1
- package/dist/components/Skeleton/SkeletonTable.js.map +1 -1
- package/dist/components/SmartLink/SmartButton.js.map +1 -1
- package/dist/components/SmartLink/SmartLink.js.map +1 -1
- package/dist/components/SmartLink/useSmartLink.js.map +1 -1
- package/dist/components/SourceAppImage.js.map +1 -1
- package/dist/components/SpinnerButton/SpinnerButton.js.map +1 -1
- package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditor.js.map +1 -1
- package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.js.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
- package/dist/components/StatisticsPlot.js.map +1 -1
- package/dist/components/StepperDialog/StepperDialog.js.map +1 -1
- package/dist/components/StorybookComponentWrapper.js.map +1 -1
- package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.js.map +1 -1
- package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.js.map +1 -1
- package/dist/components/SubscriptionPage/ForumTopic.js.map +1 -1
- package/dist/components/SubscriptionPage/SubscriptionItem.js.map +1 -1
- package/dist/components/SubscriptionPage/SubscriptionPage.js.map +1 -1
- package/dist/components/SubscriptionPage/ThreadTopic.js.map +1 -1
- package/dist/components/SubscriptionPage/Topic.js.map +1 -1
- package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
- package/dist/components/SustainabilityScorecard/Dial.js.map +1 -1
- package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardUtils.js.map +1 -1
- package/dist/components/SynapseChat/AccessLevelMenu.js.map +1 -1
- package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatDialog.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
- package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
- package/dist/components/SynapseChat/useChatState.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseLinksColumn.js.map +1 -1
- package/dist/components/SynapseForm/DataDebug.js.map +1 -1
- package/dist/components/SynapseForm/Header.js.map +1 -1
- package/dist/components/SynapseForm/NavButtons.js.map +1 -1
- package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
- package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
- package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormCheckboxWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormCheckboxesWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormRadioWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormSubmissionGrid.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormUtils.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
- package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
- package/dist/components/SynapseForm/types.js.map +1 -1
- package/dist/components/SynapseForm/useGetFormPropsFromSearchParams.js.map +1 -1
- package/dist/components/SynapseHomepageV2/FloatingBlobsBackground.js.map +1 -1
- package/dist/components/SynapseHomepageV2/HomepageStyles.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbers.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasets.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatures.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +18 -21
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageV2.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHotdrops.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHotdropsItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInAction.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlan.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlanContent.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlansPage.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +78 -78
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HasAccessChip.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageRouter.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/chipStyles.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControlButton.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControlPanel.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControls.js.map +1 -1
- package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
- package/dist/components/SynapseTable/ExpandCollapseButton.js.map +1 -1
- package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
- package/dist/components/SynapseTable/NoContentAvailable.js.map +1 -1
- package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
- package/dist/components/SynapseTable/SearchResultsNotFound.js.map +1 -1
- package/dist/components/SynapseTable/SearchV2.js.map +1 -1
- package/dist/components/SynapseTable/SqlEditor.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/EntityIdList.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/EvaluationIdRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/ComplexJSONRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONArrayRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONObjectRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONPrimitiveRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONRendererUtils.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONTableCellRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/UserIdList.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableConstants.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableContext.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
- package/dist/components/SynapseTable/TableIsEmpty.js.map +1 -1
- package/dist/components/SynapseTable/TablePagination.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorCheckboxCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorUtils.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +131 -133
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/components/SynapseTable/datasets/EntityFetchErrorCell.js.map +1 -1
- package/dist/components/SynapseTable/export/ADDiscoveryPortalInstructions.js.map +1 -1
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +48 -51
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformDisclaimer.js.map +1 -1
- package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadLoginModal.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
- package/dist/components/SynapseTable/useTableSort.js.map +1 -1
- package/dist/components/SystemUseNotification/SystemUseNotification.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +4 -4
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +9 -9
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DefaultValueValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EnumValuesValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js.map +1 -1
- package/dist/components/TableFeedCards/TableFeedCards.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/TableBody.js.map +1 -1
- package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
- package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
- package/dist/components/TeamBadge.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
- package/dist/components/TemplateComponent.js.map +1 -1
- package/dist/components/TemporaryBanner/TemporaryBanner.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditionsItem.js.map +1 -1
- package/dist/components/TextField/TextField.js.map +1 -1
- package/dist/components/TextField/TextFieldWithWordLimit.js.map +1 -1
- package/dist/components/TextToComponentCollapse.js.map +1 -1
- package/dist/components/ThemeGallery/ThemeGallery.js.map +1 -1
- package/dist/components/TimelinePlot/TimelineLegendItem.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
- package/dist/components/TimelinePlot/phasesQueryResponseData.js.map +1 -1
- package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
- package/dist/components/TotalQueryResults.js.map +1 -1
- package/dist/components/UserCard/Avatar.js.map +1 -1
- package/dist/components/UserCard/UserBadge.js.map +1 -1
- package/dist/components/UserCard/UserCard.js.map +1 -1
- package/dist/components/UserCard/UserCardContextMenu.js.map +1 -1
- package/dist/components/UserCard/UserCardLarge.js.map +1 -1
- package/dist/components/UserCard/UserCardMedium.js.map +1 -1
- package/dist/components/UserCardList/UserCardList.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.js.map +1 -1
- package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
- package/dist/components/UserOrTeamBadge/UserOrTeamBadge.js.map +1 -1
- package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
- package/dist/components/UserProfileLinks/UserChallenges.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProfileLinks.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
- package/dist/components/UserProfileLinks/UserTeams.js.map +1 -1
- package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
- package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
- package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
- package/dist/components/Webhook/WebhookVerificationDialog.js.map +1 -1
- package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
- package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButton.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButtonDescription.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButtonGroup.js.map +1 -1
- package/dist/components/WordPress/WordPressLatestPostChip.js.map +1 -1
- package/dist/components/WordPress/useWordPressCategories.js.map +1 -1
- package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
- package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
- package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementSearchBox/AccessRequirementSearchBox.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
- package/dist/components/dataaccess/RejectDataAccessRequestModal.js.map +1 -1
- package/dist/components/dataaccess/RejectProfileValidationRequestModal.js.map +1 -1
- package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
- package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/SubmissionSortStateTranslator.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
- package/dist/components/doi/DoiFormSchemas.js.map +1 -1
- package/dist/components/doi/PrivateEntityDoiWarning.js.map +1 -1
- package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUI.js +30 -32
- package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
- package/dist/components/download_list/DownloadDetails.js.map +1 -1
- package/dist/components/download_list/index.js.map +1 -1
- package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
- package/dist/components/entity/metadata/EntityAnnotationKey.js.map +1 -1
- package/dist/components/entity/metadata/EntityModal.js.map +1 -1
- package/dist/components/entity/metadata/MetadataTable.js.map +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
- package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
- package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
- package/dist/components/entity/page/title_bar/CitationsDialog.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js.map +1 -1
- package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
- package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
- package/dist/components/error/ErrorBanner.js.map +1 -1
- package/dist/components/error/ErrorChip.js.map +1 -1
- package/dist/components/error/ErrorPage.js +24 -24
- package/dist/components/error/ErrorPage.js.map +1 -1
- package/dist/components/error/RouteErrorBoundary.js.map +1 -1
- package/dist/components/error/SendMessageToEntityOwnerDialog.js.map +1 -1
- package/dist/components/error/SynapseObjectDOIInfo.js.map +1 -1
- package/dist/components/favorites/FavoriteButton.js.map +1 -1
- package/dist/components/favorites/FavoritesPage.js.map +1 -1
- package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
- package/dist/components/file/upload/MultiFileUploadProgress.js.map +1 -1
- package/dist/components/file/upload/UploadFilePanel.js.map +1 -1
- package/dist/components/form/RadioGroupWithOtherString.js.map +1 -1
- package/dist/components/home_page/ExpandableContent.js.map +1 -1
- package/dist/components/index.js +48 -47
- package/dist/components/layout/InfiniteTableLayout.js.map +1 -1
- package/dist/components/layout/SWCHeader.js.map +1 -1
- package/dist/components/layout/SWCPageLayout.js.map +1 -1
- package/dist/components/menu/ComplexMenu.js.map +1 -1
- package/dist/components/menu/DropdownMenu.js.map +1 -1
- package/dist/components/row_renderers/Dataset.js.map +1 -1
- package/dist/components/row_renderers/Funder.js.map +1 -1
- package/dist/components/row_renderers/ObservationCard.js.map +1 -1
- package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
- package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
- package/dist/components/styled/HoverPopover.js.map +1 -1
- package/dist/components/styled/InlineBadge.js.map +1 -1
- package/dist/components/styled/InputSizedButton.js.map +1 -1
- package/dist/components/styled/LargeButton.js.map +1 -1
- package/dist/components/styled/LeftRightPanel.js.map +1 -1
- package/dist/components/styled/LightTooltip.js.map +1 -1
- package/dist/components/styled/StyledFormControl.js.map +1 -1
- package/dist/components/styled/StyledPopover.js.map +1 -1
- package/dist/components/styled/StyledTableContainer.js.map +1 -1
- package/dist/components/styled/WideButton.js.map +1 -1
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +39 -42
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -1
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -1
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js +11 -11
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -1
- package/dist/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm.js.map +1 -1
- package/dist/components/trash/TrashCanList.js.map +1 -1
- package/dist/components/utils/Blocker.js.map +1 -1
- package/dist/components/utils/ConditionalWrapper.js.map +1 -1
- package/dist/components/utils/VisibilityObserver.js.map +1 -1
- package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
- package/dist/components/widgets/EntityColumnImage.js.map +1 -1
- package/dist/components/widgets/FileHandleLink.js.map +1 -1
- package/dist/components/widgets/ImageFileHandle.js.map +1 -1
- package/dist/components/widgets/LoginAwareButton.js.map +1 -1
- package/dist/components/widgets/Range.js.map +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/components/widgets/SynapseImage.js.map +1 -1
- package/dist/components/widgets/SynapseVideo.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainerSkeleton.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPill.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
- package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
- package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetChip.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterHeader.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterSkeleton.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.js +3 -3
- package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +41 -41
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
- package/dist/features/curator/GridPage/GridPage.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageRouter.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
- package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
- package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
- package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
- package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
- package/dist/features/curator/dashboard/components/UserOrTeamChip.js.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +5 -0
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +227 -181
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +3 -0
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.d.ts +5 -0
- package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.js +2 -2
- package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getLatestGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/taskHasAssignee.js.map +1 -1
- package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
- package/dist/index.js +54 -53
- package/dist/index.js.map +1 -1
- package/dist/mocks/MockAccessApprovals.js.map +1 -1
- package/dist/mocks/MockSynapseContext.js.map +1 -1
- package/dist/mocks/accessRequirement/mockAccessRequirementAcls.js.map +1 -1
- package/dist/mocks/accessRequirement/mockAccessRequirements.js.map +1 -1
- package/dist/mocks/applicationSessionContext/MockApplicationSessionContext.js.map +1 -1
- package/dist/mocks/challenge/mockChallenge.js.map +1 -1
- package/dist/mocks/chat/mockChat.js.map +1 -1
- package/dist/mocks/curation/mockCurationTask.js.map +1 -1
- package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
- package/dist/mocks/dataaccess/MockResearchProject.js.map +1 -1
- package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
- package/dist/mocks/dataaccess/mockAccessRequest.js.map +1 -1
- package/dist/mocks/discussion/mock_discussion.js.map +1 -1
- package/dist/mocks/doi/MockDoi.js.map +1 -1
- package/dist/mocks/entity/index.js.map +1 -1
- package/dist/mocks/entity/mockDataset.js.map +1 -1
- package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
- package/dist/mocks/entity/mockEntity.js.map +1 -1
- package/dist/mocks/entity/mockEvaluationQueue.js.map +1 -1
- package/dist/mocks/entity/mockFileEntity.js.map +1 -1
- package/dist/mocks/entity/mockFileEntityACLVariants.js.map +1 -1
- package/dist/mocks/entity/mockFileView.js.map +1 -1
- package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
- package/dist/mocks/entity/mockProject.js.map +1 -1
- package/dist/mocks/entity/mockProjectView.js.map +1 -1
- package/dist/mocks/entity/mockReleaseCardsTable.js.map +1 -1
- package/dist/mocks/entity/mockRootEntity.js.map +1 -1
- package/dist/mocks/entity/mockTableEntity.js.map +1 -1
- package/dist/mocks/faker/fakerUtils.js.map +1 -1
- package/dist/mocks/faker/generateDiscussion.js.map +1 -1
- package/dist/mocks/faker/generateEvaluation.js.map +1 -1
- package/dist/mocks/faker/generateFakeEntity.js.map +1 -1
- package/dist/mocks/faker/generateSubscription.js.map +1 -1
- package/dist/mocks/mockAnnotationColumns.js.map +1 -1
- package/dist/mocks/mockCertificationQuiz.js.map +1 -1
- package/dist/mocks/mockDataCatalogQuery.js.map +1 -1
- package/dist/mocks/mockFileViewQuery.js.map +1 -1
- package/dist/mocks/mockOAuthClientAcls.js.map +1 -1
- package/dist/mocks/mockQueryResponseData.js.map +1 -1
- package/dist/mocks/mockQueryResponseDataWithManyEnumFacets.js.map +1 -1
- package/dist/mocks/mockSchema.js.map +1 -1
- package/dist/mocks/mockSearchQueryData.js.map +1 -1
- package/dist/mocks/mockShortIo.js.map +1 -1
- package/dist/mocks/mockSourceAppConfigQuery.js.map +1 -1
- package/dist/mocks/mockSubscription.js.map +1 -1
- package/dist/mocks/mockWiki.js.map +1 -1
- package/dist/mocks/mockWikiPageKey.js.map +1 -1
- package/dist/mocks/mock_drug_tool_data.js.map +1 -1
- package/dist/mocks/mock_file_handle.js.map +1 -1
- package/dist/mocks/mock_file_statistics.js.map +1 -1
- package/dist/mocks/mock_has_access_data.js.map +1 -1
- package/dist/mocks/mock_upload_destination.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementAclHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/dataciteHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/doiHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/evaluationHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/messageHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/oauthClientAclHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/projectStorageHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/realmHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/researchProjectHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/shortIoHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryService.js.map +1 -1
- package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/termsOfServiceHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/webhookHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers.js.map +1 -1
- package/dist/mocks/msw/server.d.ts +1 -1
- package/dist/mocks/msw/server.d.ts.map +1 -1
- package/dist/mocks/msw/server.js.map +1 -1
- package/dist/mocks/msw/util/BasicMockedCrudService.js.map +1 -1
- package/dist/mocks/oauth/MockClient.js.map +1 -1
- package/dist/mocks/personalAccessToken/mockPersonalAccessToken.js.map +1 -1
- package/dist/mocks/projectStorage/mockProjectStorageLimits.js.map +1 -1
- package/dist/mocks/provenance/mockActivity.js.map +1 -1
- package/dist/mocks/query/defaultFileViewColumnModels.js.map +1 -1
- package/dist/mocks/query/mockFeaturedDataTabsQueryData.js.map +1 -1
- package/dist/mocks/query/mockHomepageQueryResultData.js.map +1 -1
- package/dist/mocks/query/mockProjectViewQueryResults.js.map +1 -1
- package/dist/mocks/query/mockRejectionReasonsTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mockUserCardTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mock_query_data.js.map +1 -1
- package/dist/mocks/query/syn16787123.js.map +1 -1
- package/dist/mocks/query/syn17328596.js.map +1 -1
- package/dist/mocks/query/syn51735464.js.map +1 -1
- package/dist/mocks/query/syn51735464GroupBySpecies.js.map +1 -1
- package/dist/mocks/realm/mockRealmPrincipal.js.map +1 -1
- package/dist/mocks/team/mockTeam.js.map +1 -1
- package/dist/mocks/termsOfService/mockTermsOfService.js.map +1 -1
- package/dist/mocks/user/mock_user_profile.js.map +1 -1
- package/dist/mocks/usergroup/mockUserGroup.js.map +1 -1
- package/dist/ror-client/index.js.map +1 -1
- package/dist/stories/ColorPaletteInspector.js.map +1 -1
- package/dist/stories/ToastDemo.js.map +1 -1
- package/dist/stories/stubs/Alert/MuiAlert.js.map +1 -1
- package/dist/stories/stubs/Button/MuiButton.js.map +1 -1
- package/dist/stories/stubs/Dialog/MuiDialog.js.map +1 -1
- package/dist/stories/stubs/TextField/MuiTextField.js.map +1 -1
- package/dist/stories/stubs/Tooltip/MuiTooltip.js.map +1 -1
- package/dist/synapse-client/HttpClient.js.map +1 -1
- package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
- package/dist/synapse-client/SynapseClient.js +61 -69
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-client/SynapseClientUtils.js.map +1 -1
- package/dist/synapse-queries/InfiniteQueryUtils.js.map +1 -1
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
- package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
- package/dist/synapse-queries/asynchronous/usePollAsynchronousJob.js.map +1 -1
- package/dist/synapse-queries/auth/useChangePassword.js.map +1 -1
- package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
- package/dist/synapse-queries/auth/useResetPassword.js.map +1 -1
- package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
- package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
- package/dist/synapse-queries/chat/useChat.js.map +1 -1
- package/dist/synapse-queries/croissant/useGetCroissantUrl.js.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.js +12 -2
- package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessApprovals.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useGetApprovedSubmissionInfo.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
- package/dist/synapse-queries/docker/useGetDockerTag.js.map +1 -1
- package/dist/synapse-queries/doi/useDOI.js.map +1 -1
- package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
- package/dist/synapse-queries/entity/useActionsRequiredForTableQuery.js.map +1 -1
- package/dist/synapse-queries/entity/useEntity.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityActionsRequired.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityChallenge.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityChildren.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityForum.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityHeaders.js.map +1 -1
- package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useProjectStorage.js.map +1 -1
- package/dist/synapse-queries/entity/useSchema.js.map +1 -1
- package/dist/synapse-queries/evaluation/useEvaluation.js.map +1 -1
- package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
- package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
- package/dist/synapse-queries/file/useFiles.js.map +1 -1
- package/dist/synapse-queries/file/useSynapseMultipartUpload.js.map +1 -1
- package/dist/synapse-queries/file/useUploadDestination.js.map +1 -1
- package/dist/synapse-queries/forum/useForum.js.map +1 -1
- package/dist/synapse-queries/forum/useReply.js.map +1 -1
- package/dist/synapse-queries/forum/useThread.js.map +1 -1
- package/dist/synapse-queries/github/useGithub.js.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
- package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
- package/dist/synapse-queries/grid/useGridPresignedUrl.js.map +1 -1
- package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
- package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
- package/dist/synapse-queries/message/useMessage.js.map +1 -1
- package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
- package/dist/synapse-queries/portal/useListPortals.js.map +1 -1
- package/dist/synapse-queries/portal/usePortal.js.map +1 -1
- package/dist/synapse-queries/provenance/useGetActivityForEntity.js.map +1 -1
- package/dist/synapse-queries/realm/useRealmPrincipals.js.map +1 -1
- package/dist/synapse-queries/ror/index.js.map +1 -1
- package/dist/synapse-queries/search/useSearch.js.map +1 -1
- package/dist/synapse-queries/search/useSuggestion.js.map +1 -1
- package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
- package/dist/synapse-queries/table/useColumnModel.js.map +1 -1
- package/dist/synapse-queries/table/useDefiningSql.js.map +1 -1
- package/dist/synapse-queries/table/useDownloadTable.js.map +1 -1
- package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
- package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
- package/dist/synapse-queries/team/useTeam.js.map +1 -1
- package/dist/synapse-queries/team/useTeamList.js.map +1 -1
- package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
- package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
- package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
- package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
- package/dist/synapse-queries/user/useFavorites.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserProjects.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserTeams.js.map +1 -1
- package/dist/synapse-queries/user/usePersonalAccessToken.js.map +1 -1
- package/dist/synapse-queries/user/useProjects.js.map +1 -1
- package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
- package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
- package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
- package/dist/synapse-queries/verificationSubmission/useVerificationSubmission.js.map +1 -1
- package/dist/synapse-queries/webhook/useWebhook.js.map +1 -1
- package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
- package/dist/testutils/ComponentToBePassedPropsCustomMatcher.js.map +1 -1
- package/dist/testutils/IsEditingStoreTestUtils.js +17 -0
- package/dist/testutils/IsEditingStoreTestUtils.js.map +1 -0
- package/dist/testutils/LocationTracker.js.map +1 -1
- package/dist/testutils/MarkdownSynapseUtils.js.map +1 -1
- package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
- package/dist/testutils/TestingLibraryUtils.js +18 -16
- package/dist/testutils/TestingLibraryUtils.js.map +1 -1
- package/dist/testutils/muiDatePickerMock.js.map +1 -1
- package/dist/testutils/vitest.setup.js.map +1 -1
- package/dist/theme/DefaultTheme.js.map +1 -1
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/mergeTheme.js.map +1 -1
- package/dist/theme/palette/Palettes.js.map +1 -1
- package/dist/theme/spreadSx.js.map +1 -1
- package/dist/theme/typography/Link.js.map +1 -1
- package/dist/theme/typography/Typography.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/AppUtils/AppUtils.d.ts.map +1 -1
- package/dist/utils/AppUtils/AppUtils.js +11 -11
- package/dist/utils/AppUtils/AppUtils.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionContext.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/AuthenticationGuard.js.map +1 -1
- package/dist/utils/AppUtils/session/SessionInitializedGuard.js.map +1 -1
- package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
- package/dist/utils/ContentTypeUtils.js.map +1 -1
- package/dist/utils/OrientationBannerConstants.js.map +1 -1
- package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
- package/dist/utils/SynapseConstants.js.map +1 -1
- package/dist/utils/analytics/sendAnalyticsEvent.js.map +1 -1
- package/dist/utils/analytics/sendSearchEvent.js.map +1 -1
- package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
- package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
- package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
- package/dist/utils/context/AridhiaContext.js.map +1 -1
- package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
- package/dist/utils/context/FullContextProvider.js.map +1 -1
- package/dist/utils/context/GlobalIsEditingContext.js.map +1 -1
- package/dist/utils/context/SynapseContext.js.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
- package/dist/utils/functions/ArrayUtils.js.map +1 -1
- package/dist/utils/functions/DateFormatter.js.map +1 -1
- package/dist/utils/functions/DateTimeUtils.js.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
- package/dist/utils/functions/FileHandleUtils.js.map +1 -1
- package/dist/utils/functions/GridApiUtils.js.map +1 -1
- package/dist/utils/functions/IsEqualTreatUndefinedAsMissing.js.map +1 -1
- package/dist/utils/functions/IsExternalLink.js.map +1 -1
- package/dist/utils/functions/ObjectUtils.js.map +1 -1
- package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
- package/dist/utils/functions/RealmUtils.js.map +1 -1
- package/dist/utils/functions/RegularExpressions.js.map +1 -1
- package/dist/utils/functions/ResolveLinkEntity.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
- package/dist/utils/functions/SqlFunctions.js.map +1 -1
- package/dist/utils/functions/StringUtils.js.map +1 -1
- package/dist/utils/functions/TableColumnSchemaUtils.js.map +1 -1
- package/dist/utils/functions/calculateFriendlyFileSize.js.map +1 -1
- package/dist/utils/functions/colorPalette.js.map +1 -1
- package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
- package/dist/utils/functions/dispatchDownloadListChangeEvent.js.map +1 -1
- package/dist/utils/functions/generateCsrfToken.js.map +1 -1
- package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
- package/dist/utils/functions/getEndpoint.js +3 -3
- package/dist/utils/functions/getEndpoint.js.map +1 -1
- package/dist/utils/functions/getPrincipalDisplayName.js.map +1 -1
- package/dist/utils/functions/getSynapseEntityUrl.js.map +1 -1
- package/dist/utils/functions/getSynapseWebClientLink.js.map +1 -1
- package/dist/utils/functions/getUserData.js.map +1 -1
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
- package/dist/utils/functions/unCamelCase.js.map +1 -1
- package/dist/utils/hooks/useConfirmItems.js.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.d.ts.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.js +24 -23
- package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
- package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
- package/dist/utils/hooks/useDebouncedEffect.js.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
- package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
- package/dist/utils/hooks/useGetEntityMetadata.js.map +1 -1
- package/dist/utils/hooks/useGetGoalData.js +2 -4
- package/dist/utils/hooks/useGetGoalData.js.map +1 -1
- package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
- package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
- package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
- package/dist/utils/hooks/useIsBot.js.map +1 -1
- package/dist/utils/hooks/useJsonLdScriptElement.js.map +1 -1
- package/dist/utils/hooks/useListState.js.map +1 -1
- package/dist/utils/hooks/useLogin.js.map +1 -1
- package/dist/utils/hooks/useMediaPrintOnly.js.map +1 -1
- package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
- package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
- package/dist/utils/hooks/useOneSageURL.js.map +1 -1
- package/dist/utils/hooks/useOverlay.js.map +1 -1
- package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
- package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
- package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
- package/dist/utils/hooks/useSet.js.map +1 -1
- package/dist/utils/hooks/useShowDesktop.js.map +1 -1
- package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
- package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
- package/dist/utils/hooks/useTraceUpdate.js.map +1 -1
- package/dist/utils/hooks/useTrackTransientListItems.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/getActiveUploadCount.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/getFileEntityIdWithSameName.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
- package/dist/utils/html/TargetEnum.js.map +1 -1
- package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
- package/dist/utils/jsonschema/getEnumeratedValues.js.map +1 -1
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
- package/dist/utils/jsonschema/getRequiredAttributes.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaForProperty.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
- package/dist/utils/jsonschema/getType.js.map +1 -1
- package/dist/utils/searchDefaults.js.map +1 -1
- package/dist/utils/slots/SlotUtils.js.map +1 -1
- package/dist/utils/types/IsType.js.map +1 -1
- package/package.json +67 -66
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridSessionSelectionField.js","names":["displayToast","useDeleteGridSession","useGetGridSessionsInfinite","Autocomplete","Grid","MenuItem","TextField","GridSession","noop","useMemo","GridSessionSelectionFieldProps","inputValue","onInputValueChange","value","onConfirmInput","onSessionChange","session","onReplicaChange","replicaId","GridSessionSelectionField","props","$","_c","t0","t1","t2","undefined","t3","Symbol","for","data","t4","onSuccess","_data","sessionId","onError","_temp","mutate","deleteSession","t5","pages","flatMap","_temp2","availableSessions","t6","_e","t7","_e_0","value_0","t8","e","key","t9","props_0","display","padding","cursor","borderBottom","justifyContent","textOverflow","overflow","whiteSpace","xs","md","sourceEntityId","gridJsonSchema$Id","marginLeft","color","fontSize","userSelect","e_0","stopPropagation","t10","_temp3","_temp4","option","params","page","error","reason"],"sources":["../../../../src/components/DataGrid/components/GridSessionSelectionField.tsx"],"sourcesContent":["import { displayToast } from '@/components/ToastMessage/ToastMessage'\nimport {\n useDeleteGridSession,\n useGetGridSessionsInfinite,\n} from '@/synapse-queries/grid/useGridSession'\nimport { Autocomplete, Grid, MenuItem, TextField } from '@mui/material'\nimport { GridSession } from '@sage-bionetworks/synapse-client'\nimport noop from 'lodash-es/noop'\nimport { useMemo } from 'react'\n\ntype GridSessionSelectionFieldProps = {\n inputValue: string\n onInputValueChange: (value: string) => void\n onConfirmInput?: (value: string) => void\n onSessionChange?: (session: GridSession | null) => void\n onReplicaChange?: (replicaId: number | null) => void\n}\n\n/**\n * Utility form field to pick the grid session from existing sessions. Currently, for testing/demo purposes only.\n */\nexport default function GridSessionSelectionField(\n props: GridSessionSelectionFieldProps,\n) {\n const {\n inputValue,\n onInputValueChange,\n onConfirmInput = noop,\n onSessionChange = noop,\n onReplicaChange = noop,\n } = props\n\n const { data } = useGetGridSessionsInfinite({})\n\n const { mutate: deleteSession } = useDeleteGridSession({\n onSuccess: (_data, sessionId) => {\n displayToast(`Successfully deleted grid session ${sessionId}`, 'success')\n onSessionChange(null)\n onReplicaChange(null)\n },\n onError: error => {\n displayToast(error.reason, 'danger')\n },\n })\n const availableSessions = useMemo(\n () => data?.pages.flatMap(page => page.page || []) || [],\n [data],\n )\n\n return (\n <Autocomplete\n freeSolo\n fullWidth\n renderInput={params => (\n <TextField\n {...params}\n label={'SQL Query or Session ID'}\n placeholder=\"Enter a SQL query, RecordSet ID, or session ID\"\n />\n )}\n options={availableSessions}\n getOptionLabel={option =>\n typeof option === 'string' ? option : option.sessionId || ''\n }\n value={inputValue}\n onInputChange={(_e, value) => {\n onInputValueChange(value)\n }}\n onChange={(_e, value) => {\n if (value && typeof value === 'object') {\n onInputValueChange(value.sessionId || '')\n onConfirmInput(value.sessionId || '')\n } else {\n onInputValueChange(value || '')\n }\n }}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n onConfirmInput(inputValue)\n }\n }}\n renderOption={(props, session) => (\n <MenuItem\n {...props}\n key={session.sessionId}\n style={{\n display: 'block',\n padding: '8px',\n cursor: 'pointer',\n borderBottom: '1px solid #eee',\n }}\n >\n <Grid\n container\n sx={{\n justifyContent: 'space-between',\n '& > *': {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n },\n }}\n >\n <Grid size={{ xs: 6, md: 2 }}>{session.sessionId}</Grid>\n <Grid size={{ xs: 5, md: 2 }}>{session.sourceEntityId}</Grid>\n <Grid size={{ xs: 0, md: 6 }}>\n {session.gridJsonSchema$Id ?? 'No schema'}\n </Grid>\n <Grid size={{ xs: 1 }}>\n <span\n data-icon=\"delete\"\n title=\"Delete session\"\n style={{\n marginLeft: '8px',\n color: '#d32f2f',\n cursor: 'pointer',\n fontSize: '16px',\n userSelect: 'none',\n }}\n onClick={e => {\n e.stopPropagation()\n deleteSession(session.sessionId!)\n }}\n >\n 🗑️\n </span>\n </Grid>\n </Grid>\n </MenuItem>\n )}\n />\n )\n}\n"],"mappings":";;;;;;;;AAqBA,SAAemB,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,
|
|
1
|
+
{"version":3,"file":"GridSessionSelectionField.js","names":["displayToast","useDeleteGridSession","useGetGridSessionsInfinite","Autocomplete","Grid","MenuItem","TextField","GridSession","noop","useMemo","GridSessionSelectionFieldProps","inputValue","onInputValueChange","value","onConfirmInput","onSessionChange","session","onReplicaChange","replicaId","GridSessionSelectionField","props","$","_c","t0","t1","t2","undefined","t3","Symbol","for","data","t4","onSuccess","_data","sessionId","onError","_temp","mutate","deleteSession","t5","pages","flatMap","_temp2","availableSessions","t6","_e","t7","_e_0","value_0","t8","e","key","t9","props_0","display","padding","cursor","borderBottom","justifyContent","textOverflow","overflow","whiteSpace","xs","md","sourceEntityId","gridJsonSchema$Id","marginLeft","color","fontSize","userSelect","e_0","stopPropagation","t10","_temp3","_temp4","option","params","page","error","reason"],"sources":["../../../../src/components/DataGrid/components/GridSessionSelectionField.tsx"],"sourcesContent":["import { displayToast } from '@/components/ToastMessage/ToastMessage'\nimport {\n useDeleteGridSession,\n useGetGridSessionsInfinite,\n} from '@/synapse-queries/grid/useGridSession'\nimport { Autocomplete, Grid, MenuItem, TextField } from '@mui/material'\nimport { GridSession } from '@sage-bionetworks/synapse-client'\nimport noop from 'lodash-es/noop'\nimport { useMemo } from 'react'\n\ntype GridSessionSelectionFieldProps = {\n inputValue: string\n onInputValueChange: (value: string) => void\n onConfirmInput?: (value: string) => void\n onSessionChange?: (session: GridSession | null) => void\n onReplicaChange?: (replicaId: number | null) => void\n}\n\n/**\n * Utility form field to pick the grid session from existing sessions. Currently, for testing/demo purposes only.\n */\nexport default function GridSessionSelectionField(\n props: GridSessionSelectionFieldProps,\n) {\n const {\n inputValue,\n onInputValueChange,\n onConfirmInput = noop,\n onSessionChange = noop,\n onReplicaChange = noop,\n } = props\n\n const { data } = useGetGridSessionsInfinite({})\n\n const { mutate: deleteSession } = useDeleteGridSession({\n onSuccess: (_data, sessionId) => {\n displayToast(`Successfully deleted grid session ${sessionId}`, 'success')\n onSessionChange(null)\n onReplicaChange(null)\n },\n onError: error => {\n displayToast(error.reason, 'danger')\n },\n })\n const availableSessions = useMemo(\n () => data?.pages.flatMap(page => page.page || []) || [],\n [data],\n )\n\n return (\n <Autocomplete\n freeSolo\n fullWidth\n renderInput={params => (\n <TextField\n {...params}\n label={'SQL Query or Session ID'}\n placeholder=\"Enter a SQL query, RecordSet ID, or session ID\"\n />\n )}\n options={availableSessions}\n getOptionLabel={option =>\n typeof option === 'string' ? option : option.sessionId || ''\n }\n value={inputValue}\n onInputChange={(_e, value) => {\n onInputValueChange(value)\n }}\n onChange={(_e, value) => {\n if (value && typeof value === 'object') {\n onInputValueChange(value.sessionId || '')\n onConfirmInput(value.sessionId || '')\n } else {\n onInputValueChange(value || '')\n }\n }}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n onConfirmInput(inputValue)\n }\n }}\n renderOption={(props, session) => (\n <MenuItem\n {...props}\n key={session.sessionId}\n style={{\n display: 'block',\n padding: '8px',\n cursor: 'pointer',\n borderBottom: '1px solid #eee',\n }}\n >\n <Grid\n container\n sx={{\n justifyContent: 'space-between',\n '& > *': {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n },\n }}\n >\n <Grid size={{ xs: 6, md: 2 }}>{session.sessionId}</Grid>\n <Grid size={{ xs: 5, md: 2 }}>{session.sourceEntityId}</Grid>\n <Grid size={{ xs: 0, md: 6 }}>\n {session.gridJsonSchema$Id ?? 'No schema'}\n </Grid>\n <Grid size={{ xs: 1 }}>\n <span\n data-icon=\"delete\"\n title=\"Delete session\"\n style={{\n marginLeft: '8px',\n color: '#d32f2f',\n cursor: 'pointer',\n fontSize: '16px',\n userSelect: 'none',\n }}\n onClick={e => {\n e.stopPropagation()\n deleteSession(session.sessionId!)\n }}\n >\n 🗑️\n </span>\n </Grid>\n </Grid>\n </MenuItem>\n )}\n />\n )\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadCsvToGridButton.js","names":["GridMenuButton","UploadCsvToGridDialog","useGetEntity","UploadTwoTone","Skeleton","instanceOfRecordSet","useState","UploadCsvToGridButtonProps","sourceEntityId","gridSessionId","UploadCsvToGridButton","props","$","_c","showDialog","setShowDialog","data","entity","isLoading","isLoadingEntity","t0","Symbol","for","t1","t2","t3"],"sources":["../../../../src/components/DataGrid/components/UploadCsvToGridButton.tsx"],"sourcesContent":["import GridMenuButton from '@/components/DataGrid/components/GridMenuButton/GridMenuButton'\nimport UploadCsvToGridDialog from '@/components/DataGrid/components/UploadCsvToGridDialog'\nimport { useGetEntity } from '@/synapse-queries/index'\nimport { UploadTwoTone } from '@mui/icons-material'\nimport Skeleton from '@mui/material/Skeleton'\nimport { instanceOfRecordSet } from '@sage-bionetworks/synapse-client'\nimport { useState } from 'react'\n\nexport type UploadCsvToGridButtonProps = {\n sourceEntityId: string\n gridSessionId: string\n}\n\nexport default function UploadCsvToGridButton(\n props: UploadCsvToGridButtonProps,\n) {\n const { sourceEntityId, gridSessionId } = props\n\n const [showDialog, setShowDialog] = useState(false)\n\n const { data: entity, isLoading: isLoadingEntity } =\n useGetEntity(sourceEntityId)\n\n if (isLoadingEntity) {\n return <Skeleton variant=\"rectangular\" width={100} />\n }\n if (entity && !instanceOfRecordSet(entity)) {\n // Currently, grid upload is only supported for record sets\n return null\n }\n\n return (\n <>\n {showDialog && (\n // Explicitly unmount the dialog when it is closed so that its state is reset\n // This prevents a user from getting stuck in an error state/uploading the wrong CSV\n <UploadCsvToGridDialog\n gridSessionId={gridSessionId}\n open={showDialog}\n onClose={() => setShowDialog(false)}\n onComplete={() => setShowDialog(false)}\n />\n )}\n <GridMenuButton\n onClick={() => {\n setShowDialog(true)\n }}\n variant=\"outlined\"\n startIcon={<UploadTwoTone />}\n >\n Upload\n </GridMenuButton>\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;AAaA,SAAeU,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,
|
|
1
|
+
{"version":3,"file":"UploadCsvToGridButton.js","names":["GridMenuButton","UploadCsvToGridDialog","useGetEntity","UploadTwoTone","Skeleton","instanceOfRecordSet","useState","UploadCsvToGridButtonProps","sourceEntityId","gridSessionId","UploadCsvToGridButton","props","$","_c","showDialog","setShowDialog","data","entity","isLoading","isLoadingEntity","t0","Symbol","for","t1","t2","t3"],"sources":["../../../../src/components/DataGrid/components/UploadCsvToGridButton.tsx"],"sourcesContent":["import GridMenuButton from '@/components/DataGrid/components/GridMenuButton/GridMenuButton'\nimport UploadCsvToGridDialog from '@/components/DataGrid/components/UploadCsvToGridDialog'\nimport { useGetEntity } from '@/synapse-queries/index'\nimport { UploadTwoTone } from '@mui/icons-material'\nimport Skeleton from '@mui/material/Skeleton'\nimport { instanceOfRecordSet } from '@sage-bionetworks/synapse-client'\nimport { useState } from 'react'\n\nexport type UploadCsvToGridButtonProps = {\n sourceEntityId: string\n gridSessionId: string\n}\n\nexport default function UploadCsvToGridButton(\n props: UploadCsvToGridButtonProps,\n) {\n const { sourceEntityId, gridSessionId } = props\n\n const [showDialog, setShowDialog] = useState(false)\n\n const { data: entity, isLoading: isLoadingEntity } =\n useGetEntity(sourceEntityId)\n\n if (isLoadingEntity) {\n return <Skeleton variant=\"rectangular\" width={100} />\n }\n if (entity && !instanceOfRecordSet(entity)) {\n // Currently, grid upload is only supported for record sets\n return null\n }\n\n return (\n <>\n {showDialog && (\n // Explicitly unmount the dialog when it is closed so that its state is reset\n // This prevents a user from getting stuck in an error state/uploading the wrong CSV\n <UploadCsvToGridDialog\n gridSessionId={gridSessionId}\n open={showDialog}\n onClose={() => setShowDialog(false)}\n onComplete={() => setShowDialog(false)}\n />\n )}\n <GridMenuButton\n onClick={() => {\n setShowDialog(true)\n }}\n variant=\"outlined\"\n startIcon={<UploadTwoTone />}\n >\n Upload\n </GridMenuButton>\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;AAaA,SAAeU,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAGb,EAAAL,mBAAAC,qBAA0CE,GAE1C,CAAAG,GAAAC,KAAoCT,EAAS,EAAK,GAElD,EAAAU,MAAAC,GAAAC,WAAAC,MACEjB,EAAaM,CAAc;CAE7B,IAAIW,GAAe;EAAA,IAAAC;EACoC,OADpCR,EAAA,OAAAS,OAAAC,IAAA,2BAAA,KACVF,IAAA,kBAAC,GAAD;GAAkB,SAAA;GAAqB,OAAA;EAAG,CAAA,GAAIR,EAAA,KAAAQ,KAAAA,IAAAR,EAAA,IAA9CQ;CAA8C;CAEvD,IAAIH,KAAA,CAAWZ,EAAoBY,CAAM,GAAC,OAEjC;CACR,IAAAG;CAAA,AAAAR,EAAA,OAAAH,KAAAG,EAAA,OAAAE,KAIIM,IAAAN,KAGC,kBAAC,GAAD;EACiBL;EACTK,MAAAA;EACG,eAAMC,EAAc,EAAK;EACtB,kBAAMA,EAAc,EAAK;CAAC,CAAA,GAEzCH,EAAA,KAAAH,GAAAG,EAAA,KAAAE,GAAAF,EAAA,KAAAQ,KAAAA,IAAAR,EAAA;CAAA,IAAAW;CAAA,AAAAX,EAAA,OAAAS,OAAAC,IAAA,2BAAA,KAEUC,UAAA;EACPR,EAAc,EAAI;CAAC,GACpBH,EAAA,KAAAW,KAAAA,IAAAX,EAAA;CAAA,IAAAY;CAAA,AAAAZ,EAAA,OAAAS,OAAAC,IAAA,2BAAA,KAHHE,IAAA,kBAAC,GAAD;EACW,SAAAD;EAGD,SAAA;EACG,WAAA,kBAAC,GAAD,CAAc,CAAA;YAC1B;CANc,CAAA,GAQEX,EAAA,KAAAY,KAAAA,IAAAZ,EAAA;CAAA,IAAAa;CAChB,OADgBb,EAAA,OAAAQ,IAChBK,IAAAb,EAAA,MApBHa,IAAA,kBAAA,GAAA,EAAA,UAAA,CACGL,GAUDI,CAQiB,EAAA,CAAA,GAChBZ,EAAA,KAAAQ,GAAAR,EAAA,KAAAa,IApBHA;AAoBG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadCsvToGridDialog.js","names":["displayToast","CsvPreviewDialog","useImportCsvIntoGrid","GridCsvImportResponse","upperFirst","UploadCsvToGridDialogProps","gridSessionId","open","onClose","onComplete","getUpdateMessage","createdCount","updatedCount","message","toLocaleString","UploadCsvToGridDialog","props","$","_c","t0","onSuccess","result","title","mutate","importCsvIntoGrid","isPending","error","t1","String","t2","fileHandleId","schema","csvDescriptor","concreteType","sessionId","t3","t4"],"sources":["../../../../src/components/DataGrid/components/UploadCsvToGridDialog.tsx"],"sourcesContent":["import { displayToast } from '@/components/index'\nimport CsvPreviewDialog from '@/components/table/CsvPreview/CsvPreviewDialog'\nimport { useImportCsvIntoGrid } from '@/synapse-queries/grid/useImportCsvIntoGrid'\nimport { GridCsvImportResponse } from '@sage-bionetworks/synapse-client'\nimport upperFirst from 'lodash-es/upperFirst'\n\ntype UploadCsvToGridDialogProps = {\n gridSessionId: string\n open: boolean\n onClose: () => void\n onComplete: () => void\n}\n\nexport function getUpdateMessage({\n createdCount = 0,\n updatedCount = 0,\n}: GridCsvImportResponse): string {\n let message = ''\n if (createdCount > 0) {\n message += `created ${createdCount.toLocaleString()} rows`\n }\n if (createdCount > 0 && updatedCount > 0) {\n message += ' and '\n } else if (updatedCount == 0) {\n message += '.'\n }\n if (updatedCount > 0) {\n message += `updated ${updatedCount.toLocaleString()} rows.`\n }\n return upperFirst(message)\n}\n\nexport default function UploadCsvToGridDialog(\n props: UploadCsvToGridDialogProps,\n) {\n const { gridSessionId, open, onClose, onComplete } = props\n\n const {\n mutate: importCsvIntoGrid,\n isPending,\n error,\n } = useImportCsvIntoGrid({\n onSuccess: result => {\n displayToast(getUpdateMessage(result), 'success', {\n title: 'Data imported successfully',\n })\n onComplete()\n },\n })\n\n return (\n <CsvPreviewDialog\n key={String(open)}\n open={open}\n onClose={onClose}\n onConfirm={(fileHandleId, schema, csvDescriptor) => {\n importCsvIntoGrid({\n concreteType:\n 'org.sagebionetworks.repo.model.grid.GridCsvImportRequest',\n sessionId: gridSessionId,\n fileHandleId,\n csvDescriptor,\n schema,\n })\n }}\n errorMessage={error?.message}\n confirmIsPending={isPending}\n />\n )\n}\n"],"mappings":";;;;;;;;AAaA,SAAgBU,EAAiB,EAC/BC,kBAAe,GACfC,kBAAe,KACiB;CAChC,IAAIC,IAAU;
|
|
1
|
+
{"version":3,"file":"UploadCsvToGridDialog.js","names":["displayToast","CsvPreviewDialog","useImportCsvIntoGrid","GridCsvImportResponse","upperFirst","UploadCsvToGridDialogProps","gridSessionId","open","onClose","onComplete","getUpdateMessage","createdCount","updatedCount","message","toLocaleString","UploadCsvToGridDialog","props","$","_c","t0","onSuccess","result","title","mutate","importCsvIntoGrid","isPending","error","t1","String","t2","fileHandleId","schema","csvDescriptor","concreteType","sessionId","t3","t4"],"sources":["../../../../src/components/DataGrid/components/UploadCsvToGridDialog.tsx"],"sourcesContent":["import { displayToast } from '@/components/index'\nimport CsvPreviewDialog from '@/components/table/CsvPreview/CsvPreviewDialog'\nimport { useImportCsvIntoGrid } from '@/synapse-queries/grid/useImportCsvIntoGrid'\nimport { GridCsvImportResponse } from '@sage-bionetworks/synapse-client'\nimport upperFirst from 'lodash-es/upperFirst'\n\ntype UploadCsvToGridDialogProps = {\n gridSessionId: string\n open: boolean\n onClose: () => void\n onComplete: () => void\n}\n\nexport function getUpdateMessage({\n createdCount = 0,\n updatedCount = 0,\n}: GridCsvImportResponse): string {\n let message = ''\n if (createdCount > 0) {\n message += `created ${createdCount.toLocaleString()} rows`\n }\n if (createdCount > 0 && updatedCount > 0) {\n message += ' and '\n } else if (updatedCount == 0) {\n message += '.'\n }\n if (updatedCount > 0) {\n message += `updated ${updatedCount.toLocaleString()} rows.`\n }\n return upperFirst(message)\n}\n\nexport default function UploadCsvToGridDialog(\n props: UploadCsvToGridDialogProps,\n) {\n const { gridSessionId, open, onClose, onComplete } = props\n\n const {\n mutate: importCsvIntoGrid,\n isPending,\n error,\n } = useImportCsvIntoGrid({\n onSuccess: result => {\n displayToast(getUpdateMessage(result), 'success', {\n title: 'Data imported successfully',\n })\n onComplete()\n },\n })\n\n return (\n <CsvPreviewDialog\n key={String(open)}\n open={open}\n onClose={onClose}\n onConfirm={(fileHandleId, schema, csvDescriptor) => {\n importCsvIntoGrid({\n concreteType:\n 'org.sagebionetworks.repo.model.grid.GridCsvImportRequest',\n sessionId: gridSessionId,\n fileHandleId,\n csvDescriptor,\n schema,\n })\n }}\n errorMessage={error?.message}\n confirmIsPending={isPending}\n />\n )\n}\n"],"mappings":";;;;;;;;AAaA,SAAgBU,EAAiB,EAC/BC,kBAAe,GACfC,kBAAe,KACiB;CAChC,IAAIC,IAAU;CAYd,OAXIF,IAAe,MACjBE,KAAW,WAAWF,EAAaG,eAAe,EAAC,SAEjDH,IAAe,KAAKC,IAAe,IACrCC,KAAW,UACFD,KAAgB,MACzBC,KAAW,MAETD,IAAe,MACjBC,KAAW,WAAWD,EAAaE,eAAe,EAAC,UAE9CV,EAAWS,CAAO;AAC3B;AAEA,SAAeE,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAGb,EAAAZ,kBAAAC,SAAAC,YAAAC,kBAAqDO,GAAKG;CAAA,AAAAF,EAAA,OAAAR,IAazDU,IAAAF,EAAA,MAPwBE,IAAA,EAAAC,YACZC,MAAA;EAITZ,AAHAT,EAAaU,EAAiBW,CAAM,GAAG,WAAW,EAAAC,OACzC,6BACT,CAAC,GACDb,EAAW;CAAC,EAEhB,GAACQ,EAAA,KAAAR,GAAAQ,EAAA,KAAAE;CAXD,IAAA,EAAAI,QAAAC,GAAAC,cAAAC,aAIIxB,EAAqBiB,CAOxB,GAIQQ,IAAAC,OAAOrB,CAAI,GAACsB;CAAA,AAAAZ,EAAA,OAAAX,KAAAW,EAAA,OAAAO,KAGNK,KAAAC,GAAAC,GAAAC,MAAA;EACTR,EAAkB;GAAAS,cAEd;GAA0DC,WACjD5B;GAAawB;GAAAE;GAAAD;EAI1B,CAAC;CAAC,GACHd,EAAA,KAAAX,GAAAW,EAAA,KAAAO,GAAAP,EAAA,KAAAY,KAAAA,IAAAZ,EAAA;CACa,IAAAkB,IAAAT,GAAKb,SAASuB;CAE5B,OAF4BnB,EAAA,OAAAQ,KAAAR,EAAA,OAAAT,KAAAS,EAAA,OAAAV,KAAAU,EAAA,OAAAU,KAAAV,EAAA,OAAAY,KAAAZ,EAAA,QAAAkB,KAd9BC,IAAA,kBAAC,GAAD;EAEQ7B;EACGC;EACE,WAAAqB;EAUG,cAAAM;EACIV,kBAAAA;CAAS,GAdtBE,CAcsB,GAC3BV,EAAA,KAAAQ,GAAAR,EAAA,KAAAT,GAAAS,EAAA,KAAAV,GAAAU,EAAA,KAAAU,GAAAV,EAAA,KAAAY,GAAAZ,EAAA,MAAAkB,GAAAlB,EAAA,MAAAmB,KAAAA,IAAAnB,EAAA,KAhBFmB;AAgBE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationAlert.js","names":["DataGridRow","Box","Chip","Collapse","Divider","Link","Stack","Tab","Tabs","Typography","Fragment","useMemo","useState","SynapseSpinner","ValidationError","rowIndex","columnName","message","pending","RowEntry","GroupBy","ValidationAlertProps","rowValues","columnNames","columnOrder","onNavigateToCell","colIndex","isLoading","NavProps","getColDisplayIndex","colName","findIndex","i","colLabel","ErrorText","t0","$","_c","rowSuffix","t1","Symbol","for","fontWeight","t2","t3","t4","t5","rowLinkSx","textDecoration","cursor","const","bannerBaseSx","border","borderLeft","borderRadius","mb","tabSx","minHeight","py","groupSectionHeaderSx","display","alignItems","gap","groupSectionItemSx","pl","flexWrap","RowLinks","rows","navCol","j","color","userSelect","opacity","map","ByColumnTab","groups","Array","from","entries","messages","totalCount","values","reduce","_temp","Math","max","msg","rows_0","mr","sum","length","ByMessageTab","columns","_temp2","fontStyle","ValidationAlert","undefined","isExpanded","setIsExpanded","groupBy","setGroupBy","errors","forEach","row","status","__validationStatus","__cellValidationResults","push","allErrors","Map","rowIndex_0","columnName_0","message_0","pending_0","has","set","colGroup","get","byColumn","groups_0","rowIndex_1","columnName_1","message_1","pending_1","msgGroup","byMessage","shouldExpand","firstError","borderColor","borderLeftColor","px","t6","t7","_temp3","flexShrink","t8","t9","t10","textAlign","ml","t11","t12","_","v","t13","t14","t15","t16","t17","borderTop","style","height","t18","t19","maxHeight","overflowY","t20","error","t21","t22","t23","t24","t25","p"],"sources":["../../../../src/components/DataGrid/components/ValidationAlert.tsx"],"sourcesContent":["import { DataGridRow } from '../DataGridTypes'\nimport {\n Box,\n Chip,\n Collapse,\n Divider,\n Link,\n Stack,\n Tab,\n Tabs,\n Typography,\n} from '@mui/material'\nimport { Fragment, useMemo, useState } from 'react'\nimport { SynapseSpinner } from '../../LoadingScreen/LoadingScreen'\n\ntype ValidationError = {\n rowIndex: number\n columnName: string\n message: string\n pending: boolean\n}\n\ntype RowEntry = { rowIndex: number; pending: boolean }\n\ntype GroupBy = 'row' | 'column' | 'message'\n\ntype ValidationAlertProps = {\n rowValues: DataGridRow[]\n columnNames: string[]\n columnOrder: number[]\n onNavigateToCell: (rowIndex: number, colIndex: number) => void\n isLoading?: boolean\n}\n\ntype NavProps = {\n columnNames: string[]\n columnOrder: number[]\n onNavigateToCell: (rowIndex: number, colIndex: number) => void\n}\n\nfunction getColDisplayIndex(\n colName: string,\n columnNames: string[],\n columnOrder: number[],\n): number {\n return columnOrder.findIndex(i => columnNames[i] === colName)\n}\n\n/** Column name for display — '_row' becomes 'Row-level'. */\nfunction colLabel(colName: string): string {\n return colName === '_row' ? 'Row-level' : colName\n}\n\n/** Renders a column name + message pair with distinct styles. */\nfunction ErrorText({\n columnName,\n message,\n rowIndex,\n}: {\n columnName: string\n message: string\n rowIndex: number\n}) {\n const rowSuffix = ` (Row ${rowIndex + 1})`\n if (columnName === '_row') {\n return (\n <>\n <Box component=\"span\" sx={{ fontWeight: 'normal' }}>\n {message}\n {rowSuffix}\n </Box>\n </>\n )\n }\n return (\n <>\n <Box component=\"span\" sx={{ fontWeight: 'bold' }}>\n {columnName}\n </Box>\n <Box component=\"span\" sx={{ fontWeight: 'normal' }}>\n {' — '}\n {message}\n {rowSuffix}\n </Box>\n </>\n )\n}\n\nconst rowLinkSx = {\n textDecoration: 'none',\n cursor: 'pointer',\n '&:hover': { textDecoration: 'underline' },\n} as const\n\nconst bannerBaseSx = {\n border: '1px solid',\n borderLeft: '4px solid',\n borderRadius: 1,\n mb: 1,\n} as const\n\nconst tabSx = { minHeight: 36, py: 0.5 } as const\n\nconst groupSectionHeaderSx = {\n display: 'flex',\n alignItems: 'center',\n gap: 0.5,\n mb: 0.25,\n} as const\n\nconst groupSectionItemSx = {\n pl: 2,\n display: 'flex',\n alignItems: 'baseline',\n flexWrap: 'wrap',\n gap: 0.5,\n py: 0.25,\n} as const\n\n/** Renders a list of row number links. The first shows \"Row N\"; subsequent\n * items show only the number, separated by a middle dot.\n * Pending entries are dimmed to signal unconfirmed validation state. */\nfunction RowLinks({\n rows,\n navCol,\n onNavigateToCell,\n}: {\n rows: RowEntry[]\n navCol: number\n onNavigateToCell: (rowIndex: number, colIndex: number) => void\n}) {\n return (\n <>\n {rows.map(({ rowIndex, pending }, j) => (\n <Fragment key={rowIndex}>\n {j > 0 && (\n <Box\n component=\"span\"\n aria-hidden\n sx={{ color: 'text.disabled', userSelect: 'none' }}\n >\n ·\n </Box>\n )}\n <Link\n component=\"button\"\n variant=\"body1\"\n color=\"text.secondary\"\n onClick={() => onNavigateToCell(rowIndex, navCol)}\n sx={{ ...rowLinkSx, opacity: pending ? 0.5 : 1 }}\n >\n {j === 0 ? `Row ${rowIndex + 1}` : rowIndex + 1}\n </Link>\n </Fragment>\n ))}\n </>\n )\n}\n\nfunction ByColumnTab({\n groups,\n columnNames,\n columnOrder,\n onNavigateToCell,\n}: NavProps & { groups: Map<string, Map<string, RowEntry[]>> }) {\n return (\n <Stack divider={<Divider />} spacing={1}>\n {Array.from(groups.entries()).map(([colName, messages]) => {\n const totalCount = Array.from(messages.values()).reduce(\n (sum, rows) => sum + rows.length,\n 0,\n )\n const navCol = Math.max(\n 0,\n getColDisplayIndex(colName, columnNames, columnOrder),\n )\n return (\n <Box key={colName}>\n <Box sx={groupSectionHeaderSx}>\n <Typography variant=\"body1\" fontWeight=\"bold\">\n {colLabel(colName)}\n </Typography>\n <Chip label={totalCount} color=\"error\" size=\"small\" />\n </Box>\n {Array.from(messages.entries()).map(([msg, rows]) => (\n <Box key={msg} sx={groupSectionItemSx}>\n <Typography\n variant=\"body1\"\n color=\"text.secondary\"\n sx={{ mr: 0.5 }}\n >\n {msg}\n </Typography>\n <RowLinks\n rows={rows}\n navCol={navCol}\n onNavigateToCell={onNavigateToCell}\n />\n </Box>\n ))}\n </Box>\n )\n })}\n </Stack>\n )\n}\n\nfunction ByMessageTab({\n groups,\n columnNames,\n columnOrder,\n onNavigateToCell,\n}: NavProps & { groups: Map<string, Map<string, RowEntry[]>> }) {\n return (\n <Stack divider={<Divider />} spacing={1}>\n {Array.from(groups.entries()).map(([msg, columns]) => {\n const totalCount = Array.from(columns.values()).reduce(\n (sum, rows) => sum + rows.length,\n 0,\n )\n return (\n <Box key={msg}>\n <Box sx={groupSectionHeaderSx}>\n <Typography variant=\"body1\" fontWeight=\"bold\">\n {msg}\n </Typography>\n <Chip label={totalCount} color=\"error\" size=\"small\" />\n </Box>\n {Array.from(columns.entries()).map(([colName, rows]) => {\n const navCol = Math.max(\n 0,\n getColDisplayIndex(colName, columnNames, columnOrder),\n )\n return (\n <Box key={colName} sx={groupSectionItemSx}>\n <Typography\n variant=\"body1\"\n color=\"text.secondary\"\n sx={{ mr: 0.5, fontStyle: 'italic' }}\n >\n {colLabel(colName)}\n </Typography>\n <RowLinks\n rows={rows}\n navCol={navCol}\n onNavigateToCell={onNavigateToCell}\n />\n </Box>\n )\n })}\n </Box>\n )\n })}\n </Stack>\n )\n}\n\nexport const ValidationAlert = ({\n rowValues,\n columnNames,\n columnOrder,\n onNavigateToCell,\n isLoading = false,\n}: ValidationAlertProps) => {\n const [isExpanded, setIsExpanded] = useState(false)\n const [groupBy, setGroupBy] = useState<GroupBy>('row')\n\n const allErrors = useMemo((): ValidationError[] => {\n const errors: ValidationError[] = []\n rowValues.forEach((row, rowIndex) => {\n const status = row.__validationStatus\n if (status !== 'invalid' && status !== 'pending') return\n const pending = status === 'pending'\n row.__cellValidationResults?.forEach((messages, columnName) => {\n messages.forEach(message =>\n errors.push({ rowIndex, columnName, message, pending }),\n )\n })\n })\n return errors\n }, [rowValues])\n\n // columnName → messageText → RowEntry[]\n const byColumn = useMemo(() => {\n const groups = new Map<string, Map<string, RowEntry[]>>()\n allErrors.forEach(({ rowIndex, columnName, message, pending }) => {\n if (!groups.has(columnName)) groups.set(columnName, new Map())\n const colGroup = groups.get(columnName)!\n if (!colGroup.has(message)) colGroup.set(message, [])\n colGroup.get(message)!.push({ rowIndex, pending })\n })\n return groups\n }, [allErrors])\n\n // messageText → columnName → RowEntry[]\n const byMessage = useMemo(() => {\n const groups = new Map<string, Map<string, RowEntry[]>>()\n allErrors.forEach(({ rowIndex, columnName, message, pending }) => {\n if (!groups.has(message)) groups.set(message, new Map())\n const msgGroup = groups.get(message)!\n if (!msgGroup.has(columnName)) msgGroup.set(columnName, [])\n msgGroup.get(columnName)!.push({ rowIndex, pending })\n })\n return groups\n }, [allErrors])\n\n const shouldExpand = isExpanded && allErrors.length > 0\n\n const firstError = allErrors[0]\n\n if (isLoading) {\n return (\n <Box\n sx={{\n ...bannerBaseSx,\n borderColor: 'divider',\n borderLeftColor: 'divider',\n px: 2,\n py: 2,\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n }}\n >\n <SynapseSpinner size={14} margin=\"0\" />\n <Typography variant=\"body1\" color=\"text.secondary\">\n Loading validation errors…\n </Typography>\n </Box>\n )\n }\n\n if (allErrors.length === 0) {\n return (\n <Box\n sx={{\n ...bannerBaseSx,\n borderColor: 'success.main',\n borderLeftColor: 'success.main',\n px: 2,\n py: 2,\n }}\n >\n <Typography variant=\"body1\" color=\"success.main\">\n No validation errors\n </Typography>\n </Box>\n )\n }\n\n return (\n <Box\n sx={{\n ...bannerBaseSx,\n borderColor: 'error.main',\n borderLeftColor: 'error.main',\n }}\n >\n {/* Header */}\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n px: 2,\n py: 2,\n gap: 1,\n }}\n >\n <Typography variant=\"body1\" fontWeight=\"bold\">\n Validation errors\n </Typography>\n <Chip label={allErrors.length} color=\"error\" size=\"small\" />\n <Link\n component=\"button\"\n variant=\"body1\"\n onClick={() => setIsExpanded(p => !p)}\n sx={{ cursor: 'pointer', flexShrink: 0, fontWeight: 'normal' }}\n >\n {shouldExpand ? 'Collapse' : 'Expand'}\n </Link>\n {!shouldExpand && (\n <Link\n component=\"button\"\n variant=\"body1\"\n color=\"text.secondary\"\n onClick={() =>\n onNavigateToCell(\n firstError.rowIndex,\n Math.max(\n 0,\n getColDisplayIndex(\n firstError.columnName,\n columnNames,\n columnOrder,\n ),\n ),\n )\n }\n noWrap\n sx={{\n textAlign: 'left',\n ml: 'auto',\n ...rowLinkSx,\n opacity: firstError.pending ? 0.5 : 1,\n }}\n >\n <ErrorText\n columnName={firstError.columnName}\n message={firstError.message}\n rowIndex={firstError.rowIndex}\n />\n </Link>\n )}\n </Box>\n\n {/* Expanded panel */}\n <Collapse in={shouldExpand}>\n <Tabs\n value={groupBy}\n onChange={(_, v: GroupBy) => setGroupBy(v)}\n textColor=\"inherit\"\n sx={{\n px: 2,\n minHeight: 36,\n borderTop: '1px solid',\n borderColor: 'divider',\n }}\n TabIndicatorProps={{ style: { height: 2 } }}\n >\n <Tab label=\"By row\" value=\"row\" sx={tabSx} />\n <Tab label=\"By column\" value=\"column\" sx={tabSx} />\n <Tab label=\"By message\" value=\"message\" sx={tabSx} />\n </Tabs>\n\n <Box sx={{ px: 2, py: 1, maxHeight: 200, overflowY: 'auto' }}>\n {/* ── By row ─────────────────────────────────────────── */}\n {groupBy === 'row' && (\n <Stack divider={<Divider />}>\n {allErrors.map((error, i) => {\n const navCol = Math.max(\n 0,\n getColDisplayIndex(\n error.columnName,\n columnNames,\n columnOrder,\n ),\n )\n return (\n <Link\n key={i}\n component=\"button\"\n variant=\"body1\"\n color=\"text.secondary\"\n onClick={() => onNavigateToCell(error.rowIndex, navCol)}\n sx={{\n textAlign: 'left',\n py: 0.5,\n ...rowLinkSx,\n opacity: error.pending ? 0.5 : 1,\n }}\n >\n <ErrorText\n columnName={error.columnName}\n message={error.message}\n rowIndex={error.rowIndex}\n />\n </Link>\n )\n })}\n </Stack>\n )}\n\n {/* ── By column ──────────────────────────────────────── */}\n {groupBy === 'column' && (\n <ByColumnTab\n groups={byColumn}\n columnNames={columnNames}\n columnOrder={columnOrder}\n onNavigateToCell={onNavigateToCell}\n />\n )}\n\n {/* ── By message ─────────────────────────────────────── */}\n {groupBy === 'message' && (\n <ByMessageTab\n groups={byMessage}\n columnNames={columnNames}\n columnOrder={columnOrder}\n onNavigateToCell={onNavigateToCell}\n />\n )}\n </Box>\n </Collapse>\n </Box>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ValidationAlert.js","names":["DataGridRow","Box","Chip","Collapse","Divider","Link","Stack","Tab","Tabs","Typography","Fragment","useMemo","useState","SynapseSpinner","ValidationError","rowIndex","columnName","message","pending","RowEntry","GroupBy","ValidationAlertProps","rowValues","columnNames","columnOrder","onNavigateToCell","colIndex","isLoading","NavProps","getColDisplayIndex","colName","findIndex","i","colLabel","ErrorText","t0","$","_c","rowSuffix","t1","Symbol","for","fontWeight","t2","t3","t4","t5","rowLinkSx","textDecoration","cursor","const","bannerBaseSx","border","borderLeft","borderRadius","mb","tabSx","minHeight","py","groupSectionHeaderSx","display","alignItems","gap","groupSectionItemSx","pl","flexWrap","RowLinks","rows","navCol","j","color","userSelect","opacity","map","ByColumnTab","groups","Array","from","entries","messages","totalCount","values","reduce","_temp","Math","max","msg","rows_0","mr","sum","length","ByMessageTab","columns","_temp2","fontStyle","ValidationAlert","undefined","isExpanded","setIsExpanded","groupBy","setGroupBy","errors","forEach","row","status","__validationStatus","__cellValidationResults","push","allErrors","Map","rowIndex_0","columnName_0","message_0","pending_0","has","set","colGroup","get","byColumn","groups_0","rowIndex_1","columnName_1","message_1","pending_1","msgGroup","byMessage","shouldExpand","firstError","borderColor","borderLeftColor","px","t6","t7","_temp3","flexShrink","t8","t9","t10","textAlign","ml","t11","t12","_","v","t13","t14","t15","t16","t17","borderTop","style","height","t18","t19","maxHeight","overflowY","t20","error","t21","t22","t23","t24","t25","p"],"sources":["../../../../src/components/DataGrid/components/ValidationAlert.tsx"],"sourcesContent":["import { DataGridRow } from '../DataGridTypes'\nimport {\n Box,\n Chip,\n Collapse,\n Divider,\n Link,\n Stack,\n Tab,\n Tabs,\n Typography,\n} from '@mui/material'\nimport { Fragment, useMemo, useState } from 'react'\nimport { SynapseSpinner } from '../../LoadingScreen/LoadingScreen'\n\ntype ValidationError = {\n rowIndex: number\n columnName: string\n message: string\n pending: boolean\n}\n\ntype RowEntry = { rowIndex: number; pending: boolean }\n\ntype GroupBy = 'row' | 'column' | 'message'\n\ntype ValidationAlertProps = {\n rowValues: DataGridRow[]\n columnNames: string[]\n columnOrder: number[]\n onNavigateToCell: (rowIndex: number, colIndex: number) => void\n isLoading?: boolean\n}\n\ntype NavProps = {\n columnNames: string[]\n columnOrder: number[]\n onNavigateToCell: (rowIndex: number, colIndex: number) => void\n}\n\nfunction getColDisplayIndex(\n colName: string,\n columnNames: string[],\n columnOrder: number[],\n): number {\n return columnOrder.findIndex(i => columnNames[i] === colName)\n}\n\n/** Column name for display — '_row' becomes 'Row-level'. */\nfunction colLabel(colName: string): string {\n return colName === '_row' ? 'Row-level' : colName\n}\n\n/** Renders a column name + message pair with distinct styles. */\nfunction ErrorText({\n columnName,\n message,\n rowIndex,\n}: {\n columnName: string\n message: string\n rowIndex: number\n}) {\n const rowSuffix = ` (Row ${rowIndex + 1})`\n if (columnName === '_row') {\n return (\n <>\n <Box component=\"span\" sx={{ fontWeight: 'normal' }}>\n {message}\n {rowSuffix}\n </Box>\n </>\n )\n }\n return (\n <>\n <Box component=\"span\" sx={{ fontWeight: 'bold' }}>\n {columnName}\n </Box>\n <Box component=\"span\" sx={{ fontWeight: 'normal' }}>\n {' — '}\n {message}\n {rowSuffix}\n </Box>\n </>\n )\n}\n\nconst rowLinkSx = {\n textDecoration: 'none',\n cursor: 'pointer',\n '&:hover': { textDecoration: 'underline' },\n} as const\n\nconst bannerBaseSx = {\n border: '1px solid',\n borderLeft: '4px solid',\n borderRadius: 1,\n mb: 1,\n} as const\n\nconst tabSx = { minHeight: 36, py: 0.5 } as const\n\nconst groupSectionHeaderSx = {\n display: 'flex',\n alignItems: 'center',\n gap: 0.5,\n mb: 0.25,\n} as const\n\nconst groupSectionItemSx = {\n pl: 2,\n display: 'flex',\n alignItems: 'baseline',\n flexWrap: 'wrap',\n gap: 0.5,\n py: 0.25,\n} as const\n\n/** Renders a list of row number links. The first shows \"Row N\"; subsequent\n * items show only the number, separated by a middle dot.\n * Pending entries are dimmed to signal unconfirmed validation state. */\nfunction RowLinks({\n rows,\n navCol,\n onNavigateToCell,\n}: {\n rows: RowEntry[]\n navCol: number\n onNavigateToCell: (rowIndex: number, colIndex: number) => void\n}) {\n return (\n <>\n {rows.map(({ rowIndex, pending }, j) => (\n <Fragment key={rowIndex}>\n {j > 0 && (\n <Box\n component=\"span\"\n aria-hidden\n sx={{ color: 'text.disabled', userSelect: 'none' }}\n >\n ·\n </Box>\n )}\n <Link\n component=\"button\"\n variant=\"body1\"\n color=\"text.secondary\"\n onClick={() => onNavigateToCell(rowIndex, navCol)}\n sx={{ ...rowLinkSx, opacity: pending ? 0.5 : 1 }}\n >\n {j === 0 ? `Row ${rowIndex + 1}` : rowIndex + 1}\n </Link>\n </Fragment>\n ))}\n </>\n )\n}\n\nfunction ByColumnTab({\n groups,\n columnNames,\n columnOrder,\n onNavigateToCell,\n}: NavProps & { groups: Map<string, Map<string, RowEntry[]>> }) {\n return (\n <Stack divider={<Divider />} spacing={1}>\n {Array.from(groups.entries()).map(([colName, messages]) => {\n const totalCount = Array.from(messages.values()).reduce(\n (sum, rows) => sum + rows.length,\n 0,\n )\n const navCol = Math.max(\n 0,\n getColDisplayIndex(colName, columnNames, columnOrder),\n )\n return (\n <Box key={colName}>\n <Box sx={groupSectionHeaderSx}>\n <Typography variant=\"body1\" fontWeight=\"bold\">\n {colLabel(colName)}\n </Typography>\n <Chip label={totalCount} color=\"error\" size=\"small\" />\n </Box>\n {Array.from(messages.entries()).map(([msg, rows]) => (\n <Box key={msg} sx={groupSectionItemSx}>\n <Typography\n variant=\"body1\"\n color=\"text.secondary\"\n sx={{ mr: 0.5 }}\n >\n {msg}\n </Typography>\n <RowLinks\n rows={rows}\n navCol={navCol}\n onNavigateToCell={onNavigateToCell}\n />\n </Box>\n ))}\n </Box>\n )\n })}\n </Stack>\n )\n}\n\nfunction ByMessageTab({\n groups,\n columnNames,\n columnOrder,\n onNavigateToCell,\n}: NavProps & { groups: Map<string, Map<string, RowEntry[]>> }) {\n return (\n <Stack divider={<Divider />} spacing={1}>\n {Array.from(groups.entries()).map(([msg, columns]) => {\n const totalCount = Array.from(columns.values()).reduce(\n (sum, rows) => sum + rows.length,\n 0,\n )\n return (\n <Box key={msg}>\n <Box sx={groupSectionHeaderSx}>\n <Typography variant=\"body1\" fontWeight=\"bold\">\n {msg}\n </Typography>\n <Chip label={totalCount} color=\"error\" size=\"small\" />\n </Box>\n {Array.from(columns.entries()).map(([colName, rows]) => {\n const navCol = Math.max(\n 0,\n getColDisplayIndex(colName, columnNames, columnOrder),\n )\n return (\n <Box key={colName} sx={groupSectionItemSx}>\n <Typography\n variant=\"body1\"\n color=\"text.secondary\"\n sx={{ mr: 0.5, fontStyle: 'italic' }}\n >\n {colLabel(colName)}\n </Typography>\n <RowLinks\n rows={rows}\n navCol={navCol}\n onNavigateToCell={onNavigateToCell}\n />\n </Box>\n )\n })}\n </Box>\n )\n })}\n </Stack>\n )\n}\n\nexport const ValidationAlert = ({\n rowValues,\n columnNames,\n columnOrder,\n onNavigateToCell,\n isLoading = false,\n}: ValidationAlertProps) => {\n const [isExpanded, setIsExpanded] = useState(false)\n const [groupBy, setGroupBy] = useState<GroupBy>('row')\n\n const allErrors = useMemo((): ValidationError[] => {\n const errors: ValidationError[] = []\n rowValues.forEach((row, rowIndex) => {\n const status = row.__validationStatus\n if (status !== 'invalid' && status !== 'pending') return\n const pending = status === 'pending'\n row.__cellValidationResults?.forEach((messages, columnName) => {\n messages.forEach(message =>\n errors.push({ rowIndex, columnName, message, pending }),\n )\n })\n })\n return errors\n }, [rowValues])\n\n // columnName → messageText → RowEntry[]\n const byColumn = useMemo(() => {\n const groups = new Map<string, Map<string, RowEntry[]>>()\n allErrors.forEach(({ rowIndex, columnName, message, pending }) => {\n if (!groups.has(columnName)) groups.set(columnName, new Map())\n const colGroup = groups.get(columnName)!\n if (!colGroup.has(message)) colGroup.set(message, [])\n colGroup.get(message)!.push({ rowIndex, pending })\n })\n return groups\n }, [allErrors])\n\n // messageText → columnName → RowEntry[]\n const byMessage = useMemo(() => {\n const groups = new Map<string, Map<string, RowEntry[]>>()\n allErrors.forEach(({ rowIndex, columnName, message, pending }) => {\n if (!groups.has(message)) groups.set(message, new Map())\n const msgGroup = groups.get(message)!\n if (!msgGroup.has(columnName)) msgGroup.set(columnName, [])\n msgGroup.get(columnName)!.push({ rowIndex, pending })\n })\n return groups\n }, [allErrors])\n\n const shouldExpand = isExpanded && allErrors.length > 0\n\n const firstError = allErrors[0]\n\n if (isLoading) {\n return (\n <Box\n sx={{\n ...bannerBaseSx,\n borderColor: 'divider',\n borderLeftColor: 'divider',\n px: 2,\n py: 2,\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n }}\n >\n <SynapseSpinner size={14} margin=\"0\" />\n <Typography variant=\"body1\" color=\"text.secondary\">\n Loading validation errors…\n </Typography>\n </Box>\n )\n }\n\n if (allErrors.length === 0) {\n return (\n <Box\n sx={{\n ...bannerBaseSx,\n borderColor: 'success.main',\n borderLeftColor: 'success.main',\n px: 2,\n py: 2,\n }}\n >\n <Typography variant=\"body1\" color=\"success.main\">\n No validation errors\n </Typography>\n </Box>\n )\n }\n\n return (\n <Box\n sx={{\n ...bannerBaseSx,\n borderColor: 'error.main',\n borderLeftColor: 'error.main',\n }}\n >\n {/* Header */}\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n px: 2,\n py: 2,\n gap: 1,\n }}\n >\n <Typography variant=\"body1\" fontWeight=\"bold\">\n Validation errors\n </Typography>\n <Chip label={allErrors.length} color=\"error\" size=\"small\" />\n <Link\n component=\"button\"\n variant=\"body1\"\n onClick={() => setIsExpanded(p => !p)}\n sx={{ cursor: 'pointer', flexShrink: 0, fontWeight: 'normal' }}\n >\n {shouldExpand ? 'Collapse' : 'Expand'}\n </Link>\n {!shouldExpand && (\n <Link\n component=\"button\"\n variant=\"body1\"\n color=\"text.secondary\"\n onClick={() =>\n onNavigateToCell(\n firstError.rowIndex,\n Math.max(\n 0,\n getColDisplayIndex(\n firstError.columnName,\n columnNames,\n columnOrder,\n ),\n ),\n )\n }\n noWrap\n sx={{\n textAlign: 'left',\n ml: 'auto',\n ...rowLinkSx,\n opacity: firstError.pending ? 0.5 : 1,\n }}\n >\n <ErrorText\n columnName={firstError.columnName}\n message={firstError.message}\n rowIndex={firstError.rowIndex}\n />\n </Link>\n )}\n </Box>\n\n {/* Expanded panel */}\n <Collapse in={shouldExpand}>\n <Tabs\n value={groupBy}\n onChange={(_, v: GroupBy) => setGroupBy(v)}\n textColor=\"inherit\"\n sx={{\n px: 2,\n minHeight: 36,\n borderTop: '1px solid',\n borderColor: 'divider',\n }}\n TabIndicatorProps={{ style: { height: 2 } }}\n >\n <Tab label=\"By row\" value=\"row\" sx={tabSx} />\n <Tab label=\"By column\" value=\"column\" sx={tabSx} />\n <Tab label=\"By message\" value=\"message\" sx={tabSx} />\n </Tabs>\n\n <Box sx={{ px: 2, py: 1, maxHeight: 200, overflowY: 'auto' }}>\n {/* ── By row ─────────────────────────────────────────── */}\n {groupBy === 'row' && (\n <Stack divider={<Divider />}>\n {allErrors.map((error, i) => {\n const navCol = Math.max(\n 0,\n getColDisplayIndex(\n error.columnName,\n columnNames,\n columnOrder,\n ),\n )\n return (\n <Link\n key={i}\n component=\"button\"\n variant=\"body1\"\n color=\"text.secondary\"\n onClick={() => onNavigateToCell(error.rowIndex, navCol)}\n sx={{\n textAlign: 'left',\n py: 0.5,\n ...rowLinkSx,\n opacity: error.pending ? 0.5 : 1,\n }}\n >\n <ErrorText\n columnName={error.columnName}\n message={error.message}\n rowIndex={error.rowIndex}\n />\n </Link>\n )\n })}\n </Stack>\n )}\n\n {/* ── By column ──────────────────────────────────────── */}\n {groupBy === 'column' && (\n <ByColumnTab\n groups={byColumn}\n columnNames={columnNames}\n columnOrder={columnOrder}\n onNavigateToCell={onNavigateToCell}\n />\n )}\n\n {/* ── By message ─────────────────────────────────────── */}\n {groupBy === 'message' && (\n <ByMessageTab\n groups={byMessage}\n columnNames={columnNames}\n columnOrder={columnOrder}\n onNavigateToCell={onNavigateToCell}\n />\n )}\n </Box>\n </Collapse>\n </Box>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextMenu.js","names":["createAddRowsComponent","createContextMenuComponent","ContextMenuItem","DataSheetGrid","VIEW_ALLOWED_MENU_ITEMS","AddRowsComponent","renderContextMenuItem","item","type","undefined","BaseViewContextMenuComponent","RecordSetContextMenuComponent","ViewContextMenuComponent","React","FC","ComponentProps","props","$","_c","t0","items","filter","_temp","filteredItems","t1","renderAddRowsComponent","renderViewContextMenu","renderRecordSetContextMenu","includes"],"sources":["../../../../src/components/DataGrid/components/contextMenu.tsx"],"sourcesContent":["import {\n createAddRowsComponent,\n createContextMenuComponent,\n ContextMenuItem,\n DataSheetGrid,\n} from '@sage-bionetworks/react-datasheet-grid'\n\n// Define which context menu items are allowed for tables (a subset)\nconst VIEW_ALLOWED_MENU_ITEMS: ContextMenuItem['type'][] = [\n 'COPY',\n 'PASTE',\n 'CUT',\n]\n\n// Create components outside of render to avoid recreating on every render\nconst AddRowsComponent = createAddRowsComponent()\n\n// Shared render function for context menu items\nconst renderContextMenuItem = (item: ContextMenuItem) => {\n if (item.type === 'COPY') {\n return <>Copy</>\n }\n if (item.type === 'PASTE') {\n return <>Paste</>\n }\n if (item.type === 'CUT') {\n return <>Cut</>\n }\n if (item.type === 'INSERT_ROW_BELLOW') {\n return <>Insert row below</>\n }\n if (item.type === 'DELETE_ROW') {\n return <>Delete row</>\n }\n if (item.type === 'DUPLICATE_ROW') {\n return <>Duplicate row</>\n }\n if (item.type === 'DELETE_ROWS') {\n return <>Delete rows</>\n }\n if (item.type === 'DUPLICATE_ROWS') {\n return <>Duplicate rows</>\n }\n return undefined\n}\n\n// Create base context menus (copy/cut/paste for recordSet, default for views)\nconst BaseViewContextMenuComponent = createContextMenuComponent(\n renderContextMenuItem,\n)\n\nconst RecordSetContextMenuComponent = createContextMenuComponent(\n renderContextMenuItem,\n)\n\n// Create a wrapper component that filters items for views\nconst ViewContextMenuComponent: React.FC<\n React.ComponentProps<typeof BaseViewContextMenuComponent>\n> = props => {\n // Filter the items to only include allowed ones for views\n const filteredItems = props.items.filter(item =>\n VIEW_ALLOWED_MENU_ITEMS.includes(item.type),\n )\n\n return <BaseViewContextMenuComponent {...props} items={filteredItems} />\n}\n\n// Create stable render functions outside the component\nexport const renderAddRowsComponent: React.ComponentProps<\n typeof DataSheetGrid\n>['addRowsComponent'] = props => <AddRowsComponent {...props} />\n\nexport const renderViewContextMenu: React.ComponentProps<\n typeof DataSheetGrid\n>['contextMenuComponent'] = props => <ViewContextMenuComponent {...props} />\n\nexport const renderRecordSetContextMenu: React.ComponentProps<\n typeof DataSheetGrid\n>['contextMenuComponent'] = props => (\n <RecordSetContextMenuComponent {...props} />\n)\n"],"mappings":";;;;AAQA,IAAMI,IAAqD;CACzD;CACA;CACA;
|
|
1
|
+
{"version":3,"file":"contextMenu.js","names":["createAddRowsComponent","createContextMenuComponent","ContextMenuItem","DataSheetGrid","VIEW_ALLOWED_MENU_ITEMS","AddRowsComponent","renderContextMenuItem","item","type","undefined","BaseViewContextMenuComponent","RecordSetContextMenuComponent","ViewContextMenuComponent","React","FC","ComponentProps","props","$","_c","t0","items","filter","_temp","filteredItems","t1","renderAddRowsComponent","renderViewContextMenu","renderRecordSetContextMenu","includes"],"sources":["../../../../src/components/DataGrid/components/contextMenu.tsx"],"sourcesContent":["import {\n createAddRowsComponent,\n createContextMenuComponent,\n ContextMenuItem,\n DataSheetGrid,\n} from '@sage-bionetworks/react-datasheet-grid'\n\n// Define which context menu items are allowed for tables (a subset)\nconst VIEW_ALLOWED_MENU_ITEMS: ContextMenuItem['type'][] = [\n 'COPY',\n 'PASTE',\n 'CUT',\n]\n\n// Create components outside of render to avoid recreating on every render\nconst AddRowsComponent = createAddRowsComponent()\n\n// Shared render function for context menu items\nconst renderContextMenuItem = (item: ContextMenuItem) => {\n if (item.type === 'COPY') {\n return <>Copy</>\n }\n if (item.type === 'PASTE') {\n return <>Paste</>\n }\n if (item.type === 'CUT') {\n return <>Cut</>\n }\n if (item.type === 'INSERT_ROW_BELLOW') {\n return <>Insert row below</>\n }\n if (item.type === 'DELETE_ROW') {\n return <>Delete row</>\n }\n if (item.type === 'DUPLICATE_ROW') {\n return <>Duplicate row</>\n }\n if (item.type === 'DELETE_ROWS') {\n return <>Delete rows</>\n }\n if (item.type === 'DUPLICATE_ROWS') {\n return <>Duplicate rows</>\n }\n return undefined\n}\n\n// Create base context menus (copy/cut/paste for recordSet, default for views)\nconst BaseViewContextMenuComponent = createContextMenuComponent(\n renderContextMenuItem,\n)\n\nconst RecordSetContextMenuComponent = createContextMenuComponent(\n renderContextMenuItem,\n)\n\n// Create a wrapper component that filters items for views\nconst ViewContextMenuComponent: React.FC<\n React.ComponentProps<typeof BaseViewContextMenuComponent>\n> = props => {\n // Filter the items to only include allowed ones for views\n const filteredItems = props.items.filter(item =>\n VIEW_ALLOWED_MENU_ITEMS.includes(item.type),\n )\n\n return <BaseViewContextMenuComponent {...props} items={filteredItems} />\n}\n\n// Create stable render functions outside the component\nexport const renderAddRowsComponent: React.ComponentProps<\n typeof DataSheetGrid\n>['addRowsComponent'] = props => <AddRowsComponent {...props} />\n\nexport const renderViewContextMenu: React.ComponentProps<\n typeof DataSheetGrid\n>['contextMenuComponent'] = props => <ViewContextMenuComponent {...props} />\n\nexport const renderRecordSetContextMenu: React.ComponentProps<\n typeof DataSheetGrid\n>['contextMenuComponent'] = props => (\n <RecordSetContextMenuComponent {...props} />\n)\n"],"mappings":";;;;AAQA,IAAMI,IAAqD;CACzD;CACA;CACA;AAAK,GAIDC,IAAmBL,EAAuB,GAG1CM,KAAyBC,MAA0B;CACvD,IAAIA,EAAKC,SAAS,QAChB,OAAO,kBAAA,GAAA,EAAA,UAAE,OAAI,CAAA;CAEf,IAAID,EAAKC,SAAS,SAChB,OAAO,kBAAA,GAAA,EAAA,UAAE,QAAK,CAAA;CAEhB,IAAID,EAAKC,SAAS,OAChB,OAAO,kBAAA,GAAA,EAAA,UAAE,MAAG,CAAA;CAEd,IAAID,EAAKC,SAAS,qBAChB,OAAO,kBAAA,GAAA,EAAA,UAAE,mBAAgB,CAAA;CAE3B,IAAID,EAAKC,SAAS,cAChB,OAAO,kBAAA,GAAA,EAAA,UAAE,aAAU,CAAA;CAErB,IAAID,EAAKC,SAAS,iBAChB,OAAO,kBAAA,GAAA,EAAA,UAAE,gBAAa,CAAA;CAExB,IAAID,EAAKC,SAAS,eAChB,OAAO,kBAAA,GAAA,EAAA,UAAE,cAAW,CAAA;CAEtB,IAAID,EAAKC,SAAS,kBAChB,OAAO,kBAAA,GAAA,EAAA,UAAE,iBAAc,CAAA;AAG3B,GAGME,IAA+BT,EACnCK,CACF,GAEMK,IAAgCV,EACpCK,CACF,GAGMM,KAEFI,MAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAAAC;CAAA,AAAAF,EAAA,OAAAD,EAAAI,QAIDD,IAAAF,EAAA,MAFqBE,IAAAH,EAAKI,MAAMC,OAAQC,CAEzC,GAACL,EAAA,KAAAD,EAAAI,OAAAH,EAAA,KAAAE;CAFD,IAAAI,IAAsBJ,GAErBK;CAEuE,OAFvEP,EAAA,OAAAM,KAAAN,EAAA,OAAAD,KAEMQ,IAAA,kBAAC,GAAD;EAA6B,GAAKR;EAAcO,OAAAA;CAAa,CAAA,GAAIN,EAAA,KAAAM,GAAAN,EAAA,KAAAD,GAAAC,EAAA,KAAAO,KAAAA,IAAAP,EAAA,IAAjEO;AAAiE,GAI7DC,KAEWT,MAAS,kBAAC,GAAD,EAAkB,GAAIA,EAAM,CAAA,GAEhDU,KAEeV,MAAS,kBAAC,GAAD,EAA0B,GAAIA,EAAM,CAAA,GAE5DW,KAEeX,MAC1B,kBAAC,GAAD,EAA+B,GAAIA,EAAM,CAAA;AArBvC,SAAAM,EAAAf,GAAA;CAAA,OAGAH,EAAuBwB,SAAUrB,EAAIC,IAAK;AAAC"}
|
|
@@ -3,6 +3,8 @@ import { useResizeObserver as n } from "@react-hookz/web";
|
|
|
3
3
|
import { c as r } from "react/compiler-runtime";
|
|
4
4
|
//#region src/components/DataGrid/hooks/useColumnResizeHandles.ts
|
|
5
5
|
var i = class e {
|
|
6
|
+
colValues;
|
|
7
|
+
onColumnResize;
|
|
6
8
|
static COLUMN_MIN_WIDTH_PX = 50;
|
|
7
9
|
handlesMap = /* @__PURE__ */ new Map();
|
|
8
10
|
cleanupFunctions = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useColumnResizeHandles.js","names":["useEffect","useRef","Column","useResizeObserver","ResizeHandleElement","HTMLDivElement","__cellElement","HTMLElement","__columnName","UseColumnResizeHandlesProps","wrapperRef","React","RefObject","colValues","onColumnResize","columnName","newWidth","ResizeState","startX","startWidth","handle","initialLeft","ColumnResizeManager","COLUMN_MIN_WIDTH_PX","handlesMap","Map","cleanupFunctions","Array","activeResize","gridContainer","headerRow","Element","observer","MutationObserver","constructor","name","width","updateColumns","syncHandles","initialize","querySelector","setupEventListeners","createNewHandle","Error","document","createElement","className","dataset","style","position","top","cursor","pointerEvents","zIndex","onMouseDown","e","MouseEvent","handleMouseDown","addEventListener","push","removeEventListener","appendChild","set","createOrUpdateHandle","cellElement","columnIndex","id","get","updateHandlePosition","gridHeight","scrollHeight","left","offsetLeft","offsetWidth","height","display","preventDefault","stopPropagation","currentColumnName","currentCellElement","currentLeft","parseFloat","clientX","classList","add","body","handleMouseMove","deltaX","handleMouseUp","Math","max","remove","headerCells","querySelectorAll","length","visibleColumns","Set","forEach","cell","index","cellText","textContent","trim","actualColumnIndex","findIndex","col","has","requestAnimationFrame","observe","childList","subtree","disconnect","cleanup","item","clear","useColumnResizeHandles","t0","$","_c","managerRef","t1","entry","current","contentRect","manager","success","t2","t3","t4","t5","Symbol","for"],"sources":["../../../../src/components/DataGrid/hooks/useColumnResizeHandles.ts"],"sourcesContent":["import { useEffect, useRef } from 'react'\nimport { Column } from '@sage-bionetworks/react-datasheet-grid'\nimport { useResizeObserver } from '@react-hookz/web'\n\n// Extended HTMLDivElement with custom properties for resize handles\ninterface ResizeHandleElement extends HTMLDivElement {\n __cellElement?: HTMLElement\n __columnName?: string\n}\n\ntype UseColumnResizeHandlesProps = {\n wrapperRef: React.RefObject<HTMLDivElement | null>\n colValues: Column[]\n onColumnResize: (columnName: string, newWidth: number) => void\n}\n\ninterface ResizeState {\n columnName: string\n startX: number\n startWidth: number\n handle: HTMLDivElement\n initialLeft: number\n}\n\n/**\n * Encapsulates all column resize handle logic and state management.\n * Manages handle creation, positioning, mouse interactions, and cleanup.\n */\nclass ColumnResizeManager {\n private static readonly COLUMN_MIN_WIDTH_PX = 50\n\n private handlesMap = new Map<string, ResizeHandleElement>()\n private cleanupFunctions: Array<(() => void) | HTMLDivElement> = []\n private activeResize: ResizeState | null = null\n private gridContainer: HTMLElement | null = null\n private headerRow: Element | null = null\n private observer: MutationObserver | null = null\n\n constructor(\n private colValues: Column[],\n private onColumnResize: (name: string, width: number) => void,\n ) {}\n\n /**\n * Update the column values and callback without reinitializing.\n */\n updateColumns(\n colValues: Column[],\n onColumnResize: (name: string, width: number) => void,\n ): void {\n this.colValues = colValues\n this.onColumnResize = onColumnResize\n // Resync handles with new column data\n this.syncHandles()\n }\n\n /**\n * Initialize the manager by finding grid elements and setting up event listeners.\n * Returns true if initialization was successful, false otherwise.\n */\n initialize(wrapperRef: HTMLDivElement): boolean {\n const gridContainer = wrapperRef.querySelector(\n '.dsg-container',\n ) as HTMLElement\n\n if (!gridContainer) {\n return false\n }\n\n const headerRow = gridContainer.querySelector('.dsg-row.dsg-row-header')\n\n if (!headerRow) {\n return false\n }\n\n this.gridContainer = gridContainer\n this.headerRow = headerRow\n\n this.setupEventListeners()\n this.syncHandles()\n\n return true\n }\n\n /**\n * Creates a new resize handle element with mousedown listener.\n */\n private createNewHandle(columnName: string): ResizeHandleElement {\n if (!this.gridContainer) {\n throw new Error('Cannot create handle without grid container')\n }\n\n const handle = document.createElement('div') as ResizeHandleElement\n handle.className = 'column-resize-handle'\n handle.dataset.columnName = columnName\n handle.style.position = 'absolute'\n handle.style.top = '0'\n handle.style.width = '8px'\n handle.style.cursor = 'col-resize'\n handle.style.pointerEvents = 'auto'\n handle.style.zIndex = '1000'\n\n const onMouseDown = (e: MouseEvent) => this.handleMouseDown(e, handle)\n handle.addEventListener('mousedown', onMouseDown)\n\n this.cleanupFunctions.push(() =>\n handle.removeEventListener('mousedown', onMouseDown),\n )\n\n this.gridContainer.appendChild(handle)\n this.cleanupFunctions.push(handle)\n this.handlesMap.set(columnName, handle)\n\n return handle\n }\n\n /**\n * Creates or updates a handle for a given cell element.\n */\n private createOrUpdateHandle(\n cellElement: HTMLElement,\n columnIndex: number,\n ): void {\n const columnName = this.colValues[columnIndex]?.id as string\n if (!columnName || !this.gridContainer) return\n\n let handle = this.handlesMap.get(columnName)\n\n if (!handle) {\n handle = this.createNewHandle(columnName)\n }\n\n this.updateHandlePosition(handle, cellElement)\n }\n\n /**\n * Updates the position and size of a handle based on its cell element.\n */\n private updateHandlePosition(\n handle: ResizeHandleElement,\n cellElement: HTMLElement,\n ): void {\n if (!this.gridContainer) return\n\n const gridHeight = this.gridContainer.scrollHeight\n const left = cellElement.offsetLeft + cellElement.offsetWidth - 3\n\n handle.__cellElement = cellElement\n handle.__columnName = handle.dataset.columnName\n handle.style.left = `${left}px`\n handle.style.height = `${gridHeight}px`\n handle.style.display = '' // Ensure visible\n }\n\n /**\n * Handles mousedown event on a resize handle to initiate dragging.\n */\n private handleMouseDown(e: MouseEvent, handle: ResizeHandleElement): void {\n e.preventDefault()\n e.stopPropagation()\n\n // Read the column info fresh at mousedown time\n const currentColumnName = handle.__columnName\n const currentCellElement = handle.__cellElement\n\n if (!currentColumnName || !currentCellElement) return\n\n // Get current width and position at the time of mousedown\n const currentLeft = parseFloat(handle.style.left)\n\n this.activeResize = {\n columnName: currentColumnName,\n startX: e.clientX,\n startWidth: currentCellElement.offsetWidth,\n handle,\n initialLeft: currentLeft,\n }\n\n handle.classList.add('is-resizing')\n document.body.classList.add('col-resizing')\n }\n\n /**\n * Handles mousemove event to update handle position during drag.\n */\n private handleMouseMove = (e: MouseEvent): void => {\n if (!this.activeResize) return\n\n const { startX, handle, initialLeft } = this.activeResize\n const deltaX = e.clientX - startX\n handle.style.left = `${initialLeft + deltaX}px`\n }\n\n /**\n * Handles mouseup/mouseleave to finalize the resize operation.\n */\n private handleMouseUp = (e: MouseEvent): void => {\n if (!this.activeResize) return\n\n const { columnName, startX, startWidth, handle } = this.activeResize\n const deltaX = e.clientX - startX\n const newWidth = Math.max(\n ColumnResizeManager.COLUMN_MIN_WIDTH_PX,\n startWidth + deltaX,\n )\n\n handle.classList.remove('is-resizing')\n document.body.classList.remove('col-resizing')\n this.activeResize = null\n\n // Only update state when drag is complete\n this.onColumnResize(columnName, newWidth)\n }\n\n /**\n * Synchronizes handles with currently visible columns in the header.\n * Handles virtualization by showing/hiding handles as columns appear/disappear.\n */\n private syncHandles = (): void => {\n if (this.activeResize || !this.headerRow) return // Don't sync during resize\n\n const headerCells = this.headerRow.querySelectorAll('.dsg-cell')\n if (headerCells.length <= 1) return\n\n // Track which columns are currently visible\n const visibleColumns = new Set<string>()\n\n // Update or create handles for visible columns\n headerCells.forEach((cell: Element, index: number) => {\n if (index === 0) return // Skip gutter column\n\n const cellElement = cell as HTMLElement\n\n // Get the column name from the cell's text content\n // This is more reliable than using DOM index with virtualization\n const cellText = cellElement.textContent?.trim() || ''\n\n // Find the actual column index in colValues by matching the id (column name)\n // Note: col.title may be a React element (e.g. ColumnHeaderWithTooltip), so we use col.id\n const actualColumnIndex = this.colValues.findIndex(\n col => col.id === cellText,\n )\n\n if (actualColumnIndex !== -1) {\n const columnName = this.colValues[actualColumnIndex]?.id as string\n visibleColumns.add(columnName)\n this.createOrUpdateHandle(cellElement, actualColumnIndex)\n }\n })\n\n // Hide handles for columns that are no longer visible (virtualized out)\n this.handlesMap.forEach((handle, columnName) => {\n if (!visibleColumns.has(columnName)) {\n handle.style.display = 'none'\n }\n })\n }\n\n /**\n * Sets up all event listeners for mouse interactions, scroll, and virtualization.\n */\n private setupEventListeners(): void {\n if (!this.gridContainer || !this.headerRow) return\n\n // Global mouse event listeners\n document.addEventListener('mousemove', this.handleMouseMove)\n document.addEventListener('mouseup', this.handleMouseUp)\n document.addEventListener('mouseleave', this.handleMouseUp)\n\n // Scroll listener for updating handle positions\n this.gridContainer.addEventListener('scroll', this.syncHandles)\n\n // MutationObserver to detect when columns are added/removed due to virtualization\n this.observer = new MutationObserver(() => {\n // Debounce mutations to avoid excessive syncs\n requestAnimationFrame(() => {\n this.syncHandles()\n })\n })\n\n this.observer.observe(this.headerRow, {\n childList: true, // Watch for added/removed columns\n subtree: true,\n })\n\n // Register cleanup functions\n this.cleanupFunctions.push(() => {\n document.removeEventListener('mousemove', this.handleMouseMove)\n document.removeEventListener('mouseup', this.handleMouseUp)\n document.removeEventListener('mouseleave', this.handleMouseUp)\n this.gridContainer?.removeEventListener('scroll', this.syncHandles)\n this.observer?.disconnect()\n })\n }\n\n /**\n * Cleans up all handles, event listeners, and resets state.\n */\n cleanup(): void {\n // Ensure cursor class is removed\n document.body.classList.remove('col-resizing')\n\n // Reset active resize state\n if (this.activeResize) {\n this.activeResize.handle?.classList.remove('is-resizing')\n this.activeResize = null\n }\n\n // Run all cleanup functions and remove handles\n this.cleanupFunctions.forEach(item => {\n if (typeof item === 'function') {\n item()\n } else {\n // It's a handle element, remove it\n item.remove()\n }\n })\n\n this.cleanupFunctions = []\n this.handlesMap.clear()\n this.gridContainer = null\n this.headerRow = null\n this.observer = null\n }\n}\n\n/**\n * Custom hook that manages interactive column resize handles for a data grid.\n * Creates, positions, and updates resize handles that allow users to drag column borders.\n * Handles virtualization, scrolling, and proper cleanup.\n */\nexport function useColumnResizeHandles({\n wrapperRef,\n colValues,\n onColumnResize,\n}: UseColumnResizeHandlesProps) {\n const managerRef = useRef<ColumnResizeManager | null>(null)\n\n // Use react-hookz useResizeObserver to detect when wrapper is rendered and sized\n useResizeObserver(wrapperRef, entry => {\n if (!wrapperRef.current || !entry || entry.contentRect.height === 0) {\n return\n }\n\n // Initialize manager if not already done\n if (!managerRef.current) {\n const manager = new ColumnResizeManager(colValues, onColumnResize)\n const success = manager.initialize(wrapperRef.current)\n if (success) {\n managerRef.current = manager\n }\n }\n })\n\n useEffect(() => {\n // Update columns when they change instead of full reinitialization\n if (managerRef.current) {\n managerRef.current.updateColumns(colValues, onColumnResize)\n }\n }, [colValues, onColumnResize])\n\n useEffect(() => {\n // Cleanup on unmount\n return () => {\n managerRef.current?.cleanup()\n managerRef.current = null\n }\n }, [])\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useColumnResizeHandles.js","names":["useEffect","useRef","Column","useResizeObserver","ResizeHandleElement","HTMLDivElement","__cellElement","HTMLElement","__columnName","UseColumnResizeHandlesProps","wrapperRef","React","RefObject","colValues","onColumnResize","columnName","newWidth","ResizeState","startX","startWidth","handle","initialLeft","ColumnResizeManager","COLUMN_MIN_WIDTH_PX","handlesMap","Map","cleanupFunctions","Array","activeResize","gridContainer","headerRow","Element","observer","MutationObserver","constructor","name","width","updateColumns","syncHandles","initialize","querySelector","setupEventListeners","createNewHandle","Error","document","createElement","className","dataset","style","position","top","cursor","pointerEvents","zIndex","onMouseDown","e","MouseEvent","handleMouseDown","addEventListener","push","removeEventListener","appendChild","set","createOrUpdateHandle","cellElement","columnIndex","id","get","updateHandlePosition","gridHeight","scrollHeight","left","offsetLeft","offsetWidth","height","display","preventDefault","stopPropagation","currentColumnName","currentCellElement","currentLeft","parseFloat","clientX","classList","add","body","handleMouseMove","deltaX","handleMouseUp","Math","max","remove","headerCells","querySelectorAll","length","visibleColumns","Set","forEach","cell","index","cellText","textContent","trim","actualColumnIndex","findIndex","col","has","requestAnimationFrame","observe","childList","subtree","disconnect","cleanup","item","clear","useColumnResizeHandles","t0","$","_c","managerRef","t1","entry","current","contentRect","manager","success","t2","t3","t4","t5","Symbol","for"],"sources":["../../../../src/components/DataGrid/hooks/useColumnResizeHandles.ts"],"sourcesContent":["import { useEffect, useRef } from 'react'\nimport { Column } from '@sage-bionetworks/react-datasheet-grid'\nimport { useResizeObserver } from '@react-hookz/web'\n\n// Extended HTMLDivElement with custom properties for resize handles\ninterface ResizeHandleElement extends HTMLDivElement {\n __cellElement?: HTMLElement\n __columnName?: string\n}\n\ntype UseColumnResizeHandlesProps = {\n wrapperRef: React.RefObject<HTMLDivElement | null>\n colValues: Column[]\n onColumnResize: (columnName: string, newWidth: number) => void\n}\n\ninterface ResizeState {\n columnName: string\n startX: number\n startWidth: number\n handle: HTMLDivElement\n initialLeft: number\n}\n\n/**\n * Encapsulates all column resize handle logic and state management.\n * Manages handle creation, positioning, mouse interactions, and cleanup.\n */\nclass ColumnResizeManager {\n private static readonly COLUMN_MIN_WIDTH_PX = 50\n\n private handlesMap = new Map<string, ResizeHandleElement>()\n private cleanupFunctions: Array<(() => void) | HTMLDivElement> = []\n private activeResize: ResizeState | null = null\n private gridContainer: HTMLElement | null = null\n private headerRow: Element | null = null\n private observer: MutationObserver | null = null\n\n constructor(\n private colValues: Column[],\n private onColumnResize: (name: string, width: number) => void,\n ) {}\n\n /**\n * Update the column values and callback without reinitializing.\n */\n updateColumns(\n colValues: Column[],\n onColumnResize: (name: string, width: number) => void,\n ): void {\n this.colValues = colValues\n this.onColumnResize = onColumnResize\n // Resync handles with new column data\n this.syncHandles()\n }\n\n /**\n * Initialize the manager by finding grid elements and setting up event listeners.\n * Returns true if initialization was successful, false otherwise.\n */\n initialize(wrapperRef: HTMLDivElement): boolean {\n const gridContainer = wrapperRef.querySelector(\n '.dsg-container',\n ) as HTMLElement\n\n if (!gridContainer) {\n return false\n }\n\n const headerRow = gridContainer.querySelector('.dsg-row.dsg-row-header')\n\n if (!headerRow) {\n return false\n }\n\n this.gridContainer = gridContainer\n this.headerRow = headerRow\n\n this.setupEventListeners()\n this.syncHandles()\n\n return true\n }\n\n /**\n * Creates a new resize handle element with mousedown listener.\n */\n private createNewHandle(columnName: string): ResizeHandleElement {\n if (!this.gridContainer) {\n throw new Error('Cannot create handle without grid container')\n }\n\n const handle = document.createElement('div') as ResizeHandleElement\n handle.className = 'column-resize-handle'\n handle.dataset.columnName = columnName\n handle.style.position = 'absolute'\n handle.style.top = '0'\n handle.style.width = '8px'\n handle.style.cursor = 'col-resize'\n handle.style.pointerEvents = 'auto'\n handle.style.zIndex = '1000'\n\n const onMouseDown = (e: MouseEvent) => this.handleMouseDown(e, handle)\n handle.addEventListener('mousedown', onMouseDown)\n\n this.cleanupFunctions.push(() =>\n handle.removeEventListener('mousedown', onMouseDown),\n )\n\n this.gridContainer.appendChild(handle)\n this.cleanupFunctions.push(handle)\n this.handlesMap.set(columnName, handle)\n\n return handle\n }\n\n /**\n * Creates or updates a handle for a given cell element.\n */\n private createOrUpdateHandle(\n cellElement: HTMLElement,\n columnIndex: number,\n ): void {\n const columnName = this.colValues[columnIndex]?.id as string\n if (!columnName || !this.gridContainer) return\n\n let handle = this.handlesMap.get(columnName)\n\n if (!handle) {\n handle = this.createNewHandle(columnName)\n }\n\n this.updateHandlePosition(handle, cellElement)\n }\n\n /**\n * Updates the position and size of a handle based on its cell element.\n */\n private updateHandlePosition(\n handle: ResizeHandleElement,\n cellElement: HTMLElement,\n ): void {\n if (!this.gridContainer) return\n\n const gridHeight = this.gridContainer.scrollHeight\n const left = cellElement.offsetLeft + cellElement.offsetWidth - 3\n\n handle.__cellElement = cellElement\n handle.__columnName = handle.dataset.columnName\n handle.style.left = `${left}px`\n handle.style.height = `${gridHeight}px`\n handle.style.display = '' // Ensure visible\n }\n\n /**\n * Handles mousedown event on a resize handle to initiate dragging.\n */\n private handleMouseDown(e: MouseEvent, handle: ResizeHandleElement): void {\n e.preventDefault()\n e.stopPropagation()\n\n // Read the column info fresh at mousedown time\n const currentColumnName = handle.__columnName\n const currentCellElement = handle.__cellElement\n\n if (!currentColumnName || !currentCellElement) return\n\n // Get current width and position at the time of mousedown\n const currentLeft = parseFloat(handle.style.left)\n\n this.activeResize = {\n columnName: currentColumnName,\n startX: e.clientX,\n startWidth: currentCellElement.offsetWidth,\n handle,\n initialLeft: currentLeft,\n }\n\n handle.classList.add('is-resizing')\n document.body.classList.add('col-resizing')\n }\n\n /**\n * Handles mousemove event to update handle position during drag.\n */\n private handleMouseMove = (e: MouseEvent): void => {\n if (!this.activeResize) return\n\n const { startX, handle, initialLeft } = this.activeResize\n const deltaX = e.clientX - startX\n handle.style.left = `${initialLeft + deltaX}px`\n }\n\n /**\n * Handles mouseup/mouseleave to finalize the resize operation.\n */\n private handleMouseUp = (e: MouseEvent): void => {\n if (!this.activeResize) return\n\n const { columnName, startX, startWidth, handle } = this.activeResize\n const deltaX = e.clientX - startX\n const newWidth = Math.max(\n ColumnResizeManager.COLUMN_MIN_WIDTH_PX,\n startWidth + deltaX,\n )\n\n handle.classList.remove('is-resizing')\n document.body.classList.remove('col-resizing')\n this.activeResize = null\n\n // Only update state when drag is complete\n this.onColumnResize(columnName, newWidth)\n }\n\n /**\n * Synchronizes handles with currently visible columns in the header.\n * Handles virtualization by showing/hiding handles as columns appear/disappear.\n */\n private syncHandles = (): void => {\n if (this.activeResize || !this.headerRow) return // Don't sync during resize\n\n const headerCells = this.headerRow.querySelectorAll('.dsg-cell')\n if (headerCells.length <= 1) return\n\n // Track which columns are currently visible\n const visibleColumns = new Set<string>()\n\n // Update or create handles for visible columns\n headerCells.forEach((cell: Element, index: number) => {\n if (index === 0) return // Skip gutter column\n\n const cellElement = cell as HTMLElement\n\n // Get the column name from the cell's text content\n // This is more reliable than using DOM index with virtualization\n const cellText = cellElement.textContent?.trim() || ''\n\n // Find the actual column index in colValues by matching the id (column name)\n // Note: col.title may be a React element (e.g. ColumnHeaderWithTooltip), so we use col.id\n const actualColumnIndex = this.colValues.findIndex(\n col => col.id === cellText,\n )\n\n if (actualColumnIndex !== -1) {\n const columnName = this.colValues[actualColumnIndex]?.id as string\n visibleColumns.add(columnName)\n this.createOrUpdateHandle(cellElement, actualColumnIndex)\n }\n })\n\n // Hide handles for columns that are no longer visible (virtualized out)\n this.handlesMap.forEach((handle, columnName) => {\n if (!visibleColumns.has(columnName)) {\n handle.style.display = 'none'\n }\n })\n }\n\n /**\n * Sets up all event listeners for mouse interactions, scroll, and virtualization.\n */\n private setupEventListeners(): void {\n if (!this.gridContainer || !this.headerRow) return\n\n // Global mouse event listeners\n document.addEventListener('mousemove', this.handleMouseMove)\n document.addEventListener('mouseup', this.handleMouseUp)\n document.addEventListener('mouseleave', this.handleMouseUp)\n\n // Scroll listener for updating handle positions\n this.gridContainer.addEventListener('scroll', this.syncHandles)\n\n // MutationObserver to detect when columns are added/removed due to virtualization\n this.observer = new MutationObserver(() => {\n // Debounce mutations to avoid excessive syncs\n requestAnimationFrame(() => {\n this.syncHandles()\n })\n })\n\n this.observer.observe(this.headerRow, {\n childList: true, // Watch for added/removed columns\n subtree: true,\n })\n\n // Register cleanup functions\n this.cleanupFunctions.push(() => {\n document.removeEventListener('mousemove', this.handleMouseMove)\n document.removeEventListener('mouseup', this.handleMouseUp)\n document.removeEventListener('mouseleave', this.handleMouseUp)\n this.gridContainer?.removeEventListener('scroll', this.syncHandles)\n this.observer?.disconnect()\n })\n }\n\n /**\n * Cleans up all handles, event listeners, and resets state.\n */\n cleanup(): void {\n // Ensure cursor class is removed\n document.body.classList.remove('col-resizing')\n\n // Reset active resize state\n if (this.activeResize) {\n this.activeResize.handle?.classList.remove('is-resizing')\n this.activeResize = null\n }\n\n // Run all cleanup functions and remove handles\n this.cleanupFunctions.forEach(item => {\n if (typeof item === 'function') {\n item()\n } else {\n // It's a handle element, remove it\n item.remove()\n }\n })\n\n this.cleanupFunctions = []\n this.handlesMap.clear()\n this.gridContainer = null\n this.headerRow = null\n this.observer = null\n }\n}\n\n/**\n * Custom hook that manages interactive column resize handles for a data grid.\n * Creates, positions, and updates resize handles that allow users to drag column borders.\n * Handles virtualization, scrolling, and proper cleanup.\n */\nexport function useColumnResizeHandles({\n wrapperRef,\n colValues,\n onColumnResize,\n}: UseColumnResizeHandlesProps) {\n const managerRef = useRef<ColumnResizeManager | null>(null)\n\n // Use react-hookz useResizeObserver to detect when wrapper is rendered and sized\n useResizeObserver(wrapperRef, entry => {\n if (!wrapperRef.current || !entry || entry.contentRect.height === 0) {\n return\n }\n\n // Initialize manager if not already done\n if (!managerRef.current) {\n const manager = new ColumnResizeManager(colValues, onColumnResize)\n const success = manager.initialize(wrapperRef.current)\n if (success) {\n managerRef.current = manager\n }\n }\n })\n\n useEffect(() => {\n // Update columns when they change instead of full reinitialization\n if (managerRef.current) {\n managerRef.current.updateColumns(colValues, onColumnResize)\n }\n }, [colValues, onColumnResize])\n\n useEffect(() => {\n // Cleanup on unmount\n return () => {\n managerRef.current?.cleanup()\n managerRef.current = null\n }\n }, [])\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useExportDataGridToCsv.js","names":["useExportGridAsCsv","displayToast","useSynapseContext","getFileHandleByIdURL","UseExportDataGridToCsvOptions","gridSessionId","filename","useExportDataGridToCsv","options","$","_c","accessToken","t0","onSuccess","data","resultsFileHandleId","then","presignedUrl","fetch","_temp","blob","blobUrl","URL","createObjectURL","link","document","createElement","href","timestamp","Date","toISOString","replace","setAttribute","body","appendChild","click","removeChild","revokeObjectURL","catch","_temp2","onError","_temp3","mutate","exportGrid","isPending","t1","sessionId","includeEtag","includeRowIdAndRowVersion","concreteType","exportToCsv","t2","isExporting","error","reason","err","Error","message","response"],"sources":["../../../../src/components/DataGrid/hooks/useExportDataGridToCsv.ts"],"sourcesContent":["import { useExportGridAsCsv } from '@/synapse-queries/grid/useExportGrid'\nimport { displayToast } from '../../ToastMessage'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { getFileHandleByIdURL } from '@/synapse-client/SynapseClient'\n\nexport interface UseExportDataGridToCsvOptions {\n gridSessionId: string\n filename: string\n}\n\nexport function useExportDataGridToCsv(options: UseExportDataGridToCsvOptions) {\n const { gridSessionId, filename } = options\n const { accessToken } = useSynapseContext()\n\n const { mutate: exportGrid, isPending } = useExportGridAsCsv({\n onSuccess: data => {\n if (data?.resultsFileHandleId) {\n // Get presigned URL and trigger download\n getFileHandleByIdURL(data.resultsFileHandleId, accessToken)\n .then(presignedUrl => {\n // Fetch the file as a blob to control the filename\n return fetch(presignedUrl)\n .then(response => response.blob())\n .then(blob => {\n // Create a blob URL with our custom filename\n const blobUrl = URL.createObjectURL(blob)\n const link = document.createElement('a')\n link.href = blobUrl\n // Generate filename with timestamp\n const timestamp = new Date().toISOString().replace(/[:.]/g, '-')\n link.setAttribute('download', `${filename}-${timestamp}.csv`)\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n // Clean up the blob URL\n URL.revokeObjectURL(blobUrl)\n\n displayToast('CSV export completed successfully', 'success')\n })\n })\n .catch(err => {\n displayToast(\n `Failed to download CSV: ${\n err instanceof Error ? err.message : 'Unknown error'\n }`,\n 'danger',\n )\n })\n }\n },\n onError: error => {\n displayToast(\n `CSV export failed: ${error.reason || 'Unknown error'}`,\n 'danger',\n )\n },\n })\n\n const exportToCsv = () => {\n exportGrid({\n sessionId: gridSessionId,\n includeEtag: false,\n includeRowIdAndRowVersion: false,\n concreteType:\n 'org.sagebionetworks.repo.model.grid.DownloadFromGridRequest',\n })\n }\n\n return {\n exportToCsv,\n isExporting: isPending,\n }\n}\n"],"mappings":";;;;;;;AAUA,SAAOO,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,
|
|
1
|
+
{"version":3,"file":"useExportDataGridToCsv.js","names":["useExportGridAsCsv","displayToast","useSynapseContext","getFileHandleByIdURL","UseExportDataGridToCsvOptions","gridSessionId","filename","useExportDataGridToCsv","options","$","_c","accessToken","t0","onSuccess","data","resultsFileHandleId","then","presignedUrl","fetch","_temp","blob","blobUrl","URL","createObjectURL","link","document","createElement","href","timestamp","Date","toISOString","replace","setAttribute","body","appendChild","click","removeChild","revokeObjectURL","catch","_temp2","onError","_temp3","mutate","exportGrid","isPending","t1","sessionId","includeEtag","includeRowIdAndRowVersion","concreteType","exportToCsv","t2","isExporting","error","reason","err","Error","message","response"],"sources":["../../../../src/components/DataGrid/hooks/useExportDataGridToCsv.ts"],"sourcesContent":["import { useExportGridAsCsv } from '@/synapse-queries/grid/useExportGrid'\nimport { displayToast } from '../../ToastMessage'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { getFileHandleByIdURL } from '@/synapse-client/SynapseClient'\n\nexport interface UseExportDataGridToCsvOptions {\n gridSessionId: string\n filename: string\n}\n\nexport function useExportDataGridToCsv(options: UseExportDataGridToCsvOptions) {\n const { gridSessionId, filename } = options\n const { accessToken } = useSynapseContext()\n\n const { mutate: exportGrid, isPending } = useExportGridAsCsv({\n onSuccess: data => {\n if (data?.resultsFileHandleId) {\n // Get presigned URL and trigger download\n getFileHandleByIdURL(data.resultsFileHandleId, accessToken)\n .then(presignedUrl => {\n // Fetch the file as a blob to control the filename\n return fetch(presignedUrl)\n .then(response => response.blob())\n .then(blob => {\n // Create a blob URL with our custom filename\n const blobUrl = URL.createObjectURL(blob)\n const link = document.createElement('a')\n link.href = blobUrl\n // Generate filename with timestamp\n const timestamp = new Date().toISOString().replace(/[:.]/g, '-')\n link.setAttribute('download', `${filename}-${timestamp}.csv`)\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n // Clean up the blob URL\n URL.revokeObjectURL(blobUrl)\n\n displayToast('CSV export completed successfully', 'success')\n })\n })\n .catch(err => {\n displayToast(\n `Failed to download CSV: ${\n err instanceof Error ? err.message : 'Unknown error'\n }`,\n 'danger',\n )\n })\n }\n },\n onError: error => {\n displayToast(\n `CSV export failed: ${error.reason || 'Unknown error'}`,\n 'danger',\n )\n },\n })\n\n const exportToCsv = () => {\n exportGrid({\n sessionId: gridSessionId,\n includeEtag: false,\n includeRowIdAndRowVersion: false,\n concreteType:\n 'org.sagebionetworks.repo.model.grid.DownloadFromGridRequest',\n })\n }\n\n return {\n exportToCsv,\n isExporting: isPending,\n }\n}\n"],"mappings":";;;;;;;AAUA,SAAOO,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GACL,EAAAL,kBAAAC,gBAAoCE,GACpC,EAAAG,mBAAwBT,EAAkB,GAACU;CAAA,AAAAH,EAAA,OAAAE,KAAAF,EAAA,OAAAH,KAEkBM,IAAA;EAAAC,YAChDC,MAAA;GACT,AAAIA,GAAIC,uBAENZ,EAAqBW,EAAIC,qBAAsBJ,CAAW,EAACK,MACnDC,MAEGC,MAAMD,CAAY,EAACD,KAClBG,CAA2B,EAACH,MAC5BI,MAAA;IAEJ,IAAAC,IAAgBC,IAAGC,gBAAiBH,CAAI,GACxCI,IAAaC,SAAQC,cAAe,GAAG;IACvCF,EAAIG,OAAQN;IAEZ,IAAAO,qBAAkB,IAAIC,KAAK,GAACC,YAAa,EAACC,QAAS,SAAS,GAAG;IAQ/D9B,AAPAuB,EAAIQ,aAAc,YAAY,GAAG1B,EAAQ,GAAIsB,EAAS,KAAM,GAC5DH,SAAQQ,KAAKC,YAAaV,CAAI,GAC9BA,EAAIW,MAAO,GACXV,SAAQQ,KAAKG,YAAaZ,CAAI,GAE9BF,IAAGe,gBAAiBhB,CAAO,GAE3BpB,EAAa,qCAAqC,SAAS;GAAC,CAC7D,CACJ,EAACqC,MACKC,CAON;EACJ;EACFC,SACQC;CAMX,GAAChC,EAAA,KAAAE,GAAAF,EAAA,KAAAH,GAAAG,EAAA,KAAAG,KAAAA,IAAAH,EAAA;CA1CD,IAAA,EAAAiC,QAAAC,GAAAC,iBAA0C5C,EAAmBY,CA0C5D,GAACiC;CAAA,AAAApC,EAAA,OAAAkC,KAAAlC,EAAA,OAAAJ,KAEkBwC,UAAA;EAClBF,EAAW;GAAAG,WACEzC;GAAa0C,aACX;GAAKC,2BACS;GAAKC,cAE9B;EACJ,CAAC;CAAC,GACHxC,EAAA,KAAAkC,GAAAlC,EAAA,KAAAJ,GAAAI,EAAA,KAAAoC,KAAAA,IAAApC,EAAA;CARD,IAAAyC,IAAoBL,GAQnBM;CAKA,OALA1C,EAAA,OAAAyC,KAAAzC,EAAA,OAAAmC,KAEMO,IAAA;EAAAD;EAAAE,aAEQR;CACf,GAACnC,EAAA,KAAAyC,GAAAzC,EAAA,KAAAmC,GAAAnC,EAAA,KAAA0C,KAAAA,IAAA1C,EAAA,IAHM0C;AAGN;AA7DI,SAAAV,EAAAY,GAAA;CAyCDpD,EACE,sBAAsBoD,EAAKC,UAAL,mBACtB,QACF;AAAC;AA5CA,SAAAf,EAAAgB,GAAA;CA+BKtD,EACE,2BACEsD,aAAeC,QAAQD,EAAGE,UAA1B,mBAEF,QACF;AAAC;AApCN,SAAAtC,EAAAuC,GAAA;CAAA,OAYyBA,EAAQtC,KAAM;AAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetSchemaForGrid.js","names":["useGetEntity","useGetSchema","GridSession","instanceOfEntityView","createComparator","createMerger","createShallowAllOfMerge","createDeduplicator","createIntersector","JSONSchema7","isObject","useMemo","compareSchemaDefinitions","compareSchemaValues","mergeArrayOfSchemaDefinitions","intersectJson","deduplicateJsonSchemaDef","shallowAllOfMerge","GRID_ENTITY_READONLY_PROPERTIES","addReadonlyToEntityProperties","jsonSchema","properties","updatedProperties","propertiesToMakeReadonly","forEach","prop","readOnly","useGetSchemaForGrid","session","$","_c","t0","gridJsonSchema$Id","t1","enabled","data","t2","sourceEntityId","t3","entityData","undefined","includeBaseEntitySchema","t4","select","entityJsonSchema","t5","t6","allOf"],"sources":["../../../../src/components/DataGrid/hooks/useGetSchemaForGrid.ts"],"sourcesContent":["import { useGetEntity, useGetSchema } from '@/synapse-queries/index'\nimport {\n GridSession,\n instanceOfEntityView,\n} from '@sage-bionetworks/synapse-client'\nimport {\n createComparator,\n createMerger,\n createShallowAllOfMerge,\n} from '@x0k/json-schema-merge'\nimport {\n createDeduplicator,\n createIntersector,\n} from '@x0k/json-schema-merge/lib/array'\nimport { JSONSchema7 } from 'json-schema'\nimport isObject from 'lodash-es/isObject'\nimport { useMemo } from 'react'\n\nconst { compareSchemaDefinitions, compareSchemaValues } = createComparator()\nconst { mergeArrayOfSchemaDefinitions } = createMerger({\n intersectJson: createIntersector(compareSchemaValues),\n deduplicateJsonSchemaDef: createDeduplicator(compareSchemaDefinitions),\n})\nconst shallowAllOfMerge = createShallowAllOfMerge(mergeArrayOfSchemaDefinitions)\n\nconst GRID_ENTITY_READONLY_PROPERTIES = [\n 'name',\n 'id',\n 'createdBy',\n 'createdOn',\n 'modifiedBy',\n 'modifiedOn',\n 'etag',\n 'concreteType',\n 'parentId',\n 'path',\n 'type',\n 'currentVersion',\n 'benefactorId',\n 'dataFileHandleId',\n 'dataFileName',\n 'dataFileSizeBytes',\n 'dataFileMD5Hex',\n 'dataFileConcreteType',\n 'dataFileBucket',\n 'dataFileKey',\n]\n\n/**\n * The Synapse JSON Schemas for entities do not indicate which properties should be readOnly.\n * Amend the schema to mark certain properties as readOnly so they cannot be edited in the grid.\n */\nfunction addReadonlyToEntityProperties(jsonSchema: JSONSchema7): JSONSchema7 {\n if (!jsonSchema.properties) {\n return jsonSchema\n }\n\n const updatedProperties = { ...jsonSchema.properties }\n\n // List of properties to mark as read-only\n const propertiesToMakeReadonly = GRID_ENTITY_READONLY_PROPERTIES\n\n propertiesToMakeReadonly.forEach(prop => {\n if (updatedProperties[prop]) {\n updatedProperties[prop] = {\n ...(isObject(updatedProperties[prop]) ? updatedProperties[prop] : {}),\n readOnly: true,\n }\n } else {\n updatedProperties[prop] = { readOnly: true }\n }\n })\n\n return {\n ...jsonSchema,\n properties: updatedProperties,\n }\n}\n\n/**\n * Hook to get the JSON schema for a Data Grid, merging in the base Entity schema if the source entity is an EntityView.\n * @param session - The GridSession object.\n */\nexport default function useGetSchemaForGrid(session: GridSession | null) {\n const { data: jsonSchema } = useGetSchema(session?.gridJsonSchema$Id ?? '', {\n enabled: !!session?.gridJsonSchema$Id,\n })\n\n const { data: entityData } = useGetEntity(\n session?.sourceEntityId,\n undefined,\n {\n enabled: !!session?.sourceEntityId,\n },\n )\n\n let includeBaseEntitySchema = false\n if (entityData && instanceOfEntityView(entityData)) {\n includeBaseEntitySchema = true\n }\n\n const { data: entityJsonSchema } = useGetSchema(\n 'org.sagebionetworks-repo.model.Entity',\n {\n enabled: includeBaseEntitySchema,\n select: addReadonlyToEntityProperties,\n },\n )\n\n return useMemo(() => {\n if (jsonSchema && entityJsonSchema) {\n return shallowAllOfMerge({\n allOf: [entityJsonSchema, jsonSchema],\n }) as JSONSchema7\n } else {\n return jsonSchema\n }\n }, [jsonSchema, entityJsonSchema])\n}\n"],"mappings":";;;;;;;;;AAkBA,IAAM,EAAEY,6BAA0BC,2BAAwBT,
|
|
1
|
+
{"version":3,"file":"useGetSchemaForGrid.js","names":["useGetEntity","useGetSchema","GridSession","instanceOfEntityView","createComparator","createMerger","createShallowAllOfMerge","createDeduplicator","createIntersector","JSONSchema7","isObject","useMemo","compareSchemaDefinitions","compareSchemaValues","mergeArrayOfSchemaDefinitions","intersectJson","deduplicateJsonSchemaDef","shallowAllOfMerge","GRID_ENTITY_READONLY_PROPERTIES","addReadonlyToEntityProperties","jsonSchema","properties","updatedProperties","propertiesToMakeReadonly","forEach","prop","readOnly","useGetSchemaForGrid","session","$","_c","t0","gridJsonSchema$Id","t1","enabled","data","t2","sourceEntityId","t3","entityData","undefined","includeBaseEntitySchema","t4","select","entityJsonSchema","t5","t6","allOf"],"sources":["../../../../src/components/DataGrid/hooks/useGetSchemaForGrid.ts"],"sourcesContent":["import { useGetEntity, useGetSchema } from '@/synapse-queries/index'\nimport {\n GridSession,\n instanceOfEntityView,\n} from '@sage-bionetworks/synapse-client'\nimport {\n createComparator,\n createMerger,\n createShallowAllOfMerge,\n} from '@x0k/json-schema-merge'\nimport {\n createDeduplicator,\n createIntersector,\n} from '@x0k/json-schema-merge/lib/array'\nimport { JSONSchema7 } from 'json-schema'\nimport isObject from 'lodash-es/isObject'\nimport { useMemo } from 'react'\n\nconst { compareSchemaDefinitions, compareSchemaValues } = createComparator()\nconst { mergeArrayOfSchemaDefinitions } = createMerger({\n intersectJson: createIntersector(compareSchemaValues),\n deduplicateJsonSchemaDef: createDeduplicator(compareSchemaDefinitions),\n})\nconst shallowAllOfMerge = createShallowAllOfMerge(mergeArrayOfSchemaDefinitions)\n\nconst GRID_ENTITY_READONLY_PROPERTIES = [\n 'name',\n 'id',\n 'createdBy',\n 'createdOn',\n 'modifiedBy',\n 'modifiedOn',\n 'etag',\n 'concreteType',\n 'parentId',\n 'path',\n 'type',\n 'currentVersion',\n 'benefactorId',\n 'dataFileHandleId',\n 'dataFileName',\n 'dataFileSizeBytes',\n 'dataFileMD5Hex',\n 'dataFileConcreteType',\n 'dataFileBucket',\n 'dataFileKey',\n]\n\n/**\n * The Synapse JSON Schemas for entities do not indicate which properties should be readOnly.\n * Amend the schema to mark certain properties as readOnly so they cannot be edited in the grid.\n */\nfunction addReadonlyToEntityProperties(jsonSchema: JSONSchema7): JSONSchema7 {\n if (!jsonSchema.properties) {\n return jsonSchema\n }\n\n const updatedProperties = { ...jsonSchema.properties }\n\n // List of properties to mark as read-only\n const propertiesToMakeReadonly = GRID_ENTITY_READONLY_PROPERTIES\n\n propertiesToMakeReadonly.forEach(prop => {\n if (updatedProperties[prop]) {\n updatedProperties[prop] = {\n ...(isObject(updatedProperties[prop]) ? updatedProperties[prop] : {}),\n readOnly: true,\n }\n } else {\n updatedProperties[prop] = { readOnly: true }\n }\n })\n\n return {\n ...jsonSchema,\n properties: updatedProperties,\n }\n}\n\n/**\n * Hook to get the JSON schema for a Data Grid, merging in the base Entity schema if the source entity is an EntityView.\n * @param session - The GridSession object.\n */\nexport default function useGetSchemaForGrid(session: GridSession | null) {\n const { data: jsonSchema } = useGetSchema(session?.gridJsonSchema$Id ?? '', {\n enabled: !!session?.gridJsonSchema$Id,\n })\n\n const { data: entityData } = useGetEntity(\n session?.sourceEntityId,\n undefined,\n {\n enabled: !!session?.sourceEntityId,\n },\n )\n\n let includeBaseEntitySchema = false\n if (entityData && instanceOfEntityView(entityData)) {\n includeBaseEntitySchema = true\n }\n\n const { data: entityJsonSchema } = useGetSchema(\n 'org.sagebionetworks-repo.model.Entity',\n {\n enabled: includeBaseEntitySchema,\n select: addReadonlyToEntityProperties,\n },\n )\n\n return useMemo(() => {\n if (jsonSchema && entityJsonSchema) {\n return shallowAllOfMerge({\n allOf: [entityJsonSchema, jsonSchema],\n }) as JSONSchema7\n } else {\n return jsonSchema\n }\n }, [jsonSchema, entityJsonSchema])\n}\n"],"mappings":";;;;;;;;;AAkBA,IAAM,EAAEY,6BAA0BC,2BAAwBT,EAAiB,GACrE,EAAEU,qCAAkCT,EAAa;CACrDU,eAAeP,EAAkBK,CAAmB;CACpDG,0BAA0BT,EAAmBK,CAAwB;AACvE,CAAC,GACKK,IAAoBX,EAAwBQ,CAA6B,GAEzEI,IAAkC;CACtC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AAAa;AAOf,SAASC,EAA8BC,GAAsC;CAC3E,IAAI,CAACA,EAAWC,YACd,OAAOD;CAGT,IAAME,IAAoB,EAAE,GAAGF,EAAWC,WAAW;CAgBrD,OAXAE,EAAyBC,SAAQC,MAAQ;EACvC,AAAIH,EAAkBG,KACpBH,EAAkBG,KAAQ;GACxB,GAAIf,EAASY,EAAkBG,EAAK,IAAIH,EAAkBG,KAAQ,CAAC;GACnEC,UAAU;EACZ,IAEAJ,EAAkBG,KAAQ,EAAEC,UAAU,GAAK;CAE/C,CAAC,GAEM;EACL,GAAGN;EACHC,YAAYC;CACd;AACF;AAMA,SAAeK,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAEFC,IAAA,CAAC,CAACH,GAAOI,mBAAmBC;CAAA,AAAAJ,EAAA,OAAAE,IACtCE,IAAAJ,EAAA,MAF2EI,IAAA,EAAAC,SACjEH,EACX,GAACF,EAAA,KAAAE,GAAAF,EAAA,KAAAI;CAFD,IAAA,EAAAE,MAAAf,MAA6BnB,EAAa2B,GAAOI,qBAAP,IAAkCC,CAE3E,GAMYG,IAAA,CAAC,CAACR,GAAOS,gBAAgBC;CAAA,AAAAT,EAAA,OAAAO,IACnCE,IAAAT,EAAA,MAFDS,IAAA,EAAAJ,SACWE,EACX,GAACP,EAAA,KAAAO,GAAAP,EAAA,KAAAS;CALH,IAAA,EAAAH,MAAAI,MAA6BvC,EAC3B4B,GAAOS,gBACPG,KAAAA,GACAF,CAGF,GAEAG,IAA8B;CAC9B,AAAIF,KAAcpC,EAAqBoC,CAAU,MAC/CE,IAA0BA;CAC3B,IAAAC;CAAA,AAAAb,EAAA,OAAAY,IAOEC,IAAAb,EAAA,MAHDa,IAAA;EAAAR,SACWO;EAAuBE,QACxBxB;CACV,GAACU,EAAA,KAAAY,GAAAZ,EAAA,KAAAa;CALH,IAAA,EAAAP,MAAAS,MAAmC3C,EACjC,yCACAyC,CAIF,GAACG;CAGC,IAAIzB,KAAAwB,GAA8B;EAAA,IAAAE;EAChCD,AADgChB,EAAA,OAAAe,KAAAf,EAAA,OAAAT,KACzB0B,IAAA7B,EAAkB,EAAA8B,OAChB,CAACH,GAAkBxB,CAAU,EACtC,CAAC,GAACS,EAAA,KAAAe,GAAAf,EAAA,KAAAT,GAAAS,EAAA,KAAAiB,KAAAA,IAAAjB,EAAA,IAFFgB,IAAOC;CAEU,OAEjBD,IAAOzB;CACR,OAPIyB;AAQ2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGridReplicaUsers.js","names":["useSynapseContext","useQueries","getReplicaCategory","ReplicaCategory","GridReplicaInfo","UserProfile","getUserProfileQuery","useMemo","useDeepCompareMemoize","ReplicaUserInfo","replicaInfo","category","profile","useGridReplicaUsers","replicas","localReplicaId","currentUserId","$","_c","accessToken","keyFactory","t0","filter","_temp","attributableReplicas","t1","Set","map","_temp2","Boolean","t2","uniqueUserIds","t3","queries","userId","staleTime","profileQueries","t4","_temp3","stableProfileData","profileByUserId","Map","forEach","userId_0","i","data","set","result","replica","replicaId","createdBy","get","undefined","q","r_0","r","replicaType"],"sources":["../../../../src/components/DataGrid/hooks/useGridReplicaUsers.ts"],"sourcesContent":["import { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { useQueries } from '@tanstack/react-query'\nimport {\n getReplicaCategory,\n type ReplicaCategory,\n} from '@/components/DataGrid/utils/getReplicaCategory'\nimport type { GridReplicaInfo } from '@sage-bionetworks/synapse-client'\nimport type { UserProfile } from '@sage-bionetworks/synapse-types'\nimport { getUserProfileQuery } from '@/synapse-queries/user/useUserBundle'\nimport { useMemo } from 'react'\nimport { useDeepCompareMemoize } from 'use-deep-compare-effect'\n\nexport interface ReplicaUserInfo {\n replicaInfo: GridReplicaInfo\n category: ReplicaCategory\n profile: UserProfile | undefined\n}\n\n/**\n * Given the list of replicas in the current session and the local replica ID,\n * fetches user profiles for each non-SERVICE replica and returns a map from\n * replicaId → ReplicaUserInfo for use in attribution and coloring.\n */\nexport function useGridReplicaUsers(\n replicas: GridReplicaInfo[],\n localReplicaId: number | null,\n currentUserId: string | undefined,\n): Map<number, ReplicaUserInfo> {\n const { accessToken, keyFactory } = useSynapseContext()\n\n // Only query non-SERVICE replicas (SERVICE replicas are ignored for attribution)\n const attributableReplicas = useMemo(\n () => replicas.filter(r => r.replicaType !== 'SERVICE'),\n [replicas],\n )\n\n // Deduplicate user IDs so we only fetch each profile once\n const uniqueUserIds = useMemo(\n () => [\n ...new Set(\n attributableReplicas.map(r => r.createdBy).filter(Boolean) as string[],\n ),\n ],\n [attributableReplicas],\n )\n\n const profileQueries = useQueries({\n queries: uniqueUserIds.map(userId => ({\n ...getUserProfileQuery(userId, { accessToken, keyFactory }),\n staleTime: 5 * 60 * 1000, // profiles are stable within a session\n })),\n })\n\n const stableProfileData = useDeepCompareMemoize(\n profileQueries.map(q => q.data),\n )\n\n return useMemo(() => {\n // Build userId → profile map from query results\n const profileByUserId = new Map<string, UserProfile>()\n uniqueUserIds.forEach((userId, i) => {\n const data = stableProfileData[i]\n if (data) profileByUserId.set(userId, data)\n })\n\n const result = new Map<number, ReplicaUserInfo>()\n for (const replica of attributableReplicas) {\n if (replica.replicaId == null) continue\n const category =\n localReplicaId != null && currentUserId != null\n ? getReplicaCategory(replica, currentUserId, localReplicaId)\n : null\n if (category === null) continue\n result.set(replica.replicaId, {\n replicaInfo: replica,\n category,\n profile: replica.createdBy\n ? profileByUserId.get(replica.createdBy)\n : undefined,\n })\n }\n return result\n }, [\n attributableReplicas,\n uniqueUserIds,\n stableProfileData,\n localReplicaId,\n currentUserId,\n ])\n}\n"],"mappings":";;;;;;;AAuBA,SAAOa,EAAAC,GAAAC,GAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,
|
|
1
|
+
{"version":3,"file":"useGridReplicaUsers.js","names":["useSynapseContext","useQueries","getReplicaCategory","ReplicaCategory","GridReplicaInfo","UserProfile","getUserProfileQuery","useMemo","useDeepCompareMemoize","ReplicaUserInfo","replicaInfo","category","profile","useGridReplicaUsers","replicas","localReplicaId","currentUserId","$","_c","accessToken","keyFactory","t0","filter","_temp","attributableReplicas","t1","Set","map","_temp2","Boolean","t2","uniqueUserIds","t3","queries","userId","staleTime","profileQueries","t4","_temp3","stableProfileData","profileByUserId","Map","forEach","userId_0","i","data","set","result","replica","replicaId","createdBy","get","undefined","q","r_0","r","replicaType"],"sources":["../../../../src/components/DataGrid/hooks/useGridReplicaUsers.ts"],"sourcesContent":["import { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { useQueries } from '@tanstack/react-query'\nimport {\n getReplicaCategory,\n type ReplicaCategory,\n} from '@/components/DataGrid/utils/getReplicaCategory'\nimport type { GridReplicaInfo } from '@sage-bionetworks/synapse-client'\nimport type { UserProfile } from '@sage-bionetworks/synapse-types'\nimport { getUserProfileQuery } from '@/synapse-queries/user/useUserBundle'\nimport { useMemo } from 'react'\nimport { useDeepCompareMemoize } from 'use-deep-compare-effect'\n\nexport interface ReplicaUserInfo {\n replicaInfo: GridReplicaInfo\n category: ReplicaCategory\n profile: UserProfile | undefined\n}\n\n/**\n * Given the list of replicas in the current session and the local replica ID,\n * fetches user profiles for each non-SERVICE replica and returns a map from\n * replicaId → ReplicaUserInfo for use in attribution and coloring.\n */\nexport function useGridReplicaUsers(\n replicas: GridReplicaInfo[],\n localReplicaId: number | null,\n currentUserId: string | undefined,\n): Map<number, ReplicaUserInfo> {\n const { accessToken, keyFactory } = useSynapseContext()\n\n // Only query non-SERVICE replicas (SERVICE replicas are ignored for attribution)\n const attributableReplicas = useMemo(\n () => replicas.filter(r => r.replicaType !== 'SERVICE'),\n [replicas],\n )\n\n // Deduplicate user IDs so we only fetch each profile once\n const uniqueUserIds = useMemo(\n () => [\n ...new Set(\n attributableReplicas.map(r => r.createdBy).filter(Boolean) as string[],\n ),\n ],\n [attributableReplicas],\n )\n\n const profileQueries = useQueries({\n queries: uniqueUserIds.map(userId => ({\n ...getUserProfileQuery(userId, { accessToken, keyFactory }),\n staleTime: 5 * 60 * 1000, // profiles are stable within a session\n })),\n })\n\n const stableProfileData = useDeepCompareMemoize(\n profileQueries.map(q => q.data),\n )\n\n return useMemo(() => {\n // Build userId → profile map from query results\n const profileByUserId = new Map<string, UserProfile>()\n uniqueUserIds.forEach((userId, i) => {\n const data = stableProfileData[i]\n if (data) profileByUserId.set(userId, data)\n })\n\n const result = new Map<number, ReplicaUserInfo>()\n for (const replica of attributableReplicas) {\n if (replica.replicaId == null) continue\n const category =\n localReplicaId != null && currentUserId != null\n ? getReplicaCategory(replica, currentUserId, localReplicaId)\n : null\n if (category === null) continue\n result.set(replica.replicaId, {\n replicaInfo: replica,\n category,\n profile: replica.createdBy\n ? profileByUserId.get(replica.createdBy)\n : undefined,\n })\n }\n return result\n }, [\n attributableReplicas,\n uniqueUserIds,\n stableProfileData,\n localReplicaId,\n currentUserId,\n ])\n}\n"],"mappings":";;;;;;;AAuBA,SAAOa,EAAAC,GAAAC,GAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAKL,EAAAC,gBAAAC,kBAAoCpB,EAAkB,GAACqB;CAAA,AAAAJ,EAAA,OAAAH,IAIEO,IAAAJ,EAAA,MAAjDI,IAAAP,EAAQQ,OAAQC,CAAgC,GAACN,EAAA,KAAAH,GAAAG,EAAA,KAAAI;CADzD,IAAAG,IACQH,GAEPI;CAAA,AAAAR,EAAA,OAAAO,IAOIC,IAAAR,EAAA,MAFEQ,IAAA,IAAIC,IACLF,EAAoBG,IAAKC,CAAgB,EAACN,OAAQO,OAAO,CAC3D,GAACZ,EAAA,KAAAO,GAAAP,EAAA,KAAAQ;CAAA,IAAAK;CAAA,AAAAb,EAAA,OAAAQ,IACFK,IAAAb,EAAA,MAJKa,IAAA,CAAA,GACDL,CAEF,GACFR,EAAA,KAAAQ,GAAAR,EAAA,KAAAa;CALH,IAAAC,IACQD,GAMPE;CAAA,AAAAf,EAAA,OAAAE,KAAAF,EAAA,OAAAG,KAAAH,EAAA,OAAAc,KAEiCC,IAAA,EAAAC,SACvBF,EAAaJ,KAAKO,OAAW;EAAA,GACjC5B,EAAoB4B,GAAQ;GAAAf;GAAAC;EAA0B,CAAC;EAACe,WAChD;CACb,EAAE,EACJ,GAAClB,EAAA,KAAAE,GAAAF,EAAA,KAAAG,GAAAH,EAAA,KAAAc,GAAAd,EAAA,KAAAe,KAAAA,IAAAf,EAAA;CALD,IAAAmB,IAAuBnC,EAAW+B,CAKjC,GAACK;CAAA,AAAApB,EAAA,QAAAmB,IAG+BC,IAAApB,EAAA,OAA/BoB,IAAAD,EAAcT,IAAKW,CAAW,GAACrB,EAAA,MAAAmB,GAAAnB,EAAA,MAAAoB;CADjC,IAAAE,IAA0B/B,EACxB6B,CACF,GAACG;CAAA,AAAAvB,EAAA,QAAAsB,KAAAtB,EAAA,QAAAc,KAICS,oBAAwB,IAAIC,IAAyB,GACrDV,EAAaW,SAASC,GAAAC,MAAA;EACpB,IAAAC,IAAaN,EAAkBK;EAC/B,AAAIC,KAAML,EAAeM,IAAKZ,GAAQW,CAAI;CAAC,CAC5C,GAAC5B,EAAA,MAAAsB,GAAAtB,EAAA,MAAAc,GAAAd,EAAA,MAAAuB,KAAAA,IAAAvB,EAAA;CAAA,IAAA8B;CAAA,IAAA9B,EAAA,QAAAO,KAAAP,EAAA,QAAAD,KAAAC,EAAA,QAAAF,KAAAE,EAAA,QAAAuB,GAAA;EAEFO,oBAAe,IAAIN,IAA6B;EAChD,KAAK,IAAAO,KAAiBxB,GAAoB;GACxC,IAAIwB,EAAOC,aAAc,MAAM;GAC/B,IAAAtC,IACEI,KAAkB,QAAQC,KAAiB,OACvCd,EAAmB8C,GAAShC,GAAeD,CACxC,IAFP;GAGEJ,MAAa,QACjBoC,EAAMD,IAAKE,EAAOC,WAAY;IAAAvC,aACfsC;IAAOrC;IAAAC,SAEXoC,EAAOE,YACZV,EAAeW,IAAKH,EAAOE,SACnB,IAFHE,KAAAA;GAGX,CAAC;EAAC;EACHnC,AAAAA,EAAA,MAAAO,GAAAP,EAAA,MAAAD,GAAAC,EAAA,MAAAF,GAAAE,EAAA,MAAAuB,GAAAvB,EAAA,MAAA8B;CAAA,OAAAA,IAAA9B,EAAA;CAAA,OACD8B;AAAa;AA1DV,SAAAT,EAAAe,GAAA;CAAA,OA+BqBA,EAACR;AAAK;AA/B3B,SAAAjB,EAAA0B,GAAA;CAAA,OAiB+BC,EAACL;AAAU;AAjB1C,SAAA3B,EAAAgC,GAAA;CAAA,OASwBA,EAACC,gBAAiB;AAAS"}
|