synapse-react-client 4.0.19 → 4.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SWC.index.d.ts +1 -1
- package/dist/SWC.index.js +1 -1
- package/dist/SWC.index.js.map +1 -1
- package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
- package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
- package/dist/assets/DefaultColorfulPortalCardBackground.js.map +1 -1
- package/dist/assets/GoogleIcon.js.map +1 -1
- package/dist/assets/GoogleIcon24.js.map +1 -1
- package/dist/assets/homepage/BlinkingLiveIcon.d.ts +1 -1
- package/dist/assets/homepage/BlinkingLiveIcon.js.map +1 -1
- package/dist/assets/homepage/aacr.js.map +1 -1
- package/dist/assets/homepage/cri.js.map +1 -1
- package/dist/assets/homepage/ctf.js.map +1 -1
- package/dist/assets/homepage/egress.js.map +1 -1
- package/dist/assets/homepage/facebook.js.map +1 -1
- package/dist/assets/homepage/fisma.js.map +1 -1
- package/dist/assets/homepage/gff.js.map +1 -1
- package/dist/assets/homepage/github.js.map +1 -1
- package/dist/assets/homepage/gray.js.map +1 -1
- package/dist/assets/homepage/hipaa-compliant.js.map +1 -1
- package/dist/assets/homepage/instagram.js.map +1 -1
- package/dist/assets/homepage/linkedin.js.map +1 -1
- package/dist/assets/homepage/ml-commons.js.map +1 -1
- package/dist/assets/homepage/nih-aging.js.map +1 -1
- package/dist/assets/homepage/nih-heart.js.map +1 -1
- package/dist/assets/homepage/nih-nci.js.map +1 -1
- package/dist/assets/homepage/nih-nimh.js.map +1 -1
- package/dist/assets/homepage/ntap.js.map +1 -1
- package/dist/assets/homepage/plan-item.js.map +1 -1
- package/dist/assets/homepage/powered-by-synapse-feature.js.map +1 -1
- package/dist/assets/homepage/precision-governance-feature.js.map +1 -1
- package/dist/assets/homepage/python.js.map +1 -1
- package/dist/assets/homepage/r.js.map +1 -1
- package/dist/assets/homepage/research-credit-feature.js.map +1 -1
- package/dist/assets/homepage/seamless-integration-feature.js.map +1 -1
- package/dist/assets/homepage/sloan.js.map +1 -1
- package/dist/assets/homepage/twitter.js.map +1 -1
- package/dist/assets/homepage/users.js.map +1 -1
- package/dist/assets/homepage/youtube.js.map +1 -1
- package/dist/assets/icons/AccessDataAnywhere.js.map +1 -1
- package/dist/assets/icons/AccessPending.js.map +1 -1
- package/dist/assets/icons/AccessPendingCloud.js.map +1 -1
- package/dist/assets/icons/AddAd.js.map +1 -1
- package/dist/assets/icons/AddToList.js.map +1 -1
- package/dist/assets/icons/Alert.js.map +1 -1
- package/dist/assets/icons/Arrow.js.map +1 -1
- package/dist/assets/icons/AwardScroll.js.map +1 -1
- package/dist/assets/icons/Baseline.js.map +1 -1
- package/dist/assets/icons/Cavatica.js.map +1 -1
- package/dist/assets/icons/CertifiedUser.js.map +1 -1
- package/dist/assets/icons/Challenge.js.map +1 -1
- package/dist/assets/icons/Checkbox/Checked.js.map +1 -1
- package/dist/assets/icons/Checkbox/Checked2.js.map +1 -1
- package/dist/assets/icons/Checkbox/Indeterminate.js.map +1 -1
- package/dist/assets/icons/Checkbox/Indeterminate2.js.map +1 -1
- package/dist/assets/icons/Checkbox/Unchecked.js.map +1 -1
- package/dist/assets/icons/Checkbox/Unchecked2.js.map +1 -1
- package/dist/assets/icons/ClappingHands.js.map +1 -1
- package/dist/assets/icons/CloudWarning.js.map +1 -1
- package/dist/assets/icons/CommunicateFindings.js.map +1 -1
- package/dist/assets/icons/CreateVersion.js.map +1 -1
- package/dist/assets/icons/DNA_Two.js.map +1 -1
- package/dist/assets/icons/Data2.js.map +1 -1
- package/dist/assets/icons/DoubleQuotes.js.map +1 -1
- package/dist/assets/icons/EmailAddressAdornment.js.map +1 -1
- package/dist/assets/icons/FileWithShield.js.map +1 -1
- package/dist/assets/icons/FileWithShield2.js.map +1 -1
- package/dist/assets/icons/FrontHand.js.map +1 -1
- package/dist/assets/icons/HandWithMoney.js.map +1 -1
- package/dist/assets/icons/IconCopy.js.map +1 -1
- package/dist/assets/icons/IconMinus.js.map +1 -1
- package/dist/assets/icons/IconPlus.js.map +1 -1
- package/dist/assets/icons/Java.js.map +1 -1
- package/dist/assets/icons/MintDoi.js.map +1 -1
- package/dist/assets/icons/MultiFile.js.map +1 -1
- package/dist/assets/icons/MultiFile2.js.map +1 -1
- package/dist/assets/icons/NoData.js.map +1 -1
- package/dist/assets/icons/NoSearchResults.js.map +1 -1
- package/dist/assets/icons/ORCIDIcon.js.map +1 -1
- package/dist/assets/icons/OpenBook.js.map +1 -1
- package/dist/assets/icons/Podium.js.map +1 -1
- package/dist/assets/icons/Python.js.map +1 -1
- package/dist/assets/icons/QueryStructuredData.js.map +1 -1
- package/dist/assets/icons/RLogo.js.map +1 -1
- package/dist/assets/icons/RecordProvenance.js.map +1 -1
- package/dist/assets/icons/RosetteRibbon.js.map +1 -1
- package/dist/assets/icons/SageFullLogo.js.map +1 -1
- package/dist/assets/icons/SearchImage.js.map +1 -1
- package/dist/assets/icons/ShareYourResearch.js.map +1 -1
- package/dist/assets/icons/Sort.js.map +1 -1
- package/dist/assets/icons/StarTrophy.js.map +1 -1
- package/dist/assets/icons/SynapseFullLogo.js.map +1 -1
- package/dist/assets/icons/SynapseIconWhite.js.map +1 -1
- package/dist/assets/icons/SynapseLogoName.js.map +1 -1
- package/dist/assets/icons/TasksIcon.js.map +1 -1
- package/dist/assets/icons/Terminal.js.map +1 -1
- package/dist/assets/icons/ThreeStars.js.map +1 -1
- package/dist/assets/icons/UnpackagableFile.js.map +1 -1
- package/dist/assets/icons/UnpackagableFile2.js.map +1 -1
- package/dist/assets/icons/ValidatedProfile.js.map +1 -1
- package/dist/assets/icons/account-certified.js.map +1 -1
- package/dist/assets/icons/account-enabled-mfa.js.map +1 -1
- package/dist/assets/icons/account-validated.js.map +1 -1
- package/dist/assets/icons/bioChemicalPhysical.js.map +1 -1
- package/dist/assets/icons/chart2.js.map +1 -1
- package/dist/assets/icons/columns.js.map +1 -1
- package/dist/assets/icons/columnsDarkTheme.js.map +1 -1
- package/dist/assets/icons/computationalTool.js.map +1 -1
- package/dist/assets/icons/dataReuse.js.map +1 -1
- package/dist/assets/icons/emailAddressAdornment2.js.map +1 -1
- package/dist/assets/icons/emailWithNotification.js.map +1 -1
- package/dist/assets/icons/error_page/maintenance.js.map +1 -1
- package/dist/assets/icons/error_page/no-access.js.map +1 -1
- package/dist/assets/icons/error_page/unavailable.js.map +1 -1
- package/dist/assets/icons/file.js.map +1 -1
- package/dist/assets/icons/inSilicoModel.js.map +1 -1
- package/dist/assets/icons/institution.js.map +1 -1
- package/dist/assets/icons/json-form-tool-no-submissions.js.map +1 -1
- package/dist/assets/icons/modelSystem.js.map +1 -1
- package/dist/assets/icons/mouse.js.map +1 -1
- package/dist/assets/icons/organizations.js.map +1 -1
- package/dist/assets/icons/person.js.map +1 -1
- package/dist/assets/icons/spatialProfiling.js.map +1 -1
- package/dist/assets/icons/standardDataModel.js.map +1 -1
- package/dist/assets/icons/study-active.js.map +1 -1
- package/dist/assets/icons/study-complete.js.map +1 -1
- package/dist/assets/icons/subscribe_plus.js.map +1 -1
- package/dist/assets/icons/synapse-logo.js.map +1 -1
- package/dist/assets/icons/terms/CheckIcon.js.map +1 -1
- package/dist/assets/icons/translational.js.map +1 -1
- package/dist/assets/icons/tree_horizontal.js.map +1 -1
- package/dist/assets/illustrations/acknowledgement_statements_illustration.js.map +1 -1
- package/dist/assets/illustrations/challenges_illustration.js.map +1 -1
- package/dist/assets/illustrations/cohort_builder_illustration.js.map +1 -1
- package/dist/assets/illustrations/data_access_management_illustration.js.map +1 -1
- package/dist/assets/illustrations/datasets_illustration.js.map +1 -1
- package/dist/assets/illustrations/diagonalLinePattern.js.map +1 -1
- package/dist/assets/illustrations/discussions_illustration.js.map +1 -1
- package/dist/assets/illustrations/docker_illustration.js.map +1 -1
- package/dist/assets/illustrations/donation_illustration.js.map +1 -1
- package/dist/assets/illustrations/favorites_illustration.js.map +1 -1
- package/dist/assets/illustrations/files_illustration.js.map +1 -1
- package/dist/assets/illustrations/following_illustration.js.map +1 -1
- package/dist/assets/illustrations/index.js.map +1 -1
- package/dist/assets/illustrations/left_dot_blob_dark_illustration.js.map +1 -1
- package/dist/assets/illustrations/left_dot_blob_illustration.js.map +1 -1
- package/dist/assets/illustrations/projects_illustration.js.map +1 -1
- package/dist/assets/illustrations/right_dot_blob_dark_illustration.js.map +1 -1
- package/dist/assets/illustrations/right_dot_blob_illustration.js.map +1 -1
- package/dist/assets/illustrations/tables_illustration.js.map +1 -1
- package/dist/assets/illustrations/teams_illustration.js.map +1 -1
- package/dist/assets/illustrations/trash_can_illustration.js.map +1 -1
- package/dist/assets/illustrations/underconstruction_illustration.js.map +1 -1
- package/dist/assets/illustrations/wikis_illustration.js.map +1 -1
- package/dist/assets/logos/other/ad-workbench-logo.js.map +1 -1
- package/dist/assets/logos/other/cavatica-logo.js.map +1 -1
- package/dist/assets/logos/other/pluto-logo.js.map +1 -1
- package/dist/assets/logos/other/terra-logo.js.map +1 -1
- package/dist/assets/mui_components/AccessManagement.js.map +1 -1
- package/dist/assets/mui_components/AccountCertified.js.map +1 -1
- package/dist/assets/mui_components/AccountRegistered.js.map +1 -1
- package/dist/assets/mui_components/AccountValidated.js.map +1 -1
- package/dist/assets/mui_components/ActionKey.js.map +1 -1
- package/dist/assets/mui_components/BioChemicalPhysical.js.map +1 -1
- package/dist/assets/mui_components/Chromatin.js.map +1 -1
- package/dist/assets/mui_components/Clinical.js.map +1 -1
- package/dist/assets/mui_components/ComputationalTool.js.map +1 -1
- package/dist/assets/mui_components/Data.js.map +1 -1
- package/dist/assets/mui_components/DataLocked.js.map +1 -1
- package/dist/assets/mui_components/DataReuse.js.map +1 -1
- package/dist/assets/mui_components/Dataset.js.map +1 -1
- package/dist/assets/mui_components/DatasetCollection.js.map +1 -1
- package/dist/assets/mui_components/Docker.js.map +1 -1
- package/dist/assets/mui_components/GeneExpression.js.map +1 -1
- package/dist/assets/mui_components/GeneVariants.js.map +1 -1
- package/dist/assets/mui_components/HelpChatBubble.js.map +1 -1
- package/dist/assets/mui_components/Imaging.js.map +1 -1
- package/dist/assets/mui_components/InSilicoModel.js.map +1 -1
- package/dist/assets/mui_components/Kinomics.js.map +1 -1
- package/dist/assets/mui_components/LineGraph.js.map +1 -1
- package/dist/assets/mui_components/ModelSystem.js.map +1 -1
- package/dist/assets/mui_components/Other.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile2.js.map +1 -1
- package/dist/assets/mui_components/Proteomics.js.map +1 -1
- package/dist/assets/mui_components/Rat.js.map +1 -1
- package/dist/assets/mui_components/SpatialProfiling.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition1.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition2.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition3.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition4.js.map +1 -1
- package/dist/assets/sustainability/dialPosition1.js.map +1 -1
- package/dist/assets/sustainability/dialPosition2.js.map +1 -1
- package/dist/assets/sustainability/dialPosition3.js.map +1 -1
- package/dist/assets/sustainability/dialPosition4.js.map +1 -1
- package/dist/assets/themed_icons/Active.js.map +1 -1
- package/dist/assets/themed_icons/Chart.js.map +1 -1
- package/dist/assets/themed_icons/Close.js.map +1 -1
- package/dist/assets/themed_icons/Collapse.js.map +1 -1
- package/dist/assets/themed_icons/Columns.js.map +1 -1
- package/dist/assets/themed_icons/ColumnsDark.js.map +1 -1
- package/dist/assets/themed_icons/Database.js.map +1 -1
- package/dist/assets/themed_icons/Download.js.map +1 -1
- package/dist/assets/themed_icons/Expand.js.map +1 -1
- package/dist/assets/themed_icons/Explore.js.map +1 -1
- package/dist/assets/themed_icons/ExternalLink.js.map +1 -1
- package/dist/assets/themed_icons/Filter.js.map +1 -1
- package/dist/assets/themed_icons/Program.js.map +1 -1
- package/dist/assets/themed_icons/Project.js.map +1 -1
- package/dist/assets/themed_icons/Publication.js.map +1 -1
- package/dist/assets/themed_icons/Search.js.map +1 -1
- package/dist/assets/themed_icons/Settings.js.map +1 -1
- package/dist/assets/themed_icons/SortDown.js.map +1 -1
- package/dist/assets/themed_icons/SortUp.js.map +1 -1
- package/dist/assets/themed_icons/SqlEditorIcon.js.map +1 -1
- package/dist/assets/themed_icons/Study.js.map +1 -1
- package/dist/assets/themed_icons/ToolClinical.js.map +1 -1
- package/dist/assets/themed_icons/ToolComputational.js.map +1 -1
- package/dist/assets/themed_icons/ToolExperimental.js.map +1 -1
- package/dist/assets/themed_icons/VerticalDots.js.map +1 -1
- package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js.map +1 -1
- package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
- package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js.map +1 -1
- package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +10 -11
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +73 -76
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/AuthenticatedRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/CertificationRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/LockAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/ValidationRequirement.js.map +1 -1
- package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
- package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
- package/dist/components/AccountLevelBadge/AccountLevelBadge.js.map +1 -1
- package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
- package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgement.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
- package/dist/components/AclEditor/AclEditorSkeleton.js.map +1 -1
- package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
- package/dist/components/AclEditor/ReadOnlyPermissionLevel.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js +2 -4
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessItem.js.map +1 -1
- package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
- package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
- package/dist/components/AdaptiveTwoColumnLayout/AdaptiveTwoColumnLayout.js.map +1 -1
- package/dist/components/AddToDownloadListV2.js.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
- package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
- package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
- package/dist/components/Authentication/LoginFlowBackButton.js.map +1 -1
- package/dist/components/Authentication/LoginForm.js.map +1 -1
- package/dist/components/Authentication/LoginMethod.js.map +1 -1
- package/dist/components/Authentication/LoginMethodButton.js.map +1 -1
- package/dist/components/Authentication/Logout.js.map +1 -1
- package/dist/components/Authentication/OneTimePasswordForm.js.map +1 -1
- package/dist/components/Authentication/PasswordField.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
- package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
- package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
- package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
- package/dist/components/Authentication/TOTPForm.js.map +1 -1
- package/dist/components/Authentication/TwoFactorAuthSettingsPanel.js.map +1 -1
- package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
- package/dist/components/Authentication/TwoFactorSecretDialog.js.map +1 -1
- package/dist/components/Authentication/UsernamePasswordForm.js.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/components/CTASectionWrapper/CTASectionWrapper.js.map +1 -1
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
- package/dist/components/CardContainer/CardConfiguration.d.ts +2 -0
- package/dist/components/CardContainer/CardConfiguration.d.ts.map +1 -1
- package/dist/components/CardContainer/CardContainer.d.ts.map +1 -1
- package/dist/components/CardContainer/CardContainer.js +3 -3
- package/dist/components/CardContainer/CardContainer.js.map +1 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.d.ts +1 -0
- package/dist/components/CardContainerLogic/CardContainerLogic.d.ts.map +1 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Desktop.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.js.map +1 -1
- package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
- package/dist/components/CardGridWithLinks/CardGridWithLinks.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationAnswer.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
- package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
- package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js.map +1 -1
- package/dist/components/ChallengeRegisterButton/ChallengeRegisterButton.js.map +1 -1
- package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
- package/dist/components/ChallengeSubmission/AddExternalRepo.js.map +1 -1
- package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +62 -64
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionCommitList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamSearch.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +96 -102
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/OpenMembershipInvitation.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/RegistrationSuccessful.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
- package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
- package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopover.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
- package/dist/components/CitationPopover/useCitation.js.map +1 -1
- package/dist/components/ColorGradient/ColorGradient.js.map +1 -1
- package/dist/components/ColoredBulletListItem/ColoredBulletListItem.js.map +1 -1
- package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
- package/dist/components/ComponentCollapse.js.map +1 -1
- package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiePreferencesDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.d.ts.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.js +9 -9
- package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
- package/dist/components/CopyToClipboardIcon.js.map +1 -1
- package/dist/components/CopyToClipboardInput/CopyToClipboardInput.js.map +1 -1
- package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizardUtils.js.map +1 -1
- package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
- package/dist/components/CreateProjectModal/ProjectVisibilityRadioGroup.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableTypeSelection.js.map +1 -1
- package/dist/components/CreateTableViewWizard/ViewTypeSelection.js.map +1 -1
- package/dist/components/CrispChat/CrispChat.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.css +1 -1
- package/dist/components/DataExplorer/DataExplorer.js +28 -31
- package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.module.js +16 -16
- package/dist/components/DataExplorer/DataExplorer.module.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.module.scss +26 -6
- package/dist/components/DataGrid/DataGrid.js +72 -72
- package/dist/components/DataGrid/DataGrid.js.map +1 -1
- package/dist/components/DataGrid/DataGridTypes.js.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.d.ts +2 -0
- package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.js +9 -10
- package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
- package/dist/components/DataGrid/StartGridSession.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts +3 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +219 -211
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/GridAutocompleteChip.js.map +1 -1
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts +5 -3
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts.map +1 -1
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js +46 -47
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
- package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js.map +1 -1
- package/dist/components/DataGrid/components/GridSessionSelectionField.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
- package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
- package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.d.ts.map +1 -1
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +3 -1
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
- package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridReplicaUsers.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
- package/dist/components/DataGrid/hooks/useRemoteSelections.js.map +1 -1
- package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
- package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts +2 -0
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js +12 -2
- package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
- package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
- package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
- package/dist/components/DataGrid/utils/MessageCounter.js.map +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/calculateColumnWidth.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js +1 -0
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
- package/dist/components/DataGrid/utils/convertActionToModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/createTestModel.js.map +1 -1
- package/dist/components/DataGrid/utils/enrichRowsWithChangeInfo.js.map +1 -1
- package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellAuthorSid.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
- package/dist/components/DataGrid/utils/getChangeTooltipText.js.map +1 -1
- package/dist/components/DataGrid/utils/getEmptyValue.js.map +1 -1
- package/dist/components/DataGrid/utils/getReplicaCategory.js.map +1 -1
- package/dist/components/DataGrid/utils/isValidationUpToDateForRow.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxMessage.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxNotification.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxRequest.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxRequestComplete.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxResponse.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
- package/dist/components/DataGrid/utils/logicalTimestampToString.js.map +1 -1
- package/dist/components/DataGrid/utils/mapOperationsToModelChanges.js.map +1 -1
- package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
- package/dist/components/DataGrid/utils/replicaSelectionToGridSelection.js.map +1 -1
- package/dist/components/DataGrid/utils/schemaAwarePasteValue.js.map +1 -1
- package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
- package/dist/components/DatasetJsonLdScript.js.map +1 -1
- package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
- package/dist/components/Dialog/ConfirmCloseWithoutSavingDialog.js.map +1 -1
- package/dist/components/DialogBase.js.map +1 -1
- package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
- package/dist/components/DirectDownload/FileEntityDirectDownload.js.map +1 -1
- package/dist/components/DirectDownloadButton.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
- package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
- package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
- package/dist/components/DownloadCart/DirectProgrammaticDownload.js.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
- package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListStats.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
- package/dist/components/DownloadCart/EnableTwoFaRequirementCard.js.map +1 -1
- package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
- package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
- package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
- package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
- package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
- package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
- package/dist/components/DynamicForm/DynamicForm.js.map +1 -1
- package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemCard.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemLayout.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
- package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
- package/dist/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditorModal.js.map +1 -1
- package/dist/components/EntityAclEditor/InheritanceMessage.js.map +1 -1
- package/dist/components/EntityAclEditor/OpenData.js.map +1 -1
- package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +68 -70
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js +32 -35
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
- package/dist/components/EntityFinder/Breadcrumbs.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinder.js +134 -136
- package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinderModal.js.map +1 -1
- package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
- package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
- package/dist/components/EntityFinder/details/EntityDetailsList.js +20 -20
- package/dist/components/EntityFinder/details/EntityDetailsList.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ReferenceDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/SearchDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.js +67 -67
- package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
- package/dist/components/EntityFinder/details/view/VersionColumnHeader.js +1 -1
- package/dist/components/EntityFinder/details/view/VersionColumnHeader.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/DateCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityBadgeIconsCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityFinderCheckboxCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityFinderVersionCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityNameCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityTypeCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityDirectDownloadCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/UserBadgeCell.js.map +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.js +80 -80
- package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
- package/dist/components/EntityFinder/tree/VirtualizedTree.js +31 -31
- package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
- package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
- package/dist/components/EntityForm/EntityForm.js.map +1 -1
- package/dist/components/EntityHeaderTable/DebouncedInput.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTableCellRenderers.js.map +1 -1
- package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
- package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
- package/dist/components/EntityIcon.js.map +1 -1
- package/dist/components/EntityLink.js.map +1 -1
- package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
- package/dist/components/EntityTreeTable/EntityTreeTable.js.map +1 -1
- package/dist/components/EntityTreeTable/components/AutoLoadMore.js.map +1 -1
- package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityBadgeIconsCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableContext.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableRow.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
- package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
- package/dist/components/EntityUpload/EntityUploadModal.js +29 -31
- package/dist/components/EntityUpload/EntityUploadModal.js.map +1 -1
- package/dist/components/EntityUpload/EntityUploadPromptDialog.js.map +1 -1
- package/dist/components/EntityUpload/ExternalObjectStoreCredentialsForm.js.map +1 -1
- package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
- package/dist/components/EntityUpload/LinkToURL.js.map +1 -1
- package/dist/components/EntityUpload/ProjectStorageLimitAlert.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewScopeEditor.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewScopeEditorModal.js.map +1 -1
- package/dist/components/Evaluation/CreatedOnByUserDiv.js.map +1 -1
- package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -1
- package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditorPage.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditorDropdown.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditorList.js.map +1 -1
- package/dist/components/Evaluation/input_models/models.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
- package/dist/components/EvaluationFinder/EvaluationFinder.js.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.d.ts.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js +24 -30
- package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
- package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataPlots.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
- package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
- package/dist/components/FeaturedResearch/FeaturedResearch.js +16 -18
- package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolCard.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
- package/dist/components/FilePreview/EntityPreview.js.map +1 -1
- package/dist/components/FilePreview/FileEntityPreview.js.map +1 -1
- package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
- package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
- package/dist/components/FilePreview/PdfPreview.js.map +1 -1
- package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
- package/dist/components/FilePreview/PreviewUtils.js.map +1 -1
- package/dist/components/FileUpload/FileUpload.js.map +1 -1
- package/dist/components/Forum/DiscussionReply.js.map +1 -1
- package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
- package/dist/components/Forum/DiscussionThread.js.map +1 -1
- package/dist/components/Forum/ForumPage.js.map +1 -1
- package/dist/components/Forum/ForumTable.js.map +1 -1
- package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
- package/dist/components/Forum/SubscribersModal.js.map +1 -1
- package/dist/components/ForumSearch/ForumSearch.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearch.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
- package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
- package/dist/components/GenericCard/BioregistryRules.js.map +1 -1
- package/dist/components/GenericCard/CardUtils.js.map +1 -1
- package/dist/components/GenericCard/CollapsibleDescription.js.map +1 -1
- package/dist/components/GenericCard/CroissantButton/CroissantButton.js.map +1 -1
- package/dist/components/GenericCard/GenericCard.d.ts +2 -0
- package/dist/components/GenericCard/GenericCard.d.ts.map +1 -1
- package/dist/components/GenericCard/GenericCard.js +76 -64
- package/dist/components/GenericCard/GenericCard.js.map +1 -1
- package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
- package/dist/components/GenericCard/GenericCardIcon.js.map +1 -1
- package/dist/components/GenericCard/GenericCardTitle.js.map +1 -1
- package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -1
- package/dist/components/GenericCard/Linkify.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js +33 -25
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/GenericCard/useResolvedSynapseEntity.js.map +1 -1
- package/dist/components/Goals/Goals.Desktop.js.map +1 -1
- package/dist/components/Goals/Goals.Mobile.js.map +1 -1
- package/dist/components/Goals/Goals.js +25 -27
- package/dist/components/Goals/Goals.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.js +14 -16
- package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Desktop.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.js +14 -16
- package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
- package/dist/components/GoogleAnalytics/GoogleAnalytics.js.map +1 -1
- package/dist/components/GoogleMap/GoogleMap.js.map +1 -1
- package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
- package/dist/components/HasAccess/AccessIcon.js +10 -10
- package/dist/components/HasAccess/AccessIcon.js.map +1 -1
- package/dist/components/HasAccess/HasAccessV2.js.map +1 -1
- package/dist/components/HasAccess/useHasAccess.js.map +1 -1
- package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
- package/dist/components/HeaderCard.js.map +1 -1
- package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
- package/dist/components/HexGrid/HexGrid.js.map +1 -1
- package/dist/components/IDUReport/IDUReport.js.map +1 -1
- package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
- package/dist/components/Icon/Icon.js.map +1 -1
- package/dist/components/IconList.js.map +1 -1
- package/dist/components/IconSvg/IconSvg.js.map +1 -1
- package/dist/components/IconSvgButton.js.map +1 -1
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js +7 -9
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
- package/dist/components/ImageFromSynapseTable.js.map +1 -1
- package/dist/components/InteractiveCopyIdsIcon.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditorModal.js.map +1 -1
- package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
- package/dist/components/JsonLdScript.js.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTitleTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/DescriptionFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ErrorListTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldDescriptionTable.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldErrorTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/BooleanWidget.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/DateTimeWidget.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
- package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
- package/dist/components/Markdown/GovernanceMarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
- package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.js +75 -106
- package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.d.ts +14 -4
- package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.js +38 -37
- package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
- package/dist/components/Markdown/MarkdownWidget.js.map +1 -1
- package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
- package/dist/components/Markdown/UserMentionModal.js.map +1 -1
- package/dist/components/Markdown/widget/Bookmarks.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownEntityPreview.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownIDUReport.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapseImage.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapseTable.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownTableOfContents.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownUserOrTeamBadge.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownVideo.js.map +1 -1
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.FormSchema.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
- package/dist/components/MuiContainer.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
- package/dist/components/OAuthClientManagement/CreateOAuthClient.js.map +1 -1
- package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
- package/dist/components/OrientationBanner/OrientationBanner.js.map +1 -1
- package/dist/components/PageProgress/PageProgress.js.map +1 -1
- package/dist/components/Plot/BarPlot.js.map +1 -1
- package/dist/components/Plot/DotPlot.js.map +1 -1
- package/dist/components/Plot/Plot.d.ts +12 -1
- package/dist/components/Plot/Plot.d.ts.map +1 -1
- package/dist/components/Plot/Plot.js +5 -1
- package/dist/components/Plot/Plot.js.map +1 -1
- package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
- package/dist/components/Plot/SynapsePlot.js.map +1 -1
- package/dist/components/Plot/SynapseSankeyPlot.css +1 -0
- package/dist/components/Plot/SynapseSankeyPlot.d.ts +54 -0
- package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -0
- package/dist/components/Plot/SynapseSankeyPlot.js +359 -0
- package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -0
- package/dist/components/Plot/SynapseSankeyPlot.module.js +15 -0
- package/dist/components/Plot/SynapseSankeyPlot.module.js.map +1 -0
- package/dist/components/Plot/SynapseSankeyPlot.module.scss +63 -0
- package/dist/components/Plot/ThemesPlot.js.map +1 -1
- package/dist/components/Plot/UpsetPlot.js.map +1 -1
- package/dist/components/Plot/index.d.ts +3 -1
- package/dist/components/Plot/index.d.ts.map +1 -1
- package/dist/components/Plot/index.js +2 -1
- package/dist/components/Plot/safe-react-plotly-factory.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditorModal.js.map +1 -1
- package/dist/components/PortalFeatureHighlights/PortalFeatureHighlights.js.map +1 -1
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js +4 -6
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
- package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
- package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
- package/dist/components/PortalList/PortalCard.js.map +1 -1
- package/dist/components/PortalList/PortalList.js.map +1 -1
- package/dist/components/PortalSectionHeader/PortalSectionHeader.js.map +1 -1
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js +69 -69
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
- package/dist/components/Programs/Programs.Desktop.js.map +1 -1
- package/dist/components/Programs/Programs.Mobile.js.map +1 -1
- package/dist/components/Programs/Programs.js.map +1 -1
- package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
- package/dist/components/ProvenanceGraph/ActivityNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/EntityNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/EntityPlaceholderNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ExpandGraphNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ExternalGraphNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceEntityIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js +13 -13
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/UndefinedNodeLabel.js.map +1 -1
- package/dist/components/QueryContext/QueryContext.js.map +1 -1
- package/dist/components/QueryCount/QueryCount.js.map +1 -1
- package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
- package/dist/components/QuerySortSelector.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/NoContentPlaceholder.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationContext.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapper.js +27 -27
- package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapperLoadingScreen.js.map +1 -1
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
- package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
- package/dist/components/QueryWrapper/ViewMoreQueryResultsButton.js.map +1 -1
- package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
- package/dist/components/QueryWrapper/useComputeRowSelectionPrimaryKey.js.map +1 -1
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
- package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
- package/dist/components/QueryWrapper/useHasFacetedSelectColumn.js.map +1 -1
- package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
- package/dist/components/RORInstitutionField/RORInstitutionField.js.map +1 -1
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js +6 -8
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
- package/dist/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCard.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardMedium.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
- package/dist/components/RenderIfInView/RenderIfInView.js.map +1 -1
- package/dist/components/ResizableContainer/ResizableContainer.js.map +1 -1
- package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
- package/dist/components/Resources/Resources.Desktop.js.map +1 -1
- package/dist/components/Resources/Resources.Mobile.js.map +1 -1
- package/dist/components/Resources/Resources.js +8 -11
- package/dist/components/Resources/Resources.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
- package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
- package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/SynapseAnnotationsWrapIfAdditionalTemplate.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/widget/TextWidget.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts +13 -12
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +88 -77
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessRequirementTextInstructions.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
- package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
- package/dist/components/ShowMore/ShowMore.js.map +1 -1
- package/dist/components/SignInButton.js.map +1 -1
- package/dist/components/SignInRequiredModal/SignInRequiredModal.js.map +1 -1
- package/dist/components/Skeleton/SkeletonButton.js.map +1 -1
- package/dist/components/Skeleton/SkeletonInlineBlock.js.map +1 -1
- package/dist/components/Skeleton/SkeletonParagraph.js.map +1 -1
- package/dist/components/Skeleton/SkeletonTable.js.map +1 -1
- package/dist/components/SmartLink/SmartButton.js.map +1 -1
- package/dist/components/SmartLink/SmartLink.js.map +1 -1
- package/dist/components/SmartLink/useSmartLink.js.map +1 -1
- package/dist/components/SourceAppImage.js.map +1 -1
- package/dist/components/SpinnerButton/SpinnerButton.js.map +1 -1
- package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditor.js.map +1 -1
- package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.js.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
- package/dist/components/StatisticsPlot.js.map +1 -1
- package/dist/components/StepperDialog/StepperDialog.js.map +1 -1
- package/dist/components/StorybookComponentWrapper.js.map +1 -1
- package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.js.map +1 -1
- package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.js.map +1 -1
- package/dist/components/SubscriptionPage/ForumTopic.js.map +1 -1
- package/dist/components/SubscriptionPage/SubscriptionItem.js.map +1 -1
- package/dist/components/SubscriptionPage/SubscriptionPage.js.map +1 -1
- package/dist/components/SubscriptionPage/ThreadTopic.js.map +1 -1
- package/dist/components/SubscriptionPage/Topic.js.map +1 -1
- package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
- package/dist/components/SustainabilityScorecard/Dial.js.map +1 -1
- package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardUtils.js.map +1 -1
- package/dist/components/SynapseChat/AccessLevelMenu.js.map +1 -1
- package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatDialog.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
- package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
- package/dist/components/SynapseChat/useChatState.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseLinksColumn.js.map +1 -1
- package/dist/components/SynapseForm/DataDebug.js.map +1 -1
- package/dist/components/SynapseForm/Header.js.map +1 -1
- package/dist/components/SynapseForm/NavButtons.js.map +1 -1
- package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
- package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
- package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormCheckboxWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormCheckboxesWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormRadioWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormSubmissionGrid.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormUtils.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
- package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
- package/dist/components/SynapseForm/types.js.map +1 -1
- package/dist/components/SynapseForm/useGetFormPropsFromSearchParams.js.map +1 -1
- package/dist/components/SynapseHomepageV2/FloatingBlobsBackground.js.map +1 -1
- package/dist/components/SynapseHomepageV2/HomepageStyles.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbers.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasets.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatures.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +18 -21
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageV2.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHotdrops.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHotdropsItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInAction.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlan.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlanContent.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlansPage.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +78 -78
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HasAccessChip.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageRouter.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/chipStyles.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControlButton.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControlPanel.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControls.js.map +1 -1
- package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
- package/dist/components/SynapseTable/ExpandCollapseButton.js.map +1 -1
- package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
- package/dist/components/SynapseTable/NoContentAvailable.js.map +1 -1
- package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
- package/dist/components/SynapseTable/SearchResultsNotFound.js.map +1 -1
- package/dist/components/SynapseTable/SearchV2.js.map +1 -1
- package/dist/components/SynapseTable/SqlEditor.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/EntityIdList.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/EvaluationIdRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/ComplexJSONRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONArrayRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONObjectRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONPrimitiveRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONRendererUtils.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONTableCellRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/UserIdList.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableConstants.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableContext.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
- package/dist/components/SynapseTable/TableIsEmpty.js.map +1 -1
- package/dist/components/SynapseTable/TablePagination.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +63 -74
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorCheckboxCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorUtils.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +131 -133
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/components/SynapseTable/datasets/EntityFetchErrorCell.js.map +1 -1
- package/dist/components/SynapseTable/export/ADDiscoveryPortalInstructions.js.map +1 -1
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +48 -51
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformDisclaimer.js.map +1 -1
- package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadLoginModal.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
- package/dist/components/SynapseTable/useTableSort.js.map +1 -1
- package/dist/components/SystemUseNotification/SystemUseNotification.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +72 -68
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts +27 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js +47 -36
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +10 -10
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.d.ts +12 -12
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.d.ts +4 -1
- package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.d.ts +167 -517
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js +65 -65
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.d.ts +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DefaultValueValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.d.ts +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js +6 -13
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.d.ts +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EnumValuesValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.d.ts +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js +2 -2
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.d.ts +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.d.ts +2 -2
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js +15 -16
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js.map +1 -1
- package/dist/components/TableFeedCards/TableFeedCards.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/TableBody.js.map +1 -1
- package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
- package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
- package/dist/components/TeamBadge.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
- package/dist/components/TemplateComponent.js.map +1 -1
- package/dist/components/TemporaryBanner/TemporaryBanner.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditionsItem.js.map +1 -1
- package/dist/components/TextField/TextField.js.map +1 -1
- package/dist/components/TextField/TextFieldWithWordLimit.js.map +1 -1
- package/dist/components/TextToComponentCollapse.js.map +1 -1
- package/dist/components/ThemeGallery/ThemeGallery.js.map +1 -1
- package/dist/components/TimelinePlot/TimelineLegendItem.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
- package/dist/components/TimelinePlot/phasesQueryResponseData.js.map +1 -1
- package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
- package/dist/components/TotalQueryResults.js.map +1 -1
- package/dist/components/UserCard/Avatar.js.map +1 -1
- package/dist/components/UserCard/UserBadge.js.map +1 -1
- package/dist/components/UserCard/UserCard.js.map +1 -1
- package/dist/components/UserCard/UserCardContextMenu.js.map +1 -1
- package/dist/components/UserCard/UserCardLarge.js.map +1 -1
- package/dist/components/UserCard/UserCardMedium.js.map +1 -1
- package/dist/components/UserCardList/UserCardList.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.js.map +1 -1
- package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
- package/dist/components/UserOrTeamBadge/UserOrTeamBadge.js.map +1 -1
- package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
- package/dist/components/UserProfileLinks/UserChallenges.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProfileLinks.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
- package/dist/components/UserProfileLinks/UserTeams.js.map +1 -1
- package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
- package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
- package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
- package/dist/components/Webhook/WebhookVerificationDialog.js.map +1 -1
- package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
- package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButton.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButtonDescription.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButtonGroup.js.map +1 -1
- package/dist/components/WordPress/WordPressLatestPostChip.js.map +1 -1
- package/dist/components/WordPress/useWordPressCategories.js.map +1 -1
- package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
- package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
- package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementSearchBox/AccessRequirementSearchBox.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
- package/dist/components/dataaccess/RejectDataAccessRequestModal.js.map +1 -1
- package/dist/components/dataaccess/RejectProfileValidationRequestModal.js.map +1 -1
- package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
- package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/SubmissionSortStateTranslator.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
- package/dist/components/doi/DoiFormSchemas.js.map +1 -1
- package/dist/components/doi/PrivateEntityDoiWarning.js.map +1 -1
- package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUI.js +30 -32
- package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
- package/dist/components/download_list/DownloadDetails.js.map +1 -1
- package/dist/components/download_list/index.js.map +1 -1
- package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
- package/dist/components/entity/metadata/EntityAnnotationKey.js.map +1 -1
- package/dist/components/entity/metadata/EntityModal.js.map +1 -1
- package/dist/components/entity/metadata/MetadataTable.js.map +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
- package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
- package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
- package/dist/components/entity/page/title_bar/CitationsDialog.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js.map +1 -1
- package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
- package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
- package/dist/components/error/ErrorBanner.js.map +1 -1
- package/dist/components/error/ErrorChip.js.map +1 -1
- package/dist/components/error/ErrorPage.js +24 -24
- package/dist/components/error/ErrorPage.js.map +1 -1
- package/dist/components/error/RouteErrorBoundary.js.map +1 -1
- package/dist/components/error/SendMessageToEntityOwnerDialog.js.map +1 -1
- package/dist/components/error/SynapseObjectDOIInfo.js.map +1 -1
- package/dist/components/favorites/FavoriteButton.js.map +1 -1
- package/dist/components/favorites/FavoritesPage.js.map +1 -1
- package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
- package/dist/components/file/upload/MultiFileUploadProgress.js.map +1 -1
- package/dist/components/file/upload/UploadFilePanel.js.map +1 -1
- package/dist/components/form/RadioGroupWithOtherString.js.map +1 -1
- package/dist/components/home_page/ExpandableContent.js.map +1 -1
- package/dist/components/index.js +48 -47
- package/dist/components/layout/InfiniteTableLayout.js.map +1 -1
- package/dist/components/layout/SWCHeader.js.map +1 -1
- package/dist/components/layout/SWCPageLayout.js.map +1 -1
- package/dist/components/menu/ComplexMenu.js.map +1 -1
- package/dist/components/menu/DropdownMenu.js.map +1 -1
- package/dist/components/row_renderers/Dataset.js.map +1 -1
- package/dist/components/row_renderers/Funder.js.map +1 -1
- package/dist/components/row_renderers/ObservationCard.js.map +1 -1
- package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
- package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
- package/dist/components/styled/HoverPopover.js.map +1 -1
- package/dist/components/styled/InlineBadge.js.map +1 -1
- package/dist/components/styled/InputSizedButton.js.map +1 -1
- package/dist/components/styled/LargeButton.js.map +1 -1
- package/dist/components/styled/LeftRightPanel.js.map +1 -1
- package/dist/components/styled/LightTooltip.js.map +1 -1
- package/dist/components/styled/StyledFormControl.js.map +1 -1
- package/dist/components/styled/StyledPopover.js.map +1 -1
- package/dist/components/styled/StyledTableContainer.js.map +1 -1
- package/dist/components/styled/WideButton.js.map +1 -1
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +39 -42
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -1
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -1
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js +11 -11
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -1
- package/dist/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm.js.map +1 -1
- package/dist/components/trash/TrashCanList.js.map +1 -1
- package/dist/components/utils/Blocker.js.map +1 -1
- package/dist/components/utils/ConditionalWrapper.js.map +1 -1
- package/dist/components/utils/VisibilityObserver.js.map +1 -1
- package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
- package/dist/components/widgets/EntityColumnImage.js.map +1 -1
- package/dist/components/widgets/FileHandleLink.js.map +1 -1
- package/dist/components/widgets/ImageFileHandle.js.map +1 -1
- package/dist/components/widgets/LoginAwareButton.js.map +1 -1
- package/dist/components/widgets/Range.js.map +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/components/widgets/SynapseImage.js.map +1 -1
- package/dist/components/widgets/SynapseVideo.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainerSkeleton.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPill.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
- package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
- package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetChip.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterHeader.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterSkeleton.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.js +3 -3
- package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +41 -41
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
- package/dist/features/curator/GridPage/GridPage.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageRouter.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
- package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
- package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
- package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
- package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
- package/dist/features/curator/dashboard/components/UserOrTeamChip.js.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +5 -0
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +227 -181
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +3 -0
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.d.ts +5 -0
- package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.js +2 -2
- package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getLatestGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/taskHasAssignee.js.map +1 -1
- package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
- package/dist/index.js +54 -53
- package/dist/index.js.map +1 -1
- package/dist/mocks/MockAccessApprovals.js.map +1 -1
- package/dist/mocks/MockSynapseContext.js.map +1 -1
- package/dist/mocks/accessRequirement/mockAccessRequirementAcls.js.map +1 -1
- package/dist/mocks/accessRequirement/mockAccessRequirements.js.map +1 -1
- package/dist/mocks/applicationSessionContext/MockApplicationSessionContext.js.map +1 -1
- package/dist/mocks/challenge/mockChallenge.js.map +1 -1
- package/dist/mocks/chat/mockChat.js.map +1 -1
- package/dist/mocks/curation/mockCurationTask.js.map +1 -1
- package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
- package/dist/mocks/dataaccess/MockResearchProject.js.map +1 -1
- package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
- package/dist/mocks/dataaccess/mockAccessRequest.js.map +1 -1
- package/dist/mocks/discussion/mock_discussion.js.map +1 -1
- package/dist/mocks/doi/MockDoi.js.map +1 -1
- package/dist/mocks/entity/index.js.map +1 -1
- package/dist/mocks/entity/mockDataset.js.map +1 -1
- package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
- package/dist/mocks/entity/mockEntity.js.map +1 -1
- package/dist/mocks/entity/mockEvaluationQueue.js.map +1 -1
- package/dist/mocks/entity/mockFileEntity.js.map +1 -1
- package/dist/mocks/entity/mockFileEntityACLVariants.js.map +1 -1
- package/dist/mocks/entity/mockFileView.js.map +1 -1
- package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
- package/dist/mocks/entity/mockProject.js.map +1 -1
- package/dist/mocks/entity/mockProjectView.js.map +1 -1
- package/dist/mocks/entity/mockReleaseCardsTable.js.map +1 -1
- package/dist/mocks/entity/mockRootEntity.js.map +1 -1
- package/dist/mocks/entity/mockTableEntity.js.map +1 -1
- package/dist/mocks/faker/fakerUtils.js.map +1 -1
- package/dist/mocks/faker/generateDiscussion.js.map +1 -1
- package/dist/mocks/faker/generateEvaluation.js.map +1 -1
- package/dist/mocks/faker/generateFakeEntity.js.map +1 -1
- package/dist/mocks/faker/generateSubscription.js.map +1 -1
- package/dist/mocks/mockAnnotationColumns.js.map +1 -1
- package/dist/mocks/mockCertificationQuiz.js.map +1 -1
- package/dist/mocks/mockDataCatalogQuery.js.map +1 -1
- package/dist/mocks/mockFileViewQuery.js.map +1 -1
- package/dist/mocks/mockOAuthClientAcls.js.map +1 -1
- package/dist/mocks/mockQueryResponseData.js.map +1 -1
- package/dist/mocks/mockQueryResponseDataWithManyEnumFacets.js.map +1 -1
- package/dist/mocks/mockSchema.js.map +1 -1
- package/dist/mocks/mockSearchQueryData.js +2 -2
- package/dist/mocks/mockSearchQueryData.js.map +1 -1
- package/dist/mocks/mockShortIo.js.map +1 -1
- package/dist/mocks/mockSourceAppConfigQuery.js.map +1 -1
- package/dist/mocks/mockSubscription.js.map +1 -1
- package/dist/mocks/mockWiki.js.map +1 -1
- package/dist/mocks/mockWikiPageKey.js.map +1 -1
- package/dist/mocks/mock_drug_tool_data.js.map +1 -1
- package/dist/mocks/mock_file_handle.js.map +1 -1
- package/dist/mocks/mock_file_statistics.js.map +1 -1
- package/dist/mocks/mock_has_access_data.js.map +1 -1
- package/dist/mocks/mock_upload_destination.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementAclHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/dataciteHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/doiHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/evaluationHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/messageHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/oauthClientAclHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/projectStorageHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/realmHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/researchProjectHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/searchQueryHandlers.d.ts +1 -1
- package/dist/mocks/msw/handlers/searchQueryHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/searchQueryHandlers.js +6 -3
- package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/shortIoHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryService.js.map +1 -1
- package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/termsOfServiceHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/webhookHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers.js.map +1 -1
- package/dist/mocks/msw/server.d.ts +1 -1
- package/dist/mocks/msw/server.d.ts.map +1 -1
- package/dist/mocks/msw/server.js.map +1 -1
- package/dist/mocks/msw/util/BasicMockedCrudService.js.map +1 -1
- package/dist/mocks/oauth/MockClient.js.map +1 -1
- package/dist/mocks/personalAccessToken/mockPersonalAccessToken.js.map +1 -1
- package/dist/mocks/projectStorage/mockProjectStorageLimits.js.map +1 -1
- package/dist/mocks/provenance/mockActivity.js.map +1 -1
- package/dist/mocks/query/defaultFileViewColumnModels.js.map +1 -1
- package/dist/mocks/query/mockFeaturedDataTabsQueryData.js.map +1 -1
- package/dist/mocks/query/mockHomepageQueryResultData.js.map +1 -1
- package/dist/mocks/query/mockProjectViewQueryResults.js.map +1 -1
- package/dist/mocks/query/mockRejectionReasonsTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mockUserCardTableQueryResultBundle.d.ts +13 -0
- package/dist/mocks/query/mockUserCardTableQueryResultBundle.d.ts.map +1 -1
- package/dist/mocks/query/mockUserCardTableQueryResultBundle.js +27 -0
- package/dist/mocks/query/mockUserCardTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mock_query_data.js.map +1 -1
- package/dist/mocks/query/syn16787123.js.map +1 -1
- package/dist/mocks/query/syn17328596.js.map +1 -1
- package/dist/mocks/query/syn51735464.js.map +1 -1
- package/dist/mocks/query/syn51735464GroupBySpecies.js.map +1 -1
- package/dist/mocks/realm/mockRealmPrincipal.js.map +1 -1
- package/dist/mocks/team/mockTeam.js.map +1 -1
- package/dist/mocks/termsOfService/mockTermsOfService.js.map +1 -1
- package/dist/mocks/user/mock_user_profile.js.map +1 -1
- package/dist/mocks/usergroup/mockUserGroup.js.map +1 -1
- package/dist/ror-client/index.js.map +1 -1
- package/dist/stories/ColorPaletteInspector.js.map +1 -1
- package/dist/stories/ToastDemo.js.map +1 -1
- package/dist/stories/stubs/Alert/MuiAlert.js.map +1 -1
- package/dist/stories/stubs/Button/MuiButton.js.map +1 -1
- package/dist/stories/stubs/Dialog/MuiDialog.js.map +1 -1
- package/dist/stories/stubs/TextField/MuiTextField.js.map +1 -1
- package/dist/stories/stubs/Tooltip/MuiTooltip.js.map +1 -1
- package/dist/style/components/_cards.scss +10 -0
- package/dist/style/components/_data-grid-extra.css +1 -1
- package/dist/style/components/_data-grid-extra.scss +7 -1
- package/dist/style/main.css +1 -1
- package/dist/synapse-client/HttpClient.js.map +1 -1
- package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
- package/dist/synapse-client/SynapseClient.js +499 -505
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-client/SynapseClientUtils.js.map +1 -1
- package/dist/synapse-queries/InfiniteQueryUtils.js.map +1 -1
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
- package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
- package/dist/synapse-queries/asynchronous/usePollAsynchronousJob.js.map +1 -1
- package/dist/synapse-queries/auth/useChangePassword.js.map +1 -1
- package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
- package/dist/synapse-queries/auth/useResetPassword.js.map +1 -1
- package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
- package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
- package/dist/synapse-queries/chat/useChat.js.map +1 -1
- package/dist/synapse-queries/croissant/useGetCroissantUrl.js.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.js +12 -2
- package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessApprovals.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useGetApprovedSubmissionInfo.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
- package/dist/synapse-queries/docker/useGetDockerTag.js.map +1 -1
- package/dist/synapse-queries/doi/useDOI.js.map +1 -1
- package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
- package/dist/synapse-queries/entity/useActionsRequiredForTableQuery.js.map +1 -1
- package/dist/synapse-queries/entity/useEntity.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityActionsRequired.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityChallenge.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityChildren.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityForum.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityHeaders.js.map +1 -1
- package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useProjectStorage.js.map +1 -1
- package/dist/synapse-queries/entity/useSchema.js.map +1 -1
- package/dist/synapse-queries/evaluation/useEvaluation.js.map +1 -1
- package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
- package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
- package/dist/synapse-queries/file/useFiles.js.map +1 -1
- package/dist/synapse-queries/file/useSynapseMultipartUpload.js.map +1 -1
- package/dist/synapse-queries/file/useUploadDestination.js.map +1 -1
- package/dist/synapse-queries/forum/useForum.js.map +1 -1
- package/dist/synapse-queries/forum/useReply.js.map +1 -1
- package/dist/synapse-queries/forum/useThread.js.map +1 -1
- package/dist/synapse-queries/github/useGithub.js.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
- package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
- package/dist/synapse-queries/grid/useGridPresignedUrl.js.map +1 -1
- package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
- package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
- package/dist/synapse-queries/message/useMessage.js.map +1 -1
- package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
- package/dist/synapse-queries/portal/useListPortals.js.map +1 -1
- package/dist/synapse-queries/portal/usePortal.js.map +1 -1
- package/dist/synapse-queries/provenance/useGetActivityForEntity.js.map +1 -1
- package/dist/synapse-queries/realm/useRealmPrincipals.js.map +1 -1
- package/dist/synapse-queries/ror/index.js.map +1 -1
- package/dist/synapse-queries/search/useSearch.js.map +1 -1
- package/dist/synapse-queries/search/useSuggestion.js.map +1 -1
- package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
- package/dist/synapse-queries/table/useColumnModel.js.map +1 -1
- package/dist/synapse-queries/table/useDefiningSql.js.map +1 -1
- package/dist/synapse-queries/table/useDownloadTable.js.map +1 -1
- package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
- package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
- package/dist/synapse-queries/team/useTeam.js.map +1 -1
- package/dist/synapse-queries/team/useTeamList.js.map +1 -1
- package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
- package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
- package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
- package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
- package/dist/synapse-queries/user/useFavorites.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserProjects.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserTeams.js.map +1 -1
- package/dist/synapse-queries/user/usePersonalAccessToken.js.map +1 -1
- package/dist/synapse-queries/user/useProjects.js.map +1 -1
- package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
- package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
- package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
- package/dist/synapse-queries/verificationSubmission/useVerificationSubmission.js.map +1 -1
- package/dist/synapse-queries/webhook/useWebhook.js.map +1 -1
- package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
- package/dist/testutils/ComponentToBePassedPropsCustomMatcher.js.map +1 -1
- package/dist/testutils/IsEditingStoreTestUtils.js +17 -0
- package/dist/testutils/IsEditingStoreTestUtils.js.map +1 -0
- package/dist/testutils/LocationTracker.js.map +1 -1
- package/dist/testutils/MarkdownSynapseUtils.js.map +1 -1
- package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
- package/dist/testutils/TestingLibraryUtils.js +18 -16
- package/dist/testutils/TestingLibraryUtils.js.map +1 -1
- package/dist/testutils/muiDatePickerMock.js.map +1 -1
- package/dist/testutils/vitest.setup.js.map +1 -1
- package/dist/theme/DefaultTheme.js.map +1 -1
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/mergeTheme.js.map +1 -1
- package/dist/theme/palette/Palettes.js.map +1 -1
- package/dist/theme/spreadSx.js.map +1 -1
- package/dist/theme/typography/Link.js.map +1 -1
- package/dist/theme/typography/Typography.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/AppUtils/AppUtils.d.ts.map +1 -1
- package/dist/utils/AppUtils/AppUtils.js +11 -11
- package/dist/utils/AppUtils/AppUtils.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionContext.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/AuthenticationGuard.js.map +1 -1
- package/dist/utils/AppUtils/session/SessionInitializedGuard.js.map +1 -1
- package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
- package/dist/utils/ContentTypeUtils.js.map +1 -1
- package/dist/utils/OrientationBannerConstants.js.map +1 -1
- package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
- package/dist/utils/SynapseConstants.js.map +1 -1
- package/dist/utils/analytics/sendAnalyticsEvent.js.map +1 -1
- package/dist/utils/analytics/sendSearchEvent.js.map +1 -1
- package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
- package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
- package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
- package/dist/utils/context/AridhiaContext.js.map +1 -1
- package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
- package/dist/utils/context/FullContextProvider.js.map +1 -1
- package/dist/utils/context/GlobalIsEditingContext.js.map +1 -1
- package/dist/utils/context/SynapseContext.js.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
- package/dist/utils/functions/ArrayUtils.js.map +1 -1
- package/dist/utils/functions/DateFormatter.js.map +1 -1
- package/dist/utils/functions/DateTimeUtils.js.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
- package/dist/utils/functions/FileHandleUtils.js.map +1 -1
- package/dist/utils/functions/GridApiUtils.js.map +1 -1
- package/dist/utils/functions/IsEqualTreatUndefinedAsMissing.js.map +1 -1
- package/dist/utils/functions/IsExternalLink.js.map +1 -1
- package/dist/utils/functions/ObjectUtils.js.map +1 -1
- package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
- package/dist/utils/functions/RealmUtils.js.map +1 -1
- package/dist/utils/functions/RegularExpressions.js.map +1 -1
- package/dist/utils/functions/ResolveLinkEntity.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
- package/dist/utils/functions/SqlFunctions.js.map +1 -1
- package/dist/utils/functions/StringUtils.js.map +1 -1
- package/dist/utils/functions/TableColumnSchemaUtils.js.map +1 -1
- package/dist/utils/functions/calculateFriendlyFileSize.js.map +1 -1
- package/dist/utils/functions/colorPalette.js.map +1 -1
- package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
- package/dist/utils/functions/dispatchDownloadListChangeEvent.js.map +1 -1
- package/dist/utils/functions/generateCsrfToken.js.map +1 -1
- package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
- package/dist/utils/functions/getEndpoint.js +3 -3
- package/dist/utils/functions/getEndpoint.js.map +1 -1
- package/dist/utils/functions/getPrincipalDisplayName.js.map +1 -1
- package/dist/utils/functions/getSynapseEntityUrl.js.map +1 -1
- package/dist/utils/functions/getSynapseWebClientLink.js.map +1 -1
- package/dist/utils/functions/getUserData.js.map +1 -1
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
- package/dist/utils/functions/unCamelCase.js.map +1 -1
- package/dist/utils/hooks/useConfirmItems.js.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.d.ts.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.js +24 -23
- package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
- package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
- package/dist/utils/hooks/useDebouncedEffect.js.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
- package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
- package/dist/utils/hooks/useGetEntityMetadata.js.map +1 -1
- package/dist/utils/hooks/useGetGoalData.js +2 -4
- package/dist/utils/hooks/useGetGoalData.js.map +1 -1
- package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
- package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
- package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
- package/dist/utils/hooks/useIsBot.js.map +1 -1
- package/dist/utils/hooks/useJsonLdScriptElement.js.map +1 -1
- package/dist/utils/hooks/useListState.js.map +1 -1
- package/dist/utils/hooks/useLogin.js.map +1 -1
- package/dist/utils/hooks/useMediaPrintOnly.js.map +1 -1
- package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
- package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
- package/dist/utils/hooks/useOneSageURL.js.map +1 -1
- package/dist/utils/hooks/useOverlay.js.map +1 -1
- package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
- package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
- package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
- package/dist/utils/hooks/useSet.js.map +1 -1
- package/dist/utils/hooks/useShowDesktop.js.map +1 -1
- package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
- package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
- package/dist/utils/hooks/useTraceUpdate.js.map +1 -1
- package/dist/utils/hooks/useTrackTransientListItems.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/getActiveUploadCount.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/getFileEntityIdWithSameName.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
- package/dist/utils/html/TargetEnum.js.map +1 -1
- package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
- package/dist/utils/jsonschema/getEnumeratedValues.js.map +1 -1
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
- package/dist/utils/jsonschema/getRequiredAttributes.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaForProperty.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
- package/dist/utils/jsonschema/getType.js.map +1 -1
- package/dist/utils/searchDefaults.js.map +1 -1
- package/dist/utils/slots/SlotUtils.js.map +1 -1
- package/dist/utils/types/IsType.js.map +1 -1
- package/package.json +68 -65
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelRowsToGrid.js","names":["DataGridRow","GridModel","GridModelSnapshot","isValidationUpToDateForRow","GRID_ROW_REACT_KEY_PROPERTY","logicalTimestampToString","extractColumnValidationMessages","modelRowsToGrid","model","modelSnapshot","columnNames","columnOrder","rows","gridRows","map","row","rowIndex","rowObj","forEach","index","columnName","data","api","obj","String","node","id","__validationResults","metadata","rowValidation","__validationStatus","isValid","allValidationMessages","__cellValidationResults"],"sources":["../../../../src/components/DataGrid/utils/modelRowsToGrid.ts"],"sourcesContent":["import {\n DataGridRow,\n GridModel,\n GridModelSnapshot,\n} from '@/components/DataGrid/DataGridTypes'\nimport { isValidationUpToDateForRow } from '@/components/DataGrid/utils/isValidationUpToDateForRow'\nimport { GRID_ROW_REACT_KEY_PROPERTY } from './DataGridUtils'\nimport logicalTimestampToString from '@/components/DataGrid/utils/logicalTimestampToString'\nimport { extractColumnValidationMessages } from './extractColumnValidationMessages'\n\n/**\n * Convert model rows to a format suitable for DataSheetGrid\n * @param model\n * @param modelSnapshot\n */\nexport default function modelRowsToGrid(\n model: GridModel | null,\n modelSnapshot: GridModelSnapshot,\n): DataGridRow[] {\n if (!model || !modelSnapshot) return []\n const { columnNames, columnOrder, rows } = modelSnapshot\n const gridRows = rows.map((row, rowIndex): DataGridRow => {\n const rowObj: DataGridRow = {}\n columnOrder.forEach((index: number) => {\n const columnName = columnNames[index]\n if (columnName) {\n rowObj[columnName] = row.data[index]\n }\n })\n\n // Embed the logical timestamp as a string for use as the React key (a stable value unique to each row)\n rowObj[GRID_ROW_REACT_KEY_PROPERTY] = logicalTimestampToString(\n model.api.obj(['rows', String(rowIndex)]).node.id,\n )\n\n rowObj.__validationResults = row.metadata?.rowValidation\n if (rowObj.__validationResults) {\n rowObj.__validationStatus = rowObj.__validationResults?.isValid\n ? 'valid'\n : 'invalid'\n }\n\n if (!isValidationUpToDateForRow(model, rowIndex)) {\n rowObj.__validationStatus = 'pending'\n }\n\n // Parse the validation messages into a Map of column name to messages\n if (rowObj.__validationResults?.allValidationMessages) {\n rowObj.__cellValidationResults = extractColumnValidationMessages(\n rowObj.__validationResults.allValidationMessages,\n )\n }\n\n return rowObj\n })\n return gridRows\n}\n"],"mappings":";;;;;AAeA,SAAwBO,EACtBC,GACAC,GACe;
|
|
1
|
+
{"version":3,"file":"modelRowsToGrid.js","names":["DataGridRow","GridModel","GridModelSnapshot","isValidationUpToDateForRow","GRID_ROW_REACT_KEY_PROPERTY","logicalTimestampToString","extractColumnValidationMessages","modelRowsToGrid","model","modelSnapshot","columnNames","columnOrder","rows","gridRows","map","row","rowIndex","rowObj","forEach","index","columnName","data","api","obj","String","node","id","__validationResults","metadata","rowValidation","__validationStatus","isValid","allValidationMessages","__cellValidationResults"],"sources":["../../../../src/components/DataGrid/utils/modelRowsToGrid.ts"],"sourcesContent":["import {\n DataGridRow,\n GridModel,\n GridModelSnapshot,\n} from '@/components/DataGrid/DataGridTypes'\nimport { isValidationUpToDateForRow } from '@/components/DataGrid/utils/isValidationUpToDateForRow'\nimport { GRID_ROW_REACT_KEY_PROPERTY } from './DataGridUtils'\nimport logicalTimestampToString from '@/components/DataGrid/utils/logicalTimestampToString'\nimport { extractColumnValidationMessages } from './extractColumnValidationMessages'\n\n/**\n * Convert model rows to a format suitable for DataSheetGrid\n * @param model\n * @param modelSnapshot\n */\nexport default function modelRowsToGrid(\n model: GridModel | null,\n modelSnapshot: GridModelSnapshot,\n): DataGridRow[] {\n if (!model || !modelSnapshot) return []\n const { columnNames, columnOrder, rows } = modelSnapshot\n const gridRows = rows.map((row, rowIndex): DataGridRow => {\n const rowObj: DataGridRow = {}\n columnOrder.forEach((index: number) => {\n const columnName = columnNames[index]\n if (columnName) {\n rowObj[columnName] = row.data[index]\n }\n })\n\n // Embed the logical timestamp as a string for use as the React key (a stable value unique to each row)\n rowObj[GRID_ROW_REACT_KEY_PROPERTY] = logicalTimestampToString(\n model.api.obj(['rows', String(rowIndex)]).node.id,\n )\n\n rowObj.__validationResults = row.metadata?.rowValidation\n if (rowObj.__validationResults) {\n rowObj.__validationStatus = rowObj.__validationResults?.isValid\n ? 'valid'\n : 'invalid'\n }\n\n if (!isValidationUpToDateForRow(model, rowIndex)) {\n rowObj.__validationStatus = 'pending'\n }\n\n // Parse the validation messages into a Map of column name to messages\n if (rowObj.__validationResults?.allValidationMessages) {\n rowObj.__cellValidationResults = extractColumnValidationMessages(\n rowObj.__validationResults.allValidationMessages,\n )\n }\n\n return rowObj\n })\n return gridRows\n}\n"],"mappings":";;;;;AAeA,SAAwBO,EACtBC,GACAC,GACe;CACf,IAAI,CAACD,KAAS,CAACC,GAAe,OAAO,CAAA;CACrC,IAAM,EAAEC,gBAAaC,gBAAaC,YAASH;CAmC3C,OAlCiBG,EAAKE,KAAKC,GAAKC,MAA0B;EACxD,IAAMC,IAAsB,CAAC;EA+B7B,OA9BAN,EAAYO,SAASC,MAAkB;GACrC,IAAMC,IAAaV,EAAYS;GAC/B,AAAIC,MACFH,EAAOG,KAAcL,EAAIM,KAAKF;EAElC,CAAC,GAGDF,EAAOb,KAA+BC,EACpCG,EAAMc,IAAIC,IAAI,CAAC,QAAQC,OAAOR,CAAQ,CAAC,CAAC,EAAES,KAAKC,EACjD,GAEAT,EAAOU,sBAAsBZ,EAAIa,UAAUC,eACvCZ,EAAOU,wBACTV,EAAOa,qBAAqBb,EAAOU,qBAAqBI,UACpD,UACA,YAGD5B,EAA2BK,GAAOQ,CAAQ,MAC7CC,EAAOa,qBAAqB,YAI1Bb,EAAOU,qBAAqBK,0BAC9Bf,EAAOgB,0BAA0B3B,EAC/BW,EAAOU,oBAAoBK,qBAC7B,IAGKf;CACT,CACOJ;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseFreeTextUsingJsonSchemaType.js","names":["JSONSchema7Type","parseFreeTextGivenJsonSchemaType","freeText","colType","String","trim","parsed","parseInt","Number","isNaN","toLowerCase","JSON","parse","e"],"sources":["../../../../src/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.ts"],"sourcesContent":["import { JSONSchema7Type } from 'json-schema'\n\nexport default function parseFreeTextGivenJsonSchemaType(\n freeText: string,\n colType?: JSONSchema7Type,\n): unknown {\n if (!colType || colType === 'string') {\n return String(freeText)\n } else if (colType === 'number' || colType === 'integer') {\n if (freeText.trim() === '') {\n // empty string parse result is 0, so treat it as empty\n return freeText\n }\n let parsed: number\n if (colType === 'integer') {\n parsed = parseInt(freeText, 10)\n } else {\n parsed = Number(freeText)\n }\n if (!isNaN(parsed)) {\n return parsed\n } else {\n return freeText\n }\n } else if (colType === 'boolean') {\n if (freeText.toLowerCase() === 'true') {\n return true\n } else if (freeText.toLowerCase() === 'false') {\n return false\n } else {\n return freeText\n }\n } else if (colType === 'object' || colType === 'array') {\n try {\n const parsed = JSON.parse(freeText)\n return parsed\n } catch (e) {\n // If we can't parse it, just set it to the input value\n return freeText\n }\n } else if (colType === 'null') {\n if (freeText.toLowerCase() === 'null' || freeText.trim() === '') {\n return null\n } else {\n return freeText\n }\n } else {\n // Unknown type, just set it to the input value\n return freeText\n }\n}\n"],"mappings":";AAEA,SAAwBC,EACtBC,GACAC,GACS;
|
|
1
|
+
{"version":3,"file":"parseFreeTextUsingJsonSchemaType.js","names":["JSONSchema7Type","parseFreeTextGivenJsonSchemaType","freeText","colType","String","trim","parsed","parseInt","Number","isNaN","toLowerCase","JSON","parse","e"],"sources":["../../../../src/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.ts"],"sourcesContent":["import { JSONSchema7Type } from 'json-schema'\n\nexport default function parseFreeTextGivenJsonSchemaType(\n freeText: string,\n colType?: JSONSchema7Type,\n): unknown {\n if (!colType || colType === 'string') {\n return String(freeText)\n } else if (colType === 'number' || colType === 'integer') {\n if (freeText.trim() === '') {\n // empty string parse result is 0, so treat it as empty\n return freeText\n }\n let parsed: number\n if (colType === 'integer') {\n parsed = parseInt(freeText, 10)\n } else {\n parsed = Number(freeText)\n }\n if (!isNaN(parsed)) {\n return parsed\n } else {\n return freeText\n }\n } else if (colType === 'boolean') {\n if (freeText.toLowerCase() === 'true') {\n return true\n } else if (freeText.toLowerCase() === 'false') {\n return false\n } else {\n return freeText\n }\n } else if (colType === 'object' || colType === 'array') {\n try {\n const parsed = JSON.parse(freeText)\n return parsed\n } catch (e) {\n // If we can't parse it, just set it to the input value\n return freeText\n }\n } else if (colType === 'null') {\n if (freeText.toLowerCase() === 'null' || freeText.trim() === '') {\n return null\n } else {\n return freeText\n }\n } else {\n // Unknown type, just set it to the input value\n return freeText\n }\n}\n"],"mappings":";AAEA,SAAwBC,EACtBC,GACAC,GACS;CACT,IAAI,CAACA,KAAWA,MAAY,UAC1B,OAAOC,OAAOF,CAAQ;CACjB,IAAIC,MAAY,YAAYA,MAAY,WAAW;EACxD,IAAID,EAASG,KAAK,MAAM,IAEtB,OAAOH;EAET,IAAII;EAOF,OANF,AAGEA,IAHEH,MAAY,YACLI,SAASL,GAAU,EAAE,IAErBM,OAAON,CAAQ,GAErBO,MAAMH,CAAM,IAGRJ,IAFAI;CAIX,OAAO,IAAIH,MAAY,WAMnB,OALED,EAASQ,YAAY,MAAM,SACtB,KACER,EAASQ,YAAY,MAAM,UAC7B,KAEAR;MAEJ,IAAIC,MAAY,YAAYA,MAAY,SAC7C,IAAI;EAEF,OADeQ,KAAKC,MAAMV,CACnBI;CACT,QAAY;EAEV,OAAOJ;CACT;MACK,IAAIC,MAAY,QAInB,OAHED,EAASQ,YAAY,MAAM,UAAUR,EAASG,KAAK,MAAM,KACpD,OAEAH;MAIT,OAAOA;AAEX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replicaSelectionToGridSelection.js","names":["GridModel","ReplicaSelectionModel","CrdtId","GridSelectionRange","minRow","maxRow","columnNames","Set","crdtIdsToIndices","arrApi","ReturnType","ids","result","length","lookup","map","id","rep","seq","idx","chunk","node","chunks","del","offset","span","key","sid","time","has","add","replicaSelectionToGridSelection","selection","model","snapshot","api","getSnapshot","numRows","rows","numCols","rowSelectAll","rowIds","rowSelection","rowIndexSet","arr","size","reduce","a","b","Math","min","max","undefined","columnSelectAll","colIds","columnSelection","colIndexSet","colIdx","columnOrder","filter","name"],"sources":["../../../../src/components/DataGrid/utils/replicaSelectionToGridSelection.ts"],"sourcesContent":["import type { GridModel, ReplicaSelectionModel, CrdtId } from '../DataGridTypes'\n\nexport interface GridSelectionRange {\n minRow: number\n maxRow: number\n /** undefined means all columns are selected */\n columnNames: Set<string> | undefined\n}\n\n/**\n * Convert a flat array of CrdtIds to a Set of array indices by walking the\n * arr node's chunks.\n */\nfunction crdtIdsToIndices(\n arrApi: ReturnType<GridModel['api']['arr']>,\n ids: CrdtId[],\n): Set<number> {\n const result = new Set<number>()\n if (ids.length === 0) return result\n\n // Build a lookup set for O(1) membership test\n const lookup = new Set(ids.map(id => `${id.rep}:${id.seq}`))\n\n let idx = 0\n for (const chunk of arrApi.node.chunks()) {\n if (chunk.del) continue\n for (let offset = 0; offset < chunk.span; offset++) {\n const key = `${chunk.id.sid}:${chunk.id.time + offset}`\n if (lookup.has(key)) result.add(idx + offset)\n }\n idx += chunk.span\n }\n return result\n}\n\n/**\n * Converts a stored ReplicaSelectionModel (CRDT-stable IDs) back into a\n * plain grid selection range that can be used for cell class computation.\n *\n * This is the inverse of getCrdtIdsForArrayRange in computeReplicaSelectionModel.\n */\nexport function replicaSelectionToGridSelection(\n selection: ReplicaSelectionModel | null | undefined,\n model: GridModel,\n): GridSelectionRange | null {\n if (!selection) return null\n\n const snapshot = model.api.getSnapshot()\n const numRows = snapshot.rows.length\n const numCols = snapshot.columnNames.length\n\n if (numRows < 1 || numCols < 1) return null\n\n // ── Row range ────────────────────────────────────────────────────────────\n let minRow = 0\n let maxRow = numRows - 1\n\n if (!selection.rowSelectAll) {\n const rowIds = selection.rowSelection\n if (!rowIds || rowIds.length === 0) return null\n\n const rowIndexSet = crdtIdsToIndices(model.api.arr(['rows']), rowIds)\n if (rowIndexSet.size === 0) return null\n minRow = [...rowIndexSet].reduce((a, b) => Math.min(a, b))\n maxRow = [...rowIndexSet].reduce((a, b) => Math.max(a, b))\n }\n\n // ── Column range ─────────────────────────────────────────────────────────\n let columnNames: Set<string> | undefined = undefined // undefined = all columns\n\n if (!selection.columnSelectAll) {\n const colIds = selection.columnSelection\n if (!colIds || colIds.length === 0) return null\n\n const colIndexSet = crdtIdsToIndices(model.api.arr(['columnOrder']), colIds)\n if (colIndexSet.size === 0) return null\n columnNames = new Set(\n [...colIndexSet]\n .map(colIdx => snapshot.columnNames[snapshot.columnOrder[colIdx]])\n .filter((name): name is string => name !== undefined),\n )\n }\n\n return { minRow, maxRow, columnNames }\n}\n"],"mappings":";AAaA,SAASQ,EACPC,GACAE,GACa;CACb,IAAMC,oBAAS,IAAIL,
|
|
1
|
+
{"version":3,"file":"replicaSelectionToGridSelection.js","names":["GridModel","ReplicaSelectionModel","CrdtId","GridSelectionRange","minRow","maxRow","columnNames","Set","crdtIdsToIndices","arrApi","ReturnType","ids","result","length","lookup","map","id","rep","seq","idx","chunk","node","chunks","del","offset","span","key","sid","time","has","add","replicaSelectionToGridSelection","selection","model","snapshot","api","getSnapshot","numRows","rows","numCols","rowSelectAll","rowIds","rowSelection","rowIndexSet","arr","size","reduce","a","b","Math","min","max","undefined","columnSelectAll","colIds","columnSelection","colIndexSet","colIdx","columnOrder","filter","name"],"sources":["../../../../src/components/DataGrid/utils/replicaSelectionToGridSelection.ts"],"sourcesContent":["import type { GridModel, ReplicaSelectionModel, CrdtId } from '../DataGridTypes'\n\nexport interface GridSelectionRange {\n minRow: number\n maxRow: number\n /** undefined means all columns are selected */\n columnNames: Set<string> | undefined\n}\n\n/**\n * Convert a flat array of CrdtIds to a Set of array indices by walking the\n * arr node's chunks.\n */\nfunction crdtIdsToIndices(\n arrApi: ReturnType<GridModel['api']['arr']>,\n ids: CrdtId[],\n): Set<number> {\n const result = new Set<number>()\n if (ids.length === 0) return result\n\n // Build a lookup set for O(1) membership test\n const lookup = new Set(ids.map(id => `${id.rep}:${id.seq}`))\n\n let idx = 0\n for (const chunk of arrApi.node.chunks()) {\n if (chunk.del) continue\n for (let offset = 0; offset < chunk.span; offset++) {\n const key = `${chunk.id.sid}:${chunk.id.time + offset}`\n if (lookup.has(key)) result.add(idx + offset)\n }\n idx += chunk.span\n }\n return result\n}\n\n/**\n * Converts a stored ReplicaSelectionModel (CRDT-stable IDs) back into a\n * plain grid selection range that can be used for cell class computation.\n *\n * This is the inverse of getCrdtIdsForArrayRange in computeReplicaSelectionModel.\n */\nexport function replicaSelectionToGridSelection(\n selection: ReplicaSelectionModel | null | undefined,\n model: GridModel,\n): GridSelectionRange | null {\n if (!selection) return null\n\n const snapshot = model.api.getSnapshot()\n const numRows = snapshot.rows.length\n const numCols = snapshot.columnNames.length\n\n if (numRows < 1 || numCols < 1) return null\n\n // ── Row range ────────────────────────────────────────────────────────────\n let minRow = 0\n let maxRow = numRows - 1\n\n if (!selection.rowSelectAll) {\n const rowIds = selection.rowSelection\n if (!rowIds || rowIds.length === 0) return null\n\n const rowIndexSet = crdtIdsToIndices(model.api.arr(['rows']), rowIds)\n if (rowIndexSet.size === 0) return null\n minRow = [...rowIndexSet].reduce((a, b) => Math.min(a, b))\n maxRow = [...rowIndexSet].reduce((a, b) => Math.max(a, b))\n }\n\n // ── Column range ─────────────────────────────────────────────────────────\n let columnNames: Set<string> | undefined = undefined // undefined = all columns\n\n if (!selection.columnSelectAll) {\n const colIds = selection.columnSelection\n if (!colIds || colIds.length === 0) return null\n\n const colIndexSet = crdtIdsToIndices(model.api.arr(['columnOrder']), colIds)\n if (colIndexSet.size === 0) return null\n columnNames = new Set(\n [...colIndexSet]\n .map(colIdx => snapshot.columnNames[snapshot.columnOrder[colIdx]])\n .filter((name): name is string => name !== undefined),\n )\n }\n\n return { minRow, maxRow, columnNames }\n}\n"],"mappings":";AAaA,SAASQ,EACPC,GACAE,GACa;CACb,IAAMC,oBAAS,IAAIL,IAAY;CAC/B,IAAII,EAAIE,WAAW,GAAG,OAAOD;CAG7B,IAAME,IAAS,IAAIP,IAAII,EAAII,KAAIC,MAAM,GAAGA,EAAGC,IAAG,GAAID,EAAGE,KAAK,CAAC,GAEvDC,IAAM;CACV,KAAK,IAAMC,KAASX,EAAOY,KAAKC,OAAO,GACjCF,OAAMG,KACV;OAAK,IAAIC,IAAS,GAAGA,IAASJ,EAAMK,MAAMD,KAAU;GAClD,IAAME,IAAM,GAAGN,EAAMJ,GAAGW,IAAG,GAAIP,EAAMJ,GAAGY,OAAOJ;GAC/C,AAAIV,EAAOe,IAAIH,CAAG,KAAGd,EAAOkB,IAAIX,IAAMK,CAAM;EAC9C;EACAL,KAAOC,EAAMK;CADb;CAGF,OAAOb;AACT;AAQA,SAAgBmB,EACdC,GACAC,GAC2B;CAC3B,IAAI,CAACD,GAAW,OAAO;CAEvB,IAAME,IAAWD,EAAME,IAAIC,YAAY,GACjCC,IAAUH,EAASI,KAAKzB,QACxB0B,IAAUL,EAAS5B,YAAYO;CAErC,IAAIwB,IAAU,KAAKE,IAAU,GAAG,OAAO;CAGvC,IAAInC,IAAS,GACTC,IAASgC,IAAU;CAEvB,IAAI,CAACL,EAAUQ,cAAc;EAC3B,IAAMC,IAAST,EAAUU;EACzB,IAAI,CAACD,KAAUA,EAAO5B,WAAW,GAAG,OAAO;EAE3C,IAAM8B,IAAcnC,EAAiByB,EAAME,IAAIS,IAAI,CAAC,MAAM,CAAC,GAAGH,CAAM;EACpE,IAAIE,EAAYE,SAAS,GAAG,OAAO;EAEnCxC,AADAD,IAAS,CAAC,GAAGuC,CAAW,EAAEG,QAAQC,GAAGC,MAAMC,KAAKC,IAAIH,GAAGC,CAAC,CAAC,GACzD3C,IAAS,CAAC,GAAGsC,CAAW,EAAEG,QAAQC,GAAGC,MAAMC,KAAKE,IAAIJ,GAAGC,CAAC,CAAC;CAC3D;CAGA,IAAI1C;CAEJ,IAAI,CAAC0B,EAAUqB,iBAAiB;EAC9B,IAAMC,IAAStB,EAAUuB;EACzB,IAAI,CAACD,KAAUA,EAAOzC,WAAW,GAAG,OAAO;EAE3C,IAAM2C,IAAchD,EAAiByB,EAAME,IAAIS,IAAI,CAAC,aAAa,CAAC,GAAGU,CAAM;EAC3E,IAAIE,EAAYX,SAAS,GAAG,OAAO;EACnCvC,IAAc,IAAIC,IAChB,CAAC,GAAGiD,CAAW,EACZzC,KAAI0C,MAAUvB,EAAS5B,YAAY4B,EAASwB,YAAYD,GAAQ,EAChEE,QAAQC,MAAyBA,MAASR,KAAAA,CAAS,CACxD;CACF;CAEA,OAAO;EAAEhD;EAAQC;EAAQC;CAAY;AACvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemaAwarePasteValue.js","names":["Column","SchemaPropertyInfo","getEmptyValue","coerceModelCellValue","value","schemaPropertyInfo","undefined","trim","isRequired","PasteValueFn","NonNullable","T","PasteValue","wrapPasteValueWithSchemaCoercion","Record","originalPasteValue","columnName","rowData","rowIndex","result","cellValue","coerced"],"sources":["../../../../src/components/DataGrid/utils/schemaAwarePasteValue.ts"],"sourcesContent":["import type { Column } from '@sage-bionetworks/react-datasheet-grid'\nimport type { SchemaPropertyInfo } from '@/utils/jsonschema/getSchemaPropertyInfo'\nimport { getEmptyValue } from './getEmptyValue'\n\n/**\n * Coerce an empty cell value to the schema-correct blank before it reaches\n * the model, regardless of how the edit originated (paste, free-typed commit,\n * programmatic CREATE/UPDATE, etc.).\n *\n * - Optional columns -> undefined (property is absent and passes validation\n * for any optional type).\n * - Required columns -> null (validator surfaces a substantive error the\n * user can act on).\n *\n * \"Empty\" means null, undefined, or a whitespace-only string. Spreadsheet\n * clipboard formats (text/html in particular) can encode visually empty\n * cells as runs of `\\n` from stacked `<br>` tags, so the trim check covers\n * those alongside literal \"\". Empty arrays are not coerced because some\n * columns (e.g. multi-enum) emit [] from their own paste logic and that is\n * the desired in-model representation.\n *\n * If schemaPropertyInfo is omitted, the original value is returned unchanged.\n */\nexport function coerceModelCellValue(\n value: unknown,\n schemaPropertyInfo?: SchemaPropertyInfo,\n): unknown {\n if (!schemaPropertyInfo) {\n return value\n }\n if (\n value === null ||\n value === undefined ||\n (typeof value === 'string' && value.trim() === '')\n ) {\n return getEmptyValue(schemaPropertyInfo.isRequired)\n }\n return value\n}\n\ntype PasteValueFn<T, PasteValue> = NonNullable<\n Column<T, unknown, PasteValue>['pasteValue']\n>\n\n/**\n * Wraps a keyed column's `pasteValue` so that an empty pasted cell is coerced\n * to the schema-correct blank for the column. If `schemaPropertyInfo` is\n * omitted (e.g. the grid is rendered without a JSON schema), the original\n * paste behavior is preserved.\n */\nexport function wrapPasteValueWithSchemaCoercion<\n T extends Record<string, unknown>,\n PasteValue,\n>(\n originalPasteValue: PasteValueFn<T, PasteValue> | undefined,\n columnName: string,\n schemaPropertyInfo?: SchemaPropertyInfo,\n): PasteValueFn<T, PasteValue> | undefined {\n if (!originalPasteValue || !schemaPropertyInfo) {\n return originalPasteValue\n }\n return ({ rowData, value, rowIndex }) => {\n const result = originalPasteValue({ rowData, value, rowIndex })\n const cellValue = result[columnName]\n const coerced = coerceModelCellValue(cellValue, schemaPropertyInfo)\n if (coerced === cellValue) {\n return result\n }\n return { ...result, [columnName]: coerced } as T\n }\n}\n"],"mappings":";;AAuBA,SAAgBG,EACdC,GACAC,GACS;
|
|
1
|
+
{"version":3,"file":"schemaAwarePasteValue.js","names":["Column","SchemaPropertyInfo","getEmptyValue","coerceModelCellValue","value","schemaPropertyInfo","undefined","trim","isRequired","PasteValueFn","NonNullable","T","PasteValue","wrapPasteValueWithSchemaCoercion","Record","originalPasteValue","columnName","rowData","rowIndex","result","cellValue","coerced"],"sources":["../../../../src/components/DataGrid/utils/schemaAwarePasteValue.ts"],"sourcesContent":["import type { Column } from '@sage-bionetworks/react-datasheet-grid'\nimport type { SchemaPropertyInfo } from '@/utils/jsonschema/getSchemaPropertyInfo'\nimport { getEmptyValue } from './getEmptyValue'\n\n/**\n * Coerce an empty cell value to the schema-correct blank before it reaches\n * the model, regardless of how the edit originated (paste, free-typed commit,\n * programmatic CREATE/UPDATE, etc.).\n *\n * - Optional columns -> undefined (property is absent and passes validation\n * for any optional type).\n * - Required columns -> null (validator surfaces a substantive error the\n * user can act on).\n *\n * \"Empty\" means null, undefined, or a whitespace-only string. Spreadsheet\n * clipboard formats (text/html in particular) can encode visually empty\n * cells as runs of `\\n` from stacked `<br>` tags, so the trim check covers\n * those alongside literal \"\". Empty arrays are not coerced because some\n * columns (e.g. multi-enum) emit [] from their own paste logic and that is\n * the desired in-model representation.\n *\n * If schemaPropertyInfo is omitted, the original value is returned unchanged.\n */\nexport function coerceModelCellValue(\n value: unknown,\n schemaPropertyInfo?: SchemaPropertyInfo,\n): unknown {\n if (!schemaPropertyInfo) {\n return value\n }\n if (\n value === null ||\n value === undefined ||\n (typeof value === 'string' && value.trim() === '')\n ) {\n return getEmptyValue(schemaPropertyInfo.isRequired)\n }\n return value\n}\n\ntype PasteValueFn<T, PasteValue> = NonNullable<\n Column<T, unknown, PasteValue>['pasteValue']\n>\n\n/**\n * Wraps a keyed column's `pasteValue` so that an empty pasted cell is coerced\n * to the schema-correct blank for the column. If `schemaPropertyInfo` is\n * omitted (e.g. the grid is rendered without a JSON schema), the original\n * paste behavior is preserved.\n */\nexport function wrapPasteValueWithSchemaCoercion<\n T extends Record<string, unknown>,\n PasteValue,\n>(\n originalPasteValue: PasteValueFn<T, PasteValue> | undefined,\n columnName: string,\n schemaPropertyInfo?: SchemaPropertyInfo,\n): PasteValueFn<T, PasteValue> | undefined {\n if (!originalPasteValue || !schemaPropertyInfo) {\n return originalPasteValue\n }\n return ({ rowData, value, rowIndex }) => {\n const result = originalPasteValue({ rowData, value, rowIndex })\n const cellValue = result[columnName]\n const coerced = coerceModelCellValue(cellValue, schemaPropertyInfo)\n if (coerced === cellValue) {\n return result\n }\n return { ...result, [columnName]: coerced } as T\n }\n}\n"],"mappings":";;AAuBA,SAAgBG,EACdC,GACAC,GACS;CAWT,OAVKA,MAIHD,KAAU,QAET,OAAOA,KAAU,YAAYA,EAAMG,KAAK,MAAM,MAExCL,EAAcG,EAAmBG,UAAU,IAE7CJ;AACT;AAYA,SAAgBS,EAIdE,GACAC,GACAX,GACyC;CAIzC,OAHI,CAACU,KAAsB,CAACV,IACnBU,KAED,EAAEE,YAASb,UAAOc,kBAAe;EACvC,IAAMC,IAASJ,EAAmB;GAAEE;GAASb;GAAOc;EAAS,CAAC,GACxDE,IAAYD,EAAOH,IACnBK,IAAUlB,EAAqBiB,GAAWf,CAAkB;EAIlE,OAHIgB,MAAYD,IACPD,IAEF;GAAE,GAAGA;IAASH,IAAaK;EAAQ;CAC5C;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splitPatch.js","names":["Patch","CompactCodecPatch","decode","encode","CompactCodecOperation","CompactCodecTimestamp","getPatchSizeInBytes","patch","TextEncoder","JSON","stringify","length","computeNextPatchHeader","lastPatch","decodedPatch","lastPatchHeader","getId","lastPatchSpan","span","sid","time","splitPatch","maxPatchSizeBytes","ops","binaryEncodedPatch","sizeOfFullPatch","console","warn","firstPatchHeader","splitPatches","currentSplitPatch","i","currentSplitPatchOpCount","sizeOfCurrentSplitPatchWithNextOp","push"],"sources":["../../../../src/components/DataGrid/utils/splitPatch.ts"],"sourcesContent":["import { Patch } from 'json-joy/lib/json-crdt'\nimport {\n CompactCodecPatch,\n decode,\n encode,\n} from 'json-joy/lib/json-crdt-patch/codec/compact'\nimport {\n CompactCodecOperation,\n CompactCodecTimestamp,\n} from 'json-joy/lib/json-crdt-patch/codec/compact/types'\n\n/**\n * Calculates the size in bytes of the UTF-8 string representation of a compact-encoded JSON CRDT Patch.\n * This is useful for determining the size of patch that will be sent in a WebSocket connection, which requires UTF-8\n * encoding.\n * @param patch the compact-encoded JSON CRDT Patch\n * @returns the size in bytes of the UTF-8 string representation of the patch\n */\nexport function getPatchSizeInBytes(patch: CompactCodecPatch): number {\n return new TextEncoder().encode(JSON.stringify(patch)).length\n}\n\n/**\n * Computes the header for the next JSON CRDT patch based on the last patch.\n * @param lastPatch - the previous JSON CRDT patch\n * @returns the header for the next patch, which includes the replica ID and the next timestamp\n */\nfunction computeNextPatchHeader(\n lastPatch: CompactCodecPatch,\n): [CompactCodecTimestamp] {\n // TODO: Compute the next patch header without decoding the entire patch\n // decoding it is inefficient, but easy because it lets us easily compute the span.\n const decodedPatch = decode(lastPatch)\n\n const lastPatchHeader = decodedPatch.getId()!\n const lastPatchSpan = decodedPatch.span()\n\n return [[lastPatchHeader?.sid, lastPatchHeader.time + lastPatchSpan]]\n}\n\n/**\n * Given a json-joy JSON CRDT Patch, splits it into multiple patches if its compact encoding\n * exceeds the specified maximum size in bytes.\n * @param patch\n * @param maxPatchSizeBytes\n * @returns An array of patches that are compact-encoded. Each patch is guaranteed to be within the specified size limit, or to only contain\n * a single operation if it cannot be split further.\n */\nexport function splitPatch(\n patch: Patch,\n maxPatchSizeBytes: number,\n): CompactCodecPatch[] {\n if (!patch.ops || patch.ops.length === 0) {\n return []\n }\n\n const binaryEncodedPatch = encode(patch)\n const sizeOfFullPatch = getPatchSizeInBytes(binaryEncodedPatch)\n\n // Check if this patch needs to be split\n if (sizeOfFullPatch <= maxPatchSizeBytes) {\n return [binaryEncodedPatch]\n }\n\n if (patch.ops.length == 1) {\n console.warn(\n `Patch is too large (${sizeOfFullPatch} B) but cannot be split further since it only contains one operation.`,\n )\n return [binaryEncodedPatch]\n }\n\n const firstPatchHeader = binaryEncodedPatch[0]\n const splitPatches: CompactCodecPatch[] = []\n let currentSplitPatch: CompactCodecPatch = [firstPatchHeader]\n for (let i = 1; i < binaryEncodedPatch.length; i += 1) {\n const currentSplitPatchOpCount = currentSplitPatch.length - 1 // Exclude header\n const sizeOfCurrentSplitPatchWithNextOp = getPatchSizeInBytes([\n ...currentSplitPatch,\n binaryEncodedPatch[i] as CompactCodecOperation,\n ])\n if (\n sizeOfCurrentSplitPatchWithNextOp > maxPatchSizeBytes &&\n currentSplitPatchOpCount > 0\n ) {\n splitPatches.push(currentSplitPatch)\n currentSplitPatch = [computeNextPatchHeader(currentSplitPatch)]\n }\n currentSplitPatch.push(binaryEncodedPatch[i] as CompactCodecOperation)\n }\n if (currentSplitPatch.length > 1) {\n splitPatches.push(currentSplitPatch)\n }\n\n return splitPatches\n}\n"],"mappings":";;AAkBA,SAAgBM,EAAoBC,GAAkC;
|
|
1
|
+
{"version":3,"file":"splitPatch.js","names":["Patch","CompactCodecPatch","decode","encode","CompactCodecOperation","CompactCodecTimestamp","getPatchSizeInBytes","patch","TextEncoder","JSON","stringify","length","computeNextPatchHeader","lastPatch","decodedPatch","lastPatchHeader","getId","lastPatchSpan","span","sid","time","splitPatch","maxPatchSizeBytes","ops","binaryEncodedPatch","sizeOfFullPatch","console","warn","firstPatchHeader","splitPatches","currentSplitPatch","i","currentSplitPatchOpCount","sizeOfCurrentSplitPatchWithNextOp","push"],"sources":["../../../../src/components/DataGrid/utils/splitPatch.ts"],"sourcesContent":["import { Patch } from 'json-joy/lib/json-crdt'\nimport {\n CompactCodecPatch,\n decode,\n encode,\n} from 'json-joy/lib/json-crdt-patch/codec/compact'\nimport {\n CompactCodecOperation,\n CompactCodecTimestamp,\n} from 'json-joy/lib/json-crdt-patch/codec/compact/types'\n\n/**\n * Calculates the size in bytes of the UTF-8 string representation of a compact-encoded JSON CRDT Patch.\n * This is useful for determining the size of patch that will be sent in a WebSocket connection, which requires UTF-8\n * encoding.\n * @param patch the compact-encoded JSON CRDT Patch\n * @returns the size in bytes of the UTF-8 string representation of the patch\n */\nexport function getPatchSizeInBytes(patch: CompactCodecPatch): number {\n return new TextEncoder().encode(JSON.stringify(patch)).length\n}\n\n/**\n * Computes the header for the next JSON CRDT patch based on the last patch.\n * @param lastPatch - the previous JSON CRDT patch\n * @returns the header for the next patch, which includes the replica ID and the next timestamp\n */\nfunction computeNextPatchHeader(\n lastPatch: CompactCodecPatch,\n): [CompactCodecTimestamp] {\n // TODO: Compute the next patch header without decoding the entire patch\n // decoding it is inefficient, but easy because it lets us easily compute the span.\n const decodedPatch = decode(lastPatch)\n\n const lastPatchHeader = decodedPatch.getId()!\n const lastPatchSpan = decodedPatch.span()\n\n return [[lastPatchHeader?.sid, lastPatchHeader.time + lastPatchSpan]]\n}\n\n/**\n * Given a json-joy JSON CRDT Patch, splits it into multiple patches if its compact encoding\n * exceeds the specified maximum size in bytes.\n * @param patch\n * @param maxPatchSizeBytes\n * @returns An array of patches that are compact-encoded. Each patch is guaranteed to be within the specified size limit, or to only contain\n * a single operation if it cannot be split further.\n */\nexport function splitPatch(\n patch: Patch,\n maxPatchSizeBytes: number,\n): CompactCodecPatch[] {\n if (!patch.ops || patch.ops.length === 0) {\n return []\n }\n\n const binaryEncodedPatch = encode(patch)\n const sizeOfFullPatch = getPatchSizeInBytes(binaryEncodedPatch)\n\n // Check if this patch needs to be split\n if (sizeOfFullPatch <= maxPatchSizeBytes) {\n return [binaryEncodedPatch]\n }\n\n if (patch.ops.length == 1) {\n console.warn(\n `Patch is too large (${sizeOfFullPatch} B) but cannot be split further since it only contains one operation.`,\n )\n return [binaryEncodedPatch]\n }\n\n const firstPatchHeader = binaryEncodedPatch[0]\n const splitPatches: CompactCodecPatch[] = []\n let currentSplitPatch: CompactCodecPatch = [firstPatchHeader]\n for (let i = 1; i < binaryEncodedPatch.length; i += 1) {\n const currentSplitPatchOpCount = currentSplitPatch.length - 1 // Exclude header\n const sizeOfCurrentSplitPatchWithNextOp = getPatchSizeInBytes([\n ...currentSplitPatch,\n binaryEncodedPatch[i] as CompactCodecOperation,\n ])\n if (\n sizeOfCurrentSplitPatchWithNextOp > maxPatchSizeBytes &&\n currentSplitPatchOpCount > 0\n ) {\n splitPatches.push(currentSplitPatch)\n currentSplitPatch = [computeNextPatchHeader(currentSplitPatch)]\n }\n currentSplitPatch.push(binaryEncodedPatch[i] as CompactCodecOperation)\n }\n if (currentSplitPatch.length > 1) {\n splitPatches.push(currentSplitPatch)\n }\n\n return splitPatches\n}\n"],"mappings":";;AAkBA,SAAgBM,EAAoBC,GAAkC;CACpE,OAAO,IAAIC,YAAY,EAAEL,OAAOM,KAAKC,UAAUH,CAAK,CAAC,EAAEI;AACzD;AAOA,SAASC,EACPC,GACyB;CAGzB,IAAMC,IAAeZ,EAAOW,CAAS,GAE/BE,IAAkBD,EAAaE,MAAM,GACrCC,IAAgBH,EAAaI,KAAK;CAExC,OAAO,CAAC,CAACH,GAAiBI,KAAKJ,EAAgBK,OAAOH,CAAa,CAAC;AACtE;AAUA,SAAgBI,EACdd,GACAe,GACqB;CACrB,IAAI,CAACf,EAAMgB,OAAOhB,EAAMgB,IAAIZ,WAAW,GACrC,OAAO,CAAA;CAGT,IAAMa,IAAqBrB,EAAOI,CAAK,GACjCkB,IAAkBnB,EAAoBkB,CAAkB;CAG9D,IAAIC,KAAmBH,GACrB,OAAO,CAACE,CAAkB;CAG5B,IAAIjB,EAAMgB,IAAIZ,UAAU,GAItB,OAHAe,QAAQC,KACN,uBAAuBF,EAAe,sEACxC,GACO,CAACD,CAAkB;CAG5B,IAAMI,IAAmBJ,EAAmB,IACtCK,IAAoC,CAAA,GACtCC,IAAuC,CAACF,CAAgB;CAC5D,KAAK,IAAIG,IAAI,GAAGA,IAAIP,EAAmBb,QAAQoB,KAAK,GAAG;EACrD,IAAMC,IAA2BF,EAAkBnB,SAAS;EAY5DmB,AAX0CxB,EAAoB,CAC5D,GAAGwB,GACHN,EAAmBO,EAA2B,CAG9CE,IAAoCX,KACpCU,IAA2B,MAE3BH,EAAaK,KAAKJ,CAAiB,GACnCA,IAAoB,CAAClB,EAAuBkB,CAAiB,CAAC,IAEhEA,EAAkBI,KAAKV,EAAmBO,EAA2B;CACvE;CAKA,OAJID,EAAkBnB,SAAS,KAC7BkB,EAAaK,KAAKJ,CAAiB,GAG9BD;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetJsonLdScript.js","names":[],"sources":["../../src/components/DatasetJsonLdScript.tsx"],"sourcesContent":["import {\n useFileContent,\n useGetQueryResultBundleWithAsyncStatus,\n} from '@/synapse-queries'\nimport useJsonLdScriptElement from '@/utils/hooks/useJsonLdScriptElement'\nimport { BUNDLE_MASK_QUERY_RESULTS } from '@/utils/SynapseConstants'\nimport {\n ColumnSingleValueFilterOperator,\n COLUMN_SINGLE_VALUE_QUERY_FILTER_CONCRETE_TYPE_VALUE,\n Query,\n} from '@sage-bionetworks/synapse-types'\nimport React from 'react'\n\ninterface DatasetJsonLdScriptOption1Props {\n entityId?: string\n version?: number\n searchParams?: never\n}\ninterface DatasetJsonLdScriptOption2Props {\n entityId?: never\n version?: never\n searchParams?: { [key: string]: string } // can be injected if this component is embedded in a Dataset Details page\n}\nexport type DatasetJsonLdScriptProps =\n | DatasetJsonLdScriptOption1Props\n | DatasetJsonLdScriptOption2Props\n\n/**\n * This component will add a Dataset json ld script tag to the page when rendered.\n */\nexport function DatasetJsonLdScript({\n entityId: entityIdFromProps,\n version: versionFromProps,\n searchParams,\n}: DatasetJsonLdScriptProps): React.ReactNode {\n let entityId: string\n let version: number | undefined\n if (entityIdFromProps) {\n entityId = entityIdFromProps\n version = versionFromProps\n } else if (searchParams) {\n entityId = searchParams['id']\n if (searchParams['version']) {\n version = parseInt(searchParams['version'])\n }\n }\n const query: Query = {\n sql: 'select croissant_file_s3_object from syn65903895',\n additionalFilters: [\n {\n concreteType: COLUMN_SINGLE_VALUE_QUERY_FILTER_CONCRETE_TYPE_VALUE,\n columnName: 'dataset',\n operator: ColumnSingleValueFilterOperator.EQUAL,\n values: [entityId!],\n },\n ],\n }\n if (version) {\n query.additionalFilters!.push({\n concreteType: COLUMN_SINGLE_VALUE_QUERY_FILTER_CONCRETE_TYPE_VALUE,\n columnName: 'dataset_version',\n operator: ColumnSingleValueFilterOperator.EQUAL,\n values: [`${version}`],\n })\n }\n const { data } = useGetQueryResultBundleWithAsyncStatus({\n entityId: entityId!,\n query,\n partMask: BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n })\n\n // get raw data. parse and then inject? or just inject without parsing?\n const rows = data?.responseBody?.queryResult?.queryResults?.rows\n const row = rows && rows.length > 0 ? rows[0] : undefined\n const croissantFileS3ObjectURL = row?.values[0]\n\n const { data: croissantFileContent } = useFileContent(\n croissantFileS3ObjectURL!,\n {\n enabled: !!croissantFileS3ObjectURL,\n },\n )\n useJsonLdScriptElement(croissantFileContent)\n return <></>\n}\n"],"mappings":";;;;;;;;;AA8BA,SAAgB,EAAoB,EAClC,UAAU,GACV,SAAS,GACT,mBAC4C;CAC5C,IAAI,GACA;
|
|
1
|
+
{"version":3,"file":"DatasetJsonLdScript.js","names":[],"sources":["../../src/components/DatasetJsonLdScript.tsx"],"sourcesContent":["import {\n useFileContent,\n useGetQueryResultBundleWithAsyncStatus,\n} from '@/synapse-queries'\nimport useJsonLdScriptElement from '@/utils/hooks/useJsonLdScriptElement'\nimport { BUNDLE_MASK_QUERY_RESULTS } from '@/utils/SynapseConstants'\nimport {\n ColumnSingleValueFilterOperator,\n COLUMN_SINGLE_VALUE_QUERY_FILTER_CONCRETE_TYPE_VALUE,\n Query,\n} from '@sage-bionetworks/synapse-types'\nimport React from 'react'\n\ninterface DatasetJsonLdScriptOption1Props {\n entityId?: string\n version?: number\n searchParams?: never\n}\ninterface DatasetJsonLdScriptOption2Props {\n entityId?: never\n version?: never\n searchParams?: { [key: string]: string } // can be injected if this component is embedded in a Dataset Details page\n}\nexport type DatasetJsonLdScriptProps =\n | DatasetJsonLdScriptOption1Props\n | DatasetJsonLdScriptOption2Props\n\n/**\n * This component will add a Dataset json ld script tag to the page when rendered.\n */\nexport function DatasetJsonLdScript({\n entityId: entityIdFromProps,\n version: versionFromProps,\n searchParams,\n}: DatasetJsonLdScriptProps): React.ReactNode {\n let entityId: string\n let version: number | undefined\n if (entityIdFromProps) {\n entityId = entityIdFromProps\n version = versionFromProps\n } else if (searchParams) {\n entityId = searchParams['id']\n if (searchParams['version']) {\n version = parseInt(searchParams['version'])\n }\n }\n const query: Query = {\n sql: 'select croissant_file_s3_object from syn65903895',\n additionalFilters: [\n {\n concreteType: COLUMN_SINGLE_VALUE_QUERY_FILTER_CONCRETE_TYPE_VALUE,\n columnName: 'dataset',\n operator: ColumnSingleValueFilterOperator.EQUAL,\n values: [entityId!],\n },\n ],\n }\n if (version) {\n query.additionalFilters!.push({\n concreteType: COLUMN_SINGLE_VALUE_QUERY_FILTER_CONCRETE_TYPE_VALUE,\n columnName: 'dataset_version',\n operator: ColumnSingleValueFilterOperator.EQUAL,\n values: [`${version}`],\n })\n }\n const { data } = useGetQueryResultBundleWithAsyncStatus({\n entityId: entityId!,\n query,\n partMask: BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n })\n\n // get raw data. parse and then inject? or just inject without parsing?\n const rows = data?.responseBody?.queryResult?.queryResults?.rows\n const row = rows && rows.length > 0 ? rows[0] : undefined\n const croissantFileS3ObjectURL = row?.values[0]\n\n const { data: croissantFileContent } = useFileContent(\n croissantFileS3ObjectURL!,\n {\n enabled: !!croissantFileS3ObjectURL,\n },\n )\n useJsonLdScriptElement(croissantFileContent)\n return <></>\n}\n"],"mappings":";;;;;;;;;AA8BA,SAAgB,EAAoB,EAClC,UAAU,GACV,SAAS,GACT,mBAC4C;CAC5C,IAAI,GACA;CACJ,AAAI,KACF,IAAW,GACX,IAAU,KACD,MACT,IAAW,EAAa,IACpB,EAAa,YACf,IAAU,SAAS,EAAa,OAAU;CAG9C,IAAM,IAAe;EACnB,KAAK;EACL,mBAAmB,CACjB;GACE,cAAc;GACd,YAAY;GACZ,UAAU,EAAgC;GAC1C,QAAQ,CAAC,CAAS;EACpB,CACF;CACF;CACA,AAAI,KACF,EAAM,kBAAmB,KAAK;EAC5B,cAAc;EACd,YAAY;EACZ,UAAU,EAAgC;EAC1C,QAAQ,CAAC,GAAG,GAAS;CACvB,CAAC;CAEH,IAAM,EAAE,YAAS,EAAuC;EAC5C;EACV;EACA,UAAA;EACA,cAAc;CAChB,CAAC,GAGK,IAAO,GAAM,cAAc,aAAa,cAAc,MAEtD,KADM,KAAQ,EAAK,SAAS,IAAI,EAAK,KAAK,KAAA,IACV,OAAO,IAEvC,EAAE,MAAM,MAAyB,EACrC,GACA,EACE,SAAS,CAAC,CAAC,EACb,CACF;CAEA,OADA,EAAuB,CAAoB,GACpC,kBAAA,GAAA,CAAI,CAAA;AACb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimePicker.js","names":[],"sources":["../../../src/components/DateTimePicker/DateTimePicker.tsx"],"sourcesContent":["import { useSynapseContext } from '@/utils'\nimport { Box, InputBaseProps, TextField, TextFieldProps } from '@mui/material'\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'\nimport {\n DateTimePicker as MuiDateTimePicker,\n DateTimePickerProps as MuiDateTimePickerProps,\n} from '@mui/x-date-pickers/DateTimePicker'\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'\nimport dayjs from 'dayjs'\nimport advancedFormat from 'dayjs/plugin/advancedFormat'\nimport timezone from 'dayjs/plugin/timezone'\nimport utc from 'dayjs/plugin/utc'\nimport { useMemo } from 'react'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\ndayjs.extend(advancedFormat)\n\nfunction TextFieldWithTzShown(props: TextFieldProps) {\n const { utcTime } = useSynapseContext()\n const tzDisplay = utcTime ? 'UTC' : dayjs().tz(dayjs.tz.guess()).format('z')\n\n return (\n <TextField\n {...props}\n slotProps={{\n input: {\n ...props.slotProps?.input,\n endAdornment: (\n <>\n <Box\n sx={{\n ml: 0.5,\n }}\n >\n {tzDisplay}\n </Box>\n {\n (props.slotProps?.input as InputBaseProps | undefined)\n ?.endAdornment\n }\n </>\n ),\n },\n }}\n />\n )\n}\n\nexport default function DateTimePicker(props: MuiDateTimePickerProps) {\n const { value, slots, ...rest } = props\n const { utcTime } = useSynapseContext()\n\n const valueAsDayjs = useMemo(() => {\n if (value == null) {\n return value\n }\n if (utcTime) {\n return dayjs.utc(value)\n } else {\n return dayjs(value)\n }\n }, [utcTime, value])\n\n return (\n <LocalizationProvider dateAdapter={AdapterDayjs}>\n <MuiDateTimePicker\n enableAccessibleFieldDOMStructure={false}\n value={valueAsDayjs}\n slots={{\n ...slots,\n textField: TextFieldWithTzShown,\n }}\n {...rest}\n />\n </LocalizationProvider>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAcA,EAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"DateTimePicker.js","names":[],"sources":["../../../src/components/DateTimePicker/DateTimePicker.tsx"],"sourcesContent":["import { useSynapseContext } from '@/utils'\nimport { Box, InputBaseProps, TextField, TextFieldProps } from '@mui/material'\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'\nimport {\n DateTimePicker as MuiDateTimePicker,\n DateTimePickerProps as MuiDateTimePickerProps,\n} from '@mui/x-date-pickers/DateTimePicker'\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'\nimport dayjs from 'dayjs'\nimport advancedFormat from 'dayjs/plugin/advancedFormat'\nimport timezone from 'dayjs/plugin/timezone'\nimport utc from 'dayjs/plugin/utc'\nimport { useMemo } from 'react'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\ndayjs.extend(advancedFormat)\n\nfunction TextFieldWithTzShown(props: TextFieldProps) {\n const { utcTime } = useSynapseContext()\n const tzDisplay = utcTime ? 'UTC' : dayjs().tz(dayjs.tz.guess()).format('z')\n\n return (\n <TextField\n {...props}\n slotProps={{\n input: {\n ...props.slotProps?.input,\n endAdornment: (\n <>\n <Box\n sx={{\n ml: 0.5,\n }}\n >\n {tzDisplay}\n </Box>\n {\n (props.slotProps?.input as InputBaseProps | undefined)\n ?.endAdornment\n }\n </>\n ),\n },\n }}\n />\n )\n}\n\nexport default function DateTimePicker(props: MuiDateTimePickerProps) {\n const { value, slots, ...rest } = props\n const { utcTime } = useSynapseContext()\n\n const valueAsDayjs = useMemo(() => {\n if (value == null) {\n return value\n }\n if (utcTime) {\n return dayjs.utc(value)\n } else {\n return dayjs(value)\n }\n }, [utcTime, value])\n\n return (\n <LocalizationProvider dateAdapter={AdapterDayjs}>\n <MuiDateTimePicker\n enableAccessibleFieldDOMStructure={false}\n value={valueAsDayjs}\n slots={{\n ...slots,\n textField: TextFieldWithTzShown,\n }}\n {...rest}\n />\n </LocalizationProvider>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAcA,EAAM,OAAO,CAAG,GAChB,EAAM,OAAO,CAAQ,GACrB,EAAM,OAAO,CAAc;AAE3B,SAAS,EAAqB,GAAuB;CACnD,IAAM,EAAE,eAAY,EAAkB,GAChC,IAAY,IAAU,QAAQ,EAAM,EAAE,GAAG,EAAM,GAAG,MAAM,CAAC,EAAE,OAAO,GAAG;CAE3E,OACE,kBAAC,GAAD;EACE,GAAI;EACJ,WAAW,EACT,OAAO;GACL,GAAG,EAAM,WAAW;GACpB,cACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;IACE,IAAI,EACF,IAAI,GACN;cAEC;GACE,CAAA,GAEF,EAAM,WAAW,OACd,YAEN,EAAA,CAAA;EAEN,EACF;CACD,CAAA;AAEL;AAEA,SAAwB,EAAe,GAA+B;CACpE,IAAM,EAAE,UAAO,UAAO,GAAG,MAAS,GAC5B,EAAE,eAAY,EAAkB;CAatC,OACE,kBAAC,GAAD;EAAsB,aAAa;YACjC,kBAAC,GAAD;GACE,mCAAmC;GACnC,OAfe,QACf,KAAS,OACJ,IAEL,IACK,EAAM,IAAI,CAAK,IAEf,EAAM,CAAK,GAEnB,CAAC,GAAS,CAAK,CAML;GACP,OAAO;IACL,GAAG;IACH,WAAW;GACb;GACA,GAAI;EACL,CAAA;CACmB,CAAA;AAE1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmCloseWithoutSavingDialog.js","names":[],"sources":["../../../src/components/Dialog/ConfirmCloseWithoutSavingDialog.tsx"],"sourcesContent":["import { SetOptional } from 'type-fest'\nimport {\n ConfirmationDialog,\n ConfirmationDialogProps,\n} from '../ConfirmationDialog/ConfirmationDialog'\n\nexport type ConfirmCloseWithoutSavingDialogProps = SetOptional<\n ConfirmationDialogProps,\n 'title' | 'content' | 'confirmButtonProps'\n>\n\nfunction ConfirmCloseWithoutSavingDialog(\n props: ConfirmCloseWithoutSavingDialogProps,\n) {\n const {\n title = 'Close without saving?',\n content = 'Are you sure you want to close the editor without saving your changes?',\n confirmButtonProps = {\n children: 'Close without saving',\n color: 'error',\n },\n ...rest\n } = props\n return (\n <ConfirmationDialog\n title={title}\n content={content}\n confirmButtonProps={confirmButtonProps}\n {...rest}\n />\n )\n}\n\nexport default ConfirmCloseWithoutSavingDialog\n"],"mappings":";;;AAWA,SAAS,EACP,GACA;CACA,IAAM,EACJ,WAAQ,yBACR,aAAU,0EACV,wBAAqB;EACnB,UAAU;EACV,OAAO;
|
|
1
|
+
{"version":3,"file":"ConfirmCloseWithoutSavingDialog.js","names":[],"sources":["../../../src/components/Dialog/ConfirmCloseWithoutSavingDialog.tsx"],"sourcesContent":["import { SetOptional } from 'type-fest'\nimport {\n ConfirmationDialog,\n ConfirmationDialogProps,\n} from '../ConfirmationDialog/ConfirmationDialog'\n\nexport type ConfirmCloseWithoutSavingDialogProps = SetOptional<\n ConfirmationDialogProps,\n 'title' | 'content' | 'confirmButtonProps'\n>\n\nfunction ConfirmCloseWithoutSavingDialog(\n props: ConfirmCloseWithoutSavingDialogProps,\n) {\n const {\n title = 'Close without saving?',\n content = 'Are you sure you want to close the editor without saving your changes?',\n confirmButtonProps = {\n children: 'Close without saving',\n color: 'error',\n },\n ...rest\n } = props\n return (\n <ConfirmationDialog\n title={title}\n content={content}\n confirmButtonProps={confirmButtonProps}\n {...rest}\n />\n )\n}\n\nexport default ConfirmCloseWithoutSavingDialog\n"],"mappings":";;;AAWA,SAAS,EACP,GACA;CACA,IAAM,EACJ,WAAQ,yBACR,aAAU,0EACV,wBAAqB;EACnB,UAAU;EACV,OAAO;CACT,GACA,GAAG,MACD;CACJ,OACE,kBAAC,GAAD;EACS;EACE;EACW;EACpB,GAAI;CACL,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogBase.js","names":[],"sources":["../../src/components/DialogBase.tsx"],"sourcesContent":["import { spreadSx } from '@/theme/spreadSx'\nimport CloseIcon from '@mui/icons-material/Close'\nimport {\n Box,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentProps,\n DialogProps,\n DialogTitle,\n IconButton,\n Stack,\n SxProps,\n} from '@mui/material'\nimport React, { ReactNode } from 'react'\nimport { HelpPopover, HelpPopoverProps } from './HelpPopover/HelpPopover'\n\nconst EMPTY_OBJECT = {}\n\nexport type CloseButtonProps = {\n sx?: SxProps\n onClick?: () => void\n}\n\nexport const CLOSE_BUTTON_LABEL = 'close'\nconst DEFAULT_CLOSEBUTTON_SX: SxProps = { color: 'grey.700' }\n\nexport function CloseButton({\n sx = DEFAULT_CLOSEBUTTON_SX,\n onClick,\n}: CloseButtonProps): React.JSX.Element {\n return (\n <IconButton sx={sx} onClick={onClick} aria-label={CLOSE_BUTTON_LABEL}>\n <CloseIcon />\n </IconButton>\n )\n}\n\nexport type DialogBaseTitleProps = {\n title: ReactNode\n titleHelpPopoverProps?: HelpPopoverProps\n hasCloseButton?: boolean\n onCancel: () => void\n}\n\nexport function DialogBaseTitle(props: DialogBaseTitleProps): React.ReactNode {\n const {\n title,\n titleHelpPopoverProps,\n hasCloseButton = true,\n onCancel,\n } = props\n return (\n <DialogTitle>\n <Stack\n direction=\"row\"\n sx={{\n alignItems: 'center',\n gap: '5px',\n }}\n >\n {title}\n <Box\n component={'span'}\n sx={{\n fontSize: '14px',\n }}\n >\n {titleHelpPopoverProps && <HelpPopover {...titleHelpPopoverProps} />}\n </Box>\n <Box sx={{ flexGrow: 1 }} />\n {hasCloseButton && <CloseButton onClick={() => onCancel()} />}\n </Stack>\n </DialogTitle>\n )\n}\n\nexport type DialogBaseProps = DialogBaseTitleProps & {\n open: boolean\n content: ReactNode\n actions?: ReactNode\n className?: string\n onCancel: () => void\n maxWidth?: DialogProps['maxWidth']\n fullWidth?: boolean\n sx?: DialogProps['sx']\n contentProps?: DialogContentProps\n DialogProps?: Partial<DialogProps>\n /** If true, reduces the vertical padding of the title, content, and actions for a more compact layout. */\n dense?: boolean\n}\n\n/**\n * A dialog built using MUI components.\n */\nexport const DialogBase = ({\n open,\n title,\n content,\n actions,\n className,\n onCancel,\n hasCloseButton,\n titleHelpPopoverProps,\n maxWidth = 'sm',\n fullWidth = true,\n sx,\n contentProps = EMPTY_OBJECT,\n DialogProps,\n dense = false,\n}: DialogBaseProps): React.ReactNode => {\n return (\n <Dialog\n fullWidth={fullWidth}\n maxWidth={maxWidth}\n open={open}\n className={className}\n onClose={() => onCancel()}\n sx={spreadSx(\n sx,\n dense\n ? {\n '.MuiDialog-container > .MuiPaper-root': {\n padding: '10px 30px',\n },\n '& .MuiDialogTitle-root': {\n py: 1.5,\n typography: 'headline3',\n },\n '& .MuiDialogContent-root': {\n pt: 1,\n },\n '& .MuiDialogActions-root': {\n pb: 2,\n },\n }\n : undefined,\n theme => ({\n [theme.breakpoints.down('sm')]: {\n width: '100vw',\n '.MuiDialog-container > .MuiPaper-root': {\n padding: '33px',\n margin: 0,\n width: '100%',\n height: '100%',\n maxHeight: 'unset',\n },\n },\n }),\n )}\n {...DialogProps}\n >\n <DialogBaseTitle\n title={title}\n titleHelpPopoverProps={titleHelpPopoverProps}\n hasCloseButton={hasCloseButton}\n onCancel={onCancel}\n />\n <DialogContent {...contentProps}>{content}</DialogContent>\n {actions && <DialogActions>{actions}</DialogActions>}\n </Dialog>\n )\n}\n"],"mappings":";;;;;;;AAiBA,IAAM,IAAe,
|
|
1
|
+
{"version":3,"file":"DialogBase.js","names":[],"sources":["../../src/components/DialogBase.tsx"],"sourcesContent":["import { spreadSx } from '@/theme/spreadSx'\nimport CloseIcon from '@mui/icons-material/Close'\nimport {\n Box,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentProps,\n DialogProps,\n DialogTitle,\n IconButton,\n Stack,\n SxProps,\n} from '@mui/material'\nimport React, { ReactNode } from 'react'\nimport { HelpPopover, HelpPopoverProps } from './HelpPopover/HelpPopover'\n\nconst EMPTY_OBJECT = {}\n\nexport type CloseButtonProps = {\n sx?: SxProps\n onClick?: () => void\n}\n\nexport const CLOSE_BUTTON_LABEL = 'close'\nconst DEFAULT_CLOSEBUTTON_SX: SxProps = { color: 'grey.700' }\n\nexport function CloseButton({\n sx = DEFAULT_CLOSEBUTTON_SX,\n onClick,\n}: CloseButtonProps): React.JSX.Element {\n return (\n <IconButton sx={sx} onClick={onClick} aria-label={CLOSE_BUTTON_LABEL}>\n <CloseIcon />\n </IconButton>\n )\n}\n\nexport type DialogBaseTitleProps = {\n title: ReactNode\n titleHelpPopoverProps?: HelpPopoverProps\n hasCloseButton?: boolean\n onCancel: () => void\n}\n\nexport function DialogBaseTitle(props: DialogBaseTitleProps): React.ReactNode {\n const {\n title,\n titleHelpPopoverProps,\n hasCloseButton = true,\n onCancel,\n } = props\n return (\n <DialogTitle>\n <Stack\n direction=\"row\"\n sx={{\n alignItems: 'center',\n gap: '5px',\n }}\n >\n {title}\n <Box\n component={'span'}\n sx={{\n fontSize: '14px',\n }}\n >\n {titleHelpPopoverProps && <HelpPopover {...titleHelpPopoverProps} />}\n </Box>\n <Box sx={{ flexGrow: 1 }} />\n {hasCloseButton && <CloseButton onClick={() => onCancel()} />}\n </Stack>\n </DialogTitle>\n )\n}\n\nexport type DialogBaseProps = DialogBaseTitleProps & {\n open: boolean\n content: ReactNode\n actions?: ReactNode\n className?: string\n onCancel: () => void\n maxWidth?: DialogProps['maxWidth']\n fullWidth?: boolean\n sx?: DialogProps['sx']\n contentProps?: DialogContentProps\n DialogProps?: Partial<DialogProps>\n /** If true, reduces the vertical padding of the title, content, and actions for a more compact layout. */\n dense?: boolean\n}\n\n/**\n * A dialog built using MUI components.\n */\nexport const DialogBase = ({\n open,\n title,\n content,\n actions,\n className,\n onCancel,\n hasCloseButton,\n titleHelpPopoverProps,\n maxWidth = 'sm',\n fullWidth = true,\n sx,\n contentProps = EMPTY_OBJECT,\n DialogProps,\n dense = false,\n}: DialogBaseProps): React.ReactNode => {\n return (\n <Dialog\n fullWidth={fullWidth}\n maxWidth={maxWidth}\n open={open}\n className={className}\n onClose={() => onCancel()}\n sx={spreadSx(\n sx,\n dense\n ? {\n '.MuiDialog-container > .MuiPaper-root': {\n padding: '10px 30px',\n },\n '& .MuiDialogTitle-root': {\n py: 1.5,\n typography: 'headline3',\n },\n '& .MuiDialogContent-root': {\n pt: 1,\n },\n '& .MuiDialogActions-root': {\n pb: 2,\n },\n }\n : undefined,\n theme => ({\n [theme.breakpoints.down('sm')]: {\n width: '100vw',\n '.MuiDialog-container > .MuiPaper-root': {\n padding: '33px',\n margin: 0,\n width: '100%',\n height: '100%',\n maxHeight: 'unset',\n },\n },\n }),\n )}\n {...DialogProps}\n >\n <DialogBaseTitle\n title={title}\n titleHelpPopoverProps={titleHelpPopoverProps}\n hasCloseButton={hasCloseButton}\n onCancel={onCancel}\n />\n <DialogContent {...contentProps}>{content}</DialogContent>\n {actions && <DialogActions>{actions}</DialogActions>}\n </Dialog>\n )\n}\n"],"mappings":";;;;;;;AAiBA,IAAM,IAAe,CAAC,GAOT,IAAqB,SAC5B,IAAkC,EAAE,OAAO,WAAW;AAE5D,SAAgB,EAAY,EAC1B,QAAK,GACL,cACsC;CACtC,OACE,kBAAC,GAAD;EAAgB;EAAa;EAAS,cAAY;YAChD,kBAAC,GAAD,CAAY,CAAA;CACF,CAAA;AAEhB;AASA,SAAgB,EAAgB,GAA8C;CAC5E,IAAM,EACJ,UACA,0BACA,oBAAiB,IACjB,gBACE;CACJ,OACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;EACE,WAAU;EACV,IAAI;GACF,YAAY;GACZ,KAAK;EACP;YALF;GAOG;GACD,kBAAC,GAAD;IACE,WAAW;IACX,IAAI,EACF,UAAU,OACZ;cAEC,KAAyB,kBAAC,GAAD,EAAa,GAAI,EAAwB,CAAA;GAChE,CAAA;GACL,kBAAC,GAAD,EAAK,IAAI,EAAE,UAAU,EAAE,EAAI,CAAA;GAC1B,KAAkB,kBAAC,GAAD,EAAa,eAAe,EAAS,EAAI,CAAA;EACvD;IACI,CAAA;AAEjB;AAoBA,IAAa,KAAc,EACzB,SACA,UACA,YACA,YACA,cACA,aACA,mBACA,0BACA,cAAW,MACX,eAAY,IACZ,OACA,kBAAe,GACf,gBACA,WAAQ,SAGN,kBAAC,GAAD;CACa;CACD;CACJ;CACK;CACX,eAAe,EAAS;CACxB,IAAI,EACF,GACA,IACI;EACE,yCAAyC,EACvC,SAAS,YACX;EACA,0BAA0B;GACxB,IAAI;GACJ,YAAY;EACd;EACA,4BAA4B,EAC1B,IAAI,EACN;EACA,4BAA4B,EAC1B,IAAI,EACN;CACF,IACA,KAAA,IACJ,OAAU,GACP,EAAM,YAAY,KAAK,IAAI,IAAI;EAC9B,OAAO;EACP,yCAAyC;GACvC,SAAS;GACT,QAAQ;GACR,OAAO;GACP,QAAQ;GACR,WAAW;EACb;CACF,EACF,EACF;CACA,GAAI;WAtCN;EAwCE,kBAAC,GAAD;GACS;GACgB;GACP;GACN;EACX,CAAA;EACD,kBAAC,GAAD;GAAe,GAAI;aAAe;EAAuB,CAAA;EACxD,KAAW,kBAAC,GAAD,EAAA,UAAgB,EAAuB,CAAA;CAC7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectDownload.js","names":[],"sources":["../../../src/components/DirectDownload/DirectDownload.tsx"],"sourcesContent":["import { useGetFileBatch } from '@/synapse-queries/file/useFiles'\nimport { implementsExternalFileHandleInterface } from '@/utils/types/IsType'\nimport { Tooltip } from '@mui/material'\nimport {\n ExternalFileHandle,\n FileHandleAssociateType,\n} from '@sage-bionetworks/synapse-types'\nimport { forwardRef } from 'react'\nimport IconSvg, { IconSvgProps } from '../IconSvg/IconSvg'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\nimport { useDirectDownloadHandler } from '@/utils/hooks/useDirectDownloadHandler'\n\nexport type DirectFileDownloadProps = {\n associatedObjectId: string\n associatedObjectType: FileHandleAssociateType\n fileHandleId: string\n displayFileName?: boolean\n onClickCallback?: (isExternalLink: boolean) => void // callback if you want to know when the link was clicked\n stopPropagation?: boolean\n iconSvgPropOverrides?: Partial<IconSvgProps>\n}\n\ntype DirectDownloadIconProps = {\n isExternalFile?: boolean\n hasFileAccess: boolean\n onClick?: (isExternalFile: boolean) => void\n getDownloadLink: () => Promise<void>\n stopPropagation: boolean\n externalURL?: string\n displayFileName: boolean\n fileName?: string\n iconSvgPropOverrides?: Partial<IconSvgProps>\n}\n\nconst DirectDownloadIcon = forwardRef<\n HTMLButtonElement,\n DirectDownloadIconProps\n>(function DirectDownloadIcon(props: DirectDownloadIconProps, ref) {\n const {\n isExternalFile,\n onClick,\n getDownloadLink,\n stopPropagation,\n externalURL,\n hasFileAccess,\n displayFileName,\n fileName,\n iconSvgPropOverrides = {},\n } = props\n if (isExternalFile) {\n return (\n <button\n ref={ref}\n className={'btn-download-icon'}\n onClick={event => {\n if (onClick) {\n onClick(isExternalFile)\n if (stopPropagation) event.stopPropagation()\n }\n }}\n >\n <a\n className=\"ignoreLink\"\n rel=\"noopener noreferrer\"\n href={externalURL}\n target=\"_blank\"\n >\n <IconSvg icon=\"download\" {...iconSvgPropOverrides} />\n </a>\n </button>\n )\n }\n if (hasFileAccess) {\n return (\n <button\n ref={ref}\n className={'btn-download-icon'}\n onClick={event => {\n getDownloadLink()\n if (stopPropagation) event.stopPropagation()\n }}\n >\n <IconSvg icon=\"download\" {...iconSvgPropOverrides} />\n {displayFileName && fileName ? fileName : ''}\n </button>\n )\n }\n return <></>\n})\n\nfunction DirectDownload(props: DirectFileDownloadProps) {\n const {\n associatedObjectId,\n associatedObjectType,\n fileHandleId,\n displayFileName = false,\n onClickCallback,\n stopPropagation = false,\n iconSvgPropOverrides,\n } = props\n\n const fileHandleAssociation = {\n fileHandleId: fileHandleId,\n associateObjectId: associatedObjectId,\n associateObjectType: associatedObjectType,\n }\n\n // Get file handle data to ensure we have access / display information\n const { data } = useGetFileBatch({\n requestedFiles: [fileHandleAssociation],\n includeFileHandles: true,\n // don't get the presigned URL with this query, it may expire before the user clicks the download button\n includePreSignedURLs: false,\n includePreviewPreSignedURLs: false,\n })\n\n const fileHandle = data?.requestedFiles[0]?.fileHandle\n const hasFileAccess = Boolean(fileHandle)\n const fileName = fileHandle?.fileName\n const isExternalFile = fileHandle\n ? implementsExternalFileHandleInterface(fileHandle)\n : undefined\n const externalURL: string | undefined = fileHandle\n ? (fileHandle as ExternalFileHandle).externalURL\n : undefined\n\n const { downloadFile } = useDirectDownloadHandler()\n\n const getDownloadLink = async () => {\n await downloadFile({\n fileHandleId,\n associatedObjectId,\n associatedObjectType,\n })\n\n if (onClickCallback) {\n onClickCallback(isExternalFile!)\n }\n }\n\n return (\n <Tooltip\n title=\"Click to begin download of this file\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"left\"\n >\n <span>\n <DirectDownloadIcon\n isExternalFile={isExternalFile}\n hasFileAccess={hasFileAccess}\n onClick={onClickCallback}\n getDownloadLink={getDownloadLink}\n stopPropagation={stopPropagation}\n externalURL={externalURL}\n displayFileName={displayFileName}\n fileName={fileName}\n iconSvgPropOverrides={iconSvgPropOverrides}\n />\n </span>\n </Tooltip>\n )\n}\n\nexport default DirectDownload\n"],"mappings":";;;;;;;;;AAkCA,IAAM,IAAqB,EAGzB,SAA4B,GAAgC,GAAK;CACjE,IAAM,EACJ,mBACA,YACA,oBACA,oBACA,gBACA,kBACA,oBACA,aACA,0BAAuB,
|
|
1
|
+
{"version":3,"file":"DirectDownload.js","names":[],"sources":["../../../src/components/DirectDownload/DirectDownload.tsx"],"sourcesContent":["import { useGetFileBatch } from '@/synapse-queries/file/useFiles'\nimport { implementsExternalFileHandleInterface } from '@/utils/types/IsType'\nimport { Tooltip } from '@mui/material'\nimport {\n ExternalFileHandle,\n FileHandleAssociateType,\n} from '@sage-bionetworks/synapse-types'\nimport { forwardRef } from 'react'\nimport IconSvg, { IconSvgProps } from '../IconSvg/IconSvg'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\nimport { useDirectDownloadHandler } from '@/utils/hooks/useDirectDownloadHandler'\n\nexport type DirectFileDownloadProps = {\n associatedObjectId: string\n associatedObjectType: FileHandleAssociateType\n fileHandleId: string\n displayFileName?: boolean\n onClickCallback?: (isExternalLink: boolean) => void // callback if you want to know when the link was clicked\n stopPropagation?: boolean\n iconSvgPropOverrides?: Partial<IconSvgProps>\n}\n\ntype DirectDownloadIconProps = {\n isExternalFile?: boolean\n hasFileAccess: boolean\n onClick?: (isExternalFile: boolean) => void\n getDownloadLink: () => Promise<void>\n stopPropagation: boolean\n externalURL?: string\n displayFileName: boolean\n fileName?: string\n iconSvgPropOverrides?: Partial<IconSvgProps>\n}\n\nconst DirectDownloadIcon = forwardRef<\n HTMLButtonElement,\n DirectDownloadIconProps\n>(function DirectDownloadIcon(props: DirectDownloadIconProps, ref) {\n const {\n isExternalFile,\n onClick,\n getDownloadLink,\n stopPropagation,\n externalURL,\n hasFileAccess,\n displayFileName,\n fileName,\n iconSvgPropOverrides = {},\n } = props\n if (isExternalFile) {\n return (\n <button\n ref={ref}\n className={'btn-download-icon'}\n onClick={event => {\n if (onClick) {\n onClick(isExternalFile)\n if (stopPropagation) event.stopPropagation()\n }\n }}\n >\n <a\n className=\"ignoreLink\"\n rel=\"noopener noreferrer\"\n href={externalURL}\n target=\"_blank\"\n >\n <IconSvg icon=\"download\" {...iconSvgPropOverrides} />\n </a>\n </button>\n )\n }\n if (hasFileAccess) {\n return (\n <button\n ref={ref}\n className={'btn-download-icon'}\n onClick={event => {\n getDownloadLink()\n if (stopPropagation) event.stopPropagation()\n }}\n >\n <IconSvg icon=\"download\" {...iconSvgPropOverrides} />\n {displayFileName && fileName ? fileName : ''}\n </button>\n )\n }\n return <></>\n})\n\nfunction DirectDownload(props: DirectFileDownloadProps) {\n const {\n associatedObjectId,\n associatedObjectType,\n fileHandleId,\n displayFileName = false,\n onClickCallback,\n stopPropagation = false,\n iconSvgPropOverrides,\n } = props\n\n const fileHandleAssociation = {\n fileHandleId: fileHandleId,\n associateObjectId: associatedObjectId,\n associateObjectType: associatedObjectType,\n }\n\n // Get file handle data to ensure we have access / display information\n const { data } = useGetFileBatch({\n requestedFiles: [fileHandleAssociation],\n includeFileHandles: true,\n // don't get the presigned URL with this query, it may expire before the user clicks the download button\n includePreSignedURLs: false,\n includePreviewPreSignedURLs: false,\n })\n\n const fileHandle = data?.requestedFiles[0]?.fileHandle\n const hasFileAccess = Boolean(fileHandle)\n const fileName = fileHandle?.fileName\n const isExternalFile = fileHandle\n ? implementsExternalFileHandleInterface(fileHandle)\n : undefined\n const externalURL: string | undefined = fileHandle\n ? (fileHandle as ExternalFileHandle).externalURL\n : undefined\n\n const { downloadFile } = useDirectDownloadHandler()\n\n const getDownloadLink = async () => {\n await downloadFile({\n fileHandleId,\n associatedObjectId,\n associatedObjectType,\n })\n\n if (onClickCallback) {\n onClickCallback(isExternalFile!)\n }\n }\n\n return (\n <Tooltip\n title=\"Click to begin download of this file\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"left\"\n >\n <span>\n <DirectDownloadIcon\n isExternalFile={isExternalFile}\n hasFileAccess={hasFileAccess}\n onClick={onClickCallback}\n getDownloadLink={getDownloadLink}\n stopPropagation={stopPropagation}\n externalURL={externalURL}\n displayFileName={displayFileName}\n fileName={fileName}\n iconSvgPropOverrides={iconSvgPropOverrides}\n />\n </span>\n </Tooltip>\n )\n}\n\nexport default DirectDownload\n"],"mappings":";;;;;;;;;AAkCA,IAAM,IAAqB,EAGzB,SAA4B,GAAgC,GAAK;CACjE,IAAM,EACJ,mBACA,YACA,oBACA,oBACA,gBACA,kBACA,oBACA,aACA,0BAAuB,CAAC,MACtB;CAuCJ,OAtCI,IAEA,kBAAC,UAAD;EACO;EACL,WAAW;EACX,UAAS,MAAS;GAChB,AAAI,MACF,EAAQ,CAAc,GAClB,KAAiB,EAAM,gBAAgB;EAE/C;YAEA,kBAAC,KAAD;GACE,WAAU;GACV,KAAI;GACJ,MAAM;GACN,QAAO;aAEP,kBAAC,GAAD;IAAS,MAAK;IAAW,GAAI;GAAuB,CAAA;EACnD,CAAA;CACG,CAAA,IAGR,IAEA,kBAAC,UAAD;EACO;EACL,WAAW;EACX,UAAS,MAAS;GAEhB,AADA,EAAgB,GACZ,KAAiB,EAAM,gBAAgB;EAC7C;YANF,CAQE,kBAAC,GAAD;GAAS,MAAK;GAAW,GAAI;EAAuB,CAAA,GACnD,KAAmB,IAAW,IAAW,EACpC;MAGL,kBAAA,GAAA,CAAI,CAAA;AACb,CAAC;AAED,SAAS,EAAe,GAAgC;CACtD,IAAM,EACJ,uBACA,yBACA,iBACA,qBAAkB,IAClB,oBACA,qBAAkB,IAClB,4BACE,GASE,EAAE,YAAS,EAAgB;EAC/B,gBAAgB,CAAC;GAPH;GACd,mBAAmB;GACnB,qBAAqB;EAKJ,CAAqB;EACtC,oBAAoB;EAEpB,sBAAsB;EACtB,6BAA6B;CAC/B,CAAC,GAEK,IAAa,GAAM,eAAe,IAAI,YACtC,IAAgB,EAAQ,GACxB,IAAW,GAAY,UACvB,IAAiB,IACnB,EAAsC,CAAU,IAChD,KAAA,GACE,IAAkC,IACnC,EAAkC,cACnC,KAAA,GAEE,EAAE,oBAAiB,EAAyB;CAclD,OACE,kBAAC,GAAD;EACE,OAAM;EACN,gBAAA;EACA,WAAU;YAEV,kBAAC,QAAD,EAAA,UACE,kBAAC,GAAD;GACkB;GACD;GACf,SAAS;GACQ,6BAvBW;IAOlC,AANA,MAAM,EAAa;KACjB;KACA;KACA;IACF,CAAC,GAEG,KACF,EAAgB,CAAe;GAEnC;GAcyB;GACJ;GACI;GACP;GACY;EACvB,CAAA,EACG,CAAA;CACC,CAAA;AAEb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileEntityDirectDownload.js","names":[],"sources":["../../../src/components/DirectDownload/FileEntityDirectDownload.tsx"],"sourcesContent":["import { useGetEntity } from '@/synapse-queries'\nimport { isFileEntity } from '@/utils/types/IsType'\nimport { Skeleton } from '@mui/material'\nimport { FileHandleAssociateType } from '@sage-bionetworks/synapse-types'\nimport DirectDownload, { DirectFileDownloadProps } from './DirectDownload'\n\nexport type FileEntityDirectDownloadProps = Omit<\n DirectFileDownloadProps,\n 'associatedObjectId' | 'associatedObjectType' | 'fileHandleId'\n> & {\n entityId: string\n entityVersionNumber?: string | number\n}\n\nexport default function FileEntityDirectDownload(\n props: FileEntityDirectDownloadProps,\n) {\n const { entityId, entityVersionNumber } = props\n\n const { data: entity, isLoading } = useGetEntity(\n entityId,\n entityVersionNumber,\n )\n\n if (isLoading) {\n return <Skeleton />\n }\n\n if (!entity || (entity && !isFileEntity(entity))) {\n return <></>\n }\n\n return (\n <DirectDownload\n fileHandleId={entity?.dataFileHandleId}\n associatedObjectId={entityId}\n associatedObjectType={FileHandleAssociateType.FileEntity}\n {...props}\n />\n )\n}\n"],"mappings":";;;;;;;;AAcA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,aAAU,2BAAwB,GAEpC,EAAE,MAAM,GAAQ,iBAAc,EAClC,GACA,
|
|
1
|
+
{"version":3,"file":"FileEntityDirectDownload.js","names":[],"sources":["../../../src/components/DirectDownload/FileEntityDirectDownload.tsx"],"sourcesContent":["import { useGetEntity } from '@/synapse-queries'\nimport { isFileEntity } from '@/utils/types/IsType'\nimport { Skeleton } from '@mui/material'\nimport { FileHandleAssociateType } from '@sage-bionetworks/synapse-types'\nimport DirectDownload, { DirectFileDownloadProps } from './DirectDownload'\n\nexport type FileEntityDirectDownloadProps = Omit<\n DirectFileDownloadProps,\n 'associatedObjectId' | 'associatedObjectType' | 'fileHandleId'\n> & {\n entityId: string\n entityVersionNumber?: string | number\n}\n\nexport default function FileEntityDirectDownload(\n props: FileEntityDirectDownloadProps,\n) {\n const { entityId, entityVersionNumber } = props\n\n const { data: entity, isLoading } = useGetEntity(\n entityId,\n entityVersionNumber,\n )\n\n if (isLoading) {\n return <Skeleton />\n }\n\n if (!entity || (entity && !isFileEntity(entity))) {\n return <></>\n }\n\n return (\n <DirectDownload\n fileHandleId={entity?.dataFileHandleId}\n associatedObjectId={entityId}\n associatedObjectType={FileHandleAssociateType.FileEntity}\n {...props}\n />\n )\n}\n"],"mappings":";;;;;;;;AAcA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,aAAU,2BAAwB,GAEpC,EAAE,MAAM,GAAQ,iBAAc,EAClC,GACA,CACF;CAUA,OARI,IACK,kBAAC,GAAD,CAAW,CAAA,IAGhB,CAAC,KAAW,KAAU,CAAC,EAAa,CAAM,IACrC,kBAAA,GAAA,CAAI,CAAA,IAIX,kBAAC,GAAD;EACE,cAAc,GAAQ;EACtB,oBAAoB;EACpB,sBAAsB,EAAwB;EAC9C,GAAI;CACL,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectDownloadButton.js","names":[],"sources":["../../src/components/DirectDownloadButton.tsx"],"sourcesContent":["import { getFiles } from '@/synapse-client/SynapseClient'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { Button, ButtonProps } from '@mui/material'\nimport {\n BatchFileRequest,\n FileHandleAssociation,\n} from '@sage-bionetworks/synapse-types'\n\nexport type DirectFileDownloadButtonProps = Omit<ButtonProps, 'onClick'> & {\n fileHandleAssociation: FileHandleAssociation\n fileName: string | undefined\n}\n\nfunction DirectDownloadButton(props: DirectFileDownloadButtonProps) {\n const { fileHandleAssociation, fileName, ...buttonProps } = props\n const { accessToken, isAuthenticated } = useSynapseContext()\n\n const getDownloadLink = async () => {\n if (!fileHandleAssociation.fileHandleId || !isAuthenticated) return\n\n const batchFileRequest: BatchFileRequest = {\n requestedFiles: [fileHandleAssociation],\n includePreSignedURLs: true,\n includeFileHandles: false,\n includePreviewPreSignedURLs: false,\n }\n const file = await getFiles(batchFileRequest, accessToken)\n const preSignedURL = file.requestedFiles[0].preSignedURL\n if (!preSignedURL) {\n console.log('Fail to get file download link')\n } else {\n window.open(preSignedURL)\n }\n }\n\n return (\n <Button\n {...buttonProps}\n onClick={() => {\n getDownloadLink()\n }}\n >\n {fileName}\n </Button>\n )\n}\n\nexport default DirectDownloadButton\n"],"mappings":";;;;;AAaA,SAAS,EAAqB,GAAsC;CAClE,IAAM,EAAE,0BAAuB,aAAU,GAAG,MAAgB,GACtD,EAAE,gBAAa,uBAAoB,
|
|
1
|
+
{"version":3,"file":"DirectDownloadButton.js","names":[],"sources":["../../src/components/DirectDownloadButton.tsx"],"sourcesContent":["import { getFiles } from '@/synapse-client/SynapseClient'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { Button, ButtonProps } from '@mui/material'\nimport {\n BatchFileRequest,\n FileHandleAssociation,\n} from '@sage-bionetworks/synapse-types'\n\nexport type DirectFileDownloadButtonProps = Omit<ButtonProps, 'onClick'> & {\n fileHandleAssociation: FileHandleAssociation\n fileName: string | undefined\n}\n\nfunction DirectDownloadButton(props: DirectFileDownloadButtonProps) {\n const { fileHandleAssociation, fileName, ...buttonProps } = props\n const { accessToken, isAuthenticated } = useSynapseContext()\n\n const getDownloadLink = async () => {\n if (!fileHandleAssociation.fileHandleId || !isAuthenticated) return\n\n const batchFileRequest: BatchFileRequest = {\n requestedFiles: [fileHandleAssociation],\n includePreSignedURLs: true,\n includeFileHandles: false,\n includePreviewPreSignedURLs: false,\n }\n const file = await getFiles(batchFileRequest, accessToken)\n const preSignedURL = file.requestedFiles[0].preSignedURL\n if (!preSignedURL) {\n console.log('Fail to get file download link')\n } else {\n window.open(preSignedURL)\n }\n }\n\n return (\n <Button\n {...buttonProps}\n onClick={() => {\n getDownloadLink()\n }}\n >\n {fileName}\n </Button>\n )\n}\n\nexport default DirectDownloadButton\n"],"mappings":";;;;;AAaA,SAAS,EAAqB,GAAsC;CAClE,IAAM,EAAE,0BAAuB,aAAU,GAAG,MAAgB,GACtD,EAAE,gBAAa,uBAAoB,EAAkB,GAErD,IAAkB,YAAY;EAClC,IAAI,CAAC,EAAsB,gBAAgB,CAAC,GAAiB;EAS7D,IAAM,KAAe,MADF,EAAS;GAL1B,gBAAgB,CAAC,CAAqB;GACtC,sBAAsB;GACtB,oBAAoB;GACpB,6BAA6B;EAEH,GAAkB,CAAW,GAC/B,eAAe,GAAG;EAC5C,AAAK,IAGH,OAAO,KAAK,CAAY,IAFxB,QAAQ,IAAI,gCAAgC;CAIhD;CAEA,OACE,kBAAC,GAAD;EACE,GAAI;EACJ,eAAe;GACb,EAAgB;EAClB;YAEC;CACK,CAAA;AAEZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionRequiredCard.js","names":[],"sources":["../../../../src/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.tsx"],"sourcesContent":["import {\n Box,\n Paper,\n PaperProps,\n Skeleton,\n styled,\n Typography,\n} from '@mui/material'\nimport { ReactNode } from 'react'\nimport Icon from '../../Icon'\nimport { StyledComponent } from '@emotion/styled'\n\nexport type ActionRequiredCardProps =\n | {\n title: ReactNode\n description: ReactNode\n actionNode: ReactNode\n iconType: string\n count?: number\n isLoading?: false\n }\n | { isLoading: true }\n\nconst ActionRequiredCardContainer: StyledComponent<PaperProps> = styled(Paper, {\n label: 'ActionRequiredCardContainer',\n})(({ theme }) => ({\n padding: `${theme.spacing(2.5)} ${theme.spacing(4)}`,\n display: 'grid',\n alignItems: 'center',\n gridTemplateColumns: '160px auto 200px',\n gap: theme.spacing(4),\n [theme.breakpoints.down('sm')]: {\n gridTemplateColumns: '1fr', // Single column layout for mobile\n },\n}))\n\n/**\n * The ActionRequiredCard component renders a generic card that represents some action that a user must take to gain\n * download access to a file.\n * @param props\n * @returns\n */\nexport function ActionRequiredCard(props: ActionRequiredCardProps) {\n if (props.isLoading) {\n return <LoadingActionRequiredCard />\n }\n const { title, description, iconType, count, actionNode } = props\n return (\n <ActionRequiredCardContainer>\n <Box sx={{ textAlign: 'center', minWidth: '100px' }}>\n <Icon type={iconType} />\n </Box>\n <Box sx={{ flexGrow: 1 }}>\n <Typography variant=\"headline3\" sx={{ mb: 1 }}>\n {title}\n </Typography>\n {count && (\n <Typography variant={'smallText1'} sx={{ my: 1, color: 'grey.700' }}>\n {count} File{count != 1 ? 's' : ''}\n </Typography>\n )}\n <Typography variant={'smallText1'}>{description}</Typography>\n </Box>\n <Box sx={{ textAlign: 'center', marginLeft: 'auto' }}>{actionNode}</Box>\n </ActionRequiredCardContainer>\n )\n}\n\nexport function LoadingActionRequiredCard() {\n return (\n <ActionRequiredCardContainer>\n <Skeleton variant=\"rectangular\" width={136} height={74} />\n <div>\n <Skeleton width={250} />\n <Skeleton width={100} />\n </div>\n <Skeleton variant=\"rectangular\" width={160} height={33} />\n </ActionRequiredCardContainer>\n )\n}\n"],"mappings":";;;;AAuBA,IAAM,IAA2D,EAAO,GAAO,EAC7E,OAAO
|
|
1
|
+
{"version":3,"file":"ActionRequiredCard.js","names":[],"sources":["../../../../src/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.tsx"],"sourcesContent":["import {\n Box,\n Paper,\n PaperProps,\n Skeleton,\n styled,\n Typography,\n} from '@mui/material'\nimport { ReactNode } from 'react'\nimport Icon from '../../Icon'\nimport { StyledComponent } from '@emotion/styled'\n\nexport type ActionRequiredCardProps =\n | {\n title: ReactNode\n description: ReactNode\n actionNode: ReactNode\n iconType: string\n count?: number\n isLoading?: false\n }\n | { isLoading: true }\n\nconst ActionRequiredCardContainer: StyledComponent<PaperProps> = styled(Paper, {\n label: 'ActionRequiredCardContainer',\n})(({ theme }) => ({\n padding: `${theme.spacing(2.5)} ${theme.spacing(4)}`,\n display: 'grid',\n alignItems: 'center',\n gridTemplateColumns: '160px auto 200px',\n gap: theme.spacing(4),\n [theme.breakpoints.down('sm')]: {\n gridTemplateColumns: '1fr', // Single column layout for mobile\n },\n}))\n\n/**\n * The ActionRequiredCard component renders a generic card that represents some action that a user must take to gain\n * download access to a file.\n * @param props\n * @returns\n */\nexport function ActionRequiredCard(props: ActionRequiredCardProps) {\n if (props.isLoading) {\n return <LoadingActionRequiredCard />\n }\n const { title, description, iconType, count, actionNode } = props\n return (\n <ActionRequiredCardContainer>\n <Box sx={{ textAlign: 'center', minWidth: '100px' }}>\n <Icon type={iconType} />\n </Box>\n <Box sx={{ flexGrow: 1 }}>\n <Typography variant=\"headline3\" sx={{ mb: 1 }}>\n {title}\n </Typography>\n {count && (\n <Typography variant={'smallText1'} sx={{ my: 1, color: 'grey.700' }}>\n {count} File{count != 1 ? 's' : ''}\n </Typography>\n )}\n <Typography variant={'smallText1'}>{description}</Typography>\n </Box>\n <Box sx={{ textAlign: 'center', marginLeft: 'auto' }}>{actionNode}</Box>\n </ActionRequiredCardContainer>\n )\n}\n\nexport function LoadingActionRequiredCard() {\n return (\n <ActionRequiredCardContainer>\n <Skeleton variant=\"rectangular\" width={136} height={74} />\n <div>\n <Skeleton width={250} />\n <Skeleton width={100} />\n </div>\n <Skeleton variant=\"rectangular\" width={160} height={33} />\n </ActionRequiredCardContainer>\n )\n}\n"],"mappings":";;;;AAuBA,IAAM,IAA2D,EAAO,GAAO,EAC7E,OAAO,8BACT,CAAC,GAAG,EAAE,gBAAa;CACjB,SAAS,GAAG,EAAM,QAAQ,GAAG,EAAE,GAAG,EAAM,QAAQ,CAAC;CACjD,SAAS;CACT,YAAY;CACZ,qBAAqB;CACrB,KAAK,EAAM,QAAQ,CAAC;EACnB,EAAM,YAAY,KAAK,IAAI,IAAI,EAC9B,qBAAqB,MACvB;AACF,EAAE;AAQF,SAAgB,EAAmB,GAAgC;CACjE,IAAI,EAAM,WACR,OAAO,kBAAC,GAAD,CAA4B,CAAA;CAErC,IAAM,EAAE,UAAO,gBAAa,aAAU,UAAO,kBAAe;CAC5D,OACE,kBAAC,GAAD,EAAA,UAAA;EACE,kBAAC,GAAD;GAAK,IAAI;IAAE,WAAW;IAAU,UAAU;GAAQ;aAChD,kBAAC,GAAD,EAAM,MAAM,EAAW,CAAA;EACpB,CAAA;EACL,kBAAC,GAAD;GAAK,IAAI,EAAE,UAAU,EAAE;aAAvB;IACE,kBAAC,GAAD;KAAY,SAAQ;KAAY,IAAI,EAAE,IAAI,EAAE;eACzC;IACS,CAAA;IACX,KACC,kBAAC,GAAD;KAAY,SAAS;KAAc,IAAI;MAAE,IAAI;MAAG,OAAO;KAAW;eAAlE;MACG;MAAM;MAAM,KAAS,IAAU,KAAN;KAChB;;IAEd,kBAAC,GAAD;KAAY,SAAS;eAAe;IAAwB,CAAA;GACzD;;EACL,kBAAC,GAAD;GAAK,IAAI;IAAE,WAAW;IAAU,YAAY;GAAO;aAAI;EAAgB,CAAA;CAC5C,EAAA,CAAA;AAEjC;AAEA,SAAgB,IAA4B;CAC1C,OACE,kBAAC,GAAD,EAAA,UAAA;EACE,kBAAC,GAAD;GAAU,SAAQ;GAAc,OAAO;GAAK,QAAQ;EAAK,CAAA;EACzD,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAU,OAAO,IAAM,CAAA,GACvB,kBAAC,GAAD,EAAU,OAAO,IAAM,CAAA,CACpB,EAAA,CAAA;EACL,kBAAC,GAAD;GAAU,SAAQ;GAAc,OAAO;GAAK,QAAQ;EAAK,CAAA;CAC9B,EAAA,CAAA;AAEjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionRequiredListItem.js","names":[],"sources":["../../../src/components/DownloadCart/ActionRequiredListItem.tsx"],"sourcesContent":["import { Action } from '@sage-bionetworks/synapse-types'\nimport { MeetAccessRequirementCard } from './MeetAccessRequirementCard'\nimport { RequestDownloadCard } from './RequestDownloadCard'\nimport { EnableTwoFaRequirementCard } from './EnableTwoFaRequirementCard'\n\nexport type ActionRequiredListItemProps = {\n action: Action\n count?: number\n /** Invoked when a user clicks \"View Sharing Settings\" for a set of files that require the Download permission*/\n onViewSharingSettingsClicked?: (benefactorId: string) => void\n}\n\nexport function ActionRequiredListItem(props: ActionRequiredListItemProps) {\n const { action, count, onViewSharingSettingsClicked } = props\n switch (action.concreteType) {\n case 'org.sagebionetworks.repo.model.download.MeetAccessRequirement': {\n return (\n <MeetAccessRequirementCard\n key={action.accessRequirementId}\n accessRequirementId={action.accessRequirementId}\n count={count}\n />\n )\n }\n case 'org.sagebionetworks.repo.model.download.RequestDownload': {\n return (\n <RequestDownloadCard\n key={action.benefactorId}\n entityId={`syn${action.benefactorId}`}\n count={count}\n onViewSharingSettingsClicked={onViewSharingSettingsClicked}\n />\n )\n }\n case 'org.sagebionetworks.repo.model.download.EnableTwoFa': {\n return (\n <EnableTwoFaRequirementCard\n key={action.accessRequirementId}\n accessRequirementId={action.accessRequirementId}\n count={count}\n />\n )\n }\n\n // case not supported yet\n default:\n return <></>\n }\n}\n"],"mappings":";;;;;AAYA,SAAgB,EAAuB,GAAoC;CACzE,IAAM,EAAE,WAAQ,UAAO,oCAAiC;
|
|
1
|
+
{"version":3,"file":"ActionRequiredListItem.js","names":[],"sources":["../../../src/components/DownloadCart/ActionRequiredListItem.tsx"],"sourcesContent":["import { Action } from '@sage-bionetworks/synapse-types'\nimport { MeetAccessRequirementCard } from './MeetAccessRequirementCard'\nimport { RequestDownloadCard } from './RequestDownloadCard'\nimport { EnableTwoFaRequirementCard } from './EnableTwoFaRequirementCard'\n\nexport type ActionRequiredListItemProps = {\n action: Action\n count?: number\n /** Invoked when a user clicks \"View Sharing Settings\" for a set of files that require the Download permission*/\n onViewSharingSettingsClicked?: (benefactorId: string) => void\n}\n\nexport function ActionRequiredListItem(props: ActionRequiredListItemProps) {\n const { action, count, onViewSharingSettingsClicked } = props\n switch (action.concreteType) {\n case 'org.sagebionetworks.repo.model.download.MeetAccessRequirement': {\n return (\n <MeetAccessRequirementCard\n key={action.accessRequirementId}\n accessRequirementId={action.accessRequirementId}\n count={count}\n />\n )\n }\n case 'org.sagebionetworks.repo.model.download.RequestDownload': {\n return (\n <RequestDownloadCard\n key={action.benefactorId}\n entityId={`syn${action.benefactorId}`}\n count={count}\n onViewSharingSettingsClicked={onViewSharingSettingsClicked}\n />\n )\n }\n case 'org.sagebionetworks.repo.model.download.EnableTwoFa': {\n return (\n <EnableTwoFaRequirementCard\n key={action.accessRequirementId}\n accessRequirementId={action.accessRequirementId}\n count={count}\n />\n )\n }\n\n // case not supported yet\n default:\n return <></>\n }\n}\n"],"mappings":";;;;;AAYA,SAAgB,EAAuB,GAAoC;CACzE,IAAM,EAAE,WAAQ,UAAO,oCAAiC;CACxD,QAAQ,EAAO,cAAf;EACE,KAAK,iEACH,OACE,kBAAC,GAAD;GAEE,qBAAqB,EAAO;GACrB;EACR,GAHM,EAAO,mBAGb;EAGL,KAAK,2DACH,OACE,kBAAC,GAAD;GAEE,UAAU,MAAM,EAAO;GAChB;GACuB;EAC/B,GAJM,EAAO,YAIb;EAGL,KAAK,uDACH,OACE,kBAAC,GAAD;GAEE,qBAAqB,EAAO;GACrB;EACR,GAHM,EAAO,mBAGb;EAKL,SACE,OAAO,kBAAA,GAAA,CAAI,CAAA;CACf;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvailableForDownloadTable.js","names":[],"sources":["../../../src/components/DownloadCart/AvailableForDownloadTable.tsx"],"sourcesContent":["import { useSynapseContext } from '@/utils'\nimport { AvailableFilter } from '@sage-bionetworks/synapse-types'\nimport { SynapseErrorBoundary } from '../error/ErrorBanner'\nimport DownloadListTable from './DownloadListTable'\n\nexport type AvailableForDownloadTableProps = {\n filter?: AvailableFilter\n}\n\n/**\n * Table of the files added to the Download List that are currently available for download.\n */\nexport default function AvailableForDownloadTable({\n filter,\n}: AvailableForDownloadTableProps) {\n const { isAuthenticated } = useSynapseContext()\n if (!isAuthenticated) {\n return <></>\n }\n return (\n <SynapseErrorBoundary>\n <DownloadListTable filter={filter} />\n </SynapseErrorBoundary>\n )\n}\n"],"mappings":";;;;;;AAYA,SAAwB,EAA0B,EAChD,aACiC;CACjC,IAAM,EAAE,uBAAoB,
|
|
1
|
+
{"version":3,"file":"AvailableForDownloadTable.js","names":[],"sources":["../../../src/components/DownloadCart/AvailableForDownloadTable.tsx"],"sourcesContent":["import { useSynapseContext } from '@/utils'\nimport { AvailableFilter } from '@sage-bionetworks/synapse-types'\nimport { SynapseErrorBoundary } from '../error/ErrorBanner'\nimport DownloadListTable from './DownloadListTable'\n\nexport type AvailableForDownloadTableProps = {\n filter?: AvailableFilter\n}\n\n/**\n * Table of the files added to the Download List that are currently available for download.\n */\nexport default function AvailableForDownloadTable({\n filter,\n}: AvailableForDownloadTableProps) {\n const { isAuthenticated } = useSynapseContext()\n if (!isAuthenticated) {\n return <></>\n }\n return (\n <SynapseErrorBoundary>\n <DownloadListTable filter={filter} />\n </SynapseErrorBoundary>\n )\n}\n"],"mappings":";;;;;;AAYA,SAAwB,EAA0B,EAChD,aACiC;CACjC,IAAM,EAAE,uBAAoB,EAAkB;CAI9C,OAHK,IAIH,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAA2B,UAAS,CAAA,EAChB,CAAA,IALf,kBAAA,GAAA,CAAI,CAAA;AAOf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreatePackageV2.js","names":[],"sources":["../../../src/components/DownloadCart/CreatePackageV2.tsx"],"sourcesContent":["import styles from './CreatePackageV2.module.scss'\nimport {\n createPackageFromDownloadListV2,\n getFileHandleByIdURL,\n} from '@/synapse-client/SynapseClient'\nimport React from 'react'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { Box, Button, Card, InputAdornment, TextField } from '@mui/material'\nimport { DownloadListPackageResponse } from '@sage-bionetworks/synapse-types'\nimport { ChangeEvent, SyntheticEvent, useState } from 'react'\nimport FullWidthAlert, {\n FullWidthAlertVariant,\n} from '../FullWidthAlert/FullWidthAlert'\n\nexport type CreatePackageV2Props = {\n onPackageCreation: () => void\n}\n\ntype AlertConfig = {\n message: string\n variant?: FullWidthAlertVariant\n}\n\nexport const TEMPLATE_ERROR_FILE_NAME =\n 'Please provide a package file name and try again.'\n\nexport const CreatePackageV2 = (\n props: CreatePackageV2Props,\n): React.ReactNode => {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryClient = useQueryClient()\n const [isLoading, setIsLoading] = useState(false)\n const [fileName, setZipFileName] = useState('')\n const [alert, setAlert] = useState<AlertConfig>()\n const [bulkFileDownloadResponse, setBulkFileDownloadResponse] = useState<\n DownloadListPackageResponse | undefined\n >(undefined)\n const { onPackageCreation } = props\n const createPackageHandler = async (event: SyntheticEvent) => {\n event.preventDefault()\n if (!fileName) {\n setAlert({\n message: TEMPLATE_ERROR_FILE_NAME,\n variant: 'danger',\n })\n return\n }\n setIsLoading(true)\n try {\n const fileNameWithZipExtension = `${fileName}.zip`\n const currentBulkFileDownloadResponse =\n await createPackageFromDownloadListV2(\n fileNameWithZipExtension,\n accessToken,\n )\n\n setBulkFileDownloadResponse(currentBulkFileDownloadResponse)\n const { resultFileHandleId } = currentBulkFileDownloadResponse\n try {\n //reset\n window.location.href = await getFileHandleByIdURL(\n resultFileHandleId,\n accessToken,\n )\n setZipFileName('')\n setBulkFileDownloadResponse(undefined)\n queryClient.invalidateQueries({\n queryKey: keyFactory.getDownloadListBaseQueryKey(),\n })\n onPackageCreation()\n } catch (err) {\n console.error('Err on getFileHandleByIdURL = ', err)\n }\n } catch (err) {\n setAlert({\n message: err.reason as string,\n variant: 'danger',\n })\n } finally {\n setIsLoading(false)\n }\n }\n\n const onChange = (event: ChangeEvent<HTMLInputElement>) => {\n setZipFileName(event.target.value)\n }\n\n return (\n <>\n <Card className={styles.CreatePackageV2}>\n <div className={styles.createPackageStep}>\n <span className={styles.createPackageTitle}>\n Create your Download Package\n </span>\n <span className={styles.createPackageDescription}>\n Name your download package and select Download Package to get\n started.\n </span>\n {!isLoading && !bulkFileDownloadResponse && (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'stretch',\n }}\n >\n <TextField\n onChange={onChange}\n type=\"text\"\n placeholder=\"PackageName\"\n sx={{ width: '233px' }}\n slotProps={{\n input: {\n endAdornment: (\n <InputAdornment position=\"end\">.zip</InputAdornment>\n ),\n },\n }}\n />\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={e => {\n createPackageHandler(e)\n }}\n sx={{ marginLeft: '20px' }}\n disabled={!fileName}\n >\n Download Package\n </Button>\n </Box>\n )}\n {isLoading && (\n <div className=\"creatingPackage\">\n <span className=\"spinner\" />\n <span style={{ marginLeft: 5 }}>Creating package...</span>\n </div>\n )}\n </div>\n </Card>\n <FullWidthAlert\n show={!!alert}\n variant={alert?.variant ? alert.variant : 'success'}\n description={alert?.message}\n autoCloseAfterDelayInSeconds={10}\n onClose={() => {\n setAlert(undefined)\n }}\n />\n </>\n )\n}\n"],"mappings":";;;;;;;;;AAwBA,IAAa,IACX,qDAEW,KACX,MACoB;CACpB,IAAM,EAAE,gBAAa,kBAAe,
|
|
1
|
+
{"version":3,"file":"CreatePackageV2.js","names":[],"sources":["../../../src/components/DownloadCart/CreatePackageV2.tsx"],"sourcesContent":["import styles from './CreatePackageV2.module.scss'\nimport {\n createPackageFromDownloadListV2,\n getFileHandleByIdURL,\n} from '@/synapse-client/SynapseClient'\nimport React from 'react'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { Box, Button, Card, InputAdornment, TextField } from '@mui/material'\nimport { DownloadListPackageResponse } from '@sage-bionetworks/synapse-types'\nimport { ChangeEvent, SyntheticEvent, useState } from 'react'\nimport FullWidthAlert, {\n FullWidthAlertVariant,\n} from '../FullWidthAlert/FullWidthAlert'\n\nexport type CreatePackageV2Props = {\n onPackageCreation: () => void\n}\n\ntype AlertConfig = {\n message: string\n variant?: FullWidthAlertVariant\n}\n\nexport const TEMPLATE_ERROR_FILE_NAME =\n 'Please provide a package file name and try again.'\n\nexport const CreatePackageV2 = (\n props: CreatePackageV2Props,\n): React.ReactNode => {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryClient = useQueryClient()\n const [isLoading, setIsLoading] = useState(false)\n const [fileName, setZipFileName] = useState('')\n const [alert, setAlert] = useState<AlertConfig>()\n const [bulkFileDownloadResponse, setBulkFileDownloadResponse] = useState<\n DownloadListPackageResponse | undefined\n >(undefined)\n const { onPackageCreation } = props\n const createPackageHandler = async (event: SyntheticEvent) => {\n event.preventDefault()\n if (!fileName) {\n setAlert({\n message: TEMPLATE_ERROR_FILE_NAME,\n variant: 'danger',\n })\n return\n }\n setIsLoading(true)\n try {\n const fileNameWithZipExtension = `${fileName}.zip`\n const currentBulkFileDownloadResponse =\n await createPackageFromDownloadListV2(\n fileNameWithZipExtension,\n accessToken,\n )\n\n setBulkFileDownloadResponse(currentBulkFileDownloadResponse)\n const { resultFileHandleId } = currentBulkFileDownloadResponse\n try {\n //reset\n window.location.href = await getFileHandleByIdURL(\n resultFileHandleId,\n accessToken,\n )\n setZipFileName('')\n setBulkFileDownloadResponse(undefined)\n queryClient.invalidateQueries({\n queryKey: keyFactory.getDownloadListBaseQueryKey(),\n })\n onPackageCreation()\n } catch (err) {\n console.error('Err on getFileHandleByIdURL = ', err)\n }\n } catch (err) {\n setAlert({\n message: err.reason as string,\n variant: 'danger',\n })\n } finally {\n setIsLoading(false)\n }\n }\n\n const onChange = (event: ChangeEvent<HTMLInputElement>) => {\n setZipFileName(event.target.value)\n }\n\n return (\n <>\n <Card className={styles.CreatePackageV2}>\n <div className={styles.createPackageStep}>\n <span className={styles.createPackageTitle}>\n Create your Download Package\n </span>\n <span className={styles.createPackageDescription}>\n Name your download package and select Download Package to get\n started.\n </span>\n {!isLoading && !bulkFileDownloadResponse && (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'stretch',\n }}\n >\n <TextField\n onChange={onChange}\n type=\"text\"\n placeholder=\"PackageName\"\n sx={{ width: '233px' }}\n slotProps={{\n input: {\n endAdornment: (\n <InputAdornment position=\"end\">.zip</InputAdornment>\n ),\n },\n }}\n />\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={e => {\n createPackageHandler(e)\n }}\n sx={{ marginLeft: '20px' }}\n disabled={!fileName}\n >\n Download Package\n </Button>\n </Box>\n )}\n {isLoading && (\n <div className=\"creatingPackage\">\n <span className=\"spinner\" />\n <span style={{ marginLeft: 5 }}>Creating package...</span>\n </div>\n )}\n </div>\n </Card>\n <FullWidthAlert\n show={!!alert}\n variant={alert?.variant ? alert.variant : 'success'}\n description={alert?.message}\n autoCloseAfterDelayInSeconds={10}\n onClose={() => {\n setAlert(undefined)\n }}\n />\n </>\n )\n}\n"],"mappings":";;;;;;;;;AAwBA,IAAa,IACX,qDAEW,KACX,MACoB;CACpB,IAAM,EAAE,gBAAa,kBAAe,EAAkB,GAChD,IAAc,EAAe,GAC7B,CAAC,GAAW,KAAgB,EAAS,EAAK,GAC1C,CAAC,GAAU,KAAkB,EAAS,EAAE,GACxC,CAAC,GAAO,KAAY,EAAsB,GAC1C,CAAC,GAA0B,KAA+B,EAE9D,KAAA,CAAS,GACL,EAAE,yBAAsB,GACxB,IAAuB,OAAO,MAA0B;EAE5D,IADA,EAAM,eAAe,GACjB,CAAC,GAAU;GACb,EAAS;IACP,SAAS;IACT,SAAS;GACX,CAAC;GACD;EACF;EACA,EAAa,EAAI;EACjB,IAAI;GAEF,IAAM,IACJ,MAAM,EACJ,GAHgC,EAAS,OAIzC,CACF;GAEF,EAA4B,CAA+B;GAC3D,IAAM,EAAE,0BAAuB;GAC/B,IAAI;IAWF,AATA,OAAO,SAAS,OAAO,MAAM,EAC3B,GACA,CACF,GACA,EAAe,EAAE,GACjB,EAA4B,KAAA,CAAS,GACrC,EAAY,kBAAkB,EAC5B,UAAU,EAAW,4BAA4B,EACnD,CAAC,GACD,EAAkB;GACpB,SAAS,GAAK;IACZ,QAAQ,MAAM,kCAAkC,CAAG;GACrD;EACF,SAAS,GAAK;GACZ,EAAS;IACP,SAAS,EAAI;IACb,SAAS;GACX,CAAC;EACH,UAAU;GACR,EAAa,EAAK;EACpB;CACF;CAMA,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EAAM,WAAW,EAAO;YACtB,kBAAC,OAAD;GAAK,WAAW,EAAO;aAAvB;IACE,kBAAC,QAAD;KAAM,WAAW,EAAO;eAAoB;IAEtC,CAAA;IACN,kBAAC,QAAD;KAAM,WAAW,EAAO;eAA0B;IAG5C,CAAA;IACL,CAAC,KAAa,CAAC,KACd,kBAAC,GAAD;KACE,IAAI;MACF,SAAS;MACT,YAAY;KACd;eAJF,CAME,kBAAC,GAAD;MACY,WAvBN,MAAyC;OACzD,EAAe,EAAM,OAAO,KAAK;MACnC;MAsBc,MAAK;MACL,aAAY;MACZ,IAAI,EAAE,OAAO,QAAQ;MACrB,WAAW,EACT,OAAO,EACL,cACE,kBAAC,GAAD;OAAgB,UAAS;iBAAM;MAAoB,CAAA,EAEvD,EACF;KACD,CAAA,GACD,kBAAC,GAAD;MACE,SAAQ;MACR,OAAM;MACN,UAAS,MAAK;OACZ,EAAqB,CAAC;MACxB;MACA,IAAI,EAAE,YAAY,OAAO;MACzB,UAAU,CAAC;gBACZ;KAEO,CAAA,CACL;;IAEN,KACC,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,QAAD,EAAM,WAAU,UAAW,CAAA,GAC3B,kBAAC,QAAD;MAAM,OAAO,EAAE,YAAY,EAAE;gBAAG;KAAyB,CAAA,CACtD;;GAEJ;;CACD,CAAA,GACN,kBAAC,GAAD;EACE,MAAM,CAAC,CAAC;EACR,SAAS,GAAO,UAAU,EAAM,UAAU;EAC1C,aAAa,GAAO;EACpB,8BAA8B;EAC9B,eAAe;GACb,EAAS,KAAA,CAAS;EACpB;CACD,CAAA,CACD,EAAA,CAAA;AAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectProgrammaticDownload.js","names":[],"sources":["../../../src/components/DownloadCart/DirectProgrammaticDownload.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { Tooltip } from '@mui/material'\nimport IconSvg from '../IconSvg/IconSvg'\nimport { ProgrammaticInstructionsModal } from '../ProgrammaticInstructionsModal/ProgrammaticInstructionsModal'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\n\ntype DirectProgrammaticDownloadProps = {\n entityId: string\n version?: number\n}\nexport const PYTHON_CLIENT_IMPORT_AND_LOGIN = `import synapseclient\nsyn = synapseclient.Synapse()\nsyn.login(authToken=\"YOUR_TOKEN_HERE\")\n`\n\nexport const R_CLIENT_IMPORT_AND_LOGIN = `library(synapser)\nsynLogin(authToken=\"YOUR_TOKEN_HERE\")\n`\n\nfunction DirectProgrammaticDownload({\n entityId,\n version,\n}: DirectProgrammaticDownloadProps) {\n const [isShowingModal, setIsShowingModal] = useState<boolean>(false)\n\n const rCode = `${R_CLIENT_IMPORT_AND_LOGIN}\n# Obtain a pointer and download the data\n${entityId} <- synGet(entity='${entityId}'${\n version ? `, version=${version}` : ''\n } ) `\n\n const pythonCode = `${PYTHON_CLIENT_IMPORT_AND_LOGIN}\n# Obtain a pointer and download the data\n${entityId} = syn.get(entity='${entityId}'${\n version ? `, version=${version}` : ''\n } )\n\n# Get the path to the local copy of the data file\nfilepath = ${entityId}.path`\n\n const cliCode = `synapse get ${entityId} ${\n version ? `--version ${version}` : ''\n }`\n\n return (\n <>\n <Tooltip\n title=\"Programmatic download options\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"left\"\n >\n <span>\n <button\n className={'btn-download-icon'}\n onClick={() => setIsShowingModal(true)}\n >\n <IconSvg icon=\"code\" />\n </button>\n </span>\n </Tooltip>\n {isShowingModal && (\n <ProgrammaticInstructionsModal\n show={true}\n onClose={() => setIsShowingModal(false)}\n title=\"Download Programmatically\"\n cliCode={cliCode}\n rCode={rCode}\n pythonCode={pythonCode}\n />\n )}\n </>\n )\n}\n\nexport default DirectProgrammaticDownload\n"],"mappings":";;;;;;;AAUA,IAAa,IAAiC,mGAKjC,IAA4B;AAIzC,SAAS,EAA2B,EAClC,aACA,cACkC;CAClC,IAAM,CAAC,GAAgB,KAAqB,EAAkB,
|
|
1
|
+
{"version":3,"file":"DirectProgrammaticDownload.js","names":[],"sources":["../../../src/components/DownloadCart/DirectProgrammaticDownload.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { Tooltip } from '@mui/material'\nimport IconSvg from '../IconSvg/IconSvg'\nimport { ProgrammaticInstructionsModal } from '../ProgrammaticInstructionsModal/ProgrammaticInstructionsModal'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\n\ntype DirectProgrammaticDownloadProps = {\n entityId: string\n version?: number\n}\nexport const PYTHON_CLIENT_IMPORT_AND_LOGIN = `import synapseclient\nsyn = synapseclient.Synapse()\nsyn.login(authToken=\"YOUR_TOKEN_HERE\")\n`\n\nexport const R_CLIENT_IMPORT_AND_LOGIN = `library(synapser)\nsynLogin(authToken=\"YOUR_TOKEN_HERE\")\n`\n\nfunction DirectProgrammaticDownload({\n entityId,\n version,\n}: DirectProgrammaticDownloadProps) {\n const [isShowingModal, setIsShowingModal] = useState<boolean>(false)\n\n const rCode = `${R_CLIENT_IMPORT_AND_LOGIN}\n# Obtain a pointer and download the data\n${entityId} <- synGet(entity='${entityId}'${\n version ? `, version=${version}` : ''\n } ) `\n\n const pythonCode = `${PYTHON_CLIENT_IMPORT_AND_LOGIN}\n# Obtain a pointer and download the data\n${entityId} = syn.get(entity='${entityId}'${\n version ? `, version=${version}` : ''\n } )\n\n# Get the path to the local copy of the data file\nfilepath = ${entityId}.path`\n\n const cliCode = `synapse get ${entityId} ${\n version ? `--version ${version}` : ''\n }`\n\n return (\n <>\n <Tooltip\n title=\"Programmatic download options\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"left\"\n >\n <span>\n <button\n className={'btn-download-icon'}\n onClick={() => setIsShowingModal(true)}\n >\n <IconSvg icon=\"code\" />\n </button>\n </span>\n </Tooltip>\n {isShowingModal && (\n <ProgrammaticInstructionsModal\n show={true}\n onClose={() => setIsShowingModal(false)}\n title=\"Download Programmatically\"\n cliCode={cliCode}\n rCode={rCode}\n pythonCode={pythonCode}\n />\n )}\n </>\n )\n}\n\nexport default DirectProgrammaticDownload\n"],"mappings":";;;;;;;AAUA,IAAa,IAAiC,mGAKjC,IAA4B;AAIzC,SAAS,EAA2B,EAClC,aACA,cACkC;CAClC,IAAM,CAAC,GAAgB,KAAqB,EAAkB,EAAK,GAE7D,IAAQ,GAAG,EAA0B;;EAE3C,EAAS,qBAAqB,EAAS,GACrC,IAAU,aAAa,MAAY,GACpC,MAEK,IAAa,GAAG,EAA+B;;EAErD,EAAS,qBAAqB,EAAS,GACrC,IAAU,aAAa,MAAY,GACpC;;;aAGU,EAAS,QAEd,IAAU,eAAe,EAAS,GACtC,IAAU,aAAa,MAAY;CAGrC,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,OAAM;EACN,gBAAA;EACA,WAAU;YAEV,kBAAC,QAAD,EAAA,UACE,kBAAC,UAAD;GACE,WAAW;GACX,eAAe,EAAkB,EAAI;aAErC,kBAAC,GAAD,EAAS,MAAK,OAAQ,CAAA;EAChB,CAAA,EACJ,CAAA;CACC,CAAA,GACR,KACC,kBAAC,GAAD;EACE,MAAM;EACN,eAAe,EAAkB,EAAK;EACtC,OAAM;EACG;EACF;EACK;CACb,CAAA,CAEH,EAAA,CAAA;AAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadCartPage.js","names":[],"sources":["../../../src/components/DownloadCart/DownloadCartPage.tsx"],"sourcesContent":["import styles from './DownloadCartPage.module.scss'\nimport SynapseClient from '@/synapse-client'\nimport { useGetDownloadListStatistics } from '@/synapse-queries/download/useDownloadList'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { DeleteTwoTone } from '@mui/icons-material'\nimport { Button, Tooltip, Typography } from '@mui/material'\nimport {\n AvailableFilter,\n FilesStatisticsResponse,\n} from '@sage-bionetworks/synapse-types'\nimport { useEffect, useRef, useState } from 'react'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport FullWidthAlert from '../FullWidthAlert/FullWidthAlert'\nimport IconSvg from '../IconSvg/IconSvg'\nimport { ProgrammaticInstructionsModal } from '../ProgrammaticInstructionsModal/ProgrammaticInstructionsModal'\nimport AvailableForDownloadTable from './AvailableForDownloadTable'\nimport { CreatePackageV2 } from './CreatePackageV2'\nimport { PYTHON_CLIENT_IMPORT_AND_LOGIN } from './DirectProgrammaticDownload'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { DownloadIneligibleForPackagingFilesFromListButton } from './DownloadIneligibleForPackagingFilesFromListButton'\nimport {\n DownloadListActionsRequired,\n DownloadListActionsRequiredProps,\n} from './DownloadListActionsRequired'\nimport ComponentCollapse from '../ComponentCollapse'\n\nconst pythonDownloadCode = `${PYTHON_CLIENT_IMPORT_AND_LOGIN}\ndl_list_file_entities = syn.get_download_list()`\n\nconst cliDownloadCode = `synapse get-download-list`\n\nconst filterTabs: { label: string; filter: AvailableFilter }[] = [\n { label: 'All Files', filter: undefined },\n { label: 'Files included in ZIP', filter: 'eligibleForPackaging' },\n { label: 'Files not included in ZIP', filter: 'ineligibleForPackaging' },\n]\n\n/**\n * Show the Download Cart page.\n */\nexport function DownloadCartPage(props: DownloadListActionsRequiredProps) {\n const { accessToken } = useSynapseContext()\n const [selectedTabIndex, setSelectedTabIndex] = useState<number>(0)\n const [selectedFilterTabIndex, setSelectedFilterTabIndex] =\n useState<number>(0)\n const selectedFilter = filterTabs[selectedFilterTabIndex].filter\n const [isShowingCreatePackageUI, setIsShowingCreatePackageUI] =\n useState<boolean>(false)\n const createPackageRef = useRef<HTMLDivElement>(null)\n // scroll to the CreatePackageV2 component when it is shown so that the user is aware of the next steps after clicking the button to create a package\n useEffect(() => {\n if (isShowingCreatePackageUI) {\n createPackageRef.current?.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n })\n }\n }, [isShowingCreatePackageUI])\n const [isShowingModal, setIsShowingModal] = useState<boolean>(false)\n const [isShowingDownloadSuccessAlert, setIsShowingDownloadSuccessAlert] =\n useState(false)\n const [error, setError] = useState<Error>()\n const {\n data,\n isLoading,\n isError,\n error: newError,\n refetch,\n } = useGetDownloadListStatistics()\n useEffect(() => {\n if (isError && newError) {\n setError(newError)\n }\n }, [isError, newError])\n\n const getFilterCount = (\n data: FilesStatisticsResponse,\n filter: AvailableFilter,\n ) => {\n if (filter === undefined) return data.numberOfFilesAvailableForDownload\n if (filter === 'eligibleForPackaging')\n return data.numberOfFilesAvailableForDownloadAndEligibleForPackaging\n return (\n data.numberOfFilesAvailableForDownload -\n data.numberOfFilesAvailableForDownloadAndEligibleForPackaging\n )\n }\n // SWC-5874: When arriving at the download cart when there are no ARs, the user should start in the Download list\n useEffect(() => {\n if (data && data.numberOfFilesRequiringAction == 0) {\n setSelectedTabIndex(1)\n }\n // also hide the Create Package UI if there are no files available for download\n if (\n data &&\n data.numberOfFilesAvailableForDownloadAndEligibleForPackaging === 0\n ) {\n setIsShowingCreatePackageUI(false)\n }\n }, [data])\n\n if (error) {\n return <ErrorBanner error={error} />\n }\n const clearDownloadList = async () => {\n await SynapseClient.clearDownloadListV2(accessToken)\n refetch()\n }\n return (\n <div className={styles.DownloadCartPage}>\n <div>\n <div className={`${styles.pageHeader}`}>\n <div className=\"container\">\n <div className={styles.grid}>\n <h3 className=\"pageHeaderTitle\">Your Download List</h3>\n <Tooltip\n title=\"Immediately removes all items from your download list\"\n enterNextDelay={300}\n placement=\"right\"\n >\n <Button\n onClick={() => {\n clearDownloadList()\n }}\n variant=\"text\"\n color=\"primary\"\n startIcon={<DeleteTwoTone />}\n >\n Clear Your Download List\n </Button>\n </Tooltip>\n </div>\n </div>\n </div>\n </div>\n <div className={styles.tabsContainer}>\n <div className=\"container\">\n <ul className={styles.navTabs}>\n <li\n className={`${styles.navItem}${\n selectedTabIndex == 0 ? ` ${styles.active}` : ''\n }`}\n aria-selected={selectedTabIndex == 0}\n >\n <button onClick={() => setSelectedTabIndex(0)}>\n Access Actions Required\n {!isError && !isLoading && data && (\n <span className={styles.fileCount}>\n {data.totalNumberOfFiles -\n data.numberOfFilesAvailableForDownload}\n </span>\n )}\n </button>\n </li>\n <li\n className={`${styles.navItem}${\n selectedTabIndex == 1 ? ` ${styles.active}` : ''\n }`}\n aria-selected={selectedTabIndex == 1}\n >\n <button onClick={() => setSelectedTabIndex(1)}>\n Download List\n {!isError && !isLoading && data && (\n <span className={styles.fileCount}>\n {data.numberOfFilesAvailableForDownload}\n </span>\n )}\n </button>\n </li>\n </ul>\n </div>\n </div>\n\n <div\n className={\n /*\n The DownloadListActionsRequired component stores actions in local state to track which actions are completed.\n\n Mount the actions required component and hide it with style to ensure actions stored in component state are persisted as the user switches tabs\n */\n !(selectedTabIndex == 0 && !isError && !isLoading && data)\n ? styles.hidden\n : undefined\n }\n >\n {data?.numberOfFilesRequiringAction &&\n data.numberOfFilesRequiringAction > 0 && (\n // Unmount instead of hiding the DownloadListActionsRequired component when there are 0 actions required\n // The DownloadListActionsRequired cannot discern between a fulfilled action and an action that is no longer required because the\n // file was removed from the download cart.\n // In the typical case where the download cart is cleared, unmounting the component ensures that the actions are cleared out.\n <div>\n <div className=\"container\">\n <DownloadListActionsRequired {...props} />\n </div>\n </div>\n )}\n {data?.numberOfFilesRequiringAction === 0 && (\n <div className={styles.placeholder}>\n <div>No actions are currently required.</div>\n </div>\n )}\n </div>\n\n {selectedTabIndex == 1 && !isError && !isLoading && data && (\n <div>\n {data.numberOfFilesAvailableForDownload > 0 && (\n <div className={`container ${styles.DownloadListTabContent}`}>\n <h3 className={`${styles.sectionTitle} pageHeaderTitle`}>\n Bulk Download Options\n {data.sumOfFileSizesAvailableForDownload != null && (\n <Tooltip\n placement=\"right\"\n title={\n <>\n Total file size\n <br />\n Does not include files hosted outside Synapse\n </>\n }\n slotProps={{ tooltip: { sx: { maxWidth: 400 } } }}\n >\n <span className={styles.totalFileSize}>\n {calculateFriendlyFileSize(\n data.sumOfFileSizesAvailableForDownload,\n )}{' '}\n total*\n </span>\n </Tooltip>\n )}\n </h3>\n <div>\n <div className={styles.subSectionOverview}>\n <div className={styles.subSection}>\n <div className={styles.subSectionHeader}>\n <div className={styles.headline}>\n <Typography variant={'headline3'}>\n <IconSvg icon=\"packagableFile\" /> Web Download (.ZIP)\n </Typography>\n </div>\n <div className={styles.subSectionActions}>\n {data.numberOfFilesAvailableForDownloadAndEligibleForPackaging >\n 0 && (\n <Button\n variant=\"contained\"\n onClick={() => {\n setIsShowingCreatePackageUI(true)\n }}\n startIcon={<IconSvg icon=\"download\" wrap={false} />}\n >\n Download Packages\n </Button>\n )}\n {data.numberOfFilesAvailableForDownloadAndEligibleForPackaging ==\n 0 && (\n <Tooltip\n title=\"You cannot create a .zip package because there are no eligible files.\"\n enterNextDelay={300}\n placement=\"top\"\n >\n <span>\n <Button\n variant=\"contained\"\n disabled\n startIcon={\n <IconSvg icon=\"download\" wrap={false} />\n }\n >\n Download Packages\n </Button>\n </span>\n </Tooltip>\n )}\n </div>\n </div>\n <ComponentCollapse\n component={\n <Typography variant={'body1'} component={'div'}>\n Only some files may be eligible for packaging as ZIP.\n Use the Individual Downloads tab, below, to download\n non-packageable files. \n <a\n href=\"https://help.synapse.org/docs/Downloading-Data-From-the-Synapse-UI.2004254837.html\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n More Information.\n </a>\n </Typography>\n }\n collapseBoxSx={{\n backgroundColor: 'transparent',\n p: 0,\n mt: '15px',\n }}\n componentContainerSx={{\n backgroundColor: 'transparent',\n p: 0,\n }}\n iconSx={{ width: '25px', height: '25px' }}\n >\n <Typography\n variant={'body1'}\n component={'div'}\n sx={{ marginBottom: '15px' }}\n >\n <ul>\n <li>Files are bundled into .ZIPs up to 1 GB each.</li>\n <li>\n Larger selections are split into multiple packages.\n </li>\n <li>\n Includes only files stored in Synapse native\n storage.\n </li>\n <li>\n Each package contains a CSV manifest with file\n annotations and metadata.\n </li>\n </ul>\n </Typography>\n </ComponentCollapse>\n </div>\n <div className={styles.subSection}>\n <div className={styles.subSectionHeader}>\n <div className={styles.headline}>\n <Typography variant={'headline3'}>\n <IconSvg icon=\"code\" /> Programmatic Download\n </Typography>\n </div>\n <div className={styles.subSectionActions}>\n <Button\n variant=\"contained\"\n onClick={() => {\n setIsShowingModal(true)\n }}\n startIcon={<IconSvg icon=\"download\" wrap={false} />}\n >\n Get R / Python / CLI Code\n </Button>\n </div>\n </div>\n <ComponentCollapse\n component={\n <Typography variant={'body1'} component={'div'}>\n Use our Python, R, or command line clients to download\n files quickly. \n <a\n href=\"https://help.synapse.org/docs/Downloading-Data-Programmatically.2003796248.html\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n More Information.\n </a>\n </Typography>\n }\n collapseBoxSx={{\n backgroundColor: 'transparent',\n p: 0,\n mt: '15px',\n }}\n componentContainerSx={{\n backgroundColor: 'transparent',\n p: 0,\n }}\n iconSx={{ width: '25px', height: '25px' }}\n >\n <Typography\n variant={'body1'}\n component={'div'}\n sx={{ marginBottom: '15px' }}\n >\n <ul>\n <li>Requires a client (R, Python, or CLI).</li>\n <li>\n No limits on individual file size or total download\n size.\n </li>\n <li>\n Includes files stored both on and off Synapse native\n storage.\n </li>\n <li>\n Downloads include a CSV manifest with file\n annotations and metadata.\n </li>\n </ul>\n </Typography>\n </ComponentCollapse>\n </div>\n {data.numberOfFilesAvailableForDownloadAndEligibleForPackaging <\n data.numberOfFilesAvailableForDownload && (\n <div className={styles.subSection}>\n <div className={styles.subSectionHeader}>\n <div className={styles.headline}>\n <Typography variant={'headline3'}>\n <IconSvg icon=\"multiFile\" /> Multi-file Download\n </Typography>\n </div>\n <div className={styles.subSectionActions}>\n <div className={styles.ineligibleDownloadContainer}>\n <DownloadIneligibleForPackagingFilesFromListButton />\n </div>\n </div>\n </div>\n <ComponentCollapse\n component={\n <Typography variant={'body1'} component={'div'}>\n Files which <strong>aren't</strong> included in a\n ZIP package may be downloaded as a multi-file\n download. \n </Typography>\n }\n collapseBoxSx={{\n backgroundColor: 'transparent',\n p: 0,\n mt: '15px',\n }}\n componentContainerSx={{\n backgroundColor: 'transparent',\n p: 0,\n }}\n iconSx={{ width: '25px', height: '25px' }}\n >\n <Typography\n variant={'body1'}\n component={'div'}\n sx={{ marginBottom: '15px' }}\n >\n Clicking “Start Multi-file Download” initiates a\n download of all files in your Download List that can’t\n be bundled into a ZIP—such as large files or external\n links—in one step. Files are saved one by one with\n clear progress updates, automatic handling of\n duplicate names, and retry support if something fails.\n You can cancel anytime.\n <br />\n <br />\n Note: in some browsers, files download individually to\n your default Downloads folder instead of a selected\n location.\n </Typography>\n </ComponentCollapse>\n </div>\n )}\n </div>\n </div>\n\n <div>\n {isShowingCreatePackageUI && (\n <div ref={createPackageRef}>\n <CreatePackageV2\n onPackageCreation={() => {\n setIsShowingDownloadSuccessAlert(true)\n }}\n />\n </div>\n )}\n <h3 className={`${styles.sectionTitle} pageHeaderTitle`}>\n Download Individual Files\n </h3>\n <div className={styles.tabsContainer}>\n <ul className={styles.navTabs}>\n <li className={styles.navLabel}>View:</li>\n {filterTabs.map((tab, index) => (\n <li\n key={tab.label}\n className={`${styles.navItem}${\n selectedFilterTabIndex === index\n ? ` ${styles.active}`\n : ''\n }`}\n aria-selected={selectedFilterTabIndex === index}\n >\n <button\n onClick={() => setSelectedFilterTabIndex(index)}\n >\n {tab.label}\n {!isError && !isLoading && data && (\n <span className={styles.fileCount}>\n {getFilterCount(data, tab.filter)}\n </span>\n )}\n </button>\n </li>\n ))}\n </ul>\n </div>\n\n <div className={styles.availableForDownloadTableContainer}>\n <AvailableForDownloadTable\n key={selectedFilter ?? 'all'}\n filter={selectedFilter}\n />\n </div>\n </div>\n </div>\n )}\n {data.numberOfFilesAvailableForDownload === 0 && (\n <div className={styles.placeholder}>\n <Typography variant=\"body1Italic\">\n Your Download List is currently empty.\n </Typography>\n </div>\n )}\n </div>\n )}\n <FullWidthAlert\n show={isShowingDownloadSuccessAlert}\n variant=\"success\"\n title=\"Package Created\"\n description=\"A package has been created with eligible files. The items contained in this .zip file have been removed from your list. If your package is over 1GB, you will need to create multiple packages.\"\n autoCloseAfterDelayInSeconds={10}\n onClose={() => {\n setIsShowingDownloadSuccessAlert(false)\n }}\n />\n {isShowingModal && (\n <ProgrammaticInstructionsModal\n show={true}\n onClose={() => setIsShowingModal(false)}\n title=\"Download Programmatically\"\n pythonCode={pythonDownloadCode}\n cliCode={cliDownloadCode}\n // rCode={rDownloadCode}\n />\n )}\n </div>\n )\n}\n\nexport default DownloadCartPage\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DownloadCartPage.js","names":[],"sources":["../../../src/components/DownloadCart/DownloadCartPage.tsx"],"sourcesContent":["import styles from './DownloadCartPage.module.scss'\nimport SynapseClient from '@/synapse-client'\nimport { useGetDownloadListStatistics } from '@/synapse-queries/download/useDownloadList'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { DeleteTwoTone } from '@mui/icons-material'\nimport { Button, Tooltip, Typography } from '@mui/material'\nimport {\n AvailableFilter,\n FilesStatisticsResponse,\n} from '@sage-bionetworks/synapse-types'\nimport { useEffect, useRef, useState } from 'react'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport FullWidthAlert from '../FullWidthAlert/FullWidthAlert'\nimport IconSvg from '../IconSvg/IconSvg'\nimport { ProgrammaticInstructionsModal } from '../ProgrammaticInstructionsModal/ProgrammaticInstructionsModal'\nimport AvailableForDownloadTable from './AvailableForDownloadTable'\nimport { CreatePackageV2 } from './CreatePackageV2'\nimport { PYTHON_CLIENT_IMPORT_AND_LOGIN } from './DirectProgrammaticDownload'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { DownloadIneligibleForPackagingFilesFromListButton } from './DownloadIneligibleForPackagingFilesFromListButton'\nimport {\n DownloadListActionsRequired,\n DownloadListActionsRequiredProps,\n} from './DownloadListActionsRequired'\nimport ComponentCollapse from '../ComponentCollapse'\n\nconst pythonDownloadCode = `${PYTHON_CLIENT_IMPORT_AND_LOGIN}\ndl_list_file_entities = syn.get_download_list()`\n\nconst cliDownloadCode = `synapse get-download-list`\n\nconst filterTabs: { label: string; filter: AvailableFilter }[] = [\n { label: 'All Files', filter: undefined },\n { label: 'Files included in ZIP', filter: 'eligibleForPackaging' },\n { label: 'Files not included in ZIP', filter: 'ineligibleForPackaging' },\n]\n\n/**\n * Show the Download Cart page.\n */\nexport function DownloadCartPage(props: DownloadListActionsRequiredProps) {\n const { accessToken } = useSynapseContext()\n const [selectedTabIndex, setSelectedTabIndex] = useState<number>(0)\n const [selectedFilterTabIndex, setSelectedFilterTabIndex] =\n useState<number>(0)\n const selectedFilter = filterTabs[selectedFilterTabIndex].filter\n const [isShowingCreatePackageUI, setIsShowingCreatePackageUI] =\n useState<boolean>(false)\n const createPackageRef = useRef<HTMLDivElement>(null)\n // scroll to the CreatePackageV2 component when it is shown so that the user is aware of the next steps after clicking the button to create a package\n useEffect(() => {\n if (isShowingCreatePackageUI) {\n createPackageRef.current?.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n })\n }\n }, [isShowingCreatePackageUI])\n const [isShowingModal, setIsShowingModal] = useState<boolean>(false)\n const [isShowingDownloadSuccessAlert, setIsShowingDownloadSuccessAlert] =\n useState(false)\n const [error, setError] = useState<Error>()\n const {\n data,\n isLoading,\n isError,\n error: newError,\n refetch,\n } = useGetDownloadListStatistics()\n useEffect(() => {\n if (isError && newError) {\n setError(newError)\n }\n }, [isError, newError])\n\n const getFilterCount = (\n data: FilesStatisticsResponse,\n filter: AvailableFilter,\n ) => {\n if (filter === undefined) return data.numberOfFilesAvailableForDownload\n if (filter === 'eligibleForPackaging')\n return data.numberOfFilesAvailableForDownloadAndEligibleForPackaging\n return (\n data.numberOfFilesAvailableForDownload -\n data.numberOfFilesAvailableForDownloadAndEligibleForPackaging\n )\n }\n // SWC-5874: When arriving at the download cart when there are no ARs, the user should start in the Download list\n useEffect(() => {\n if (data && data.numberOfFilesRequiringAction == 0) {\n setSelectedTabIndex(1)\n }\n // also hide the Create Package UI if there are no files available for download\n if (\n data &&\n data.numberOfFilesAvailableForDownloadAndEligibleForPackaging === 0\n ) {\n setIsShowingCreatePackageUI(false)\n }\n }, [data])\n\n if (error) {\n return <ErrorBanner error={error} />\n }\n const clearDownloadList = async () => {\n await SynapseClient.clearDownloadListV2(accessToken)\n refetch()\n }\n return (\n <div className={styles.DownloadCartPage}>\n <div>\n <div className={`${styles.pageHeader}`}>\n <div className=\"container\">\n <div className={styles.grid}>\n <h3 className=\"pageHeaderTitle\">Your Download List</h3>\n <Tooltip\n title=\"Immediately removes all items from your download list\"\n enterNextDelay={300}\n placement=\"right\"\n >\n <Button\n onClick={() => {\n clearDownloadList()\n }}\n variant=\"text\"\n color=\"primary\"\n startIcon={<DeleteTwoTone />}\n >\n Clear Your Download List\n </Button>\n </Tooltip>\n </div>\n </div>\n </div>\n </div>\n <div className={styles.tabsContainer}>\n <div className=\"container\">\n <ul className={styles.navTabs}>\n <li\n className={`${styles.navItem}${\n selectedTabIndex == 0 ? ` ${styles.active}` : ''\n }`}\n aria-selected={selectedTabIndex == 0}\n >\n <button onClick={() => setSelectedTabIndex(0)}>\n Access Actions Required\n {!isError && !isLoading && data && (\n <span className={styles.fileCount}>\n {data.totalNumberOfFiles -\n data.numberOfFilesAvailableForDownload}\n </span>\n )}\n </button>\n </li>\n <li\n className={`${styles.navItem}${\n selectedTabIndex == 1 ? ` ${styles.active}` : ''\n }`}\n aria-selected={selectedTabIndex == 1}\n >\n <button onClick={() => setSelectedTabIndex(1)}>\n Download List\n {!isError && !isLoading && data && (\n <span className={styles.fileCount}>\n {data.numberOfFilesAvailableForDownload}\n </span>\n )}\n </button>\n </li>\n </ul>\n </div>\n </div>\n\n <div\n className={\n /*\n The DownloadListActionsRequired component stores actions in local state to track which actions are completed.\n\n Mount the actions required component and hide it with style to ensure actions stored in component state are persisted as the user switches tabs\n */\n !(selectedTabIndex == 0 && !isError && !isLoading && data)\n ? styles.hidden\n : undefined\n }\n >\n {data?.numberOfFilesRequiringAction &&\n data.numberOfFilesRequiringAction > 0 && (\n // Unmount instead of hiding the DownloadListActionsRequired component when there are 0 actions required\n // The DownloadListActionsRequired cannot discern between a fulfilled action and an action that is no longer required because the\n // file was removed from the download cart.\n // In the typical case where the download cart is cleared, unmounting the component ensures that the actions are cleared out.\n <div>\n <div className=\"container\">\n <DownloadListActionsRequired {...props} />\n </div>\n </div>\n )}\n {data?.numberOfFilesRequiringAction === 0 && (\n <div className={styles.placeholder}>\n <div>No actions are currently required.</div>\n </div>\n )}\n </div>\n\n {selectedTabIndex == 1 && !isError && !isLoading && data && (\n <div>\n {data.numberOfFilesAvailableForDownload > 0 && (\n <div className={`container ${styles.DownloadListTabContent}`}>\n <h3 className={`${styles.sectionTitle} pageHeaderTitle`}>\n Bulk Download Options\n {data.sumOfFileSizesAvailableForDownload != null && (\n <Tooltip\n placement=\"right\"\n title={\n <>\n Total file size\n <br />\n Does not include files hosted outside Synapse\n </>\n }\n slotProps={{ tooltip: { sx: { maxWidth: 400 } } }}\n >\n <span className={styles.totalFileSize}>\n {calculateFriendlyFileSize(\n data.sumOfFileSizesAvailableForDownload,\n )}{' '}\n total*\n </span>\n </Tooltip>\n )}\n </h3>\n <div>\n <div className={styles.subSectionOverview}>\n <div className={styles.subSection}>\n <div className={styles.subSectionHeader}>\n <div className={styles.headline}>\n <Typography variant={'headline3'}>\n <IconSvg icon=\"packagableFile\" /> Web Download (.ZIP)\n </Typography>\n </div>\n <div className={styles.subSectionActions}>\n {data.numberOfFilesAvailableForDownloadAndEligibleForPackaging >\n 0 && (\n <Button\n variant=\"contained\"\n onClick={() => {\n setIsShowingCreatePackageUI(true)\n }}\n startIcon={<IconSvg icon=\"download\" wrap={false} />}\n >\n Download Packages\n </Button>\n )}\n {data.numberOfFilesAvailableForDownloadAndEligibleForPackaging ==\n 0 && (\n <Tooltip\n title=\"You cannot create a .zip package because there are no eligible files.\"\n enterNextDelay={300}\n placement=\"top\"\n >\n <span>\n <Button\n variant=\"contained\"\n disabled\n startIcon={\n <IconSvg icon=\"download\" wrap={false} />\n }\n >\n Download Packages\n </Button>\n </span>\n </Tooltip>\n )}\n </div>\n </div>\n <ComponentCollapse\n component={\n <Typography variant={'body1'} component={'div'}>\n Only some files may be eligible for packaging as ZIP.\n Use the Individual Downloads tab, below, to download\n non-packageable files. \n <a\n href=\"https://help.synapse.org/docs/Downloading-Data-From-the-Synapse-UI.2004254837.html\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n More Information.\n </a>\n </Typography>\n }\n collapseBoxSx={{\n backgroundColor: 'transparent',\n p: 0,\n mt: '15px',\n }}\n componentContainerSx={{\n backgroundColor: 'transparent',\n p: 0,\n }}\n iconSx={{ width: '25px', height: '25px' }}\n >\n <Typography\n variant={'body1'}\n component={'div'}\n sx={{ marginBottom: '15px' }}\n >\n <ul>\n <li>Files are bundled into .ZIPs up to 1 GB each.</li>\n <li>\n Larger selections are split into multiple packages.\n </li>\n <li>\n Includes only files stored in Synapse native\n storage.\n </li>\n <li>\n Each package contains a CSV manifest with file\n annotations and metadata.\n </li>\n </ul>\n </Typography>\n </ComponentCollapse>\n </div>\n <div className={styles.subSection}>\n <div className={styles.subSectionHeader}>\n <div className={styles.headline}>\n <Typography variant={'headline3'}>\n <IconSvg icon=\"code\" /> Programmatic Download\n </Typography>\n </div>\n <div className={styles.subSectionActions}>\n <Button\n variant=\"contained\"\n onClick={() => {\n setIsShowingModal(true)\n }}\n startIcon={<IconSvg icon=\"download\" wrap={false} />}\n >\n Get R / Python / CLI Code\n </Button>\n </div>\n </div>\n <ComponentCollapse\n component={\n <Typography variant={'body1'} component={'div'}>\n Use our Python, R, or command line clients to download\n files quickly. \n <a\n href=\"https://help.synapse.org/docs/Downloading-Data-Programmatically.2003796248.html\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n More Information.\n </a>\n </Typography>\n }\n collapseBoxSx={{\n backgroundColor: 'transparent',\n p: 0,\n mt: '15px',\n }}\n componentContainerSx={{\n backgroundColor: 'transparent',\n p: 0,\n }}\n iconSx={{ width: '25px', height: '25px' }}\n >\n <Typography\n variant={'body1'}\n component={'div'}\n sx={{ marginBottom: '15px' }}\n >\n <ul>\n <li>Requires a client (R, Python, or CLI).</li>\n <li>\n No limits on individual file size or total download\n size.\n </li>\n <li>\n Includes files stored both on and off Synapse native\n storage.\n </li>\n <li>\n Downloads include a CSV manifest with file\n annotations and metadata.\n </li>\n </ul>\n </Typography>\n </ComponentCollapse>\n </div>\n {data.numberOfFilesAvailableForDownloadAndEligibleForPackaging <\n data.numberOfFilesAvailableForDownload && (\n <div className={styles.subSection}>\n <div className={styles.subSectionHeader}>\n <div className={styles.headline}>\n <Typography variant={'headline3'}>\n <IconSvg icon=\"multiFile\" /> Multi-file Download\n </Typography>\n </div>\n <div className={styles.subSectionActions}>\n <div className={styles.ineligibleDownloadContainer}>\n <DownloadIneligibleForPackagingFilesFromListButton />\n </div>\n </div>\n </div>\n <ComponentCollapse\n component={\n <Typography variant={'body1'} component={'div'}>\n Files which <strong>aren't</strong> included in a\n ZIP package may be downloaded as a multi-file\n download. \n </Typography>\n }\n collapseBoxSx={{\n backgroundColor: 'transparent',\n p: 0,\n mt: '15px',\n }}\n componentContainerSx={{\n backgroundColor: 'transparent',\n p: 0,\n }}\n iconSx={{ width: '25px', height: '25px' }}\n >\n <Typography\n variant={'body1'}\n component={'div'}\n sx={{ marginBottom: '15px' }}\n >\n Clicking “Start Multi-file Download” initiates a\n download of all files in your Download List that can’t\n be bundled into a ZIP—such as large files or external\n links—in one step. Files are saved one by one with\n clear progress updates, automatic handling of\n duplicate names, and retry support if something fails.\n You can cancel anytime.\n <br />\n <br />\n Note: in some browsers, files download individually to\n your default Downloads folder instead of a selected\n location.\n </Typography>\n </ComponentCollapse>\n </div>\n )}\n </div>\n </div>\n\n <div>\n {isShowingCreatePackageUI && (\n <div ref={createPackageRef}>\n <CreatePackageV2\n onPackageCreation={() => {\n setIsShowingDownloadSuccessAlert(true)\n }}\n />\n </div>\n )}\n <h3 className={`${styles.sectionTitle} pageHeaderTitle`}>\n Download Individual Files\n </h3>\n <div className={styles.tabsContainer}>\n <ul className={styles.navTabs}>\n <li className={styles.navLabel}>View:</li>\n {filterTabs.map((tab, index) => (\n <li\n key={tab.label}\n className={`${styles.navItem}${\n selectedFilterTabIndex === index\n ? ` ${styles.active}`\n : ''\n }`}\n aria-selected={selectedFilterTabIndex === index}\n >\n <button\n onClick={() => setSelectedFilterTabIndex(index)}\n >\n {tab.label}\n {!isError && !isLoading && data && (\n <span className={styles.fileCount}>\n {getFilterCount(data, tab.filter)}\n </span>\n )}\n </button>\n </li>\n ))}\n </ul>\n </div>\n\n <div className={styles.availableForDownloadTableContainer}>\n <AvailableForDownloadTable\n key={selectedFilter ?? 'all'}\n filter={selectedFilter}\n />\n </div>\n </div>\n </div>\n )}\n {data.numberOfFilesAvailableForDownload === 0 && (\n <div className={styles.placeholder}>\n <Typography variant=\"body1Italic\">\n Your Download List is currently empty.\n </Typography>\n </div>\n )}\n </div>\n )}\n <FullWidthAlert\n show={isShowingDownloadSuccessAlert}\n variant=\"success\"\n title=\"Package Created\"\n description=\"A package has been created with eligible files. The items contained in this .zip file have been removed from your list. If your package is over 1GB, you will need to create multiple packages.\"\n autoCloseAfterDelayInSeconds={10}\n onClose={() => {\n setIsShowingDownloadSuccessAlert(false)\n }}\n />\n {isShowingModal && (\n <ProgrammaticInstructionsModal\n show={true}\n onClose={() => setIsShowingModal(false)}\n title=\"Download Programmatically\"\n pythonCode={pythonDownloadCode}\n cliCode={cliDownloadCode}\n // rCode={rDownloadCode}\n />\n )}\n </div>\n )\n}\n\nexport default DownloadCartPage\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadDetails.js","names":[],"sources":["../../../src/components/DownloadCart/DownloadDetails.tsx"],"sourcesContent":["import { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { Box, Tooltip } from '@mui/material'\nimport pluralize from 'pluralize'\nimport IconSvg from '../IconSvg/IconSvg'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\n\nexport type DownloadDetailsProps = {\n numFiles: number\n numPackagableFiles: number\n numBytes: number\n}\n\nexport default function DownloadDetails(props: DownloadDetailsProps) {\n const { numFiles, numPackagableFiles, numBytes } = props\n const numIneligibleFiles = numFiles - numPackagableFiles\n const isInactive = numFiles === 0\n const iconClassName = isInactive ? 'SRC-inactive' : 'SRC-primary-text-color'\n return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'start ',\n gap: '25px',\n fontWeight: 'bold',\n svg: {\n mr: '5px',\n },\n }}\n >\n <span>\n {!isInactive && (\n <>\n {numFiles.toLocaleString()} {pluralize('File', numFiles)}\n </>\n )}\n </span>\n <span>\n <span className={iconClassName}>\n <IconSvg wrap={false} icon=\"packagableFile\" />\n </span>\n {!isInactive && (\n <>\n {numPackagableFiles.toLocaleString()}{' '}\n {pluralize('File', numPackagableFiles)} eligible for packaging\n </>\n )}\n </span>\n {numBytes > 0 && (\n <Tooltip\n title=\"This is the total size of all files in the Download List that are available to download.\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"top\"\n >\n <span className=\"item\">{calculateFriendlyFileSize(numBytes)}</span>\n </Tooltip>\n )}\n {numIneligibleFiles > 0 && (\n <span className=\"item\">\n <span className={`SRC-warning-color`}>\n <IconSvg icon=\"warningOutlined\" />\n </span>\n {!isInactive && (\n <>\n {numIneligibleFiles.toLocaleString()}{' '}\n {pluralize('File', numIneligibleFiles)} ineligible for packaging\n </>\n )}\n </span>\n )}\n </Box>\n )\n}\n"],"mappings":";;;;;;;AAYA,SAAwB,EAAgB,GAA6B;CACnE,IAAM,EAAE,aAAU,uBAAoB,gBAAa,GAC7C,IAAqB,IAAW,GAChC,IAAa,MAAa,GAC1B,IAAgB,IAAa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"DownloadDetails.js","names":[],"sources":["../../../src/components/DownloadCart/DownloadDetails.tsx"],"sourcesContent":["import { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { Box, Tooltip } from '@mui/material'\nimport pluralize from 'pluralize'\nimport IconSvg from '../IconSvg/IconSvg'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\n\nexport type DownloadDetailsProps = {\n numFiles: number\n numPackagableFiles: number\n numBytes: number\n}\n\nexport default function DownloadDetails(props: DownloadDetailsProps) {\n const { numFiles, numPackagableFiles, numBytes } = props\n const numIneligibleFiles = numFiles - numPackagableFiles\n const isInactive = numFiles === 0\n const iconClassName = isInactive ? 'SRC-inactive' : 'SRC-primary-text-color'\n return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'start ',\n gap: '25px',\n fontWeight: 'bold',\n svg: {\n mr: '5px',\n },\n }}\n >\n <span>\n {!isInactive && (\n <>\n {numFiles.toLocaleString()} {pluralize('File', numFiles)}\n </>\n )}\n </span>\n <span>\n <span className={iconClassName}>\n <IconSvg wrap={false} icon=\"packagableFile\" />\n </span>\n {!isInactive && (\n <>\n {numPackagableFiles.toLocaleString()}{' '}\n {pluralize('File', numPackagableFiles)} eligible for packaging\n </>\n )}\n </span>\n {numBytes > 0 && (\n <Tooltip\n title=\"This is the total size of all files in the Download List that are available to download.\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"top\"\n >\n <span className=\"item\">{calculateFriendlyFileSize(numBytes)}</span>\n </Tooltip>\n )}\n {numIneligibleFiles > 0 && (\n <span className=\"item\">\n <span className={`SRC-warning-color`}>\n <IconSvg icon=\"warningOutlined\" />\n </span>\n {!isInactive && (\n <>\n {numIneligibleFiles.toLocaleString()}{' '}\n {pluralize('File', numIneligibleFiles)} ineligible for packaging\n </>\n )}\n </span>\n )}\n </Box>\n )\n}\n"],"mappings":";;;;;;;AAYA,SAAwB,EAAgB,GAA6B;CACnE,IAAM,EAAE,aAAU,uBAAoB,gBAAa,GAC7C,IAAqB,IAAW,GAChC,IAAa,MAAa,GAC1B,IAAgB,IAAa,iBAAiB;CACpD,OACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,YAAY;GACZ,gBAAgB;GAChB,KAAK;GACL,YAAY;GACZ,KAAK,EACH,IAAI,MACN;EACF;YAVF;GAYE,kBAAC,QAAD,EAAA,UACG,CAAC,KACA,kBAAA,GAAA,EAAA,UAAA;IACG,EAAS,eAAe;IAAE;IAAE,EAAU,QAAQ,CAAQ;GACvD,EAAA,CAAA,EAEA,CAAA;GACN,kBAAC,QAAD,EAAA,UAAA,CACE,kBAAC,QAAD;IAAM,WAAW;cACf,kBAAC,GAAD;KAAS,MAAM;KAAO,MAAK;IAAkB,CAAA;GACzC,CAAA,GACL,CAAC,KACA,kBAAA,GAAA,EAAA,UAAA;IACG,EAAmB,eAAe;IAAG;IACrC,EAAU,QAAQ,CAAkB;IAAE;GACvC,EAAA,CAAA,CAEA,EAAA,CAAA;GACL,IAAW,KACV,kBAAC,GAAD;IACE,OAAM;IACN,gBAAA;IACA,WAAU;cAEV,kBAAC,QAAD;KAAM,WAAU;eAAQ,EAA0B,CAAQ;IAAQ,CAAA;GAC3D,CAAA;GAEV,IAAqB,KACpB,kBAAC,QAAD;IAAM,WAAU;cAAhB,CACE,kBAAC,QAAD;KAAM,WAAW;eACf,kBAAC,GAAD,EAAS,MAAK,kBAAmB,CAAA;IAC7B,CAAA,GACL,CAAC,KACA,kBAAA,GAAA,EAAA,UAAA;KACG,EAAmB,eAAe;KAAG;KACrC,EAAU,QAAQ,CAAkB;KAAE;IACvC,EAAA,CAAA,CAEA;;EAEL;;AAET"}
|