synapse-react-client 4.0.19 → 4.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SWC.index.d.ts +1 -1
- package/dist/SWC.index.js +1 -1
- package/dist/SWC.index.js.map +1 -1
- package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
- package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
- package/dist/assets/DefaultColorfulPortalCardBackground.js.map +1 -1
- package/dist/assets/GoogleIcon.js.map +1 -1
- package/dist/assets/GoogleIcon24.js.map +1 -1
- package/dist/assets/homepage/BlinkingLiveIcon.d.ts +1 -1
- package/dist/assets/homepage/BlinkingLiveIcon.js.map +1 -1
- package/dist/assets/homepage/aacr.js.map +1 -1
- package/dist/assets/homepage/cri.js.map +1 -1
- package/dist/assets/homepage/ctf.js.map +1 -1
- package/dist/assets/homepage/egress.js.map +1 -1
- package/dist/assets/homepage/facebook.js.map +1 -1
- package/dist/assets/homepage/fisma.js.map +1 -1
- package/dist/assets/homepage/gff.js.map +1 -1
- package/dist/assets/homepage/github.js.map +1 -1
- package/dist/assets/homepage/gray.js.map +1 -1
- package/dist/assets/homepage/hipaa-compliant.js.map +1 -1
- package/dist/assets/homepage/instagram.js.map +1 -1
- package/dist/assets/homepage/linkedin.js.map +1 -1
- package/dist/assets/homepage/ml-commons.js.map +1 -1
- package/dist/assets/homepage/nih-aging.js.map +1 -1
- package/dist/assets/homepage/nih-heart.js.map +1 -1
- package/dist/assets/homepage/nih-nci.js.map +1 -1
- package/dist/assets/homepage/nih-nimh.js.map +1 -1
- package/dist/assets/homepage/ntap.js.map +1 -1
- package/dist/assets/homepage/plan-item.js.map +1 -1
- package/dist/assets/homepage/powered-by-synapse-feature.js.map +1 -1
- package/dist/assets/homepage/precision-governance-feature.js.map +1 -1
- package/dist/assets/homepage/python.js.map +1 -1
- package/dist/assets/homepage/r.js.map +1 -1
- package/dist/assets/homepage/research-credit-feature.js.map +1 -1
- package/dist/assets/homepage/seamless-integration-feature.js.map +1 -1
- package/dist/assets/homepage/sloan.js.map +1 -1
- package/dist/assets/homepage/twitter.js.map +1 -1
- package/dist/assets/homepage/users.js.map +1 -1
- package/dist/assets/homepage/youtube.js.map +1 -1
- package/dist/assets/icons/AccessDataAnywhere.js.map +1 -1
- package/dist/assets/icons/AccessPending.js.map +1 -1
- package/dist/assets/icons/AccessPendingCloud.js.map +1 -1
- package/dist/assets/icons/AddAd.js.map +1 -1
- package/dist/assets/icons/AddToList.js.map +1 -1
- package/dist/assets/icons/Alert.js.map +1 -1
- package/dist/assets/icons/Arrow.js.map +1 -1
- package/dist/assets/icons/AwardScroll.js.map +1 -1
- package/dist/assets/icons/Baseline.js.map +1 -1
- package/dist/assets/icons/Cavatica.js.map +1 -1
- package/dist/assets/icons/CertifiedUser.js.map +1 -1
- package/dist/assets/icons/Challenge.js.map +1 -1
- package/dist/assets/icons/Checkbox/Checked.js.map +1 -1
- package/dist/assets/icons/Checkbox/Checked2.js.map +1 -1
- package/dist/assets/icons/Checkbox/Indeterminate.js.map +1 -1
- package/dist/assets/icons/Checkbox/Indeterminate2.js.map +1 -1
- package/dist/assets/icons/Checkbox/Unchecked.js.map +1 -1
- package/dist/assets/icons/Checkbox/Unchecked2.js.map +1 -1
- package/dist/assets/icons/ClappingHands.js.map +1 -1
- package/dist/assets/icons/CloudWarning.js.map +1 -1
- package/dist/assets/icons/CommunicateFindings.js.map +1 -1
- package/dist/assets/icons/CreateVersion.js.map +1 -1
- package/dist/assets/icons/DNA_Two.js.map +1 -1
- package/dist/assets/icons/Data2.js.map +1 -1
- package/dist/assets/icons/DoubleQuotes.js.map +1 -1
- package/dist/assets/icons/EmailAddressAdornment.js.map +1 -1
- package/dist/assets/icons/FileWithShield.js.map +1 -1
- package/dist/assets/icons/FileWithShield2.js.map +1 -1
- package/dist/assets/icons/FrontHand.js.map +1 -1
- package/dist/assets/icons/HandWithMoney.js.map +1 -1
- package/dist/assets/icons/IconCopy.js.map +1 -1
- package/dist/assets/icons/IconMinus.js.map +1 -1
- package/dist/assets/icons/IconPlus.js.map +1 -1
- package/dist/assets/icons/Java.js.map +1 -1
- package/dist/assets/icons/MintDoi.js.map +1 -1
- package/dist/assets/icons/MultiFile.js.map +1 -1
- package/dist/assets/icons/MultiFile2.js.map +1 -1
- package/dist/assets/icons/NoData.js.map +1 -1
- package/dist/assets/icons/NoSearchResults.js.map +1 -1
- package/dist/assets/icons/ORCIDIcon.js.map +1 -1
- package/dist/assets/icons/OpenBook.js.map +1 -1
- package/dist/assets/icons/Podium.js.map +1 -1
- package/dist/assets/icons/Python.js.map +1 -1
- package/dist/assets/icons/QueryStructuredData.js.map +1 -1
- package/dist/assets/icons/RLogo.js.map +1 -1
- package/dist/assets/icons/RecordProvenance.js.map +1 -1
- package/dist/assets/icons/RosetteRibbon.js.map +1 -1
- package/dist/assets/icons/SageFullLogo.js.map +1 -1
- package/dist/assets/icons/SearchImage.js.map +1 -1
- package/dist/assets/icons/ShareYourResearch.js.map +1 -1
- package/dist/assets/icons/Sort.js.map +1 -1
- package/dist/assets/icons/StarTrophy.js.map +1 -1
- package/dist/assets/icons/SynapseFullLogo.js.map +1 -1
- package/dist/assets/icons/SynapseIconWhite.js.map +1 -1
- package/dist/assets/icons/SynapseLogoName.js.map +1 -1
- package/dist/assets/icons/TasksIcon.js.map +1 -1
- package/dist/assets/icons/Terminal.js.map +1 -1
- package/dist/assets/icons/ThreeStars.js.map +1 -1
- package/dist/assets/icons/UnpackagableFile.js.map +1 -1
- package/dist/assets/icons/UnpackagableFile2.js.map +1 -1
- package/dist/assets/icons/ValidatedProfile.js.map +1 -1
- package/dist/assets/icons/account-certified.js.map +1 -1
- package/dist/assets/icons/account-enabled-mfa.js.map +1 -1
- package/dist/assets/icons/account-validated.js.map +1 -1
- package/dist/assets/icons/bioChemicalPhysical.js.map +1 -1
- package/dist/assets/icons/chart2.js.map +1 -1
- package/dist/assets/icons/columns.js.map +1 -1
- package/dist/assets/icons/columnsDarkTheme.js.map +1 -1
- package/dist/assets/icons/computationalTool.js.map +1 -1
- package/dist/assets/icons/dataReuse.js.map +1 -1
- package/dist/assets/icons/emailAddressAdornment2.js.map +1 -1
- package/dist/assets/icons/emailWithNotification.js.map +1 -1
- package/dist/assets/icons/error_page/maintenance.js.map +1 -1
- package/dist/assets/icons/error_page/no-access.js.map +1 -1
- package/dist/assets/icons/error_page/unavailable.js.map +1 -1
- package/dist/assets/icons/file.js.map +1 -1
- package/dist/assets/icons/inSilicoModel.js.map +1 -1
- package/dist/assets/icons/institution.js.map +1 -1
- package/dist/assets/icons/json-form-tool-no-submissions.js.map +1 -1
- package/dist/assets/icons/modelSystem.js.map +1 -1
- package/dist/assets/icons/mouse.js.map +1 -1
- package/dist/assets/icons/organizations.js.map +1 -1
- package/dist/assets/icons/person.js.map +1 -1
- package/dist/assets/icons/spatialProfiling.js.map +1 -1
- package/dist/assets/icons/standardDataModel.js.map +1 -1
- package/dist/assets/icons/study-active.js.map +1 -1
- package/dist/assets/icons/study-complete.js.map +1 -1
- package/dist/assets/icons/subscribe_plus.js.map +1 -1
- package/dist/assets/icons/synapse-logo.js.map +1 -1
- package/dist/assets/icons/terms/CheckIcon.js.map +1 -1
- package/dist/assets/icons/translational.js.map +1 -1
- package/dist/assets/icons/tree_horizontal.js.map +1 -1
- package/dist/assets/illustrations/acknowledgement_statements_illustration.js.map +1 -1
- package/dist/assets/illustrations/challenges_illustration.js.map +1 -1
- package/dist/assets/illustrations/cohort_builder_illustration.js.map +1 -1
- package/dist/assets/illustrations/data_access_management_illustration.js.map +1 -1
- package/dist/assets/illustrations/datasets_illustration.js.map +1 -1
- package/dist/assets/illustrations/diagonalLinePattern.js.map +1 -1
- package/dist/assets/illustrations/discussions_illustration.js.map +1 -1
- package/dist/assets/illustrations/docker_illustration.js.map +1 -1
- package/dist/assets/illustrations/donation_illustration.js.map +1 -1
- package/dist/assets/illustrations/favorites_illustration.js.map +1 -1
- package/dist/assets/illustrations/files_illustration.js.map +1 -1
- package/dist/assets/illustrations/following_illustration.js.map +1 -1
- package/dist/assets/illustrations/index.js.map +1 -1
- package/dist/assets/illustrations/left_dot_blob_dark_illustration.js.map +1 -1
- package/dist/assets/illustrations/left_dot_blob_illustration.js.map +1 -1
- package/dist/assets/illustrations/projects_illustration.js.map +1 -1
- package/dist/assets/illustrations/right_dot_blob_dark_illustration.js.map +1 -1
- package/dist/assets/illustrations/right_dot_blob_illustration.js.map +1 -1
- package/dist/assets/illustrations/tables_illustration.js.map +1 -1
- package/dist/assets/illustrations/teams_illustration.js.map +1 -1
- package/dist/assets/illustrations/trash_can_illustration.js.map +1 -1
- package/dist/assets/illustrations/underconstruction_illustration.js.map +1 -1
- package/dist/assets/illustrations/wikis_illustration.js.map +1 -1
- package/dist/assets/logos/other/ad-workbench-logo.js.map +1 -1
- package/dist/assets/logos/other/cavatica-logo.js.map +1 -1
- package/dist/assets/logos/other/pluto-logo.js.map +1 -1
- package/dist/assets/logos/other/terra-logo.js.map +1 -1
- package/dist/assets/mui_components/AccessManagement.js.map +1 -1
- package/dist/assets/mui_components/AccountCertified.js.map +1 -1
- package/dist/assets/mui_components/AccountRegistered.js.map +1 -1
- package/dist/assets/mui_components/AccountValidated.js.map +1 -1
- package/dist/assets/mui_components/ActionKey.js.map +1 -1
- package/dist/assets/mui_components/BioChemicalPhysical.js.map +1 -1
- package/dist/assets/mui_components/Chromatin.js.map +1 -1
- package/dist/assets/mui_components/Clinical.js.map +1 -1
- package/dist/assets/mui_components/ComputationalTool.js.map +1 -1
- package/dist/assets/mui_components/Data.js.map +1 -1
- package/dist/assets/mui_components/DataLocked.js.map +1 -1
- package/dist/assets/mui_components/DataReuse.js.map +1 -1
- package/dist/assets/mui_components/Dataset.js.map +1 -1
- package/dist/assets/mui_components/DatasetCollection.js.map +1 -1
- package/dist/assets/mui_components/Docker.js.map +1 -1
- package/dist/assets/mui_components/GeneExpression.js.map +1 -1
- package/dist/assets/mui_components/GeneVariants.js.map +1 -1
- package/dist/assets/mui_components/HelpChatBubble.js.map +1 -1
- package/dist/assets/mui_components/Imaging.js.map +1 -1
- package/dist/assets/mui_components/InSilicoModel.js.map +1 -1
- package/dist/assets/mui_components/Kinomics.js.map +1 -1
- package/dist/assets/mui_components/LineGraph.js.map +1 -1
- package/dist/assets/mui_components/ModelSystem.js.map +1 -1
- package/dist/assets/mui_components/Other.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile2.js.map +1 -1
- package/dist/assets/mui_components/Proteomics.js.map +1 -1
- package/dist/assets/mui_components/Rat.js.map +1 -1
- package/dist/assets/mui_components/SpatialProfiling.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition1.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition2.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition3.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition4.js.map +1 -1
- package/dist/assets/sustainability/dialPosition1.js.map +1 -1
- package/dist/assets/sustainability/dialPosition2.js.map +1 -1
- package/dist/assets/sustainability/dialPosition3.js.map +1 -1
- package/dist/assets/sustainability/dialPosition4.js.map +1 -1
- package/dist/assets/themed_icons/Active.js.map +1 -1
- package/dist/assets/themed_icons/Chart.js.map +1 -1
- package/dist/assets/themed_icons/Close.js.map +1 -1
- package/dist/assets/themed_icons/Collapse.js.map +1 -1
- package/dist/assets/themed_icons/Columns.js.map +1 -1
- package/dist/assets/themed_icons/ColumnsDark.js.map +1 -1
- package/dist/assets/themed_icons/Database.js.map +1 -1
- package/dist/assets/themed_icons/Download.js.map +1 -1
- package/dist/assets/themed_icons/Expand.js.map +1 -1
- package/dist/assets/themed_icons/Explore.js.map +1 -1
- package/dist/assets/themed_icons/ExternalLink.js.map +1 -1
- package/dist/assets/themed_icons/Filter.js.map +1 -1
- package/dist/assets/themed_icons/Program.js.map +1 -1
- package/dist/assets/themed_icons/Project.js.map +1 -1
- package/dist/assets/themed_icons/Publication.js.map +1 -1
- package/dist/assets/themed_icons/Search.js.map +1 -1
- package/dist/assets/themed_icons/Settings.js.map +1 -1
- package/dist/assets/themed_icons/SortDown.js.map +1 -1
- package/dist/assets/themed_icons/SortUp.js.map +1 -1
- package/dist/assets/themed_icons/SqlEditorIcon.js.map +1 -1
- package/dist/assets/themed_icons/Study.js.map +1 -1
- package/dist/assets/themed_icons/ToolClinical.js.map +1 -1
- package/dist/assets/themed_icons/ToolComputational.js.map +1 -1
- package/dist/assets/themed_icons/ToolExperimental.js.map +1 -1
- package/dist/assets/themed_icons/VerticalDots.js.map +1 -1
- package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js.map +1 -1
- package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
- package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js.map +1 -1
- package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +10 -11
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +73 -76
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/AuthenticatedRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/CertificationRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/LockAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/ValidationRequirement.js.map +1 -1
- package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
- package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
- package/dist/components/AccountLevelBadge/AccountLevelBadge.js.map +1 -1
- package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
- package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgement.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
- package/dist/components/AclEditor/AclEditorSkeleton.js.map +1 -1
- package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
- package/dist/components/AclEditor/ReadOnlyPermissionLevel.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js +2 -4
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessItem.js.map +1 -1
- package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
- package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
- package/dist/components/AdaptiveTwoColumnLayout/AdaptiveTwoColumnLayout.js.map +1 -1
- package/dist/components/AddToDownloadListV2.js.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
- package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
- package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
- package/dist/components/Authentication/LoginFlowBackButton.js.map +1 -1
- package/dist/components/Authentication/LoginForm.js.map +1 -1
- package/dist/components/Authentication/LoginMethod.js.map +1 -1
- package/dist/components/Authentication/LoginMethodButton.js.map +1 -1
- package/dist/components/Authentication/Logout.js.map +1 -1
- package/dist/components/Authentication/OneTimePasswordForm.js.map +1 -1
- package/dist/components/Authentication/PasswordField.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
- package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
- package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
- package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
- package/dist/components/Authentication/TOTPForm.js.map +1 -1
- package/dist/components/Authentication/TwoFactorAuthSettingsPanel.js.map +1 -1
- package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
- package/dist/components/Authentication/TwoFactorSecretDialog.js.map +1 -1
- package/dist/components/Authentication/UsernamePasswordForm.js.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/components/CTASectionWrapper/CTASectionWrapper.js.map +1 -1
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
- package/dist/components/CardContainer/CardContainer.js.map +1 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Desktop.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.js.map +1 -1
- package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
- package/dist/components/CardGridWithLinks/CardGridWithLinks.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationAnswer.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
- package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
- package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js.map +1 -1
- package/dist/components/ChallengeRegisterButton/ChallengeRegisterButton.js.map +1 -1
- package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
- package/dist/components/ChallengeSubmission/AddExternalRepo.js.map +1 -1
- package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +62 -64
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionCommitList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamSearch.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +96 -102
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/OpenMembershipInvitation.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/RegistrationSuccessful.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
- package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
- package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopover.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
- package/dist/components/CitationPopover/useCitation.js.map +1 -1
- package/dist/components/ColorGradient/ColorGradient.js.map +1 -1
- package/dist/components/ColoredBulletListItem/ColoredBulletListItem.js.map +1 -1
- package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
- package/dist/components/ComponentCollapse.js.map +1 -1
- package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiePreferencesDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.d.ts.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.js +9 -9
- package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
- package/dist/components/CopyToClipboardIcon.js.map +1 -1
- package/dist/components/CopyToClipboardInput/CopyToClipboardInput.js.map +1 -1
- package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizardUtils.js.map +1 -1
- package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
- package/dist/components/CreateProjectModal/ProjectVisibilityRadioGroup.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableTypeSelection.js.map +1 -1
- package/dist/components/CreateTableViewWizard/ViewTypeSelection.js.map +1 -1
- package/dist/components/CrispChat/CrispChat.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.js +28 -31
- package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
- package/dist/components/DataGrid/DataGrid.js +72 -72
- package/dist/components/DataGrid/DataGrid.js.map +1 -1
- package/dist/components/DataGrid/DataGridTypes.js.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.d.ts +2 -0
- package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.js +9 -10
- package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
- package/dist/components/DataGrid/StartGridSession.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts +3 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +219 -211
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/GridAutocompleteChip.js.map +1 -1
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
- package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js.map +1 -1
- package/dist/components/DataGrid/components/GridSessionSelectionField.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
- package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
- package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +2 -0
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
- package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridReplicaUsers.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
- package/dist/components/DataGrid/hooks/useRemoteSelections.js.map +1 -1
- package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
- package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts +2 -0
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js +12 -2
- package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
- package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
- package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
- package/dist/components/DataGrid/utils/MessageCounter.js.map +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/calculateColumnWidth.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
- package/dist/components/DataGrid/utils/convertActionToModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/createTestModel.js.map +1 -1
- package/dist/components/DataGrid/utils/enrichRowsWithChangeInfo.js.map +1 -1
- package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellAuthorSid.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
- package/dist/components/DataGrid/utils/getChangeTooltipText.js.map +1 -1
- package/dist/components/DataGrid/utils/getEmptyValue.js.map +1 -1
- package/dist/components/DataGrid/utils/getReplicaCategory.js.map +1 -1
- package/dist/components/DataGrid/utils/isValidationUpToDateForRow.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxMessage.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxNotification.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxRequest.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxRequestComplete.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxResponse.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
- package/dist/components/DataGrid/utils/logicalTimestampToString.js.map +1 -1
- package/dist/components/DataGrid/utils/mapOperationsToModelChanges.js.map +1 -1
- package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
- package/dist/components/DataGrid/utils/replicaSelectionToGridSelection.js.map +1 -1
- package/dist/components/DataGrid/utils/schemaAwarePasteValue.js.map +1 -1
- package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
- package/dist/components/DatasetJsonLdScript.js.map +1 -1
- package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
- package/dist/components/Dialog/ConfirmCloseWithoutSavingDialog.js.map +1 -1
- package/dist/components/DialogBase.js.map +1 -1
- package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
- package/dist/components/DirectDownload/FileEntityDirectDownload.js.map +1 -1
- package/dist/components/DirectDownloadButton.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
- package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
- package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
- package/dist/components/DownloadCart/DirectProgrammaticDownload.js.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
- package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListStats.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
- package/dist/components/DownloadCart/EnableTwoFaRequirementCard.js.map +1 -1
- package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
- package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
- package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
- package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
- package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
- package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
- package/dist/components/DynamicForm/DynamicForm.js.map +1 -1
- package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemCard.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemLayout.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
- package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
- package/dist/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditorModal.js.map +1 -1
- package/dist/components/EntityAclEditor/InheritanceMessage.js.map +1 -1
- package/dist/components/EntityAclEditor/OpenData.js.map +1 -1
- package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +68 -70
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js +32 -35
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
- package/dist/components/EntityFinder/Breadcrumbs.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinder.js +134 -136
- package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinderModal.js.map +1 -1
- package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
- package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
- package/dist/components/EntityFinder/details/EntityDetailsList.js +20 -20
- package/dist/components/EntityFinder/details/EntityDetailsList.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ReferenceDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/SearchDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.js +67 -67
- package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
- package/dist/components/EntityFinder/details/view/VersionColumnHeader.js +1 -1
- package/dist/components/EntityFinder/details/view/VersionColumnHeader.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/DateCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityBadgeIconsCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityFinderCheckboxCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityFinderVersionCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityNameCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityTypeCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityDirectDownloadCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/UserBadgeCell.js.map +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.js +80 -80
- package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
- package/dist/components/EntityFinder/tree/VirtualizedTree.js +31 -31
- package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
- package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
- package/dist/components/EntityForm/EntityForm.js.map +1 -1
- package/dist/components/EntityHeaderTable/DebouncedInput.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTableCellRenderers.js.map +1 -1
- package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
- package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
- package/dist/components/EntityIcon.js.map +1 -1
- package/dist/components/EntityLink.js.map +1 -1
- package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
- package/dist/components/EntityTreeTable/EntityTreeTable.js.map +1 -1
- package/dist/components/EntityTreeTable/components/AutoLoadMore.js.map +1 -1
- package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityBadgeIconsCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableContext.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableRow.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
- package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
- package/dist/components/EntityUpload/EntityUploadModal.js +29 -31
- package/dist/components/EntityUpload/EntityUploadModal.js.map +1 -1
- package/dist/components/EntityUpload/EntityUploadPromptDialog.js.map +1 -1
- package/dist/components/EntityUpload/ExternalObjectStoreCredentialsForm.js.map +1 -1
- package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
- package/dist/components/EntityUpload/LinkToURL.js.map +1 -1
- package/dist/components/EntityUpload/ProjectStorageLimitAlert.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewScopeEditor.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewScopeEditorModal.js.map +1 -1
- package/dist/components/Evaluation/CreatedOnByUserDiv.js.map +1 -1
- package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -1
- package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditorPage.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditorDropdown.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditorList.js.map +1 -1
- package/dist/components/Evaluation/input_models/models.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
- package/dist/components/EvaluationFinder/EvaluationFinder.js.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.d.ts.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js +24 -30
- package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
- package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataPlots.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
- package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
- package/dist/components/FeaturedResearch/FeaturedResearch.js +16 -18
- package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolCard.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
- package/dist/components/FilePreview/EntityPreview.js.map +1 -1
- package/dist/components/FilePreview/FileEntityPreview.js.map +1 -1
- package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
- package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
- package/dist/components/FilePreview/PdfPreview.js.map +1 -1
- package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
- package/dist/components/FilePreview/PreviewUtils.js.map +1 -1
- package/dist/components/FileUpload/FileUpload.js.map +1 -1
- package/dist/components/Forum/DiscussionReply.js.map +1 -1
- package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
- package/dist/components/Forum/DiscussionThread.js.map +1 -1
- package/dist/components/Forum/ForumPage.js.map +1 -1
- package/dist/components/Forum/ForumTable.js.map +1 -1
- package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
- package/dist/components/Forum/SubscribersModal.js.map +1 -1
- package/dist/components/ForumSearch/ForumSearch.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearch.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
- package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
- package/dist/components/GenericCard/BioregistryRules.js.map +1 -1
- package/dist/components/GenericCard/CardUtils.js.map +1 -1
- package/dist/components/GenericCard/CollapsibleDescription.js.map +1 -1
- package/dist/components/GenericCard/CroissantButton/CroissantButton.js.map +1 -1
- package/dist/components/GenericCard/GenericCard.js.map +1 -1
- package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
- package/dist/components/GenericCard/GenericCardIcon.js.map +1 -1
- package/dist/components/GenericCard/GenericCardTitle.js.map +1 -1
- package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -1
- package/dist/components/GenericCard/Linkify.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/GenericCard/useResolvedSynapseEntity.js.map +1 -1
- package/dist/components/Goals/Goals.Desktop.js.map +1 -1
- package/dist/components/Goals/Goals.Mobile.js.map +1 -1
- package/dist/components/Goals/Goals.js +25 -27
- package/dist/components/Goals/Goals.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.js +14 -16
- package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Desktop.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.js +14 -16
- package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
- package/dist/components/GoogleAnalytics/GoogleAnalytics.js.map +1 -1
- package/dist/components/GoogleMap/GoogleMap.js.map +1 -1
- package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
- package/dist/components/HasAccess/AccessIcon.js +10 -10
- package/dist/components/HasAccess/AccessIcon.js.map +1 -1
- package/dist/components/HasAccess/HasAccessV2.js.map +1 -1
- package/dist/components/HasAccess/useHasAccess.js.map +1 -1
- package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
- package/dist/components/HeaderCard.js.map +1 -1
- package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
- package/dist/components/HexGrid/HexGrid.js.map +1 -1
- package/dist/components/IDUReport/IDUReport.js.map +1 -1
- package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
- package/dist/components/Icon/Icon.js.map +1 -1
- package/dist/components/IconList.js.map +1 -1
- package/dist/components/IconSvg/IconSvg.js.map +1 -1
- package/dist/components/IconSvgButton.js.map +1 -1
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js +7 -9
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
- package/dist/components/ImageFromSynapseTable.js.map +1 -1
- package/dist/components/InteractiveCopyIdsIcon.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditorModal.js.map +1 -1
- package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
- package/dist/components/JsonLdScript.js.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTitleTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/DescriptionFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ErrorListTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldDescriptionTable.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldErrorTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/BooleanWidget.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/DateTimeWidget.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
- package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
- package/dist/components/Markdown/GovernanceMarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
- package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.js +75 -106
- package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.d.ts +14 -4
- package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.js +38 -37
- package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
- package/dist/components/Markdown/MarkdownWidget.js.map +1 -1
- package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
- package/dist/components/Markdown/UserMentionModal.js.map +1 -1
- package/dist/components/Markdown/widget/Bookmarks.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownEntityPreview.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownIDUReport.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapseImage.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapseTable.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownTableOfContents.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownUserOrTeamBadge.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownVideo.js.map +1 -1
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.FormSchema.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
- package/dist/components/MuiContainer.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
- package/dist/components/OAuthClientManagement/CreateOAuthClient.js.map +1 -1
- package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
- package/dist/components/OrientationBanner/OrientationBanner.js.map +1 -1
- package/dist/components/PageProgress/PageProgress.js.map +1 -1
- package/dist/components/Plot/BarPlot.js.map +1 -1
- package/dist/components/Plot/DotPlot.js.map +1 -1
- package/dist/components/Plot/Plot.d.ts +12 -1
- package/dist/components/Plot/Plot.d.ts.map +1 -1
- package/dist/components/Plot/Plot.js +5 -1
- package/dist/components/Plot/Plot.js.map +1 -1
- package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
- package/dist/components/Plot/SynapsePlot.js.map +1 -1
- package/dist/components/Plot/SynapseSankeyPlot.d.ts +12 -0
- package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -0
- package/dist/components/Plot/SynapseSankeyPlot.js +54 -0
- package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -0
- package/dist/components/Plot/ThemesPlot.js.map +1 -1
- package/dist/components/Plot/UpsetPlot.js.map +1 -1
- package/dist/components/Plot/index.d.ts +3 -1
- package/dist/components/Plot/index.d.ts.map +1 -1
- package/dist/components/Plot/index.js +2 -1
- package/dist/components/Plot/safe-react-plotly-factory.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditorModal.js.map +1 -1
- package/dist/components/PortalFeatureHighlights/PortalFeatureHighlights.js.map +1 -1
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js +4 -6
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
- package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
- package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
- package/dist/components/PortalList/PortalCard.js.map +1 -1
- package/dist/components/PortalList/PortalList.js.map +1 -1
- package/dist/components/PortalSectionHeader/PortalSectionHeader.js.map +1 -1
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js +69 -69
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
- package/dist/components/Programs/Programs.Desktop.js.map +1 -1
- package/dist/components/Programs/Programs.Mobile.js.map +1 -1
- package/dist/components/Programs/Programs.js.map +1 -1
- package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
- package/dist/components/ProvenanceGraph/ActivityNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/EntityNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/EntityPlaceholderNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ExpandGraphNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ExternalGraphNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceEntityIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js +13 -13
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/UndefinedNodeLabel.js.map +1 -1
- package/dist/components/QueryContext/QueryContext.js.map +1 -1
- package/dist/components/QueryCount/QueryCount.js.map +1 -1
- package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
- package/dist/components/QuerySortSelector.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/NoContentPlaceholder.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationContext.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapper.js +27 -27
- package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapperLoadingScreen.js.map +1 -1
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
- package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
- package/dist/components/QueryWrapper/ViewMoreQueryResultsButton.js.map +1 -1
- package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
- package/dist/components/QueryWrapper/useComputeRowSelectionPrimaryKey.js.map +1 -1
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
- package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
- package/dist/components/QueryWrapper/useHasFacetedSelectColumn.js.map +1 -1
- package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
- package/dist/components/RORInstitutionField/RORInstitutionField.js.map +1 -1
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js +6 -8
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
- package/dist/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCard.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardMedium.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
- package/dist/components/RenderIfInView/RenderIfInView.js.map +1 -1
- package/dist/components/ResizableContainer/ResizableContainer.js.map +1 -1
- package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
- package/dist/components/Resources/Resources.Desktop.js.map +1 -1
- package/dist/components/Resources/Resources.Mobile.js.map +1 -1
- package/dist/components/Resources/Resources.js +8 -11
- package/dist/components/Resources/Resources.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
- package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
- package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/SynapseAnnotationsWrapIfAdditionalTemplate.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/widget/TextWidget.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessRequirementTextInstructions.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
- package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
- package/dist/components/ShowMore/ShowMore.js.map +1 -1
- package/dist/components/SignInButton.js.map +1 -1
- package/dist/components/SignInRequiredModal/SignInRequiredModal.js.map +1 -1
- package/dist/components/Skeleton/SkeletonButton.js.map +1 -1
- package/dist/components/Skeleton/SkeletonInlineBlock.js.map +1 -1
- package/dist/components/Skeleton/SkeletonParagraph.js.map +1 -1
- package/dist/components/Skeleton/SkeletonTable.js.map +1 -1
- package/dist/components/SmartLink/SmartButton.js.map +1 -1
- package/dist/components/SmartLink/SmartLink.js.map +1 -1
- package/dist/components/SmartLink/useSmartLink.js.map +1 -1
- package/dist/components/SourceAppImage.js.map +1 -1
- package/dist/components/SpinnerButton/SpinnerButton.js.map +1 -1
- package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditor.js.map +1 -1
- package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.js.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
- package/dist/components/StatisticsPlot.js.map +1 -1
- package/dist/components/StepperDialog/StepperDialog.js.map +1 -1
- package/dist/components/StorybookComponentWrapper.js.map +1 -1
- package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.js.map +1 -1
- package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.js.map +1 -1
- package/dist/components/SubscriptionPage/ForumTopic.js.map +1 -1
- package/dist/components/SubscriptionPage/SubscriptionItem.js.map +1 -1
- package/dist/components/SubscriptionPage/SubscriptionPage.js.map +1 -1
- package/dist/components/SubscriptionPage/ThreadTopic.js.map +1 -1
- package/dist/components/SubscriptionPage/Topic.js.map +1 -1
- package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
- package/dist/components/SustainabilityScorecard/Dial.js.map +1 -1
- package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardUtils.js.map +1 -1
- package/dist/components/SynapseChat/AccessLevelMenu.js.map +1 -1
- package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatDialog.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
- package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
- package/dist/components/SynapseChat/useChatState.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseLinksColumn.js.map +1 -1
- package/dist/components/SynapseForm/DataDebug.js.map +1 -1
- package/dist/components/SynapseForm/Header.js.map +1 -1
- package/dist/components/SynapseForm/NavButtons.js.map +1 -1
- package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
- package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
- package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormCheckboxWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormCheckboxesWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormRadioWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormSubmissionGrid.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormUtils.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
- package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
- package/dist/components/SynapseForm/types.js.map +1 -1
- package/dist/components/SynapseForm/useGetFormPropsFromSearchParams.js.map +1 -1
- package/dist/components/SynapseHomepageV2/FloatingBlobsBackground.js.map +1 -1
- package/dist/components/SynapseHomepageV2/HomepageStyles.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbers.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasets.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatures.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +18 -21
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageV2.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHotdrops.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHotdropsItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInAction.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlan.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlanContent.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlansPage.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +78 -78
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HasAccessChip.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageRouter.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/chipStyles.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControlButton.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControlPanel.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControls.js.map +1 -1
- package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
- package/dist/components/SynapseTable/ExpandCollapseButton.js.map +1 -1
- package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
- package/dist/components/SynapseTable/NoContentAvailable.js.map +1 -1
- package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
- package/dist/components/SynapseTable/SearchResultsNotFound.js.map +1 -1
- package/dist/components/SynapseTable/SearchV2.js.map +1 -1
- package/dist/components/SynapseTable/SqlEditor.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/EntityIdList.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/EvaluationIdRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/ComplexJSONRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONArrayRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONObjectRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONPrimitiveRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONRendererUtils.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONTableCellRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/UserIdList.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableConstants.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableContext.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
- package/dist/components/SynapseTable/TableIsEmpty.js.map +1 -1
- package/dist/components/SynapseTable/TablePagination.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorCheckboxCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorUtils.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +131 -133
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/components/SynapseTable/datasets/EntityFetchErrorCell.js.map +1 -1
- package/dist/components/SynapseTable/export/ADDiscoveryPortalInstructions.js.map +1 -1
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +48 -51
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformDisclaimer.js.map +1 -1
- package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadLoginModal.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
- package/dist/components/SynapseTable/useTableSort.js.map +1 -1
- package/dist/components/SystemUseNotification/SystemUseNotification.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +4 -4
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +9 -9
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DefaultValueValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EnumValuesValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js.map +1 -1
- package/dist/components/TableFeedCards/TableFeedCards.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/TableBody.js.map +1 -1
- package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
- package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
- package/dist/components/TeamBadge.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
- package/dist/components/TemplateComponent.js.map +1 -1
- package/dist/components/TemporaryBanner/TemporaryBanner.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditionsItem.js.map +1 -1
- package/dist/components/TextField/TextField.js.map +1 -1
- package/dist/components/TextField/TextFieldWithWordLimit.js.map +1 -1
- package/dist/components/TextToComponentCollapse.js.map +1 -1
- package/dist/components/ThemeGallery/ThemeGallery.js.map +1 -1
- package/dist/components/TimelinePlot/TimelineLegendItem.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
- package/dist/components/TimelinePlot/phasesQueryResponseData.js.map +1 -1
- package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
- package/dist/components/TotalQueryResults.js.map +1 -1
- package/dist/components/UserCard/Avatar.js.map +1 -1
- package/dist/components/UserCard/UserBadge.js.map +1 -1
- package/dist/components/UserCard/UserCard.js.map +1 -1
- package/dist/components/UserCard/UserCardContextMenu.js.map +1 -1
- package/dist/components/UserCard/UserCardLarge.js.map +1 -1
- package/dist/components/UserCard/UserCardMedium.js.map +1 -1
- package/dist/components/UserCardList/UserCardList.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.js.map +1 -1
- package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
- package/dist/components/UserOrTeamBadge/UserOrTeamBadge.js.map +1 -1
- package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
- package/dist/components/UserProfileLinks/UserChallenges.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProfileLinks.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
- package/dist/components/UserProfileLinks/UserTeams.js.map +1 -1
- package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
- package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
- package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
- package/dist/components/Webhook/WebhookVerificationDialog.js.map +1 -1
- package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
- package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButton.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButtonDescription.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButtonGroup.js.map +1 -1
- package/dist/components/WordPress/WordPressLatestPostChip.js.map +1 -1
- package/dist/components/WordPress/useWordPressCategories.js.map +1 -1
- package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
- package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
- package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementSearchBox/AccessRequirementSearchBox.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
- package/dist/components/dataaccess/RejectDataAccessRequestModal.js.map +1 -1
- package/dist/components/dataaccess/RejectProfileValidationRequestModal.js.map +1 -1
- package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
- package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/SubmissionSortStateTranslator.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
- package/dist/components/doi/DoiFormSchemas.js.map +1 -1
- package/dist/components/doi/PrivateEntityDoiWarning.js.map +1 -1
- package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUI.js +30 -32
- package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
- package/dist/components/download_list/DownloadDetails.js.map +1 -1
- package/dist/components/download_list/index.js.map +1 -1
- package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
- package/dist/components/entity/metadata/EntityAnnotationKey.js.map +1 -1
- package/dist/components/entity/metadata/EntityModal.js.map +1 -1
- package/dist/components/entity/metadata/MetadataTable.js.map +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
- package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
- package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
- package/dist/components/entity/page/title_bar/CitationsDialog.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js.map +1 -1
- package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
- package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
- package/dist/components/error/ErrorBanner.js.map +1 -1
- package/dist/components/error/ErrorChip.js.map +1 -1
- package/dist/components/error/ErrorPage.js +24 -24
- package/dist/components/error/ErrorPage.js.map +1 -1
- package/dist/components/error/RouteErrorBoundary.js.map +1 -1
- package/dist/components/error/SendMessageToEntityOwnerDialog.js.map +1 -1
- package/dist/components/error/SynapseObjectDOIInfo.js.map +1 -1
- package/dist/components/favorites/FavoriteButton.js.map +1 -1
- package/dist/components/favorites/FavoritesPage.js.map +1 -1
- package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
- package/dist/components/file/upload/MultiFileUploadProgress.js.map +1 -1
- package/dist/components/file/upload/UploadFilePanel.js.map +1 -1
- package/dist/components/form/RadioGroupWithOtherString.js.map +1 -1
- package/dist/components/home_page/ExpandableContent.js.map +1 -1
- package/dist/components/index.js +48 -47
- package/dist/components/layout/InfiniteTableLayout.js.map +1 -1
- package/dist/components/layout/SWCHeader.js.map +1 -1
- package/dist/components/layout/SWCPageLayout.js.map +1 -1
- package/dist/components/menu/ComplexMenu.js.map +1 -1
- package/dist/components/menu/DropdownMenu.js.map +1 -1
- package/dist/components/row_renderers/Dataset.js.map +1 -1
- package/dist/components/row_renderers/Funder.js.map +1 -1
- package/dist/components/row_renderers/ObservationCard.js.map +1 -1
- package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
- package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
- package/dist/components/styled/HoverPopover.js.map +1 -1
- package/dist/components/styled/InlineBadge.js.map +1 -1
- package/dist/components/styled/InputSizedButton.js.map +1 -1
- package/dist/components/styled/LargeButton.js.map +1 -1
- package/dist/components/styled/LeftRightPanel.js.map +1 -1
- package/dist/components/styled/LightTooltip.js.map +1 -1
- package/dist/components/styled/StyledFormControl.js.map +1 -1
- package/dist/components/styled/StyledPopover.js.map +1 -1
- package/dist/components/styled/StyledTableContainer.js.map +1 -1
- package/dist/components/styled/WideButton.js.map +1 -1
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +39 -42
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -1
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -1
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js +11 -11
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -1
- package/dist/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm.js.map +1 -1
- package/dist/components/trash/TrashCanList.js.map +1 -1
- package/dist/components/utils/Blocker.js.map +1 -1
- package/dist/components/utils/ConditionalWrapper.js.map +1 -1
- package/dist/components/utils/VisibilityObserver.js.map +1 -1
- package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
- package/dist/components/widgets/EntityColumnImage.js.map +1 -1
- package/dist/components/widgets/FileHandleLink.js.map +1 -1
- package/dist/components/widgets/ImageFileHandle.js.map +1 -1
- package/dist/components/widgets/LoginAwareButton.js.map +1 -1
- package/dist/components/widgets/Range.js.map +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/components/widgets/SynapseImage.js.map +1 -1
- package/dist/components/widgets/SynapseVideo.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainerSkeleton.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPill.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
- package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
- package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetChip.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterHeader.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterSkeleton.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.js +3 -3
- package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +41 -41
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
- package/dist/features/curator/GridPage/GridPage.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageRouter.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
- package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
- package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
- package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
- package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
- package/dist/features/curator/dashboard/components/UserOrTeamChip.js.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +5 -0
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +227 -181
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +3 -0
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.d.ts +5 -0
- package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.js +2 -2
- package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getLatestGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/taskHasAssignee.js.map +1 -1
- package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
- package/dist/index.js +54 -53
- package/dist/index.js.map +1 -1
- package/dist/mocks/MockAccessApprovals.js.map +1 -1
- package/dist/mocks/MockSynapseContext.js.map +1 -1
- package/dist/mocks/accessRequirement/mockAccessRequirementAcls.js.map +1 -1
- package/dist/mocks/accessRequirement/mockAccessRequirements.js.map +1 -1
- package/dist/mocks/applicationSessionContext/MockApplicationSessionContext.js.map +1 -1
- package/dist/mocks/challenge/mockChallenge.js.map +1 -1
- package/dist/mocks/chat/mockChat.js.map +1 -1
- package/dist/mocks/curation/mockCurationTask.js.map +1 -1
- package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
- package/dist/mocks/dataaccess/MockResearchProject.js.map +1 -1
- package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
- package/dist/mocks/dataaccess/mockAccessRequest.js.map +1 -1
- package/dist/mocks/discussion/mock_discussion.js.map +1 -1
- package/dist/mocks/doi/MockDoi.js.map +1 -1
- package/dist/mocks/entity/index.js.map +1 -1
- package/dist/mocks/entity/mockDataset.js.map +1 -1
- package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
- package/dist/mocks/entity/mockEntity.js.map +1 -1
- package/dist/mocks/entity/mockEvaluationQueue.js.map +1 -1
- package/dist/mocks/entity/mockFileEntity.js.map +1 -1
- package/dist/mocks/entity/mockFileEntityACLVariants.js.map +1 -1
- package/dist/mocks/entity/mockFileView.js.map +1 -1
- package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
- package/dist/mocks/entity/mockProject.js.map +1 -1
- package/dist/mocks/entity/mockProjectView.js.map +1 -1
- package/dist/mocks/entity/mockReleaseCardsTable.js.map +1 -1
- package/dist/mocks/entity/mockRootEntity.js.map +1 -1
- package/dist/mocks/entity/mockTableEntity.js.map +1 -1
- package/dist/mocks/faker/fakerUtils.js.map +1 -1
- package/dist/mocks/faker/generateDiscussion.js.map +1 -1
- package/dist/mocks/faker/generateEvaluation.js.map +1 -1
- package/dist/mocks/faker/generateFakeEntity.js.map +1 -1
- package/dist/mocks/faker/generateSubscription.js.map +1 -1
- package/dist/mocks/mockAnnotationColumns.js.map +1 -1
- package/dist/mocks/mockCertificationQuiz.js.map +1 -1
- package/dist/mocks/mockDataCatalogQuery.js.map +1 -1
- package/dist/mocks/mockFileViewQuery.js.map +1 -1
- package/dist/mocks/mockOAuthClientAcls.js.map +1 -1
- package/dist/mocks/mockQueryResponseData.js.map +1 -1
- package/dist/mocks/mockQueryResponseDataWithManyEnumFacets.js.map +1 -1
- package/dist/mocks/mockSchema.js.map +1 -1
- package/dist/mocks/mockSearchQueryData.js.map +1 -1
- package/dist/mocks/mockShortIo.js.map +1 -1
- package/dist/mocks/mockSourceAppConfigQuery.js.map +1 -1
- package/dist/mocks/mockSubscription.js.map +1 -1
- package/dist/mocks/mockWiki.js.map +1 -1
- package/dist/mocks/mockWikiPageKey.js.map +1 -1
- package/dist/mocks/mock_drug_tool_data.js.map +1 -1
- package/dist/mocks/mock_file_handle.js.map +1 -1
- package/dist/mocks/mock_file_statistics.js.map +1 -1
- package/dist/mocks/mock_has_access_data.js.map +1 -1
- package/dist/mocks/mock_upload_destination.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementAclHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/dataciteHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/doiHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/evaluationHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/messageHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/oauthClientAclHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/projectStorageHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/realmHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/researchProjectHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/shortIoHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryService.js.map +1 -1
- package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/termsOfServiceHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/webhookHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers.js.map +1 -1
- package/dist/mocks/msw/server.d.ts +1 -1
- package/dist/mocks/msw/server.d.ts.map +1 -1
- package/dist/mocks/msw/server.js.map +1 -1
- package/dist/mocks/msw/util/BasicMockedCrudService.js.map +1 -1
- package/dist/mocks/oauth/MockClient.js.map +1 -1
- package/dist/mocks/personalAccessToken/mockPersonalAccessToken.js.map +1 -1
- package/dist/mocks/projectStorage/mockProjectStorageLimits.js.map +1 -1
- package/dist/mocks/provenance/mockActivity.js.map +1 -1
- package/dist/mocks/query/defaultFileViewColumnModels.js.map +1 -1
- package/dist/mocks/query/mockFeaturedDataTabsQueryData.js.map +1 -1
- package/dist/mocks/query/mockHomepageQueryResultData.js.map +1 -1
- package/dist/mocks/query/mockProjectViewQueryResults.js.map +1 -1
- package/dist/mocks/query/mockRejectionReasonsTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mockUserCardTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mock_query_data.js.map +1 -1
- package/dist/mocks/query/syn16787123.js.map +1 -1
- package/dist/mocks/query/syn17328596.js.map +1 -1
- package/dist/mocks/query/syn51735464.js.map +1 -1
- package/dist/mocks/query/syn51735464GroupBySpecies.js.map +1 -1
- package/dist/mocks/realm/mockRealmPrincipal.js.map +1 -1
- package/dist/mocks/team/mockTeam.js.map +1 -1
- package/dist/mocks/termsOfService/mockTermsOfService.js.map +1 -1
- package/dist/mocks/user/mock_user_profile.js.map +1 -1
- package/dist/mocks/usergroup/mockUserGroup.js.map +1 -1
- package/dist/ror-client/index.js.map +1 -1
- package/dist/stories/ColorPaletteInspector.js.map +1 -1
- package/dist/stories/ToastDemo.js.map +1 -1
- package/dist/stories/stubs/Alert/MuiAlert.js.map +1 -1
- package/dist/stories/stubs/Button/MuiButton.js.map +1 -1
- package/dist/stories/stubs/Dialog/MuiDialog.js.map +1 -1
- package/dist/stories/stubs/TextField/MuiTextField.js.map +1 -1
- package/dist/stories/stubs/Tooltip/MuiTooltip.js.map +1 -1
- package/dist/synapse-client/HttpClient.js.map +1 -1
- package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
- package/dist/synapse-client/SynapseClient.js +61 -69
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-client/SynapseClientUtils.js.map +1 -1
- package/dist/synapse-queries/InfiniteQueryUtils.js.map +1 -1
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
- package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
- package/dist/synapse-queries/asynchronous/usePollAsynchronousJob.js.map +1 -1
- package/dist/synapse-queries/auth/useChangePassword.js.map +1 -1
- package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
- package/dist/synapse-queries/auth/useResetPassword.js.map +1 -1
- package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
- package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
- package/dist/synapse-queries/chat/useChat.js.map +1 -1
- package/dist/synapse-queries/croissant/useGetCroissantUrl.js.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.js +12 -2
- package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessApprovals.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useGetApprovedSubmissionInfo.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
- package/dist/synapse-queries/docker/useGetDockerTag.js.map +1 -1
- package/dist/synapse-queries/doi/useDOI.js.map +1 -1
- package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
- package/dist/synapse-queries/entity/useActionsRequiredForTableQuery.js.map +1 -1
- package/dist/synapse-queries/entity/useEntity.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityActionsRequired.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityChallenge.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityChildren.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityForum.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityHeaders.js.map +1 -1
- package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useProjectStorage.js.map +1 -1
- package/dist/synapse-queries/entity/useSchema.js.map +1 -1
- package/dist/synapse-queries/evaluation/useEvaluation.js.map +1 -1
- package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
- package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
- package/dist/synapse-queries/file/useFiles.js.map +1 -1
- package/dist/synapse-queries/file/useSynapseMultipartUpload.js.map +1 -1
- package/dist/synapse-queries/file/useUploadDestination.js.map +1 -1
- package/dist/synapse-queries/forum/useForum.js.map +1 -1
- package/dist/synapse-queries/forum/useReply.js.map +1 -1
- package/dist/synapse-queries/forum/useThread.js.map +1 -1
- package/dist/synapse-queries/github/useGithub.js.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
- package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
- package/dist/synapse-queries/grid/useGridPresignedUrl.js.map +1 -1
- package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
- package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
- package/dist/synapse-queries/message/useMessage.js.map +1 -1
- package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
- package/dist/synapse-queries/portal/useListPortals.js.map +1 -1
- package/dist/synapse-queries/portal/usePortal.js.map +1 -1
- package/dist/synapse-queries/provenance/useGetActivityForEntity.js.map +1 -1
- package/dist/synapse-queries/realm/useRealmPrincipals.js.map +1 -1
- package/dist/synapse-queries/ror/index.js.map +1 -1
- package/dist/synapse-queries/search/useSearch.js.map +1 -1
- package/dist/synapse-queries/search/useSuggestion.js.map +1 -1
- package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
- package/dist/synapse-queries/table/useColumnModel.js.map +1 -1
- package/dist/synapse-queries/table/useDefiningSql.js.map +1 -1
- package/dist/synapse-queries/table/useDownloadTable.js.map +1 -1
- package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
- package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
- package/dist/synapse-queries/team/useTeam.js.map +1 -1
- package/dist/synapse-queries/team/useTeamList.js.map +1 -1
- package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
- package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
- package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
- package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
- package/dist/synapse-queries/user/useFavorites.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserProjects.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserTeams.js.map +1 -1
- package/dist/synapse-queries/user/usePersonalAccessToken.js.map +1 -1
- package/dist/synapse-queries/user/useProjects.js.map +1 -1
- package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
- package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
- package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
- package/dist/synapse-queries/verificationSubmission/useVerificationSubmission.js.map +1 -1
- package/dist/synapse-queries/webhook/useWebhook.js.map +1 -1
- package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
- package/dist/testutils/ComponentToBePassedPropsCustomMatcher.js.map +1 -1
- package/dist/testutils/IsEditingStoreTestUtils.js +17 -0
- package/dist/testutils/IsEditingStoreTestUtils.js.map +1 -0
- package/dist/testutils/LocationTracker.js.map +1 -1
- package/dist/testutils/MarkdownSynapseUtils.js.map +1 -1
- package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
- package/dist/testutils/TestingLibraryUtils.js +18 -16
- package/dist/testutils/TestingLibraryUtils.js.map +1 -1
- package/dist/testutils/muiDatePickerMock.js.map +1 -1
- package/dist/testutils/vitest.setup.js.map +1 -1
- package/dist/theme/DefaultTheme.js.map +1 -1
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/mergeTheme.js.map +1 -1
- package/dist/theme/palette/Palettes.js.map +1 -1
- package/dist/theme/spreadSx.js.map +1 -1
- package/dist/theme/typography/Link.js.map +1 -1
- package/dist/theme/typography/Typography.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/AppUtils/AppUtils.d.ts.map +1 -1
- package/dist/utils/AppUtils/AppUtils.js +11 -11
- package/dist/utils/AppUtils/AppUtils.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionContext.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/AuthenticationGuard.js.map +1 -1
- package/dist/utils/AppUtils/session/SessionInitializedGuard.js.map +1 -1
- package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
- package/dist/utils/ContentTypeUtils.js.map +1 -1
- package/dist/utils/OrientationBannerConstants.js.map +1 -1
- package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
- package/dist/utils/SynapseConstants.js.map +1 -1
- package/dist/utils/analytics/sendAnalyticsEvent.js.map +1 -1
- package/dist/utils/analytics/sendSearchEvent.js.map +1 -1
- package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
- package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
- package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
- package/dist/utils/context/AridhiaContext.js.map +1 -1
- package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
- package/dist/utils/context/FullContextProvider.js.map +1 -1
- package/dist/utils/context/GlobalIsEditingContext.js.map +1 -1
- package/dist/utils/context/SynapseContext.js.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
- package/dist/utils/functions/ArrayUtils.js.map +1 -1
- package/dist/utils/functions/DateFormatter.js.map +1 -1
- package/dist/utils/functions/DateTimeUtils.js.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
- package/dist/utils/functions/FileHandleUtils.js.map +1 -1
- package/dist/utils/functions/GridApiUtils.js.map +1 -1
- package/dist/utils/functions/IsEqualTreatUndefinedAsMissing.js.map +1 -1
- package/dist/utils/functions/IsExternalLink.js.map +1 -1
- package/dist/utils/functions/ObjectUtils.js.map +1 -1
- package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
- package/dist/utils/functions/RealmUtils.js.map +1 -1
- package/dist/utils/functions/RegularExpressions.js.map +1 -1
- package/dist/utils/functions/ResolveLinkEntity.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
- package/dist/utils/functions/SqlFunctions.js.map +1 -1
- package/dist/utils/functions/StringUtils.js.map +1 -1
- package/dist/utils/functions/TableColumnSchemaUtils.js.map +1 -1
- package/dist/utils/functions/calculateFriendlyFileSize.js.map +1 -1
- package/dist/utils/functions/colorPalette.js.map +1 -1
- package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
- package/dist/utils/functions/dispatchDownloadListChangeEvent.js.map +1 -1
- package/dist/utils/functions/generateCsrfToken.js.map +1 -1
- package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
- package/dist/utils/functions/getEndpoint.js +3 -3
- package/dist/utils/functions/getEndpoint.js.map +1 -1
- package/dist/utils/functions/getPrincipalDisplayName.js.map +1 -1
- package/dist/utils/functions/getSynapseEntityUrl.js.map +1 -1
- package/dist/utils/functions/getSynapseWebClientLink.js.map +1 -1
- package/dist/utils/functions/getUserData.js.map +1 -1
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
- package/dist/utils/functions/unCamelCase.js.map +1 -1
- package/dist/utils/hooks/useConfirmItems.js.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.d.ts.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.js +24 -23
- package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
- package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
- package/dist/utils/hooks/useDebouncedEffect.js.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
- package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
- package/dist/utils/hooks/useGetEntityMetadata.js.map +1 -1
- package/dist/utils/hooks/useGetGoalData.js +2 -4
- package/dist/utils/hooks/useGetGoalData.js.map +1 -1
- package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
- package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
- package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
- package/dist/utils/hooks/useIsBot.js.map +1 -1
- package/dist/utils/hooks/useJsonLdScriptElement.js.map +1 -1
- package/dist/utils/hooks/useListState.js.map +1 -1
- package/dist/utils/hooks/useLogin.js.map +1 -1
- package/dist/utils/hooks/useMediaPrintOnly.js.map +1 -1
- package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
- package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
- package/dist/utils/hooks/useOneSageURL.js.map +1 -1
- package/dist/utils/hooks/useOverlay.js.map +1 -1
- package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
- package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
- package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
- package/dist/utils/hooks/useSet.js.map +1 -1
- package/dist/utils/hooks/useShowDesktop.js.map +1 -1
- package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
- package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
- package/dist/utils/hooks/useTraceUpdate.js.map +1 -1
- package/dist/utils/hooks/useTrackTransientListItems.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/getActiveUploadCount.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/getFileEntityIdWithSameName.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
- package/dist/utils/html/TargetEnum.js.map +1 -1
- package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
- package/dist/utils/jsonschema/getEnumeratedValues.js.map +1 -1
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
- package/dist/utils/jsonschema/getRequiredAttributes.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaForProperty.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
- package/dist/utils/jsonschema/getType.js.map +1 -1
- package/dist/utils/searchDefaults.js.map +1 -1
- package/dist/utils/slots/SlotUtils.js.map +1 -1
- package/dist/utils/types/IsType.js.map +1 -1
- package/package.json +67 -66
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShowMore.js","names":[],"sources":["../../../src/components/ShowMore/ShowMore.tsx"],"sourcesContent":["import { Component, MouseEvent } from 'react'\n\nconst CHAR_COUNT_CUTOFF = 400\n\ntype ShowMoreState = {\n showMore: boolean\n}\n\nexport type ShowMoreProps = {\n summary: string\n maxCharacterCount?: number\n}\n\nexport default class ShowMore extends Component<ShowMoreProps, ShowMoreState> {\n constructor(props: ShowMoreProps) {\n super(props)\n this.state = {\n showMore: false,\n }\n this.toggleShowMore = this.toggleShowMore.bind(this)\n }\n\n public toggleShowMore(event: MouseEvent<HTMLAnchorElement>) {\n event.preventDefault()\n this.setState({\n showMore: true,\n })\n }\n\n getCutoff = (summary: string, maxCharacterCount: number) => {\n let previewText = ''\n if (!summary) {\n return { previewText }\n }\n let hiddenText = ''\n const summarySplit = summary.split(' ')\n // find num words to join such that its >= char_count_cutoff\n let i = 0\n while (previewText.length < maxCharacterCount && i < summarySplit.length) {\n previewText += `${summarySplit[i]} `\n i += 1\n }\n if (i < summarySplit.length - 1) {\n hiddenText = summarySplit.slice(i).join(' ')\n }\n return { previewText, hiddenText }\n }\n\n public render() {\n const { summary, maxCharacterCount = CHAR_COUNT_CUTOFF } = this.props\n const meetsCharRequirements = summary && summary.length >= maxCharacterCount\n const { previewText, hiddenText } = this.getCutoff(\n summary,\n maxCharacterCount,\n )\n const showMoreButton = meetsCharRequirements && (\n <a\n style={{ fontSize: '14px', cursor: 'pointer', marginLeft: '5px' }}\n onClick={this.toggleShowMore}\n className=\"highlight-link\"\n >\n ...Show More\n </a>\n )\n return (\n <>\n <span>\n {previewText}\n <span className={this.state.showMore ? '' : 'SRC-hidden'}>\n {hiddenText}\n </span>\n </span>\n {!this.state.showMore && showMoreButton}\n </>\n )\n }\n}\n"],"mappings":";;;AAEA,IAAM,IAAoB,KAWL,IAArB,cAAsC,EAAwC;CAC5E,YAAY,GAAsB;
|
|
1
|
+
{"version":3,"file":"ShowMore.js","names":[],"sources":["../../../src/components/ShowMore/ShowMore.tsx"],"sourcesContent":["import { Component, MouseEvent } from 'react'\n\nconst CHAR_COUNT_CUTOFF = 400\n\ntype ShowMoreState = {\n showMore: boolean\n}\n\nexport type ShowMoreProps = {\n summary: string\n maxCharacterCount?: number\n}\n\nexport default class ShowMore extends Component<ShowMoreProps, ShowMoreState> {\n constructor(props: ShowMoreProps) {\n super(props)\n this.state = {\n showMore: false,\n }\n this.toggleShowMore = this.toggleShowMore.bind(this)\n }\n\n public toggleShowMore(event: MouseEvent<HTMLAnchorElement>) {\n event.preventDefault()\n this.setState({\n showMore: true,\n })\n }\n\n getCutoff = (summary: string, maxCharacterCount: number) => {\n let previewText = ''\n if (!summary) {\n return { previewText }\n }\n let hiddenText = ''\n const summarySplit = summary.split(' ')\n // find num words to join such that its >= char_count_cutoff\n let i = 0\n while (previewText.length < maxCharacterCount && i < summarySplit.length) {\n previewText += `${summarySplit[i]} `\n i += 1\n }\n if (i < summarySplit.length - 1) {\n hiddenText = summarySplit.slice(i).join(' ')\n }\n return { previewText, hiddenText }\n }\n\n public render() {\n const { summary, maxCharacterCount = CHAR_COUNT_CUTOFF } = this.props\n const meetsCharRequirements = summary && summary.length >= maxCharacterCount\n const { previewText, hiddenText } = this.getCutoff(\n summary,\n maxCharacterCount,\n )\n const showMoreButton = meetsCharRequirements && (\n <a\n style={{ fontSize: '14px', cursor: 'pointer', marginLeft: '5px' }}\n onClick={this.toggleShowMore}\n className=\"highlight-link\"\n >\n ...Show More\n </a>\n )\n return (\n <>\n <span>\n {previewText}\n <span className={this.state.showMore ? '' : 'SRC-hidden'}>\n {hiddenText}\n </span>\n </span>\n {!this.state.showMore && showMoreButton}\n </>\n )\n }\n}\n"],"mappings":";;;AAEA,IAAM,IAAoB,KAWL,IAArB,cAAsC,EAAwC;CAC5E,YAAY,GAAsB;EAKhC,AAJA,MAAM,CAAK,GACX,KAAK,QAAQ,EACX,UAAU,GACZ,GACA,KAAK,iBAAiB,KAAK,eAAe,KAAK,IAAI;CACrD;CAEA,eAAsB,GAAsC;EAE1D,AADA,EAAM,eAAe,GACrB,KAAK,SAAS,EACZ,UAAU,GACZ,CAAC;CACH;CAEA,aAAa,GAAiB,MAA8B;EAC1D,IAAI,IAAc;EAClB,IAAI,CAAC,GACH,OAAO,EAAE,eAAY;EAEvB,IAAI,IAAa,IACX,IAAe,EAAQ,MAAM,GAAG,GAElC,IAAI;EACR,OAAO,EAAY,SAAS,KAAqB,IAAI,EAAa,SAEhE,AADA,KAAe,GAAG,EAAa,GAAG,IAClC,KAAK;EAKP,OAHI,IAAI,EAAa,SAAS,MAC5B,IAAa,EAAa,MAAM,CAAC,EAAE,KAAK,GAAG,IAEtC;GAAE;GAAa;EAAW;CACnC;CAEA,SAAgB;EACd,IAAM,EAAE,YAAS,uBAAoB,MAAsB,KAAK,OAC1D,IAAwB,KAAW,EAAQ,UAAU,GACrD,EAAE,gBAAa,kBAAe,KAAK,UACvC,GACA,CACF,GACM,IAAiB,KACrB,kBAAC,KAAD;GACE,OAAO;IAAE,UAAU;IAAQ,QAAQ;IAAW,YAAY;GAAM;GAChE,SAAS,KAAK;GACd,WAAU;aACX;EAEE,CAAA;EAEL,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,QAAD,EAAA,UAAA,CACG,GACD,kBAAC,QAAD;GAAM,WAAW,KAAK,MAAM,WAAW,KAAK;aACzC;EACG,CAAA,CACF,EAAA,CAAA,GACL,CAAC,KAAK,MAAM,YAAY,CACzB,EAAA,CAAA;CAEN;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignInButton.js","names":[],"sources":["../../src/components/SignInButton.tsx"],"sourcesContent":["import React from 'react'\nimport { SRC_SIGN_IN_CLASS } from '@/utils/SynapseConstants'\nimport { Link } from '@mui/material'\nimport { CSSProperties } from 'react'\n\nexport type SignInProps = {\n className?: string\n style?: CSSProperties\n}\n// An event listener for the class SRC_SIGN_IN_CLASS is needed to trigger a download\n// modal\nconst SignInButton = ({ className, style }: SignInProps): React.ReactNode => {\n return (\n <Link\n type=\"button\"\n style={style}\n className={`SignInButton ${SRC_SIGN_IN_CLASS} ${className}`}\n >\n Sign In\n </Link>\n )\n}\n\nexport default SignInButton\n"],"mappings":";;;;;AAWA,IAAM,KAAgB,EAAE,cAAW,eAE/B,kBAAC,GAAD;CACE,MAAK;CACE;CACP,WAAW,gBAAgB,EAAkB,GAAG;WACjD;
|
|
1
|
+
{"version":3,"file":"SignInButton.js","names":[],"sources":["../../src/components/SignInButton.tsx"],"sourcesContent":["import React from 'react'\nimport { SRC_SIGN_IN_CLASS } from '@/utils/SynapseConstants'\nimport { Link } from '@mui/material'\nimport { CSSProperties } from 'react'\n\nexport type SignInProps = {\n className?: string\n style?: CSSProperties\n}\n// An event listener for the class SRC_SIGN_IN_CLASS is needed to trigger a download\n// modal\nconst SignInButton = ({ className, style }: SignInProps): React.ReactNode => {\n return (\n <Link\n type=\"button\"\n style={style}\n className={`SignInButton ${SRC_SIGN_IN_CLASS} ${className}`}\n >\n Sign In\n </Link>\n )\n}\n\nexport default SignInButton\n"],"mappings":";;;;;AAWA,IAAM,KAAgB,EAAE,cAAW,eAE/B,kBAAC,GAAD;CACE,MAAK;CACE;CACP,WAAW,gBAAgB,EAAkB,GAAG;WACjD;AAEK,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignInRequiredModal.js","names":[],"sources":["../../../src/components/SignInRequiredModal/SignInRequiredModal.tsx"],"sourcesContent":["import { SRC_SIGN_IN_CLASS } from '@/utils/SynapseConstants'\nimport {\n ConfirmationDialog,\n ConfirmationDialogProps,\n} from '../ConfirmationDialog/ConfirmationDialog'\n\nexport type SignInRequiredModalProps = Partial<\n Omit<ConfirmationDialogProps, 'title' | 'onConfirm' | 'onCancel'>\n> & {\n onHide: () => void\n}\n\nexport const CONFIRM_BUTTON_TEXT = 'Sign in'\nexport const DEFAULT_CONTENT =\n 'You will need to sign in for access to that resource.'\nexport const TITLE = 'Sign In Required'\n\nexport function SignInRequiredModal({\n onHide,\n content = DEFAULT_CONTENT,\n open = true,\n ...rest\n}: SignInRequiredModalProps) {\n return (\n <ConfirmationDialog\n {...rest}\n open={open}\n title={TITLE}\n content={content}\n onCancel={onHide}\n onConfirm={onHide}\n confirmButtonProps={{\n ...rest.confirmButtonProps,\n children: rest.confirmButtonProps?.children ?? CONFIRM_BUTTON_TEXT,\n className: SRC_SIGN_IN_CLASS,\n }}\n />\n )\n}\n"],"mappings":";;;;AAYA,IAAa,IAAsB,WACtB,IACX,yDACW,IAAQ;AAErB,SAAgB,EAAoB,EAClC,WACA,aAAU,GACV,UAAO,IACP,GAAG,KACwB;
|
|
1
|
+
{"version":3,"file":"SignInRequiredModal.js","names":[],"sources":["../../../src/components/SignInRequiredModal/SignInRequiredModal.tsx"],"sourcesContent":["import { SRC_SIGN_IN_CLASS } from '@/utils/SynapseConstants'\nimport {\n ConfirmationDialog,\n ConfirmationDialogProps,\n} from '../ConfirmationDialog/ConfirmationDialog'\n\nexport type SignInRequiredModalProps = Partial<\n Omit<ConfirmationDialogProps, 'title' | 'onConfirm' | 'onCancel'>\n> & {\n onHide: () => void\n}\n\nexport const CONFIRM_BUTTON_TEXT = 'Sign in'\nexport const DEFAULT_CONTENT =\n 'You will need to sign in for access to that resource.'\nexport const TITLE = 'Sign In Required'\n\nexport function SignInRequiredModal({\n onHide,\n content = DEFAULT_CONTENT,\n open = true,\n ...rest\n}: SignInRequiredModalProps) {\n return (\n <ConfirmationDialog\n {...rest}\n open={open}\n title={TITLE}\n content={content}\n onCancel={onHide}\n onConfirm={onHide}\n confirmButtonProps={{\n ...rest.confirmButtonProps,\n children: rest.confirmButtonProps?.children ?? CONFIRM_BUTTON_TEXT,\n className: SRC_SIGN_IN_CLASS,\n }}\n />\n )\n}\n"],"mappings":";;;;AAYA,IAAa,IAAsB,WACtB,IACX,yDACW,IAAQ;AAErB,SAAgB,EAAoB,EAClC,WACA,aAAU,GACV,UAAO,IACP,GAAG,KACwB;CAC3B,OACE,kBAAC,GAAD;EACE,GAAI;EACE;EACN,OAAO;EACE;EACT,UAAU;EACV,WAAW;EACX,oBAAoB;GAClB,GAAG,EAAK;GACR,UAAU,EAAK,oBAAoB,YAAA;GACnC,WAAW;EACb;CACD,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkeletonButton.js","names":[],"sources":["../../../src/components/Skeleton/SkeletonButton.tsx"],"sourcesContent":["import { Button, Skeleton } from '@mui/material'\n\ntype SkeletonButtonProps = { placeholderText?: string }\n\n/**\n * Skeleton of a MUI button. The `placeholderText` prompt can be used to customise the length to roughly match the existing button\n */\nexport function SkeletonButton({\n placeholderText = 'Placeholder',\n}: SkeletonButtonProps) {\n return (\n <Skeleton variant=\"rectangular\">\n <Button>{placeholderText}</Button>\n </Skeleton>\n )\n}\n\nexport default SkeletonButton\n"],"mappings":";;;AAOA,SAAgB,EAAe,EAC7B,qBAAkB,iBACI;
|
|
1
|
+
{"version":3,"file":"SkeletonButton.js","names":[],"sources":["../../../src/components/Skeleton/SkeletonButton.tsx"],"sourcesContent":["import { Button, Skeleton } from '@mui/material'\n\ntype SkeletonButtonProps = { placeholderText?: string }\n\n/**\n * Skeleton of a MUI button. The `placeholderText` prompt can be used to customise the length to roughly match the existing button\n */\nexport function SkeletonButton({\n placeholderText = 'Placeholder',\n}: SkeletonButtonProps) {\n return (\n <Skeleton variant=\"rectangular\">\n <Button>{placeholderText}</Button>\n </Skeleton>\n )\n}\n\nexport default SkeletonButton\n"],"mappings":";;;AAOA,SAAgB,EAAe,EAC7B,qBAAkB,iBACI;CACtB,OACE,kBAAC,GAAD;EAAU,SAAQ;YAChB,kBAAC,GAAD,EAAA,UAAS,EAAwB,CAAA;CACzB,CAAA;AAEd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkeletonInlineBlock.js","names":[],"sources":["../../../src/components/Skeleton/SkeletonInlineBlock.tsx"],"sourcesContent":["import Skeleton, { SkeletonProps } from '@mui/material/Skeleton'\n\n/**\n * Skeleton with a display value of `inline-block`. MUI applies `display: block` with high specificity, so it's easiest to just apply the style to the component.\n */\nexport function SkeletonInlineBlock(props: SkeletonProps) {\n return (\n <Skeleton\n style={{ ...props.style, display: 'inline-block' }}\n {...props}\n ></Skeleton>\n )\n}\n"],"mappings":";;;AAKA,SAAgB,EAAoB,GAAsB;
|
|
1
|
+
{"version":3,"file":"SkeletonInlineBlock.js","names":[],"sources":["../../../src/components/Skeleton/SkeletonInlineBlock.tsx"],"sourcesContent":["import Skeleton, { SkeletonProps } from '@mui/material/Skeleton'\n\n/**\n * Skeleton with a display value of `inline-block`. MUI applies `display: block` with high specificity, so it's easiest to just apply the style to the component.\n */\nexport function SkeletonInlineBlock(props: SkeletonProps) {\n return (\n <Skeleton\n style={{ ...props.style, display: 'inline-block' }}\n {...props}\n ></Skeleton>\n )\n}\n"],"mappings":";;;AAKA,SAAgB,EAAoB,GAAsB;CACxD,OACE,kBAAC,GAAD;EACE,OAAO;GAAE,GAAG,EAAM;GAAO,SAAS;EAAe;EACjD,GAAI;CACK,CAAA;AAEf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkeletonParagraph.js","names":[],"sources":["../../../src/components/Skeleton/SkeletonParagraph.tsx"],"sourcesContent":["import { Fragment, ReactNode, useEffect, useState } from 'react'\nimport Skeleton from '@mui/material/Skeleton'\nimport { times } from 'lodash-es'\n\nexport type SkeletonParagraphProps = {\n numRows?: number\n rowHeight?: string\n className?: string\n}\n\n/**\n * Skeleton component designed to mimic a paragraph.\n */\nexport function SkeletonParagraph({\n numRows = 5,\n rowHeight,\n className,\n}: SkeletonParagraphProps) {\n const [skeletons, setSkeletons] = useState<ReactNode[]>([])\n\n useEffect(() => {\n const elements: ReactNode[] = []\n times(numRows, i => {\n elements.push(\n <Fragment key={i}>\n <Skeleton\n height={rowHeight}\n width={i === numRows - 1 ? '35%' : '100%'}\n ></Skeleton>\n </Fragment>,\n )\n })\n setSkeletons(elements)\n }, [numRows, rowHeight])\n\n return <div className={className}>{skeletons}</div>\n}\n"],"mappings":";;;;;AAaA,SAAgB,EAAkB,EAChC,aAAU,GACV,cACA,gBACyB;CACzB,IAAM,CAAC,GAAW,KAAgB,EAAsB,
|
|
1
|
+
{"version":3,"file":"SkeletonParagraph.js","names":[],"sources":["../../../src/components/Skeleton/SkeletonParagraph.tsx"],"sourcesContent":["import { Fragment, ReactNode, useEffect, useState } from 'react'\nimport Skeleton from '@mui/material/Skeleton'\nimport { times } from 'lodash-es'\n\nexport type SkeletonParagraphProps = {\n numRows?: number\n rowHeight?: string\n className?: string\n}\n\n/**\n * Skeleton component designed to mimic a paragraph.\n */\nexport function SkeletonParagraph({\n numRows = 5,\n rowHeight,\n className,\n}: SkeletonParagraphProps) {\n const [skeletons, setSkeletons] = useState<ReactNode[]>([])\n\n useEffect(() => {\n const elements: ReactNode[] = []\n times(numRows, i => {\n elements.push(\n <Fragment key={i}>\n <Skeleton\n height={rowHeight}\n width={i === numRows - 1 ? '35%' : '100%'}\n ></Skeleton>\n </Fragment>,\n )\n })\n setSkeletons(elements)\n }, [numRows, rowHeight])\n\n return <div className={className}>{skeletons}</div>\n}\n"],"mappings":";;;;;AAaA,SAAgB,EAAkB,EAChC,aAAU,GACV,cACA,gBACyB;CACzB,IAAM,CAAC,GAAW,KAAgB,EAAsB,CAAC,CAAC;CAiB1D,OAfA,QAAgB;EACd,IAAM,IAAwB,CAAC;EAW/B,AAVA,EAAM,IAAS,MAAK;GAClB,EAAS,KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;IACE,QAAQ;IACR,OAAO,MAAM,IAAU,IAAI,QAAQ;GAC1B,CAAA,EACH,GALK,CAKL,CACZ;EACF,CAAC,GACD,EAAa,CAAQ;CACvB,GAAG,CAAC,GAAS,CAAS,CAAC,GAEhB,kBAAC,OAAD;EAAgB;YAAY;CAAe,CAAA;AACpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkeletonTable.js","names":[],"sources":["../../../src/components/Skeleton/SkeletonTable.tsx"],"sourcesContent":["import { Fragment, ReactNode, useEffect, useState } from 'react'\nimport Skeleton from '@mui/material/Skeleton'\nimport { times } from 'lodash-es'\nimport { Box, BoxProps } from '@mui/material'\n\nfunction getRandomInt(min: number, max: number) {\n return Math.floor(Math.random() * (max - min) + min)\n}\n\nexport type SkeletonTableProps = BoxProps & {\n numRows?: number\n numCols?: number\n rowHeight?: string\n fullWidthCells?: boolean\n}\n\n/**\n * Skeleton component designed to mimic a table with an arbitrary number of rows and columns.\n *\n * Implemented using CSS grid.\n */\nexport function SkeletonTable(props: SkeletonTableProps) {\n const {\n numRows = 5,\n numCols = 2,\n rowHeight,\n fullWidthCells = false,\n ...boxProps\n } = props\n const [skeletons, setSkeletons] = useState<ReactNode[]>([])\n\n useEffect(() => {\n const elements: ReactNode[] = []\n times(numRows * numCols, i => {\n elements.push(\n <Fragment key={i}>\n <Skeleton\n height={rowHeight}\n width={fullWidthCells ? '100%' : `${getRandomInt(35, 75)}%`}\n ></Skeleton>\n </Fragment>,\n )\n })\n setSkeletons(elements)\n }, [numRows, numCols, rowHeight, fullWidthCells])\n\n return (\n <Box\n {...boxProps}\n sx={{\n display: 'grid',\n gridTemplateColumns: `auto `.repeat(numCols),\n gap: '8px',\n ...boxProps.sx,\n }}\n >\n {skeletons}\n </Box>\n )\n}\n"],"mappings":";;;;;;AAKA,SAAS,EAAa,GAAa,GAAa;
|
|
1
|
+
{"version":3,"file":"SkeletonTable.js","names":[],"sources":["../../../src/components/Skeleton/SkeletonTable.tsx"],"sourcesContent":["import { Fragment, ReactNode, useEffect, useState } from 'react'\nimport Skeleton from '@mui/material/Skeleton'\nimport { times } from 'lodash-es'\nimport { Box, BoxProps } from '@mui/material'\n\nfunction getRandomInt(min: number, max: number) {\n return Math.floor(Math.random() * (max - min) + min)\n}\n\nexport type SkeletonTableProps = BoxProps & {\n numRows?: number\n numCols?: number\n rowHeight?: string\n fullWidthCells?: boolean\n}\n\n/**\n * Skeleton component designed to mimic a table with an arbitrary number of rows and columns.\n *\n * Implemented using CSS grid.\n */\nexport function SkeletonTable(props: SkeletonTableProps) {\n const {\n numRows = 5,\n numCols = 2,\n rowHeight,\n fullWidthCells = false,\n ...boxProps\n } = props\n const [skeletons, setSkeletons] = useState<ReactNode[]>([])\n\n useEffect(() => {\n const elements: ReactNode[] = []\n times(numRows * numCols, i => {\n elements.push(\n <Fragment key={i}>\n <Skeleton\n height={rowHeight}\n width={fullWidthCells ? '100%' : `${getRandomInt(35, 75)}%`}\n ></Skeleton>\n </Fragment>,\n )\n })\n setSkeletons(elements)\n }, [numRows, numCols, rowHeight, fullWidthCells])\n\n return (\n <Box\n {...boxProps}\n sx={{\n display: 'grid',\n gridTemplateColumns: `auto `.repeat(numCols),\n gap: '8px',\n ...boxProps.sx,\n }}\n >\n {skeletons}\n </Box>\n )\n}\n"],"mappings":";;;;;;AAKA,SAAS,EAAa,GAAa,GAAa;CAC9C,OAAO,KAAK,MAAM,KAAK,OAAO,KAAK,IAAM,KAAO,CAAG;AACrD;AAcA,SAAgB,EAAc,GAA2B;CACvD,IAAM,EACJ,aAAU,GACV,aAAU,GACV,cACA,oBAAiB,IACjB,GAAG,MACD,GACE,CAAC,GAAW,KAAgB,EAAsB,CAAC,CAAC;CAiB1D,OAfA,QAAgB;EACd,IAAM,IAAwB,CAAC;EAW/B,AAVA,EAAM,IAAU,IAAS,MAAK;GAC5B,EAAS,KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;IACE,QAAQ;IACR,OAAO,IAAiB,SAAS,GAAG,EAAa,IAAI,EAAE,EAAE;GAChD,CAAA,EACH,GALK,CAKL,CACZ;EACF,CAAC,GACD,EAAa,CAAQ;CACvB,GAAG;EAAC;EAAS;EAAS;EAAW;CAAc,CAAC,GAG9C,kBAAC,GAAD;EACE,GAAI;EACJ,IAAI;GACF,SAAS;GACT,qBAAqB,QAAQ,OAAO,CAAO;GAC3C,KAAK;GACL,GAAG,EAAS;EACd;YAEC;CACE,CAAA;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmartButton.js","names":[],"sources":["../../../src/components/SmartLink/SmartButton.tsx"],"sourcesContent":["import { Button, ButtonProps } from '@mui/material'\nimport { useSmartLink } from './useSmartLink'\n\ninterface SmartButtonProps extends ButtonProps {\n href?: string\n target?: string\n}\n\nexport function SmartButton({\n href,\n target,\n children,\n ...props\n}: SmartButtonProps) {\n const navProps = useSmartLink(href, target)\n return (\n <Button {...navProps} {...props}>\n {children}\n </Button>\n )\n}\n"],"mappings":";;;;AAQA,SAAgB,EAAY,EAC1B,SACA,WACA,aACA,GAAG,KACgB;
|
|
1
|
+
{"version":3,"file":"SmartButton.js","names":[],"sources":["../../../src/components/SmartLink/SmartButton.tsx"],"sourcesContent":["import { Button, ButtonProps } from '@mui/material'\nimport { useSmartLink } from './useSmartLink'\n\ninterface SmartButtonProps extends ButtonProps {\n href?: string\n target?: string\n}\n\nexport function SmartButton({\n href,\n target,\n children,\n ...props\n}: SmartButtonProps) {\n const navProps = useSmartLink(href, target)\n return (\n <Button {...navProps} {...props}>\n {children}\n </Button>\n )\n}\n"],"mappings":";;;;AAQA,SAAgB,EAAY,EAC1B,SACA,WACA,aACA,GAAG,KACgB;CAEnB,OACE,kBAAC,GAAD;EAAQ,GAFO,EAAa,GAAM,CAEtB;EAAU,GAAI;EACvB;CACK,CAAA;AAEZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmartLink.js","names":[],"sources":["../../../src/components/SmartLink/SmartLink.tsx"],"sourcesContent":["import { Link as MuiLink, LinkProps as MuiLinkProps } from '@mui/material'\nimport { useSmartLink } from './useSmartLink'\n\ninterface SmartLinkProps extends MuiLinkProps {\n href: string\n}\n\nexport function SmartLink({\n href,\n target,\n children,\n ...props\n}: SmartLinkProps) {\n const navProps = useSmartLink(href, target)\n return (\n <MuiLink {...navProps} {...props}>\n {children}\n </MuiLink>\n )\n}\n"],"mappings":";;;;AAOA,SAAgB,EAAU,EACxB,SACA,WACA,aACA,GAAG,KACc;
|
|
1
|
+
{"version":3,"file":"SmartLink.js","names":[],"sources":["../../../src/components/SmartLink/SmartLink.tsx"],"sourcesContent":["import { Link as MuiLink, LinkProps as MuiLinkProps } from '@mui/material'\nimport { useSmartLink } from './useSmartLink'\n\ninterface SmartLinkProps extends MuiLinkProps {\n href: string\n}\n\nexport function SmartLink({\n href,\n target,\n children,\n ...props\n}: SmartLinkProps) {\n const navProps = useSmartLink(href, target)\n return (\n <MuiLink {...navProps} {...props}>\n {children}\n </MuiLink>\n )\n}\n"],"mappings":";;;;AAOA,SAAgB,EAAU,EACxB,SACA,WACA,aACA,GAAG,KACc;CAEjB,OACE,kBAAC,GAAD;EAAS,GAFM,EAAa,GAAM,CAErB;EAAU,GAAI;EACxB;CACM,CAAA;AAEb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSmartLink.js","names":[],"sources":["../../../src/components/SmartLink/useSmartLink.tsx"],"sourcesContent":["import { useInRouterContext, Link as ReactRouterLink } from 'react-router'\nimport { isExternalLink } from '@/utils/functions/IsExternalLink'\n\nexport function useSmartLink(href?: string, target?: string) {\n const inRouterContext = useInRouterContext()\n const isExternal = href ? isExternalLink(href) : false\n\n if (href && inRouterContext && !isExternal) {\n return {\n component: ReactRouterLink,\n to: href,\n }\n }\n\n return {\n component: href ? ('a' as const) : undefined,\n href,\n target: target ?? (isExternal ? '_blank' : undefined),\n rel: isExternal ? 'noopener noreferrer' : undefined,\n }\n}\n"],"mappings":";;;AAGA,SAAgB,EAAa,GAAe,GAAiB;CAC3D,IAAM,IAAkB,
|
|
1
|
+
{"version":3,"file":"useSmartLink.js","names":[],"sources":["../../../src/components/SmartLink/useSmartLink.tsx"],"sourcesContent":["import { useInRouterContext, Link as ReactRouterLink } from 'react-router'\nimport { isExternalLink } from '@/utils/functions/IsExternalLink'\n\nexport function useSmartLink(href?: string, target?: string) {\n const inRouterContext = useInRouterContext()\n const isExternal = href ? isExternalLink(href) : false\n\n if (href && inRouterContext && !isExternal) {\n return {\n component: ReactRouterLink,\n to: href,\n }\n }\n\n return {\n component: href ? ('a' as const) : undefined,\n href,\n target: target ?? (isExternal ? '_blank' : undefined),\n rel: isExternal ? 'noopener noreferrer' : undefined,\n }\n}\n"],"mappings":";;;AAGA,SAAgB,EAAa,GAAe,GAAiB;CAC3D,IAAM,IAAkB,EAAmB,GACrC,IAAa,IAAO,EAAe,CAAI,IAAI;CASjD,OAPI,KAAQ,KAAmB,CAAC,IACvB;EACL,WAAW;EACX,IAAI;CACN,IAGK;EACL,WAAW,IAAQ,MAAgB,KAAA;EACnC;EACA,QAAQ,MAAW,IAAa,WAAW,KAAA;EAC3C,KAAK,IAAa,wBAAwB,KAAA;CAC5C;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceAppImage.js","names":[],"sources":["../../src/components/SourceAppImage.tsx"],"sourcesContent":["import { useGetStablePresignedUrl } from '@/synapse-queries'\nimport Skeleton from '@mui/material/Skeleton'\nimport {\n FileHandleAssociateType,\n FileHandleAssociation,\n} from '@sage-bionetworks/synapse-types'\n\nexport type SourceAppImageProps = {\n sourceAppConfigTableID: string\n fileHandleId: string | null\n friendlyName?: string\n}\n\n// Refactored into it's own class, thinking that using a prefetch resource would improve loading performance of the images, but it does not.\nfunction SourceAppImage(props: SourceAppImageProps) {\n const { sourceAppConfigTableID, fileHandleId, friendlyName } = props\n const fha: FileHandleAssociation = {\n associateObjectId: sourceAppConfigTableID,\n associateObjectType: FileHandleAssociateType.TableEntity,\n fileHandleId: fileHandleId ?? '',\n }\n const stablePresignedUrl = useGetStablePresignedUrl(fha, true, {\n enabled: !!fileHandleId,\n })\n\n const dataUrl = stablePresignedUrl?.dataUrl\n const error = stablePresignedUrl?.queryResult?.error\n\n if (error) {\n return <></>\n }\n const icon = dataUrl ? (\n <img\n className=\"SourceAppImage\"\n alt={friendlyName ? `${friendlyName} logo` : 'Application logo'}\n src={dataUrl}\n />\n ) : (\n <Skeleton variant=\"rectangular\" width={250} height={65} />\n )\n\n return icon\n}\n\nexport default SourceAppImage\n"],"mappings":";;;;;;AAcA,SAAS,EAAe,GAA4B;CAClD,IAAM,EAAE,2BAAwB,iBAAc,oBAAiB,GAMzD,IAAqB,EAAyB;EAJlD,mBAAmB;EACnB,qBAAqB,EAAwB;EAC7C,cAAc,KAAgB;
|
|
1
|
+
{"version":3,"file":"SourceAppImage.js","names":[],"sources":["../../src/components/SourceAppImage.tsx"],"sourcesContent":["import { useGetStablePresignedUrl } from '@/synapse-queries'\nimport Skeleton from '@mui/material/Skeleton'\nimport {\n FileHandleAssociateType,\n FileHandleAssociation,\n} from '@sage-bionetworks/synapse-types'\n\nexport type SourceAppImageProps = {\n sourceAppConfigTableID: string\n fileHandleId: string | null\n friendlyName?: string\n}\n\n// Refactored into it's own class, thinking that using a prefetch resource would improve loading performance of the images, but it does not.\nfunction SourceAppImage(props: SourceAppImageProps) {\n const { sourceAppConfigTableID, fileHandleId, friendlyName } = props\n const fha: FileHandleAssociation = {\n associateObjectId: sourceAppConfigTableID,\n associateObjectType: FileHandleAssociateType.TableEntity,\n fileHandleId: fileHandleId ?? '',\n }\n const stablePresignedUrl = useGetStablePresignedUrl(fha, true, {\n enabled: !!fileHandleId,\n })\n\n const dataUrl = stablePresignedUrl?.dataUrl\n const error = stablePresignedUrl?.queryResult?.error\n\n if (error) {\n return <></>\n }\n const icon = dataUrl ? (\n <img\n className=\"SourceAppImage\"\n alt={friendlyName ? `${friendlyName} logo` : 'Application logo'}\n src={dataUrl}\n />\n ) : (\n <Skeleton variant=\"rectangular\" width={250} height={65} />\n )\n\n return icon\n}\n\nexport default SourceAppImage\n"],"mappings":";;;;;;AAcA,SAAS,EAAe,GAA4B;CAClD,IAAM,EAAE,2BAAwB,iBAAc,oBAAiB,GAMzD,IAAqB,EAAyB;EAJlD,mBAAmB;EACnB,qBAAqB,EAAwB;EAC7C,cAAc,KAAgB;CAEoB,GAAK,IAAM,EAC7D,SAAS,CAAC,CAAC,EACb,CAAC,GAEK,IAAU,GAAoB;CAgBpC,OAfc,GAAoB,aAAa,QAGtC,kBAAA,GAAA,CAAI,CAAA,IAEA,IACX,kBAAC,OAAD;EACE,WAAU;EACV,KAAK,IAAe,GAAG,EAAa,SAAS;EAC7C,KAAK;CACN,CAAA,IAED,kBAAC,GAAD;EAAU,SAAQ;EAAc,OAAO;EAAK,QAAQ;CAAK,CAAA;AAI7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpinnerButton.js","names":[],"sources":["../../../src/components/SpinnerButton/SpinnerButton.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport {\n LoginAwareButton,\n LoginAwareButtonProps,\n} from '../widgets/LoginAwareButton'\nimport { Box } from '@mui/material'\n\nexport type SpinnerButtonProps = LoginAwareButtonProps & {\n showSpinner?: boolean\n}\n\nfunction SpinnerButton({ showSpinner = false, ...props }: SpinnerButtonProps) {\n const [width, setWidth] = useState(0)\n const elementRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (elementRef) {\n const n = elementRef.current?.offsetWidth ?? 0\n setWidth(n)\n }\n }, [])\n return (\n <div\n data-testid=\"SpinnerButton\"\n style={{ position: 'relative', width: 'max-content' }}\n >\n {showSpinner && (\n <div\n style={{\n position: 'absolute',\n top: '8px',\n left: `${width / 2 - 8}px`,\n }}\n >\n <span data-testid=\"SpinnerButton-spinner\" className=\"spinner\" />\n </div>\n )}\n <Box sx={{ display: 'flex' }} ref={elementRef}>\n <LoginAwareButton\n {...props}\n disabled={props.disabled || showSpinner}\n style={{ opacity: showSpinner ? 0.4 : 1 }}\n />\n </Box>\n </div>\n )\n}\n\nexport default SpinnerButton\n"],"mappings":";;;;;AAWA,SAAS,EAAc,EAAE,iBAAc,IAAO,GAAG,KAA6B;CAC5E,IAAM,CAAC,GAAO,KAAY,EAAS,
|
|
1
|
+
{"version":3,"file":"SpinnerButton.js","names":[],"sources":["../../../src/components/SpinnerButton/SpinnerButton.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport {\n LoginAwareButton,\n LoginAwareButtonProps,\n} from '../widgets/LoginAwareButton'\nimport { Box } from '@mui/material'\n\nexport type SpinnerButtonProps = LoginAwareButtonProps & {\n showSpinner?: boolean\n}\n\nfunction SpinnerButton({ showSpinner = false, ...props }: SpinnerButtonProps) {\n const [width, setWidth] = useState(0)\n const elementRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (elementRef) {\n const n = elementRef.current?.offsetWidth ?? 0\n setWidth(n)\n }\n }, [])\n return (\n <div\n data-testid=\"SpinnerButton\"\n style={{ position: 'relative', width: 'max-content' }}\n >\n {showSpinner && (\n <div\n style={{\n position: 'absolute',\n top: '8px',\n left: `${width / 2 - 8}px`,\n }}\n >\n <span data-testid=\"SpinnerButton-spinner\" className=\"spinner\" />\n </div>\n )}\n <Box sx={{ display: 'flex' }} ref={elementRef}>\n <LoginAwareButton\n {...props}\n disabled={props.disabled || showSpinner}\n style={{ opacity: showSpinner ? 0.4 : 1 }}\n />\n </Box>\n </div>\n )\n}\n\nexport default SpinnerButton\n"],"mappings":";;;;;AAWA,SAAS,EAAc,EAAE,iBAAc,IAAO,GAAG,KAA6B;CAC5E,IAAM,CAAC,GAAO,KAAY,EAAS,CAAC,GAC9B,IAAa,EAAuB,IAAI;CAQ9C,OANA,QAAgB;EACd,AAAI,KAEF,EADU,EAAW,SAAS,eAAe,CACnC;CAEd,GAAG,CAAC,CAAC,GAEH,kBAAC,OAAD;EACE,eAAY;EACZ,OAAO;GAAE,UAAU;GAAY,OAAO;EAAc;YAFtD,CAIG,KACC,kBAAC,OAAD;GACE,OAAO;IACL,UAAU;IACV,KAAK;IACL,MAAM,GAAG,IAAQ,IAAI,EAAE;GACzB;aAEA,kBAAC,QAAD;IAAM,eAAY;IAAwB,WAAU;GAAW,CAAA;EAC5D,CAAA,GAEP,kBAAC,GAAD;GAAK,IAAI,EAAE,SAAS,OAAO;GAAG,KAAK;aACjC,kBAAC,GAAD;IACE,GAAI;IACJ,UAAU,EAAM,YAAY;IAC5B,OAAO,EAAE,SAAS,IAAc,KAAM,EAAE;GACzC,CAAA;EACE,CAAA,CACF;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlDefinedTableEditor.js","names":[],"sources":["../../../src/components/SqlDefinedTableEditor/SqlDefinedTableEditor.tsx"],"sourcesContent":["import { Box, Link, TextField, Typography } from '@mui/material'\nimport { TextFieldProps } from '@mui/material/TextField'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\n\nconst MATERIALIZED_VIEW_HELP = (\n <Box\n sx={{\n mb: 2.5,\n }}\n >\n <Typography\n variant={'body1'}\n sx={{\n color: 'grey.700',\n mb: 1.25,\n }}\n >\n If you store normalized data in Synapse tables, views, or datasets, you\n can combine separate data sources using Materialized Views. A materialized\n view is a type of Synapse table that is defined using a Synapse SQL\n statement, which can contain SQL keywords such as JOIN and UNION to\n combine existing Synapse tables.\n </Typography>\n <Link\n href={\n 'https://help.synapse.org/docs/Combining-Data-from-Multiple-Table-Sources.2973270158.html'\n }\n target=\"_blank\"\n onClick={e => {\n e.stopPropagation()\n }}\n >\n More about Materialized Views\n </Link>\n </Box>\n)\n\nconst VIRTUAL_TABLE_HELP = (\n <Box\n sx={{\n mb: 2.5,\n }}\n >\n <Typography\n variant={'body1'}\n sx={{\n color: 'grey.700',\n mb: 1.25,\n }}\n >\n A Synapse Virtual Table is a type of table that is defined by a Synapse\n SQL query. Any query on a Virtual Table will execute the defining SQL\n statement on the referenced table. The defining SQL of a Virtual Table\n cannot include JOIN clauses on multiple tables.\n </Typography>\n </Box>\n)\n\nexport type SqlDefinedTableEditorProps = TextFieldProps & {\n /* Optional entity type for showing help documentation */\n entityType?: EntityType\n}\n\n/**\n * Component used to edit the SQL of a Synapse entity defined by SQL, such as a MaterializedView or VirtualTable\n * @param props\n * @constructor\n */\nexport default function SqlDefinedTableEditor(\n props: SqlDefinedTableEditorProps,\n) {\n const { entityType, ...textFieldProps } = props\n return (\n <>\n {entityType === EntityType.materializedview && MATERIALIZED_VIEW_HELP}\n {entityType === EntityType.virtualtable && VIRTUAL_TABLE_HELP}\n <TextField\n label={'Defining SQL'}\n placeholder={'SELECT * FROM syn123'}\n fullWidth\n multiline\n required\n minRows={6}\n {...textFieldProps}\n />\n </>\n )\n}\n"],"mappings":";;;;AAIA,IAAM,IACJ,kBAAC,GAAD;CACE,IAAI,EACF,IAAI,
|
|
1
|
+
{"version":3,"file":"SqlDefinedTableEditor.js","names":[],"sources":["../../../src/components/SqlDefinedTableEditor/SqlDefinedTableEditor.tsx"],"sourcesContent":["import { Box, Link, TextField, Typography } from '@mui/material'\nimport { TextFieldProps } from '@mui/material/TextField'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\n\nconst MATERIALIZED_VIEW_HELP = (\n <Box\n sx={{\n mb: 2.5,\n }}\n >\n <Typography\n variant={'body1'}\n sx={{\n color: 'grey.700',\n mb: 1.25,\n }}\n >\n If you store normalized data in Synapse tables, views, or datasets, you\n can combine separate data sources using Materialized Views. A materialized\n view is a type of Synapse table that is defined using a Synapse SQL\n statement, which can contain SQL keywords such as JOIN and UNION to\n combine existing Synapse tables.\n </Typography>\n <Link\n href={\n 'https://help.synapse.org/docs/Combining-Data-from-Multiple-Table-Sources.2973270158.html'\n }\n target=\"_blank\"\n onClick={e => {\n e.stopPropagation()\n }}\n >\n More about Materialized Views\n </Link>\n </Box>\n)\n\nconst VIRTUAL_TABLE_HELP = (\n <Box\n sx={{\n mb: 2.5,\n }}\n >\n <Typography\n variant={'body1'}\n sx={{\n color: 'grey.700',\n mb: 1.25,\n }}\n >\n A Synapse Virtual Table is a type of table that is defined by a Synapse\n SQL query. Any query on a Virtual Table will execute the defining SQL\n statement on the referenced table. The defining SQL of a Virtual Table\n cannot include JOIN clauses on multiple tables.\n </Typography>\n </Box>\n)\n\nexport type SqlDefinedTableEditorProps = TextFieldProps & {\n /* Optional entity type for showing help documentation */\n entityType?: EntityType\n}\n\n/**\n * Component used to edit the SQL of a Synapse entity defined by SQL, such as a MaterializedView or VirtualTable\n * @param props\n * @constructor\n */\nexport default function SqlDefinedTableEditor(\n props: SqlDefinedTableEditorProps,\n) {\n const { entityType, ...textFieldProps } = props\n return (\n <>\n {entityType === EntityType.materializedview && MATERIALIZED_VIEW_HELP}\n {entityType === EntityType.virtualtable && VIRTUAL_TABLE_HELP}\n <TextField\n label={'Defining SQL'}\n placeholder={'SELECT * FROM syn123'}\n fullWidth\n multiline\n required\n minRows={6}\n {...textFieldProps}\n />\n </>\n )\n}\n"],"mappings":";;;;AAIA,IAAM,IACJ,kBAAC,GAAD;CACE,IAAI,EACF,IAAI,IACN;WAHF,CAKE,kBAAC,GAAD;EACE,SAAS;EACT,IAAI;GACF,OAAO;GACP,IAAI;EACN;YACD;CAMW,CAAA,GACZ,kBAAC,GAAD;EACE,MACE;EAEF,QAAO;EACP,UAAS,MAAK;GACZ,EAAE,gBAAgB;EACpB;YACD;CAEK,CAAA,CACH;IAGD,IACJ,kBAAC,GAAD;CACE,IAAI,EACF,IAAI,IACN;WAEA,kBAAC,GAAD;EACE,SAAS;EACT,IAAI;GACF,OAAO;GACP,IAAI;EACN;YACD;CAKW,CAAA;AACT,CAAA;AAaP,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,eAAY,GAAG,MAAmB;CAC1C,OACE,kBAAA,GAAA,EAAA,UAAA;EACG,MAAe,EAAW,oBAAoB;EAC9C,MAAe,EAAW,gBAAgB;EAC3C,kBAAC,GAAD;GACE,OAAO;GACP,aAAa;GACb,WAAA;GACA,WAAA;GACA,UAAA;GACA,SAAS;GACT,GAAI;EACL,CAAA;CACD,EAAA,CAAA;AAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlDefinedTableEditorModal.js","names":[],"sources":["../../../src/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.tsx"],"sourcesContent":["import { useGetEntity, useUpdateEntity } from '@/synapse-queries'\nimport { convertToEntityType } from '@/utils/functions/EntityTypeUtils'\nimport { Alert } from '@mui/material'\nimport { MaterializedView, VirtualTable } from '@sage-bionetworks/synapse-types'\nimport { useEffect, useState } from 'react'\nimport ConfirmationDialog from '../ConfirmationDialog'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport SqlDefinedTableEditor from './SqlDefinedTableEditor'\n\nexport type SqlDefinedTableEditorModalProps = {\n open: boolean\n entityId: string\n onUpdate: () => void\n onCancel: () => void\n}\nexport function SqlDefinedTableEditorModal(\n props: SqlDefinedTableEditorModalProps,\n) {\n const { open, entityId, onCancel, onUpdate } = props\n const {\n data: entity,\n isLoading: isEntityLoading,\n error: entityError,\n } = useGetEntity<MaterializedView | VirtualTable>(entityId, undefined, {\n // Set the stale time to infinity because we don't want to refetch this in the middle of an edit\n staleTime: Infinity,\n })\n const [sql, setSql] = useState('')\n\n useEffect(() => {\n if (entity) {\n setSql(entity.definingSQL)\n }\n }, [entity])\n\n const type = entity ? convertToEntityType(entity.concreteType) : undefined\n const {\n mutate,\n isPending: isUpdatePending,\n error: updateError,\n } = useUpdateEntity<MaterializedView | VirtualTable>({ onSuccess: onUpdate })\n const isLoading = isEntityLoading || isUpdatePending\n const error = entityError || updateError\n return (\n <ConfirmationDialog\n open={open}\n title=\"Update SQL\"\n content={\n <>\n <SqlDefinedTableEditor\n value={sql}\n entityType={type}\n onChange={e => setSql(e.target.value)}\n disabled={isLoading}\n ></SqlDefinedTableEditor>\n {error && (\n <Alert\n sx={{\n my: 1,\n }}\n severity=\"error\"\n >\n {error.reason}\n </Alert>\n )}\n </>\n }\n confirmButtonProps={{\n children: isUpdatePending ? 'Saving...' : 'Save',\n disabled: isLoading,\n startIcon: isUpdatePending ? <SynapseSpinner /> : undefined,\n }}\n onConfirm={() => {\n if (entity) {\n mutate({ ...entity, definingSQL: sql })\n }\n }}\n onCancel={onCancel}\n maxWidth=\"md\"\n />\n )\n}\n\nexport default SqlDefinedTableEditorModal\n"],"mappings":";;;;;;;;;;AAeA,SAAgB,EACd,GACA;CACA,IAAM,EAAE,SAAM,aAAU,aAAU,gBAAa,GACzC,EACJ,MAAM,GACN,WAAW,GACX,OAAO,MACL,EAA8C,GAAU,KAAA,GAAW,EAErE,WAAW,
|
|
1
|
+
{"version":3,"file":"SqlDefinedTableEditorModal.js","names":[],"sources":["../../../src/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.tsx"],"sourcesContent":["import { useGetEntity, useUpdateEntity } from '@/synapse-queries'\nimport { convertToEntityType } from '@/utils/functions/EntityTypeUtils'\nimport { Alert } from '@mui/material'\nimport { MaterializedView, VirtualTable } from '@sage-bionetworks/synapse-types'\nimport { useEffect, useState } from 'react'\nimport ConfirmationDialog from '../ConfirmationDialog'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport SqlDefinedTableEditor from './SqlDefinedTableEditor'\n\nexport type SqlDefinedTableEditorModalProps = {\n open: boolean\n entityId: string\n onUpdate: () => void\n onCancel: () => void\n}\nexport function SqlDefinedTableEditorModal(\n props: SqlDefinedTableEditorModalProps,\n) {\n const { open, entityId, onCancel, onUpdate } = props\n const {\n data: entity,\n isLoading: isEntityLoading,\n error: entityError,\n } = useGetEntity<MaterializedView | VirtualTable>(entityId, undefined, {\n // Set the stale time to infinity because we don't want to refetch this in the middle of an edit\n staleTime: Infinity,\n })\n const [sql, setSql] = useState('')\n\n useEffect(() => {\n if (entity) {\n setSql(entity.definingSQL)\n }\n }, [entity])\n\n const type = entity ? convertToEntityType(entity.concreteType) : undefined\n const {\n mutate,\n isPending: isUpdatePending,\n error: updateError,\n } = useUpdateEntity<MaterializedView | VirtualTable>({ onSuccess: onUpdate })\n const isLoading = isEntityLoading || isUpdatePending\n const error = entityError || updateError\n return (\n <ConfirmationDialog\n open={open}\n title=\"Update SQL\"\n content={\n <>\n <SqlDefinedTableEditor\n value={sql}\n entityType={type}\n onChange={e => setSql(e.target.value)}\n disabled={isLoading}\n ></SqlDefinedTableEditor>\n {error && (\n <Alert\n sx={{\n my: 1,\n }}\n severity=\"error\"\n >\n {error.reason}\n </Alert>\n )}\n </>\n }\n confirmButtonProps={{\n children: isUpdatePending ? 'Saving...' : 'Save',\n disabled: isLoading,\n startIcon: isUpdatePending ? <SynapseSpinner /> : undefined,\n }}\n onConfirm={() => {\n if (entity) {\n mutate({ ...entity, definingSQL: sql })\n }\n }}\n onCancel={onCancel}\n maxWidth=\"md\"\n />\n )\n}\n\nexport default SqlDefinedTableEditorModal\n"],"mappings":";;;;;;;;;;AAeA,SAAgB,EACd,GACA;CACA,IAAM,EAAE,SAAM,aAAU,aAAU,gBAAa,GACzC,EACJ,MAAM,GACN,WAAW,GACX,OAAO,MACL,EAA8C,GAAU,KAAA,GAAW,EAErE,WAAW,SACb,CAAC,GACK,CAAC,GAAK,KAAU,EAAS,EAAE;CAEjC,QAAgB;EACd,AAAI,KACF,EAAO,EAAO,WAAW;CAE7B,GAAG,CAAC,CAAM,CAAC;CAEX,IAAM,IAAO,IAAS,EAAoB,EAAO,YAAY,IAAI,KAAA,GAC3D,EACJ,WACA,WAAW,GACX,OAAO,MACL,EAAiD,EAAE,WAAW,EAAS,CAAC,GACtE,IAAY,KAAmB,GAC/B,IAAQ,KAAe;CAC7B,OACE,kBAAC,GAAD;EACQ;EACN,OAAM;EACN,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,OAAO;GACP,YAAY;GACZ,WAAU,MAAK,EAAO,EAAE,OAAO,KAAK;GACpC,UAAU;EACY,CAAA,GACvB,KACC,kBAAC,GAAD;GACE,IAAI,EACF,IAAI,EACN;GACA,UAAS;aAER,EAAM;EACF,CAAA,CAET,EAAA,CAAA;EAEJ,oBAAoB;GAClB,UAAU,IAAkB,cAAc;GAC1C,UAAU;GACV,WAAW,IAAkB,kBAAC,GAAD,CAAiB,CAAA,IAAI,KAAA;EACpD;EACA,iBAAiB;GACf,AAAI,KACF,EAAO;IAAE,GAAG;IAAQ,aAAa;GAAI,CAAC;EAE1C;EACU;EACV,UAAS;CACV,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StandaloneQueryWrapper.js","names":[],"sources":["../../../src/components/StandaloneQueryWrapper/StandaloneQueryWrapper.tsx"],"sourcesContent":["import { QueryOrDeprecatedSearchParams } from '@/components/CardContainerLogic/CardContainerLogic'\nimport { useGetEntity } from '@/synapse-queries/entity/useEntity'\nimport { SynapseConstants } from '@/utils'\nimport { isTable } from '@/utils/functions/EntityTypeUtils'\nimport {\n getAdditionalFilters,\n parseEntityIdFromSqlStatement,\n} from '@/utils/functions/SqlFunctions'\nimport { DEFAULT_PAGE_SIZE } from '@/utils/SynapseConstants'\nimport { Query, QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { useState } from 'react'\nimport FullTextSearch from '../FullTextSearch/FullTextSearch'\nimport { QueryContextConsumer } from '../QueryContext/QueryContext'\nimport {\n QueryVisualizationContextConsumer,\n QueryVisualizationWrapper,\n QueryVisualizationWrapperProps,\n} from '../QueryVisualizationWrapper'\nimport { QueryWrapper, QueryWrapperProps } from '../QueryWrapper/QueryWrapper'\nimport { QueryWrapperPlotNavProps } from '../QueryWrapperPlotNav/QueryWrapperPlotNav'\nimport { RowSetView } from '../QueryWrapperPlotNav/RowSetView'\nimport { NoContentPlaceholderType } from '../SynapseTable/NoContentPlaceholderType'\nimport SearchV2, { SearchV2Props } from '../SynapseTable/SearchV2'\nimport SqlEditor from '../SynapseTable/SqlEditor'\nimport { SynapseTableConfiguration } from '../SynapseTable/SynapseTable'\nimport TopLevelControls, {\n TopLevelControlsProps,\n CustomControl,\n} from '../SynapseTable/TopLevelControls/TopLevelControls'\nimport { CustomControls } from '../SynapseTable/CustomControls/CustomControls'\nimport TotalQueryResults from '../TotalQueryResults'\n\ntype StandaloneQueryWrapperOwnProps = {\n showTopLevelControls?: boolean\n searchConfiguration?: Omit<\n SearchV2Props,\n 'queryContext' | 'queryVisualizationContext'\n >\n customControls?: CustomControl[]\n} & Omit<TopLevelControlsProps, 'customControls'> &\n Pick<\n QueryVisualizationWrapperProps,\n | 'rgbIndex'\n | 'unitDescription'\n | 'columnAliases'\n | 'noContentPlaceholderType'\n | 'showLastUpdatedOn'\n | 'visibleColumnCount'\n | 'hiddenColumns'\n | 'additionalFiltersSessionStorageKey'\n > &\n Pick<\n QueryWrapperProps,\n | 'fileIdColumnName'\n | 'fileNameColumnName'\n | 'fileVersionColumnName'\n | 'onQueryResultBundleChange'\n | 'shouldDeepLink'\n > &\n Pick<QueryWrapperPlotNavProps, 'cardConfiguration' | 'tableConfiguration'>\n\nexport type StandaloneQueryWrapperProps = QueryOrDeprecatedSearchParams &\n SynapseTableConfiguration &\n StandaloneQueryWrapperOwnProps\n\nexport const generateInitQueryRequest = (query: Query): QueryBundleRequest => {\n return {\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_FACETS |\n SynapseConstants.BUNDLE_MASK_QUERY_COUNT |\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_COLUMN_MODELS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS |\n SynapseConstants.BUNDLE_MASK_LAST_UPDATED_ON,\n entityId: parseEntityIdFromSqlStatement(query.sql),\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n query: {\n limit: DEFAULT_PAGE_SIZE,\n offset: 0,\n ...query,\n },\n }\n}\n\nexport function getQueryFromProps(props: StandaloneQueryWrapperProps) {\n if (props.query) {\n // use props.query if set\n return props.query\n } else {\n // use the deprecated sql, searchParams, and sqlOperator\n const additionalFilters = getAdditionalFilters(\n props.searchParams,\n props.sqlOperator,\n props.additionalFiltersSessionStorageKey,\n )\n return {\n sql: props.sql!,\n additionalFilters,\n offset: 0,\n }\n }\n}\n\n/**\n * This component was initially implemented on the portal side. It renders a SynapseTable if a title is provided.\n * If showTopLevelControls is set to true, then the SynapseTable will also include the TopLevelControls (search, export table, column selection).\n */\nfunction StandaloneQueryWrapper(props: StandaloneQueryWrapperProps) {\n /** @deprecated property inherited from SynapseTableProps */\n const { hideDownload } = props\n const {\n showAccessColumn,\n sql: deprecatedSql,\n hideAddToDownloadListColumn = hideDownload,\n hideQueryCount,\n name,\n showTopLevelControls = false,\n searchConfiguration,\n unitDescription = 'Results',\n rgbIndex,\n showLastUpdatedOn,\n noContentPlaceholderType = showTopLevelControls\n ? NoContentPlaceholderType.INTERACTIVE\n : NoContentPlaceholderType.STATIC,\n cardConfiguration,\n tableConfiguration,\n shouldDeepLink,\n customControls,\n ...rest\n } = props\n const [componentKey, setComponentKey] = useState(1)\n const remount = () => {\n setComponentKey(componentKey + 1)\n }\n\n const sql = props.query?.sql ?? deprecatedSql ?? ''\n const query: Query = getQueryFromProps(props)\n const derivedQueryRequestFromSearchParams = generateInitQueryRequest(query)\n const entityId = parseEntityIdFromSqlStatement(sql)\n const { data: entity } = useGetEntity(entityId)\n\n /**\n * Fully re-render the uncontrolled QueryWrapper component when the initial query changes. This eliminates a class of\n * bugs where our 'derived' state (the current query), which should be reset, is out of sync with props.\n *\n * See https://legacy.reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html#recommendation-fully-uncontrolled-component-with-a-key\n */\n const queryWrapperKey =\n JSON.stringify(derivedQueryRequestFromSearchParams) + componentKey\n return (\n <QueryWrapper\n {...rest}\n initQueryRequest={derivedQueryRequestFromSearchParams}\n shouldDeepLink={shouldDeepLink}\n key={queryWrapperKey}\n >\n <QueryVisualizationWrapper\n rgbIndex={rgbIndex}\n unitDescription={unitDescription}\n showLastUpdatedOn={showLastUpdatedOn}\n noContentPlaceholderType={noContentPlaceholderType}\n {...rest}\n >\n <QueryContextConsumer>\n {queryContext => {\n if (queryContext === undefined) {\n throw new Error(\n 'No queryContext found when calling QueryContextConsumer',\n )\n }\n return (\n <QueryVisualizationContextConsumer>\n {queryVisualizationContext => {\n if (queryVisualizationContext === undefined) {\n throw new Error(\n 'No queryVisualizationContext found when calling QueryVisualizationContextConsumer',\n )\n }\n\n return (\n <>\n {showTopLevelControls && (\n <TopLevelControls\n showColumnSelection={true}\n name={name}\n hideDownload={hideAddToDownloadListColumn}\n hideQueryCount={hideQueryCount}\n hideFacetFilterControl={true}\n hideVisualizationsControl={true}\n remount={remount}\n customControls={customControls}\n />\n )}\n {entity && isTable(entity) && entity.isSearchEnabled ? (\n <FullTextSearch\n ftsConfig={searchConfiguration?.ftsConfig}\n />\n ) : (\n <SearchV2\n {...searchConfiguration}\n queryContext={queryContext}\n queryVisualizationContext={queryVisualizationContext}\n />\n )}\n <SqlEditor />\n {showTopLevelControls && (\n <TotalQueryResults frontText={''} />\n )}\n <CustomControls\n customControls={props.customControls}\n remount={remount}\n />\n\n <RowSetView\n tableConfiguration={\n cardConfiguration\n ? undefined\n : {\n ...tableConfiguration, // if exist, use tableConfiguration property\n showAccessColumn: showAccessColumn,\n hideAddToDownloadListColumn,\n ...rest,\n }\n }\n cardConfiguration={cardConfiguration} // if exist, use the cardConfiguration property\n />\n </>\n )\n }}\n </QueryVisualizationContextConsumer>\n )\n }}\n </QueryContextConsumer>\n </QueryVisualizationWrapper>\n </QueryWrapper>\n )\n}\n\nexport default StandaloneQueryWrapper\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAiEA,IAAa,KAA4B,OAChC;CACL,UACE;CAMF,UAAU,EAA8B,EAAM,IAAI;CAClD,cAAc;CACd,OAAO;EACL,OAAA;EACA,QAAQ;EACR,GAAG;EACJ;CACF;AAGH,SAAgB,EAAkB,GAAoC;AACpE,KAAI,EAAM,MAER,QAAO,EAAM;CACR;EAEL,IAAM,IAAoB,EACxB,EAAM,cACN,EAAM,aACN,EAAM,mCACP;AACD,SAAO;GACL,KAAK,EAAM;GACX;GACA,QAAQ;GACT;;;AAQL,SAAS,EAAuB,GAAoC;CAElE,IAAM,EAAE,oBAAiB,GACnB,EACJ,qBACA,KAAK,GACL,iCAA8B,GAC9B,mBACA,SACA,0BAAuB,IACvB,wBACA,qBAAkB,WAClB,aACA,sBACA,8BAA2B,IACvB,EAAyB,cACzB,EAAyB,QAC7B,sBACA,uBACA,mBACA,mBACA,GAAG,MACD,GACE,CAAC,GAAc,KAAmB,EAAS,EAAE,EAC7C,UAAgB;AACpB,IAAgB,IAAe,EAAE;IAG7B,IAAM,EAAM,OAAO,OAAO,KAAiB,IAE3C,IAAsC,EADvB,EAAkB,EAC8B,CAAM,EAErE,EAAE,MAAM,MAAW,EADR,EAA8B,EACT,CAAS,EAQzC,IACJ,KAAK,UAAU,EAAoC,GAAG;AACxD,QACE,kBAAC,GAAD;EACE,GAAI;EACJ,kBAAkB;EACF;EAChB,KAAK;EAgFQ,EA9Eb,kBAAC,GAAD;EACY;EACO;EACE;EACO;EAC1B,GAAI;YAEJ,kBAAC,GAAD,EAAA,WACG,MAAgB;AACf,OAAI,MAAiB,KAAA,EACnB,OAAU,MACR,0DACD;AAEH,UACE,kBAAC,GAAD,EAAA,WACG,MAA6B;AAC5B,QAAI,MAA8B,KAAA,EAChC,OAAU,MACR,oFACD;AAGH,WACE,kBAAA,GAAA,EAAA,UAAA;KACG,KACC,kBAAC,GAAD;MACE,qBAAqB;MACf;MACN,cAAc;MACE;MAChB,wBAAwB;MACxB,2BAA2B;MAClB;MACO;MAChB,CAAA;KAEH,KAAU,EAAQ,EAAO,IAAI,EAAO,kBACnC,kBAAC,GAAD,EACE,WAAW,GAAqB,WAChC,CAAA,GAEF,kBAAC,GAAD;MACE,GAAI;MACU;MACa;MAC3B,CAAA;KAEJ,kBAAC,GAAD,EAAa,CAAA;KACZ,KACC,kBAAC,GAAD,EAAmB,WAAW,IAAM,CAAA;KAEtC,kBAAC,GAAD;MACE,gBAAgB,EAAM;MACb;MACT,CAAA;KAEF,kBAAC,GAAD;MACE,oBACE,IACI,KAAA,IACA;OACE,GAAG;OACe;OAClB;OACA,GAAG;OACJ;MAEY;MACnB,CAAA;KACD,EAAA,CAAA;MAG2B,CAAA;KAGnB,CAAA;EACG,CAAA,CACf"}
|
|
1
|
+
{"version":3,"file":"StandaloneQueryWrapper.js","names":[],"sources":["../../../src/components/StandaloneQueryWrapper/StandaloneQueryWrapper.tsx"],"sourcesContent":["import { QueryOrDeprecatedSearchParams } from '@/components/CardContainerLogic/CardContainerLogic'\nimport { useGetEntity } from '@/synapse-queries/entity/useEntity'\nimport { SynapseConstants } from '@/utils'\nimport { isTable } from '@/utils/functions/EntityTypeUtils'\nimport {\n getAdditionalFilters,\n parseEntityIdFromSqlStatement,\n} from '@/utils/functions/SqlFunctions'\nimport { DEFAULT_PAGE_SIZE } from '@/utils/SynapseConstants'\nimport { Query, QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { useState } from 'react'\nimport FullTextSearch from '../FullTextSearch/FullTextSearch'\nimport { QueryContextConsumer } from '../QueryContext/QueryContext'\nimport {\n QueryVisualizationContextConsumer,\n QueryVisualizationWrapper,\n QueryVisualizationWrapperProps,\n} from '../QueryVisualizationWrapper'\nimport { QueryWrapper, QueryWrapperProps } from '../QueryWrapper/QueryWrapper'\nimport { QueryWrapperPlotNavProps } from '../QueryWrapperPlotNav/QueryWrapperPlotNav'\nimport { RowSetView } from '../QueryWrapperPlotNav/RowSetView'\nimport { NoContentPlaceholderType } from '../SynapseTable/NoContentPlaceholderType'\nimport SearchV2, { SearchV2Props } from '../SynapseTable/SearchV2'\nimport SqlEditor from '../SynapseTable/SqlEditor'\nimport { SynapseTableConfiguration } from '../SynapseTable/SynapseTable'\nimport TopLevelControls, {\n TopLevelControlsProps,\n CustomControl,\n} from '../SynapseTable/TopLevelControls/TopLevelControls'\nimport { CustomControls } from '../SynapseTable/CustomControls/CustomControls'\nimport TotalQueryResults from '../TotalQueryResults'\n\ntype StandaloneQueryWrapperOwnProps = {\n showTopLevelControls?: boolean\n searchConfiguration?: Omit<\n SearchV2Props,\n 'queryContext' | 'queryVisualizationContext'\n >\n customControls?: CustomControl[]\n} & Omit<TopLevelControlsProps, 'customControls'> &\n Pick<\n QueryVisualizationWrapperProps,\n | 'rgbIndex'\n | 'unitDescription'\n | 'columnAliases'\n | 'noContentPlaceholderType'\n | 'showLastUpdatedOn'\n | 'visibleColumnCount'\n | 'hiddenColumns'\n | 'additionalFiltersSessionStorageKey'\n > &\n Pick<\n QueryWrapperProps,\n | 'fileIdColumnName'\n | 'fileNameColumnName'\n | 'fileVersionColumnName'\n | 'onQueryResultBundleChange'\n | 'shouldDeepLink'\n > &\n Pick<QueryWrapperPlotNavProps, 'cardConfiguration' | 'tableConfiguration'>\n\nexport type StandaloneQueryWrapperProps = QueryOrDeprecatedSearchParams &\n SynapseTableConfiguration &\n StandaloneQueryWrapperOwnProps\n\nexport const generateInitQueryRequest = (query: Query): QueryBundleRequest => {\n return {\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_FACETS |\n SynapseConstants.BUNDLE_MASK_QUERY_COUNT |\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_COLUMN_MODELS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS |\n SynapseConstants.BUNDLE_MASK_LAST_UPDATED_ON,\n entityId: parseEntityIdFromSqlStatement(query.sql),\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n query: {\n limit: DEFAULT_PAGE_SIZE,\n offset: 0,\n ...query,\n },\n }\n}\n\nexport function getQueryFromProps(props: StandaloneQueryWrapperProps) {\n if (props.query) {\n // use props.query if set\n return props.query\n } else {\n // use the deprecated sql, searchParams, and sqlOperator\n const additionalFilters = getAdditionalFilters(\n props.searchParams,\n props.sqlOperator,\n props.additionalFiltersSessionStorageKey,\n )\n return {\n sql: props.sql!,\n additionalFilters,\n offset: 0,\n }\n }\n}\n\n/**\n * This component was initially implemented on the portal side. It renders a SynapseTable if a title is provided.\n * If showTopLevelControls is set to true, then the SynapseTable will also include the TopLevelControls (search, export table, column selection).\n */\nfunction StandaloneQueryWrapper(props: StandaloneQueryWrapperProps) {\n /** @deprecated property inherited from SynapseTableProps */\n const { hideDownload } = props\n const {\n showAccessColumn,\n sql: deprecatedSql,\n hideAddToDownloadListColumn = hideDownload,\n hideQueryCount,\n name,\n showTopLevelControls = false,\n searchConfiguration,\n unitDescription = 'Results',\n rgbIndex,\n showLastUpdatedOn,\n noContentPlaceholderType = showTopLevelControls\n ? NoContentPlaceholderType.INTERACTIVE\n : NoContentPlaceholderType.STATIC,\n cardConfiguration,\n tableConfiguration,\n shouldDeepLink,\n customControls,\n ...rest\n } = props\n const [componentKey, setComponentKey] = useState(1)\n const remount = () => {\n setComponentKey(componentKey + 1)\n }\n\n const sql = props.query?.sql ?? deprecatedSql ?? ''\n const query: Query = getQueryFromProps(props)\n const derivedQueryRequestFromSearchParams = generateInitQueryRequest(query)\n const entityId = parseEntityIdFromSqlStatement(sql)\n const { data: entity } = useGetEntity(entityId)\n\n /**\n * Fully re-render the uncontrolled QueryWrapper component when the initial query changes. This eliminates a class of\n * bugs where our 'derived' state (the current query), which should be reset, is out of sync with props.\n *\n * See https://legacy.reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html#recommendation-fully-uncontrolled-component-with-a-key\n */\n const queryWrapperKey =\n JSON.stringify(derivedQueryRequestFromSearchParams) + componentKey\n return (\n <QueryWrapper\n {...rest}\n initQueryRequest={derivedQueryRequestFromSearchParams}\n shouldDeepLink={shouldDeepLink}\n key={queryWrapperKey}\n >\n <QueryVisualizationWrapper\n rgbIndex={rgbIndex}\n unitDescription={unitDescription}\n showLastUpdatedOn={showLastUpdatedOn}\n noContentPlaceholderType={noContentPlaceholderType}\n {...rest}\n >\n <QueryContextConsumer>\n {queryContext => {\n if (queryContext === undefined) {\n throw new Error(\n 'No queryContext found when calling QueryContextConsumer',\n )\n }\n return (\n <QueryVisualizationContextConsumer>\n {queryVisualizationContext => {\n if (queryVisualizationContext === undefined) {\n throw new Error(\n 'No queryVisualizationContext found when calling QueryVisualizationContextConsumer',\n )\n }\n\n return (\n <>\n {showTopLevelControls && (\n <TopLevelControls\n showColumnSelection={true}\n name={name}\n hideDownload={hideAddToDownloadListColumn}\n hideQueryCount={hideQueryCount}\n hideFacetFilterControl={true}\n hideVisualizationsControl={true}\n remount={remount}\n customControls={customControls}\n />\n )}\n {entity && isTable(entity) && entity.isSearchEnabled ? (\n <FullTextSearch\n ftsConfig={searchConfiguration?.ftsConfig}\n />\n ) : (\n <SearchV2\n {...searchConfiguration}\n queryContext={queryContext}\n queryVisualizationContext={queryVisualizationContext}\n />\n )}\n <SqlEditor />\n {showTopLevelControls && (\n <TotalQueryResults frontText={''} />\n )}\n <CustomControls\n customControls={props.customControls}\n remount={remount}\n />\n\n <RowSetView\n tableConfiguration={\n cardConfiguration\n ? undefined\n : {\n ...tableConfiguration, // if exist, use tableConfiguration property\n showAccessColumn: showAccessColumn,\n hideAddToDownloadListColumn,\n ...rest,\n }\n }\n cardConfiguration={cardConfiguration} // if exist, use the cardConfiguration property\n />\n </>\n )\n }}\n </QueryVisualizationContextConsumer>\n )\n }}\n </QueryContextConsumer>\n </QueryVisualizationWrapper>\n </QueryWrapper>\n )\n}\n\nexport default StandaloneQueryWrapper\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAiEA,IAAa,KAA4B,OAChC;CACL,UACE;CAMF,UAAU,EAA8B,EAAM,GAAG;CACjD,cAAc;CACd,OAAO;EACL,OAAA;EACA,QAAQ;EACR,GAAG;CACL;AACF;AAGF,SAAgB,EAAkB,GAAoC;CACpE,IAAI,EAAM,OAER,OAAO,EAAM;CACR;EAEL,IAAM,IAAoB,EACxB,EAAM,cACN,EAAM,aACN,EAAM,kCACR;EACA,OAAO;GACL,KAAK,EAAM;GACX;GACA,QAAQ;EACV;CACF;AACF;AAMA,SAAS,EAAuB,GAAoC;CAElE,IAAM,EAAE,oBAAiB,GACnB,EACJ,qBACA,KAAK,GACL,iCAA8B,GAC9B,mBACA,SACA,0BAAuB,IACvB,wBACA,qBAAkB,WAClB,aACA,sBACA,8BAA2B,IACvB,EAAyB,cACzB,EAAyB,QAC7B,sBACA,uBACA,mBACA,mBACA,GAAG,MACD,GACE,CAAC,GAAc,KAAmB,EAAS,CAAC,GAC5C,UAAgB;EACpB,EAAgB,IAAe,CAAC;CAClC,GAEM,IAAM,EAAM,OAAO,OAAO,KAAiB,IAE3C,IAAsC,EADvB,EAAkB,CAC8B,CAAK,GAEpE,EAAE,MAAM,MAAW,EADR,EAA8B,CACT,CAAQ,GAQxC,IACJ,KAAK,UAAU,CAAmC,IAAI;CACxD,OACE,kBAAC,GAAD;EACE,GAAI;EACJ,kBAAkB;EACF;EAChB,KAAK;CAgFO,GA9EZ,kBAAC,GAAD;EACY;EACO;EACE;EACO;EAC1B,GAAI;YAEJ,kBAAC,GAAD,EAAA,WACG,MAAgB;GACf,IAAI,MAAiB,KAAA,GACnB,MAAU,MACR,yDACF;GAEF,OACE,kBAAC,GAAD,EAAA,WACG,MAA6B;IAC5B,IAAI,MAA8B,KAAA,GAChC,MAAU,MACR,mFACF;IAGF,OACE,kBAAA,GAAA,EAAA,UAAA;KACG,KACC,kBAAC,GAAD;MACE,qBAAqB;MACf;MACN,cAAc;MACE;MAChB,wBAAwB;MACxB,2BAA2B;MAClB;MACO;KACjB,CAAA;KAEF,KAAU,EAAQ,CAAM,KAAK,EAAO,kBACnC,kBAAC,GAAD,EACE,WAAW,GAAqB,UACjC,CAAA,IAED,kBAAC,GAAD;MACE,GAAI;MACU;MACa;KAC5B,CAAA;KAEH,kBAAC,GAAD,CAAY,CAAA;KACX,KACC,kBAAC,GAAD,EAAmB,WAAW,GAAK,CAAA;KAErC,kBAAC,GAAD;MACE,gBAAgB,EAAM;MACb;KACV,CAAA;KAED,kBAAC,GAAD;MACE,oBACE,IACI,KAAA,IACA;OACE,GAAG;OACe;OAClB;OACA,GAAG;MACL;MAEa;KACpB,CAAA;IACD,EAAA,CAAA;GAEN,EACiC,CAAA;EAEvC,EACoB,CAAA;CACG,CAAA,CACf;AAElB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatisticsPlot.js","names":[],"sources":["../../src/components/StatisticsPlot.tsx"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseContext } from '@/utils/context/SynapseContext'\nimport {\n FilesCountStatistics,\n ProjectFilesStatisticsRequest,\n ProjectFilesStatisticsResponse,\n} from '@sage-bionetworks/synapse-types'\nimport { Component, ContextType } from 'react'\nimport Plot from './Plot/Plot'\n\nconst months = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n]\n\nexport type StatisticsPlotProps = {\n request: ProjectFilesStatisticsRequest\n title?: string\n xtitle?: string\n ytitle?: string\n isHorizontal?: boolean\n xaxistype?: string\n showlegend?: boolean\n}\n\ntype StatisticsPlotState = {\n isLoaded: boolean\n plotData?: ProjectFilesStatisticsResponse\n}\n\nclass StatisticsPlot extends Component<\n StatisticsPlotProps,\n StatisticsPlotState\n> {\n static contextType = SynapseContext\n declare context: NonNullable<ContextType<typeof SynapseContext>>\n constructor(props: StatisticsPlotProps) {\n super(props)\n this.state = {\n isLoaded: false,\n plotData: {} as ProjectFilesStatisticsResponse,\n }\n }\n\n public componentDidMount() {\n this.fetchPlotlyData()\n }\n /**\n * Get data for plotly\n *\n * @returns data corresponding to plotly widget\n */\n fetchPlotlyData = async () => {\n const { request } = this.props\n return SynapseClient.getProjectStatistics(request, this.context.accessToken)\n .then((data: ProjectFilesStatisticsResponse) => {\n this.setState({\n isLoaded: true,\n plotData: data,\n })\n })\n .catch((err: any) => {\n console.log('Error on call to get statistics ', err)\n })\n }\n\n getTrace = (\n traceName: string,\n stats: FilesCountStatistics[],\n orientation: string,\n markerColor: string,\n ) => {\n const x: string[] = []\n const y: number[] = []\n const trace = {\n orientation,\n x,\n y,\n name: traceName,\n type: 'bar',\n marker: { color: markerColor },\n hovertemplate:\n // see S3 Formatting options: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format\n `%{y:n} <br><extra>${traceName}</extra>`,\n }\n for (const statPoint of stats) {\n const statPointDate: Date = new Date(statPoint.rangeStart)\n trace.x.push(\n `${\n months[statPointDate.getUTCMonth()]\n } ${statPointDate.getUTCFullYear()}`,\n )\n trace.y.push(statPoint.filesCount)\n }\n return trace\n }\n\n showPlot = () => {\n if (!this.state.isLoaded || !this.state.plotData) {\n return\n }\n const { title, xtitle, ytitle, isHorizontal, xaxistype, showlegend } =\n this.props\n const plotData = this.state.plotData\n const layout: any = {\n showlegend,\n title,\n barmode: 'stack',\n hovermode: 'x',\n }\n const config: any = {\n displayModeBar: true,\n displaylogo: false,\n // options found here: https://github.com/plotly/plotly.js/blob/master/src/components/modebar/buttons.js\n modeBarButtonsToRemove: [\n 'sendDataToCloud',\n 'hoverCompareCartesian',\n 'select2d',\n 'lasso2d',\n 'zoom2d',\n 'resetScale2d',\n 'hoverClosestCartesian',\n 'toggleSpikelines',\n ],\n }\n if (xtitle) {\n layout.xaxis = {\n title: xtitle,\n }\n }\n if (xaxistype) {\n layout.xaxis = {\n ...layout.xaxis,\n xaxistype: xaxistype.toLowerCase(),\n }\n }\n\n if (ytitle) {\n layout.yaxis = {\n title: ytitle,\n }\n }\n // init plot_data\n const orientation: string = isHorizontal ? 'h' : 'v'\n const traces: any = []\n if (\n plotData.fileDownloads &&\n plotData.fileDownloads.months &&\n plotData.fileDownloads.months.length > 0\n ) {\n // add file downloads trace\n traces.push(\n this.getTrace(\n 'File Downloads',\n plotData.fileDownloads.months,\n orientation,\n '#7CC0C4',\n ),\n )\n }\n if (\n plotData.fileUploads &&\n plotData.fileUploads.months &&\n plotData.fileUploads.months.length > 0\n ) {\n // add file uploads trace\n traces.push(\n this.getTrace(\n 'File Uploads',\n plotData.fileUploads.months,\n orientation,\n '#D4689A',\n ),\n )\n }\n if (traces.length > 0)\n return (\n <Plot\n layout={layout}\n data={traces}\n config={config}\n className=\"SRC-fullWidth\"\n useResizeHandler={true}\n />\n )\n else return <></>\n }\n\n public render() {\n if (!this.state.isLoaded) {\n return null\n }\n return this.showPlot()\n }\n}\nexport default StatisticsPlot\n"],"mappings":";;;;;;AAUA,IAAM,IAAS;CACb;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;
|
|
1
|
+
{"version":3,"file":"StatisticsPlot.js","names":[],"sources":["../../src/components/StatisticsPlot.tsx"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseContext } from '@/utils/context/SynapseContext'\nimport {\n FilesCountStatistics,\n ProjectFilesStatisticsRequest,\n ProjectFilesStatisticsResponse,\n} from '@sage-bionetworks/synapse-types'\nimport { Component, ContextType } from 'react'\nimport Plot from './Plot/Plot'\n\nconst months = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n]\n\nexport type StatisticsPlotProps = {\n request: ProjectFilesStatisticsRequest\n title?: string\n xtitle?: string\n ytitle?: string\n isHorizontal?: boolean\n xaxistype?: string\n showlegend?: boolean\n}\n\ntype StatisticsPlotState = {\n isLoaded: boolean\n plotData?: ProjectFilesStatisticsResponse\n}\n\nclass StatisticsPlot extends Component<\n StatisticsPlotProps,\n StatisticsPlotState\n> {\n static contextType = SynapseContext\n declare context: NonNullable<ContextType<typeof SynapseContext>>\n constructor(props: StatisticsPlotProps) {\n super(props)\n this.state = {\n isLoaded: false,\n plotData: {} as ProjectFilesStatisticsResponse,\n }\n }\n\n public componentDidMount() {\n this.fetchPlotlyData()\n }\n /**\n * Get data for plotly\n *\n * @returns data corresponding to plotly widget\n */\n fetchPlotlyData = async () => {\n const { request } = this.props\n return SynapseClient.getProjectStatistics(request, this.context.accessToken)\n .then((data: ProjectFilesStatisticsResponse) => {\n this.setState({\n isLoaded: true,\n plotData: data,\n })\n })\n .catch((err: any) => {\n console.log('Error on call to get statistics ', err)\n })\n }\n\n getTrace = (\n traceName: string,\n stats: FilesCountStatistics[],\n orientation: string,\n markerColor: string,\n ) => {\n const x: string[] = []\n const y: number[] = []\n const trace = {\n orientation,\n x,\n y,\n name: traceName,\n type: 'bar',\n marker: { color: markerColor },\n hovertemplate:\n // see S3 Formatting options: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format\n `%{y:n} <br><extra>${traceName}</extra>`,\n }\n for (const statPoint of stats) {\n const statPointDate: Date = new Date(statPoint.rangeStart)\n trace.x.push(\n `${\n months[statPointDate.getUTCMonth()]\n } ${statPointDate.getUTCFullYear()}`,\n )\n trace.y.push(statPoint.filesCount)\n }\n return trace\n }\n\n showPlot = () => {\n if (!this.state.isLoaded || !this.state.plotData) {\n return\n }\n const { title, xtitle, ytitle, isHorizontal, xaxistype, showlegend } =\n this.props\n const plotData = this.state.plotData\n const layout: any = {\n showlegend,\n title,\n barmode: 'stack',\n hovermode: 'x',\n }\n const config: any = {\n displayModeBar: true,\n displaylogo: false,\n // options found here: https://github.com/plotly/plotly.js/blob/master/src/components/modebar/buttons.js\n modeBarButtonsToRemove: [\n 'sendDataToCloud',\n 'hoverCompareCartesian',\n 'select2d',\n 'lasso2d',\n 'zoom2d',\n 'resetScale2d',\n 'hoverClosestCartesian',\n 'toggleSpikelines',\n ],\n }\n if (xtitle) {\n layout.xaxis = {\n title: xtitle,\n }\n }\n if (xaxistype) {\n layout.xaxis = {\n ...layout.xaxis,\n xaxistype: xaxistype.toLowerCase(),\n }\n }\n\n if (ytitle) {\n layout.yaxis = {\n title: ytitle,\n }\n }\n // init plot_data\n const orientation: string = isHorizontal ? 'h' : 'v'\n const traces: any = []\n if (\n plotData.fileDownloads &&\n plotData.fileDownloads.months &&\n plotData.fileDownloads.months.length > 0\n ) {\n // add file downloads trace\n traces.push(\n this.getTrace(\n 'File Downloads',\n plotData.fileDownloads.months,\n orientation,\n '#7CC0C4',\n ),\n )\n }\n if (\n plotData.fileUploads &&\n plotData.fileUploads.months &&\n plotData.fileUploads.months.length > 0\n ) {\n // add file uploads trace\n traces.push(\n this.getTrace(\n 'File Uploads',\n plotData.fileUploads.months,\n orientation,\n '#D4689A',\n ),\n )\n }\n if (traces.length > 0)\n return (\n <Plot\n layout={layout}\n data={traces}\n config={config}\n className=\"SRC-fullWidth\"\n useResizeHandler={true}\n />\n )\n else return <></>\n }\n\n public render() {\n if (!this.state.isLoaded) {\n return null\n }\n return this.showPlot()\n }\n}\nexport default StatisticsPlot\n"],"mappings":";;;;;;AAUA,IAAM,IAAS;CACb;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GAiBM,IAAN,cAA6B,EAG3B;CACA,OAAO,cAAc;CAErB,YAAY,GAA4B;EAEtC,AADA,MAAM,CAAK,GACX,KAAK,QAAQ;GACX,UAAU;GACV,UAAU,CAAC;EACb;CACF;CAEA,oBAA2B;EACzB,KAAK,gBAAgB;CACvB;CAMA,kBAAkB,YAAY;EAC5B,IAAM,EAAE,eAAY,KAAK;EACzB,OAAO,EAAc,qBAAqB,GAAS,KAAK,QAAQ,WAAW,EACxE,MAAM,MAAyC;GAC9C,KAAK,SAAS;IACZ,UAAU;IACV,UAAU;GACZ,CAAC;EACH,CAAC,EACA,OAAO,MAAa;GACnB,QAAQ,IAAI,oCAAoC,CAAG;EACrD,CAAC;CACL;CAEA,YACE,GACA,GACA,GACA,MACG;EAGH,IAAM,IAAQ;GACZ;GACA,GAAA,CAAA;GACA,GAAA,CAAA;GACA,MAAM;GACN,MAAM;GACN,QAAQ,EAAE,OAAO,EAAY;GAC7B,eAEE,qBAAqB,EAAU;EACnC;EACA,KAAK,IAAM,KAAa,GAAO;GAC7B,IAAM,IAAsB,IAAI,KAAK,EAAU,UAAU;GAMzD,AALA,EAAM,EAAE,KACN,GACE,EAAO,EAAc,YAAY,GAClC,GAAG,EAAc,eAAe,GACnC,GACA,EAAM,EAAE,KAAK,EAAU,UAAU;EACnC;EACA,OAAO;CACT;CAEA,iBAAiB;EACf,IAAI,CAAC,KAAK,MAAM,YAAY,CAAC,KAAK,MAAM,UACtC;EAEF,IAAM,EAAE,UAAO,WAAQ,WAAQ,iBAAc,cAAW,kBACtD,KAAK,OACD,IAAW,KAAK,MAAM,UACtB,IAAc;GAClB;GACA;GACA,SAAS;GACT,WAAW;EACb,GACM,IAAc;GAClB,gBAAgB;GAChB,aAAa;GAEb,wBAAwB;IACtB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF;EACF;EAaA,AAZI,MACF,EAAO,QAAQ,EACb,OAAO,EACT,IAEE,MACF,EAAO,QAAQ;GACb,GAAG,EAAO;GACV,WAAW,EAAU,YAAY;EACnC,IAGE,MACF,EAAO,QAAQ,EACb,OAAO,EACT;EAGF,IAAM,IAAsB,IAAe,MAAM,KAC3C,IAAc,CAAC;EAyChB,OAvCH,EAAS,iBACT,EAAS,cAAc,UACvB,EAAS,cAAc,OAAO,SAAS,KAGvC,EAAO,KACL,KAAK,SACH,kBACA,EAAS,cAAc,QACvB,GACA,SACF,CACF,GAGA,EAAS,eACT,EAAS,YAAY,UACrB,EAAS,YAAY,OAAO,SAAS,KAGrC,EAAO,KACL,KAAK,SACH,gBACA,EAAS,YAAY,QACrB,GACA,SACF,CACF,GAEE,EAAO,SAAS,IAEhB,kBAAC,GAAD;GACU;GACR,MAAM;GACE;GACR,WAAU;GACV,kBAAkB;EACnB,CAAA,IAEO,kBAAA,GAAA,CAAI,CAAA;CAClB;CAEA,SAAgB;EAId,OAHK,KAAK,MAAM,WAGT,KAAK,SAAS,IAFZ;CAGX;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepperDialog.js","names":[],"sources":["../../../src/components/StepperDialog/StepperDialog.tsx"],"sourcesContent":["import { Alert, Button, Box } from '@mui/material'\nimport { ReactNode } from 'react'\nimport { DialogBase } from '../DialogBase'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport SpinnerButton from '../SpinnerButton/SpinnerButton'\nimport { DialogContentProps } from '@mui/material'\n\nexport type Step<TStepId = string> = {\n id: TStepId\n title: string\n cancelButtonText?: string\n onConfirm?: () => void\n confirmStep?: string\n confirmEnabled?: boolean\n confirmButtonText?: string\n previousStep?: string\n nextStep?: string\n nextEnabled?: boolean\n contentProps?: DialogContentProps\n}\n\nexport type Steps = Step[]\n\nexport type StepperDialogProps = {\n errorMessage: string | undefined\n onCancel: () => void\n onConfirm: () => void\n confirming?: boolean\n onStepChange: (arg: string) => void\n open: boolean\n step: Step\n content: ReactNode\n loading: boolean\n}\n\n/**\n * A stepper dialog built using MUI components.\n */\nfunction StepperDialog({\n errorMessage,\n onCancel,\n onConfirm,\n confirming,\n onStepChange,\n open,\n step,\n content,\n loading,\n}: StepperDialogProps) {\n if (!step) return null\n\n const dialogContent = (\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n }}\n >\n <>\n {loading ? <SynapseSpinner size={40} /> : content}\n {errorMessage && <Alert severity=\"error\">{errorMessage}</Alert>}\n </>\n </Box>\n )\n\n return (\n <DialogBase\n actions={\n <>\n {step?.cancelButtonText && (\n <Button variant=\"outlined\" onClick={() => onCancel()}>\n {step.cancelButtonText}\n </Button>\n )}\n {step?.previousStep && (\n <Button\n variant=\"outlined\"\n color=\"primary\"\n onClick={() =>\n step.previousStep ? onStepChange(step.previousStep) : null\n }\n >\n Back\n </Button>\n )}\n {step?.nextStep && (\n <Button\n variant=\"contained\"\n color=\"primary\"\n disabled={!step.nextEnabled}\n onClick={() =>\n step.nextStep ? onStepChange(step.nextStep) : null\n }\n >\n Next\n </Button>\n )}\n {onConfirm && step?.confirmButtonText && (\n <SpinnerButton\n variant=\"contained\"\n color=\"primary\"\n disabled={!step.confirmEnabled}\n onClick={() => {\n onConfirm()\n }}\n showSpinner={confirming === true}\n sx={{ marginLeft: '8px' }}\n >\n {step.confirmButtonText}\n </SpinnerButton>\n )}\n </>\n }\n content={dialogContent}\n onCancel={onCancel}\n open={open}\n title={step.title}\n sx={{\n h2: { paddingTop: 0, paddingBottom: '20px' },\n }}\n contentProps={step.contentProps}\n />\n )\n}\n\nexport default StepperDialog\n"],"mappings":";;;;;;AAsCA,SAAS,EAAc,EACrB,iBACA,aACA,cACA,eACA,iBACA,SACA,SACA,YACA,cACqB;
|
|
1
|
+
{"version":3,"file":"StepperDialog.js","names":[],"sources":["../../../src/components/StepperDialog/StepperDialog.tsx"],"sourcesContent":["import { Alert, Button, Box } from '@mui/material'\nimport { ReactNode } from 'react'\nimport { DialogBase } from '../DialogBase'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport SpinnerButton from '../SpinnerButton/SpinnerButton'\nimport { DialogContentProps } from '@mui/material'\n\nexport type Step<TStepId = string> = {\n id: TStepId\n title: string\n cancelButtonText?: string\n onConfirm?: () => void\n confirmStep?: string\n confirmEnabled?: boolean\n confirmButtonText?: string\n previousStep?: string\n nextStep?: string\n nextEnabled?: boolean\n contentProps?: DialogContentProps\n}\n\nexport type Steps = Step[]\n\nexport type StepperDialogProps = {\n errorMessage: string | undefined\n onCancel: () => void\n onConfirm: () => void\n confirming?: boolean\n onStepChange: (arg: string) => void\n open: boolean\n step: Step\n content: ReactNode\n loading: boolean\n}\n\n/**\n * A stepper dialog built using MUI components.\n */\nfunction StepperDialog({\n errorMessage,\n onCancel,\n onConfirm,\n confirming,\n onStepChange,\n open,\n step,\n content,\n loading,\n}: StepperDialogProps) {\n if (!step) return null\n\n const dialogContent = (\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n }}\n >\n <>\n {loading ? <SynapseSpinner size={40} /> : content}\n {errorMessage && <Alert severity=\"error\">{errorMessage}</Alert>}\n </>\n </Box>\n )\n\n return (\n <DialogBase\n actions={\n <>\n {step?.cancelButtonText && (\n <Button variant=\"outlined\" onClick={() => onCancel()}>\n {step.cancelButtonText}\n </Button>\n )}\n {step?.previousStep && (\n <Button\n variant=\"outlined\"\n color=\"primary\"\n onClick={() =>\n step.previousStep ? onStepChange(step.previousStep) : null\n }\n >\n Back\n </Button>\n )}\n {step?.nextStep && (\n <Button\n variant=\"contained\"\n color=\"primary\"\n disabled={!step.nextEnabled}\n onClick={() =>\n step.nextStep ? onStepChange(step.nextStep) : null\n }\n >\n Next\n </Button>\n )}\n {onConfirm && step?.confirmButtonText && (\n <SpinnerButton\n variant=\"contained\"\n color=\"primary\"\n disabled={!step.confirmEnabled}\n onClick={() => {\n onConfirm()\n }}\n showSpinner={confirming === true}\n sx={{ marginLeft: '8px' }}\n >\n {step.confirmButtonText}\n </SpinnerButton>\n )}\n </>\n }\n content={dialogContent}\n onCancel={onCancel}\n open={open}\n title={step.title}\n sx={{\n h2: { paddingTop: 0, paddingBottom: '20px' },\n }}\n contentProps={step.contentProps}\n />\n )\n}\n\nexport default StepperDialog\n"],"mappings":";;;;;;AAsCA,SAAS,EAAc,EACrB,iBACA,aACA,cACA,eACA,iBACA,SACA,SACA,YACA,cACqB;CACrB,IAAI,CAAC,GAAM,OAAO;CAElB,IAAM,IACJ,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,eAAe;GACf,KAAK;EACP;YAEA,kBAAA,GAAA,EAAA,UAAA,CACG,IAAU,kBAAC,GAAD,EAAgB,MAAM,GAAK,CAAA,IAAI,GACzC,KAAgB,kBAAC,GAAD;GAAO,UAAS;aAAS;EAAoB,CAAA,CAC9D,EAAA,CAAA;CACC,CAAA;CAGP,OACE,kBAAC,GAAD;EACE,SACE,kBAAA,GAAA,EAAA,UAAA;GACG,GAAM,oBACL,kBAAC,GAAD;IAAQ,SAAQ;IAAW,eAAe,EAAS;cAChD,EAAK;GACA,CAAA;GAET,GAAM,gBACL,kBAAC,GAAD;IACE,SAAQ;IACR,OAAM;IACN,eACE,EAAK,eAAe,EAAa,EAAK,YAAY,IAAI;cAEzD;GAEO,CAAA;GAET,GAAM,YACL,kBAAC,GAAD;IACE,SAAQ;IACR,OAAM;IACN,UAAU,CAAC,EAAK;IAChB,eACE,EAAK,WAAW,EAAa,EAAK,QAAQ,IAAI;cAEjD;GAEO,CAAA;GAET,KAAa,GAAM,qBAClB,kBAAC,GAAD;IACE,SAAQ;IACR,OAAM;IACN,UAAU,CAAC,EAAK;IAChB,eAAe;KACb,EAAU;IACZ;IACA,aAAa,MAAe;IAC5B,IAAI,EAAE,YAAY,MAAM;cAEvB,EAAK;GACO,CAAA;EAEjB,EAAA,CAAA;EAEJ,SAAS;EACC;EACJ;EACN,OAAO,EAAK;EACZ,IAAI,EACF,IAAI;GAAE,YAAY;GAAG,eAAe;EAAO,EAC7C;EACA,cAAc,EAAK;CACpB,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorybookComponentWrapper.js","names":[],"sources":["../../src/components/StorybookComponentWrapper.tsx"],"sourcesContent":["import { StandaloneLoginForm } from '@/components/Authentication/index'\nimport SynapseClient from '@/synapse-client'\nimport {\n defaultQueryClientConfig,\n SynapseContextProvider,\n SynapseContextType,\n} from '@/utils'\nimport { ApplicationSessionContextProvider } from '@/utils/AppUtils/session/ApplicationSessionContext'\nimport {\n SynapseSessionManager,\n type SessionState,\n} from '@/utils/AppUtils/session/SynapseSessionManager'\nimport { STACK_MAP, SynapseStack } from '@/utils/functions/getEndpoint'\nimport useDetectSSOCode from '@/utils/hooks/useDetectSSOCode'\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query'\nimport { ReactQueryDevtools } from '@tanstack/react-query-devtools'\nimport {\n ReactNode,\n Suspense,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useSyncExternalStore,\n} from 'react'\nimport { createMemoryRouter } from 'react-router'\nimport { RouterProvider } from 'react-router/dom'\nimport { SynapseToastContainer } from './ToastMessage'\n\nconst storybookQueryClient = new QueryClient(defaultQueryClientConfig)\n\n// Module-level session manager instance, stable across story switches (like the QueryClient above)\nconst sessionManager = new SynapseSessionManager({\n onSessionInvalid: () => {\n // In Storybook, just refresh the session instead of reloading the page\n sessionManager.refreshSession()\n },\n})\n\nfunction overrideEndpoint(stack: SynapseStack) {\n const endpointConfig = STACK_MAP[stack]\n ;(window as any)['SRC_OVERRIDE_ENDPOINT_CONFIG'] = endpointConfig\n}\n\n/**\n * Wraps storybook story components to ensure that all components receive required context.\n * @param props\n * @returns\n */\nexport function StorybookComponentWrapper(props: {\n children: ReactNode\n /* This will match the `globalTypes` object in preview.tsx. */\n storybookContext: {\n args: {\n isAuthenticated?: boolean\n }\n globals: {\n stack?: SynapseStack\n showReactQueryDevtools?: boolean\n }\n parameters: {\n stack?: SynapseStack\n withRouter?: boolean\n requireLogin?: boolean\n }\n }\n}) {\n const { storybookContext } = props\n\n const currentStack: SynapseStack = (storybookContext.globals.stack ||\n storybookContext.parameters.stack) as SynapseStack\n\n useEffect(() => {\n overrideEndpoint(currentStack)\n }, [currentStack])\n\n // Subscribe to the framework-agnostic SynapseSessionManager for token/auth state\n // These methods are bound in the SynapseSessionManager constructor, so they are safe to pass directly.\n const sessionState: SessionState = useSyncExternalStore(\n // eslint-disable-next-line @typescript-eslint/unbound-method\n sessionManager.subscribe,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n sessionManager.getSnapshot,\n )\n\n // Track whether we've started the manager so we only start once (module-level instance persists across renders)\n const managerStartedRef = useRef(false)\n\n useEffect(() => {\n if (!managerStartedRef.current) {\n sessionManager.start()\n managerStartedRef.current = true\n }\n return () => {\n sessionManager.dispose()\n managerStartedRef.current = false\n }\n }, [])\n\n // When the stack changes, restart the session manager to pick up the new endpoint\n useEffect(() => {\n if (managerStartedRef.current) {\n sessionManager.dispose()\n sessionManager.start()\n }\n }, [currentStack])\n\n const shouldPromptForLogin =\n storybookContext.parameters.requireLogin &&\n currentStack !== 'mock' &&\n sessionState.hasInitializedSession &&\n !sessionState.isAuthenticated\n\n const { isLoading: isLoadingSSO } = useDetectSSOCode({\n onSignInComplete: () => {\n void sessionManager.refreshSession()\n },\n onError: (err: unknown) => {\n console.error('SSO error in Storybook:', err)\n },\n isInitializingSession: !sessionState.hasInitializedSession,\n isAuthenticated: sessionState.isAuthenticated,\n })\n\n useEffect(() => {\n async function resetCache() {\n await storybookQueryClient.cancelQueries()\n await storybookQueryClient.resetQueries()\n }\n\n void resetCache()\n }, [sessionState.token, currentStack])\n\n const effectiveToken = useMemo(() => {\n if (currentStack === 'mock') {\n return storybookContext.args.isAuthenticated ? 'fake token' : undefined\n }\n return sessionState.token\n }, [sessionState.token, currentStack, storybookContext.args.isAuthenticated])\n\n const effectiveIsAuthenticated = useMemo(() => {\n if (currentStack === 'mock') {\n return !!storybookContext.args.isAuthenticated\n }\n return sessionState.isAuthenticated\n }, [\n sessionState.isAuthenticated,\n currentStack,\n storybookContext.args.isAuthenticated,\n ])\n\n const refreshSession = useCallback(async () => {\n await sessionManager.refreshSession()\n }, [])\n\n const clearSession = useCallback(async () => {\n await sessionManager.clearSession()\n }, [])\n\n const applicationSessionContext = useMemo(\n () => ({\n token: effectiveToken,\n realmId: sessionState.realmId,\n userId: sessionState.userId,\n isAuthenticated: effectiveIsAuthenticated,\n hasInitializedSession: sessionState.hasInitializedSession,\n refreshSession,\n clearSession,\n isLoadingSSO,\n twoFactorAuthSSOErrorResponse: undefined,\n termsOfServiceStatus: undefined,\n twoFactorStatus: undefined,\n }),\n [\n effectiveToken,\n effectiveIsAuthenticated,\n sessionState.realmId,\n sessionState.userId,\n sessionState.hasInitializedSession,\n refreshSession,\n clearSession,\n isLoadingSSO,\n ],\n )\n\n const synapseContext: Partial<SynapseContextType> = useMemo(\n () => ({\n accessToken: effectiveToken,\n isAuthenticated: effectiveIsAuthenticated,\n isInExperimentalMode: SynapseClient.isInSynapseExperimentalMode(),\n utcTime: SynapseClient.getUseUtcTimeFromCookie(),\n withErrorBoundary: true,\n downloadCartPageUrl: '/?path=/story/download-downloadcartpage--demo',\n }),\n [effectiveToken, effectiveIsAuthenticated],\n )\n\n const wrappedStory = (\n <Suspense fallback={'global suspense loading...'}>\n <QueryClientProvider client={storybookQueryClient}>\n <ApplicationSessionContextProvider context={applicationSessionContext}>\n <SynapseContextProvider\n key={currentStack}\n synapseContext={synapseContext}\n >\n {storybookContext.globals.showReactQueryDevtools && (\n <ReactQueryDevtools />\n )}\n <SynapseToastContainer />\n <main>\n {shouldPromptForLogin ? (\n <StandaloneLoginForm\n sessionCallback={() => {\n void sessionManager.refreshSession()\n }}\n />\n ) : (\n props.children\n )}\n </main>\n </SynapseContextProvider>\n </ApplicationSessionContextProvider>\n </QueryClientProvider>\n </Suspense>\n )\n\n if (!storybookContext.parameters.withRouter) {\n return wrappedStory\n }\n\n const router = createMemoryRouter([\n {\n path: '/',\n element: wrappedStory,\n },\n ])\n\n return <RouterProvider router={router} />\n}\n\nexport default StorybookComponentWrapper\n"],"mappings":";;;;;;;;;;;;;;;;;;;AA6BA,IAAM,IAAuB,IAAI,EAAY,
|
|
1
|
+
{"version":3,"file":"StorybookComponentWrapper.js","names":[],"sources":["../../src/components/StorybookComponentWrapper.tsx"],"sourcesContent":["import { StandaloneLoginForm } from '@/components/Authentication/index'\nimport SynapseClient from '@/synapse-client'\nimport {\n defaultQueryClientConfig,\n SynapseContextProvider,\n SynapseContextType,\n} from '@/utils'\nimport { ApplicationSessionContextProvider } from '@/utils/AppUtils/session/ApplicationSessionContext'\nimport {\n SynapseSessionManager,\n type SessionState,\n} from '@/utils/AppUtils/session/SynapseSessionManager'\nimport { STACK_MAP, SynapseStack } from '@/utils/functions/getEndpoint'\nimport useDetectSSOCode from '@/utils/hooks/useDetectSSOCode'\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query'\nimport { ReactQueryDevtools } from '@tanstack/react-query-devtools'\nimport {\n ReactNode,\n Suspense,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useSyncExternalStore,\n} from 'react'\nimport { createMemoryRouter } from 'react-router'\nimport { RouterProvider } from 'react-router/dom'\nimport { SynapseToastContainer } from './ToastMessage'\n\nconst storybookQueryClient = new QueryClient(defaultQueryClientConfig)\n\n// Module-level session manager instance, stable across story switches (like the QueryClient above)\nconst sessionManager = new SynapseSessionManager({\n onSessionInvalid: () => {\n // In Storybook, just refresh the session instead of reloading the page\n sessionManager.refreshSession()\n },\n})\n\nfunction overrideEndpoint(stack: SynapseStack) {\n const endpointConfig = STACK_MAP[stack]\n ;(window as any)['SRC_OVERRIDE_ENDPOINT_CONFIG'] = endpointConfig\n}\n\n/**\n * Wraps storybook story components to ensure that all components receive required context.\n * @param props\n * @returns\n */\nexport function StorybookComponentWrapper(props: {\n children: ReactNode\n /* This will match the `globalTypes` object in preview.tsx. */\n storybookContext: {\n args: {\n isAuthenticated?: boolean\n }\n globals: {\n stack?: SynapseStack\n showReactQueryDevtools?: boolean\n }\n parameters: {\n stack?: SynapseStack\n withRouter?: boolean\n requireLogin?: boolean\n }\n }\n}) {\n const { storybookContext } = props\n\n const currentStack: SynapseStack = (storybookContext.globals.stack ||\n storybookContext.parameters.stack) as SynapseStack\n\n useEffect(() => {\n overrideEndpoint(currentStack)\n }, [currentStack])\n\n // Subscribe to the framework-agnostic SynapseSessionManager for token/auth state\n // These methods are bound in the SynapseSessionManager constructor, so they are safe to pass directly.\n const sessionState: SessionState = useSyncExternalStore(\n // eslint-disable-next-line @typescript-eslint/unbound-method\n sessionManager.subscribe,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n sessionManager.getSnapshot,\n )\n\n // Track whether we've started the manager so we only start once (module-level instance persists across renders)\n const managerStartedRef = useRef(false)\n\n useEffect(() => {\n if (!managerStartedRef.current) {\n sessionManager.start()\n managerStartedRef.current = true\n }\n return () => {\n sessionManager.dispose()\n managerStartedRef.current = false\n }\n }, [])\n\n // When the stack changes, restart the session manager to pick up the new endpoint\n useEffect(() => {\n if (managerStartedRef.current) {\n sessionManager.dispose()\n sessionManager.start()\n }\n }, [currentStack])\n\n const shouldPromptForLogin =\n storybookContext.parameters.requireLogin &&\n currentStack !== 'mock' &&\n sessionState.hasInitializedSession &&\n !sessionState.isAuthenticated\n\n const { isLoading: isLoadingSSO } = useDetectSSOCode({\n onSignInComplete: () => {\n void sessionManager.refreshSession()\n },\n onError: (err: unknown) => {\n console.error('SSO error in Storybook:', err)\n },\n isInitializingSession: !sessionState.hasInitializedSession,\n isAuthenticated: sessionState.isAuthenticated,\n })\n\n useEffect(() => {\n async function resetCache() {\n await storybookQueryClient.cancelQueries()\n await storybookQueryClient.resetQueries()\n }\n\n void resetCache()\n }, [sessionState.token, currentStack])\n\n const effectiveToken = useMemo(() => {\n if (currentStack === 'mock') {\n return storybookContext.args.isAuthenticated ? 'fake token' : undefined\n }\n return sessionState.token\n }, [sessionState.token, currentStack, storybookContext.args.isAuthenticated])\n\n const effectiveIsAuthenticated = useMemo(() => {\n if (currentStack === 'mock') {\n return !!storybookContext.args.isAuthenticated\n }\n return sessionState.isAuthenticated\n }, [\n sessionState.isAuthenticated,\n currentStack,\n storybookContext.args.isAuthenticated,\n ])\n\n const refreshSession = useCallback(async () => {\n await sessionManager.refreshSession()\n }, [])\n\n const clearSession = useCallback(async () => {\n await sessionManager.clearSession()\n }, [])\n\n const applicationSessionContext = useMemo(\n () => ({\n token: effectiveToken,\n realmId: sessionState.realmId,\n userId: sessionState.userId,\n isAuthenticated: effectiveIsAuthenticated,\n hasInitializedSession: sessionState.hasInitializedSession,\n refreshSession,\n clearSession,\n isLoadingSSO,\n twoFactorAuthSSOErrorResponse: undefined,\n termsOfServiceStatus: undefined,\n twoFactorStatus: undefined,\n }),\n [\n effectiveToken,\n effectiveIsAuthenticated,\n sessionState.realmId,\n sessionState.userId,\n sessionState.hasInitializedSession,\n refreshSession,\n clearSession,\n isLoadingSSO,\n ],\n )\n\n const synapseContext: Partial<SynapseContextType> = useMemo(\n () => ({\n accessToken: effectiveToken,\n isAuthenticated: effectiveIsAuthenticated,\n isInExperimentalMode: SynapseClient.isInSynapseExperimentalMode(),\n utcTime: SynapseClient.getUseUtcTimeFromCookie(),\n withErrorBoundary: true,\n downloadCartPageUrl: '/?path=/story/download-downloadcartpage--demo',\n }),\n [effectiveToken, effectiveIsAuthenticated],\n )\n\n const wrappedStory = (\n <Suspense fallback={'global suspense loading...'}>\n <QueryClientProvider client={storybookQueryClient}>\n <ApplicationSessionContextProvider context={applicationSessionContext}>\n <SynapseContextProvider\n key={currentStack}\n synapseContext={synapseContext}\n >\n {storybookContext.globals.showReactQueryDevtools && (\n <ReactQueryDevtools />\n )}\n <SynapseToastContainer />\n <main>\n {shouldPromptForLogin ? (\n <StandaloneLoginForm\n sessionCallback={() => {\n void sessionManager.refreshSession()\n }}\n />\n ) : (\n props.children\n )}\n </main>\n </SynapseContextProvider>\n </ApplicationSessionContextProvider>\n </QueryClientProvider>\n </Suspense>\n )\n\n if (!storybookContext.parameters.withRouter) {\n return wrappedStory\n }\n\n const router = createMemoryRouter([\n {\n path: '/',\n element: wrappedStory,\n },\n ])\n\n return <RouterProvider router={router} />\n}\n\nexport default StorybookComponentWrapper\n"],"mappings":";;;;;;;;;;;;;;;;;;;AA6BA,IAAM,IAAuB,IAAI,EAAY,CAAwB,GAG/D,IAAiB,IAAI,EAAsB,EAC/C,wBAAwB;CAEtB,EAAe,eAAe;AAChC,EACF,CAAC;AAED,SAAS,EAAiB,GAAqB;CAC7C,IAAM,IAAiB,EAAU;CAChC,OAAgB,+BAAkC;AACrD;AAOA,SAAgB,EAA0B,GAiBvC;CACD,IAAM,EAAE,wBAAqB,GAEvB,IAA8B,EAAiB,QAAQ,SAC3D,EAAiB,WAAW;CAE9B,QAAgB;EACd,EAAiB,CAAY;CAC/B,GAAG,CAAC,CAAY,CAAC;CAIjB,IAAM,IAA6B,EAEjC,EAAe,WAEf,EAAe,WACjB,GAGM,IAAoB,EAAO,EAAK;CActC,AAZA,SACE,AAEE,EAAkB,aADlB,EAAe,MAAM,GACO,WAEjB;EAEX,AADA,EAAe,QAAQ,GACvB,EAAkB,UAAU;CAC9B,IACC,CAAC,CAAC,GAGL,QAAgB;EACd,AAAI,EAAkB,YACpB,EAAe,QAAQ,GACvB,EAAe,MAAM;CAEzB,GAAG,CAAC,CAAY,CAAC;CAEjB,IAAM,IACJ,EAAiB,WAAW,gBAC5B,MAAiB,UACjB,EAAa,yBACb,CAAC,EAAa,iBAEV,EAAE,WAAW,MAAiB,EAAiB;EACnD,wBAAwB;GACtB,EAAoB,eAAe;EACrC;EACA,UAAU,MAAiB;GACzB,QAAQ,MAAM,2BAA2B,CAAG;EAC9C;EACA,uBAAuB,CAAC,EAAa;EACrC,iBAAiB,EAAa;CAChC,CAAC;CAED,QAAgB;EACd,eAAe,IAAa;GAE1B,AADA,MAAM,EAAqB,cAAc,GACzC,MAAM,EAAqB,aAAa;EAC1C;EAEA,EAAgB;CAClB,GAAG,CAAC,EAAa,OAAO,CAAY,CAAC;CAErC,IAAM,IAAiB,QACjB,MAAiB,SACZ,EAAiB,KAAK,kBAAkB,eAAe,KAAA,IAEzD,EAAa,OACnB;EAAC,EAAa;EAAO;EAAc,EAAiB,KAAK;CAAe,CAAC,GAEtE,IAA2B,QAC3B,MAAiB,SACZ,CAAC,CAAC,EAAiB,KAAK,kBAE1B,EAAa,iBACnB;EACD,EAAa;EACb;EACA,EAAiB,KAAK;CACxB,CAAC,GAEK,IAAiB,EAAY,YAAY;EAC7C,MAAM,EAAe,eAAe;CACtC,GAAG,CAAC,CAAC,GAEC,IAAe,EAAY,YAAY;EAC3C,MAAM,EAAe,aAAa;CACpC,GAAG,CAAC,CAAC,GAwCC,IACJ,kBAAC,GAAD;EAAU,UAAU;YAClB,kBAAC,GAAD;GAAqB,QAAQ;aAC3B,kBAAC,GAAD;IAAmC,SAzCP,SACzB;KACL,OAAO;KACP,SAAS,EAAa;KACtB,QAAQ,EAAa;KACrB,iBAAiB;KACjB,uBAAuB,EAAa;KACpC;KACA;KACA;KACA,+BAA+B,KAAA;KAC/B,sBAAsB,KAAA;KACtB,iBAAiB,KAAA;IACnB,IACA;KACE;KACA;KACA,EAAa;KACb,EAAa;KACb,EAAa;KACb;KACA;KACA;IACF,CAkBgD;cAC1C,kBAAC,GAAD;KAEkB,gBAlB0B,SAC3C;MACL,aAAa;MACb,iBAAiB;MACjB,sBAAsB,EAAc,4BAA4B;MAChE,SAAS,EAAc,wBAAwB;MAC/C,mBAAmB;MACnB,qBAAqB;KACvB,IACA,CAAC,GAAgB,CAAwB,CASjB;eAFlB;MAIG,EAAiB,QAAQ,0BACxB,kBAAC,GAAD,CAAqB,CAAA;MAEvB,kBAAC,GAAD,CAAwB,CAAA;MACxB,kBAAC,QAAD,EAAA,UACG,IACC,kBAAC,GAAD,EACE,uBAAuB;OACrB,EAAoB,eAAe;MACrC,EACD,CAAA,IAED,EAAM,SAEJ,CAAA;KACgB;OAlBjB,CAkBiB;GACS,CAAA;EAChB,CAAA;CACb,CAAA;CAcZ,OAXK,EAAiB,WAAW,aAW1B,kBAAC,GAAD,EAAwB,QAPhB,EAAmB,CAChC;EACE,MAAM;EACN,SAAS;CACX,CACF,CAE+B,EAAS,CAAA,IAV/B;AAWX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubmissionViewScopeEditor.js","names":[],"sources":["../../../src/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.tsx"],"sourcesContent":["import { useGetEvaluation } from '@/synapse-queries/evaluation/useEvaluation'\nimport {\n Alert,\n Box,\n IconButton,\n Link,\n Skeleton,\n Typography,\n} from '@mui/material'\nimport { ACCESS_TYPE } from '@sage-bionetworks/synapse-types'\nimport EvaluationFinder from '../EvaluationFinder/EvaluationFinder'\nimport IconSvg from '../IconSvg'\n\ntype SubmissionViewScopeItemProps = {\n evaluationId: string\n onRemove: () => void\n}\n\nfunction SubmissionViewScopeItem(props: SubmissionViewScopeItemProps) {\n const { evaluationId, onRemove } = props\n const {\n data: evaluation,\n isLoading,\n isError,\n error,\n } = useGetEvaluation(evaluationId)\n if (isLoading) {\n return <Skeleton width={'100%'} />\n }\n if (isError) {\n return (\n <Alert severity=\"error\">\n <Typography>{error.reason}</Typography>\n <Link\n onClick={e => {\n onRemove()\n }}\n >\n Remove from scope\n </Link>\n </Alert>\n )\n }\n return (\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n gap: 1,\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <Typography key={evaluation!.id} variant={'smallText1'}>\n {evaluation!.name}\n </Typography>\n <IconButton\n size={'small'}\n aria-label={`Remove ${evaluation!.name!} from scope`}\n onClick={() => {\n onRemove()\n }}\n sx={{\n '&:hover': {\n color: 'error.main',\n },\n }}\n >\n <IconSvg icon={'delete'} fontSize={'inherit'} wrap={false} />\n </IconButton>\n </Box>\n )\n}\n\nexport type SubmissionViewScopeEditorProps = {\n evaluationIds: string[]\n onChange: (evaluationIds: string[]) => void\n}\n\n/**\n * Component used to select evaluations to define a SubmissionView scope\n * @param props\n * @constructor\n */\nexport default function SubmissionViewScopeEditor(\n props: SubmissionViewScopeEditorProps,\n) {\n const { evaluationIds = [], onChange } = props\n\n return (\n <>\n <Typography\n variant={'smallText1'}\n sx={{\n mb: 1,\n fontWeight: 700,\n }}\n >\n Evaluations\n </Typography>\n <EvaluationFinder\n activeOnly={false}\n accessType={ACCESS_TYPE.READ_PRIVATE_SUBMISSION}\n selectedIds={evaluationIds}\n onChange={onChange}\n />\n <Box\n sx={{\n p: 2.5,\n mb: 2.5,\n border: '1px solid',\n borderColor: 'grey.300',\n }}\n >\n <Typography\n variant={'smallText1'}\n sx={{\n mb: 1,\n fontWeight: 700,\n }}\n >\n Selected\n </Typography>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n }}\n >\n {evaluationIds.map(evaluationId => (\n <SubmissionViewScopeItem\n key={evaluationId}\n evaluationId={evaluationId}\n onRemove={() => {\n onChange(evaluationIds.filter(id => id !== evaluationId))\n }}\n />\n ))}\n </Box>\n </Box>\n </>\n )\n}\n"],"mappings":";;;;;;;AAkBA,SAAS,EAAwB,GAAqC;CACpE,IAAM,EAAE,iBAAc,gBAAa,GAC7B,EACJ,MAAM,GACN,cACA,YACA,aACE,EAAiB,
|
|
1
|
+
{"version":3,"file":"SubmissionViewScopeEditor.js","names":[],"sources":["../../../src/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.tsx"],"sourcesContent":["import { useGetEvaluation } from '@/synapse-queries/evaluation/useEvaluation'\nimport {\n Alert,\n Box,\n IconButton,\n Link,\n Skeleton,\n Typography,\n} from '@mui/material'\nimport { ACCESS_TYPE } from '@sage-bionetworks/synapse-types'\nimport EvaluationFinder from '../EvaluationFinder/EvaluationFinder'\nimport IconSvg from '../IconSvg'\n\ntype SubmissionViewScopeItemProps = {\n evaluationId: string\n onRemove: () => void\n}\n\nfunction SubmissionViewScopeItem(props: SubmissionViewScopeItemProps) {\n const { evaluationId, onRemove } = props\n const {\n data: evaluation,\n isLoading,\n isError,\n error,\n } = useGetEvaluation(evaluationId)\n if (isLoading) {\n return <Skeleton width={'100%'} />\n }\n if (isError) {\n return (\n <Alert severity=\"error\">\n <Typography>{error.reason}</Typography>\n <Link\n onClick={e => {\n onRemove()\n }}\n >\n Remove from scope\n </Link>\n </Alert>\n )\n }\n return (\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n gap: 1,\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <Typography key={evaluation!.id} variant={'smallText1'}>\n {evaluation!.name}\n </Typography>\n <IconButton\n size={'small'}\n aria-label={`Remove ${evaluation!.name!} from scope`}\n onClick={() => {\n onRemove()\n }}\n sx={{\n '&:hover': {\n color: 'error.main',\n },\n }}\n >\n <IconSvg icon={'delete'} fontSize={'inherit'} wrap={false} />\n </IconButton>\n </Box>\n )\n}\n\nexport type SubmissionViewScopeEditorProps = {\n evaluationIds: string[]\n onChange: (evaluationIds: string[]) => void\n}\n\n/**\n * Component used to select evaluations to define a SubmissionView scope\n * @param props\n * @constructor\n */\nexport default function SubmissionViewScopeEditor(\n props: SubmissionViewScopeEditorProps,\n) {\n const { evaluationIds = [], onChange } = props\n\n return (\n <>\n <Typography\n variant={'smallText1'}\n sx={{\n mb: 1,\n fontWeight: 700,\n }}\n >\n Evaluations\n </Typography>\n <EvaluationFinder\n activeOnly={false}\n accessType={ACCESS_TYPE.READ_PRIVATE_SUBMISSION}\n selectedIds={evaluationIds}\n onChange={onChange}\n />\n <Box\n sx={{\n p: 2.5,\n mb: 2.5,\n border: '1px solid',\n borderColor: 'grey.300',\n }}\n >\n <Typography\n variant={'smallText1'}\n sx={{\n mb: 1,\n fontWeight: 700,\n }}\n >\n Selected\n </Typography>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n }}\n >\n {evaluationIds.map(evaluationId => (\n <SubmissionViewScopeItem\n key={evaluationId}\n evaluationId={evaluationId}\n onRemove={() => {\n onChange(evaluationIds.filter(id => id !== evaluationId))\n }}\n />\n ))}\n </Box>\n </Box>\n </>\n )\n}\n"],"mappings":";;;;;;;AAkBA,SAAS,EAAwB,GAAqC;CACpE,IAAM,EAAE,iBAAc,gBAAa,GAC7B,EACJ,MAAM,GACN,cACA,YACA,aACE,EAAiB,CAAY;CAkBjC,OAjBI,IACK,kBAAC,GAAD,EAAU,OAAO,OAAS,CAAA,IAE/B,IAEA,kBAAC,GAAD;EAAO,UAAS;YAAhB,CACE,kBAAC,GAAD,EAAA,UAAa,EAAM,OAAmB,CAAA,GACtC,kBAAC,GAAD;GACE,UAAS,MAAK;IACZ,EAAS;GACX;aACD;EAEK,CAAA,CACD;MAIT,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,eAAe;GACf,KAAK;GACL,YAAY;GACZ,gBAAgB;EAClB;YAPF,CASE,kBAAC,GAAD;GAAiC,SAAS;aACvC,EAAY;EACH,GAFK,EAAY,EAEjB,GACZ,kBAAC,GAAD;GACE,MAAM;GACN,cAAY,UAAU,EAAY,KAAM;GACxC,eAAe;IACb,EAAS;GACX;GACA,IAAI,EACF,WAAW,EACT,OAAO,aACT,EACF;aAEA,kBAAC,GAAD;IAAS,MAAM;IAAU,UAAU;IAAW,MAAM;GAAQ,CAAA;EAClD,CAAA,CACT;;AAET;AAYA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,mBAAgB,CAAC,GAAG,gBAAa;CAEzC,OACE,kBAAA,GAAA,EAAA,UAAA;EACE,kBAAC,GAAD;GACE,SAAS;GACT,IAAI;IACF,IAAI;IACJ,YAAY;GACd;aACD;EAEW,CAAA;EACZ,kBAAC,GAAD;GACE,YAAY;GACZ,YAAY,EAAY;GACxB,aAAa;GACH;EACX,CAAA;EACD,kBAAC,GAAD;GACE,IAAI;IACF,GAAG;IACH,IAAI;IACJ,QAAQ;IACR,aAAa;GACf;aANF,CAQE,kBAAC,GAAD;IACE,SAAS;IACT,IAAI;KACF,IAAI;KACJ,YAAY;IACd;cACD;GAEW,CAAA,GACZ,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,eAAe;KACf,KAAK;IACP;cAEC,EAAc,KAAI,MACjB,kBAAC,GAAD;KAEgB;KACd,gBAAgB;MACd,EAAS,EAAc,QAAO,MAAM,MAAO,CAAY,CAAC;KAC1D;IACD,GALM,CAKN,CACF;GACE,CAAA,CACF;;CACL,EAAA,CAAA;AAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubmissionViewScopeEditorModal.js","names":[],"sources":["../../../src/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.tsx"],"sourcesContent":["import { useGetEntity, useUpdateEntity } from '@/synapse-queries'\nimport { Alert } from '@mui/material'\nimport { SubmissionView } from '@sage-bionetworks/synapse-types'\nimport { useEffect, useState } from 'react'\nimport ConfirmationDialog from '../ConfirmationDialog'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport SubmissionViewScopeEditor from './SubmissionViewScopeEditor'\n\nexport type SubmissionViewScopeEditorModalProps = {\n open: boolean\n entityId: string\n onUpdate: () => void\n onCancel: () => void\n}\nexport default function SubmissionViewScopeEditorModal(\n props: SubmissionViewScopeEditorModalProps,\n) {\n const { open, entityId, onUpdate, onCancel } = props\n const [scopeIds, setScopeIds] = useState<string[]>([])\n const {\n data: entity,\n isLoading: isEntityLoading,\n error: entityError,\n } = useGetEntity<SubmissionView>(entityId, undefined, {\n staleTime: Infinity,\n })\n\n const {\n mutate,\n isPending: isUpdatePending,\n error: updateError,\n } = useUpdateEntity<SubmissionView>({ onSuccess: onUpdate })\n\n useEffect(() => {\n if (entity) {\n setScopeIds(entity.scopeIds)\n }\n }, [entity])\n\n const isLoading = isEntityLoading || isUpdatePending\n const error = entityError || updateError\n\n return (\n <ConfirmationDialog\n open={open}\n title=\"Edit Scope\"\n content={\n <>\n <SubmissionViewScopeEditor\n evaluationIds={scopeIds}\n onChange={setScopeIds}\n />\n {error && (\n <Alert\n sx={{\n my: 1,\n }}\n severity=\"error\"\n >\n {error.reason}\n </Alert>\n )}\n </>\n }\n confirmButtonProps={{\n children: isUpdatePending ? 'Saving...' : 'Save',\n disabled: isLoading,\n startIcon: isUpdatePending ? <SynapseSpinner /> : undefined,\n }}\n onConfirm={() => {\n if (entity) {\n mutate({ ...entity, scopeIds: scopeIds })\n }\n }}\n onCancel={onCancel}\n maxWidth=\"md\"\n />\n )\n}\n"],"mappings":";;;;;;;;;AAcA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,SAAM,aAAU,aAAU,gBAAa,GACzC,CAAC,GAAU,KAAe,EAAmB,
|
|
1
|
+
{"version":3,"file":"SubmissionViewScopeEditorModal.js","names":[],"sources":["../../../src/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.tsx"],"sourcesContent":["import { useGetEntity, useUpdateEntity } from '@/synapse-queries'\nimport { Alert } from '@mui/material'\nimport { SubmissionView } from '@sage-bionetworks/synapse-types'\nimport { useEffect, useState } from 'react'\nimport ConfirmationDialog from '../ConfirmationDialog'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport SubmissionViewScopeEditor from './SubmissionViewScopeEditor'\n\nexport type SubmissionViewScopeEditorModalProps = {\n open: boolean\n entityId: string\n onUpdate: () => void\n onCancel: () => void\n}\nexport default function SubmissionViewScopeEditorModal(\n props: SubmissionViewScopeEditorModalProps,\n) {\n const { open, entityId, onUpdate, onCancel } = props\n const [scopeIds, setScopeIds] = useState<string[]>([])\n const {\n data: entity,\n isLoading: isEntityLoading,\n error: entityError,\n } = useGetEntity<SubmissionView>(entityId, undefined, {\n staleTime: Infinity,\n })\n\n const {\n mutate,\n isPending: isUpdatePending,\n error: updateError,\n } = useUpdateEntity<SubmissionView>({ onSuccess: onUpdate })\n\n useEffect(() => {\n if (entity) {\n setScopeIds(entity.scopeIds)\n }\n }, [entity])\n\n const isLoading = isEntityLoading || isUpdatePending\n const error = entityError || updateError\n\n return (\n <ConfirmationDialog\n open={open}\n title=\"Edit Scope\"\n content={\n <>\n <SubmissionViewScopeEditor\n evaluationIds={scopeIds}\n onChange={setScopeIds}\n />\n {error && (\n <Alert\n sx={{\n my: 1,\n }}\n severity=\"error\"\n >\n {error.reason}\n </Alert>\n )}\n </>\n }\n confirmButtonProps={{\n children: isUpdatePending ? 'Saving...' : 'Save',\n disabled: isLoading,\n startIcon: isUpdatePending ? <SynapseSpinner /> : undefined,\n }}\n onConfirm={() => {\n if (entity) {\n mutate({ ...entity, scopeIds: scopeIds })\n }\n }}\n onCancel={onCancel}\n maxWidth=\"md\"\n />\n )\n}\n"],"mappings":";;;;;;;;;AAcA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,SAAM,aAAU,aAAU,gBAAa,GACzC,CAAC,GAAU,KAAe,EAAmB,CAAC,CAAC,GAC/C,EACJ,MAAM,GACN,WAAW,GACX,OAAO,MACL,EAA6B,GAAU,KAAA,GAAW,EACpD,WAAW,SACb,CAAC,GAEK,EACJ,WACA,WAAW,GACX,OAAO,MACL,EAAgC,EAAE,WAAW,EAAS,CAAC;CAE3D,QAAgB;EACd,AAAI,KACF,EAAY,EAAO,QAAQ;CAE/B,GAAG,CAAC,CAAM,CAAC;CAEX,IAAM,IAAY,KAAmB,GAC/B,IAAQ,KAAe;CAE7B,OACE,kBAAC,GAAD;EACQ;EACN,OAAM;EACN,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,eAAe;GACf,UAAU;EACX,CAAA,GACA,KACC,kBAAC,GAAD;GACE,IAAI,EACF,IAAI,EACN;GACA,UAAS;aAER,EAAM;EACF,CAAA,CAET,EAAA,CAAA;EAEJ,oBAAoB;GAClB,UAAU,IAAkB,cAAc;GAC1C,UAAU;GACV,WAAW,IAAkB,kBAAC,GAAD,CAAiB,CAAA,IAAI,KAAA;EACpD;EACA,iBAAiB;GACf,AAAI,KACF,EAAO;IAAE,GAAG;IAAkB;GAAS,CAAC;EAE5C;EACU;EACV,UAAS;CACV,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForumTopic.js","names":[],"sources":["../../../src/components/SubscriptionPage/ForumTopic.tsx"],"sourcesContent":["import { useGetEntity } from '@/synapse-queries'\nimport { useGetForumMetadata } from '@/synapse-queries/forum/useForum'\nimport { useSubscription } from '@/synapse-queries/subscription/useSubscription'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport {\n Subscription,\n SubscriptionObjectType,\n} from '@sage-bionetworks/synapse-types'\nimport Topic from './Topic'\n\nexport type SubscriptionItemProps = {\n subscription: Subscription\n}\n\nexport default function ForumTopic(props: SubscriptionItemProps) {\n const { subscription } = props\n\n const { data: forum } = useGetForumMetadata(subscription.objectId)\n const { data: project } = useGetEntity(forum?.projectId, undefined, {\n enabled: !!forum,\n })\n const { isSubscribed, isLoading, toggleSubscribed } = useSubscription(\n subscription.objectId,\n SubscriptionObjectType.FORUM,\n )\n\n let href: string | undefined\n if (forum) {\n href = `${getEndpoint(BackendDestinationEnum.PORTAL_ENDPOINT)}Synapse:${\n forum.projectId\n }/discussion`\n }\n\n return (\n <Topic\n isLoading={isLoading}\n isSubscribed={isSubscribed}\n icon={'dashboard'}\n name={project?.name}\n nameHref={href}\n onToggleSubscribe={toggleSubscribed}\n />\n )\n}\n"],"mappings":";;;;;;;;;AAiBA,SAAwB,EAAW,GAA8B;CAC/D,IAAM,EAAE,oBAAiB,GAEnB,EAAE,MAAM,MAAU,EAAoB,EAAa,
|
|
1
|
+
{"version":3,"file":"ForumTopic.js","names":[],"sources":["../../../src/components/SubscriptionPage/ForumTopic.tsx"],"sourcesContent":["import { useGetEntity } from '@/synapse-queries'\nimport { useGetForumMetadata } from '@/synapse-queries/forum/useForum'\nimport { useSubscription } from '@/synapse-queries/subscription/useSubscription'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport {\n Subscription,\n SubscriptionObjectType,\n} from '@sage-bionetworks/synapse-types'\nimport Topic from './Topic'\n\nexport type SubscriptionItemProps = {\n subscription: Subscription\n}\n\nexport default function ForumTopic(props: SubscriptionItemProps) {\n const { subscription } = props\n\n const { data: forum } = useGetForumMetadata(subscription.objectId)\n const { data: project } = useGetEntity(forum?.projectId, undefined, {\n enabled: !!forum,\n })\n const { isSubscribed, isLoading, toggleSubscribed } = useSubscription(\n subscription.objectId,\n SubscriptionObjectType.FORUM,\n )\n\n let href: string | undefined\n if (forum) {\n href = `${getEndpoint(BackendDestinationEnum.PORTAL_ENDPOINT)}Synapse:${\n forum.projectId\n }/discussion`\n }\n\n return (\n <Topic\n isLoading={isLoading}\n isSubscribed={isSubscribed}\n icon={'dashboard'}\n name={project?.name}\n nameHref={href}\n onToggleSubscribe={toggleSubscribed}\n />\n )\n}\n"],"mappings":";;;;;;;;;AAiBA,SAAwB,EAAW,GAA8B;CAC/D,IAAM,EAAE,oBAAiB,GAEnB,EAAE,MAAM,MAAU,EAAoB,EAAa,QAAQ,GAC3D,EAAE,MAAM,MAAY,EAAa,GAAO,WAAW,KAAA,GAAW,EAClE,SAAS,CAAC,CAAC,EACb,CAAC,GACK,EAAE,iBAAc,cAAW,wBAAqB,EACpD,EAAa,UACb,EAAuB,KACzB,GAEI;CAOJ,OANI,MACF,IAAO,GAAG,EAAY,EAAuB,eAAe,EAAE,UAC5D,EAAM,UACP,eAID,kBAAC,GAAD;EACa;EACG;EACd,MAAM;EACN,MAAM,GAAS;EACf,UAAU;EACV,mBAAmB;CACpB,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionItem.js","names":[],"sources":["../../../src/components/SubscriptionPage/SubscriptionItem.tsx"],"sourcesContent":["import {\n Subscription,\n SubscriptionObjectType,\n} from '@sage-bionetworks/synapse-types'\nimport ForumTopic from './ForumTopic'\nimport ThreadTopic from './ThreadTopic'\n\nexport type SubscriptionItemProps = {\n subscription: Subscription\n}\n\n/**\n * Simple discriminator component that maps a {@link Subscription} rendered on the {@link SubscriptionPage} to\n * a {@link Topic} component\n * @param props\n * @constructor\n */\nexport default function SubscriptionItem(props: SubscriptionItemProps) {\n const { subscription } = props\n\n switch (subscription.objectType) {\n case SubscriptionObjectType.FORUM:\n return <ForumTopic subscription={subscription} />\n case SubscriptionObjectType.THREAD:\n return <ThreadTopic subscription={subscription} />\n default:\n console.warn(\n `Subscription type ${props.subscription.objectType} not supported in UI`,\n )\n return <></>\n }\n}\n"],"mappings":";;;;;AAiBA,SAAwB,EAAiB,GAA8B;CACrE,IAAM,EAAE,oBAAiB;
|
|
1
|
+
{"version":3,"file":"SubscriptionItem.js","names":[],"sources":["../../../src/components/SubscriptionPage/SubscriptionItem.tsx"],"sourcesContent":["import {\n Subscription,\n SubscriptionObjectType,\n} from '@sage-bionetworks/synapse-types'\nimport ForumTopic from './ForumTopic'\nimport ThreadTopic from './ThreadTopic'\n\nexport type SubscriptionItemProps = {\n subscription: Subscription\n}\n\n/**\n * Simple discriminator component that maps a {@link Subscription} rendered on the {@link SubscriptionPage} to\n * a {@link Topic} component\n * @param props\n * @constructor\n */\nexport default function SubscriptionItem(props: SubscriptionItemProps) {\n const { subscription } = props\n\n switch (subscription.objectType) {\n case SubscriptionObjectType.FORUM:\n return <ForumTopic subscription={subscription} />\n case SubscriptionObjectType.THREAD:\n return <ThreadTopic subscription={subscription} />\n default:\n console.warn(\n `Subscription type ${props.subscription.objectType} not supported in UI`,\n )\n return <></>\n }\n}\n"],"mappings":";;;;;AAiBA,SAAwB,EAAiB,GAA8B;CACrE,IAAM,EAAE,oBAAiB;CAEzB,QAAQ,EAAa,YAArB;EACE,KAAK,EAAuB,OAC1B,OAAO,kBAAC,GAAD,EAA0B,gBAAe,CAAA;EAClD,KAAK,EAAuB,QAC1B,OAAO,kBAAC,GAAD,EAA2B,gBAAe,CAAA;EACnD,SAIE,OAHA,QAAQ,KACN,qBAAqB,EAAM,aAAa,WAAW,qBACrD,GACO,kBAAA,GAAA,CAAI,CAAA;CACf;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionPage.js","names":[],"sources":["../../../src/components/SubscriptionPage/SubscriptionPage.tsx"],"sourcesContent":["import { useGetAllSubscriptions } from '@/synapse-queries/subscription/useSubscription'\nimport { Box, Button, Stack, Tab, Tabs } from '@mui/material'\nimport {\n SortByType as SubscriptionSortField,\n SortDirection,\n Subscription,\n SubscriptionObjectType,\n} from '@sage-bionetworks/synapse-types'\nimport { InfiniteData } from '@tanstack/react-query'\nimport { SyntheticEvent, useId, useState } from 'react'\nimport DropdownSelect from '../DropdownSelect'\nimport SubscriptionItem from './SubscriptionItem'\n\ntype SortOption = { value: SortDirection; label: string }\n\nconst sortOptions: SortOption[] = [\n { value: 'ASC', label: 'Date Posted' },\n { value: 'DESC', label: 'Most Recent' },\n]\n\nexport default function SubscriptionPage() {\n const [objectType, setObjectType] = useState<SubscriptionObjectType>(\n SubscriptionObjectType.FORUM,\n )\n const [sortDirection, setSortDirection] = useState<SortOption>(sortOptions[0])\n\n const instanceSpecificQueryKey = useId()\n\n const currentFilter = {\n objectType: objectType,\n sortBy: SubscriptionSortField.CREATED_ON,\n sortDirection: sortDirection.value,\n }\n\n const { data, hasNextPage, isFetchingNextPage, fetchNextPage } =\n useGetAllSubscriptions<InfiniteData<Subscription>>(\n currentFilter,\n // Since the user may edit their subscriptions on this page, set staleTime to infinity to prevent re-fetching while editing\n {\n staleTime: Infinity,\n select: data => ({\n pages: data.pages.flatMap(page => page.results),\n pageParams: data.pageParams,\n }),\n },\n // Override the query key with a unique ID, because we don't want changes to invalidate this list while it's being used\n [`subscriptionPageFetch_${instanceSpecificQueryKey}`, currentFilter],\n )\n\n return (\n <>\n <Box sx={{ float: 'right' }}>\n <DropdownSelect\n variant={'outlined'}\n options={sortOptions.map(option => option.label)}\n selectedIndex={sortOptions.findIndex(\n option => option.value === sortDirection.value,\n )}\n setSelectedIndex={index => setSortDirection(sortOptions[index])}\n />\n </Box>\n\n <Tabs\n sx={{ mb: 3 }}\n value={objectType}\n onChange={(event: SyntheticEvent, newValue: SubscriptionObjectType) => {\n event.stopPropagation()\n setObjectType(newValue)\n }}\n textColor=\"secondary\"\n indicatorColor=\"secondary\"\n >\n <Tab value={SubscriptionObjectType.FORUM} label={'Project Forums'} />\n <Tab value={SubscriptionObjectType.THREAD} label={'Threads'} />\n </Tabs>\n <Stack\n sx={{\n gap: 0.5,\n }}\n >\n {data?.pages.map(subscription => (\n <SubscriptionItem\n key={subscription.subscriptionId}\n subscription={subscription}\n />\n ))}\n </Stack>\n\n {hasNextPage && (\n <Button\n variant=\"contained\"\n onClick={() => {\n fetchNextPage()\n }}\n disabled={isFetchingNextPage}\n sx={{ mt: 6 }}\n >\n {isFetchingNextPage ? 'Loading...' : 'Load More'}\n </Button>\n )}\n </>\n )\n}\n"],"mappings":";;;;;;;;AAeA,IAAM,IAA4B,CAChC;CAAE,OAAO;CAAO,OAAO;
|
|
1
|
+
{"version":3,"file":"SubscriptionPage.js","names":[],"sources":["../../../src/components/SubscriptionPage/SubscriptionPage.tsx"],"sourcesContent":["import { useGetAllSubscriptions } from '@/synapse-queries/subscription/useSubscription'\nimport { Box, Button, Stack, Tab, Tabs } from '@mui/material'\nimport {\n SortByType as SubscriptionSortField,\n SortDirection,\n Subscription,\n SubscriptionObjectType,\n} from '@sage-bionetworks/synapse-types'\nimport { InfiniteData } from '@tanstack/react-query'\nimport { SyntheticEvent, useId, useState } from 'react'\nimport DropdownSelect from '../DropdownSelect'\nimport SubscriptionItem from './SubscriptionItem'\n\ntype SortOption = { value: SortDirection; label: string }\n\nconst sortOptions: SortOption[] = [\n { value: 'ASC', label: 'Date Posted' },\n { value: 'DESC', label: 'Most Recent' },\n]\n\nexport default function SubscriptionPage() {\n const [objectType, setObjectType] = useState<SubscriptionObjectType>(\n SubscriptionObjectType.FORUM,\n )\n const [sortDirection, setSortDirection] = useState<SortOption>(sortOptions[0])\n\n const instanceSpecificQueryKey = useId()\n\n const currentFilter = {\n objectType: objectType,\n sortBy: SubscriptionSortField.CREATED_ON,\n sortDirection: sortDirection.value,\n }\n\n const { data, hasNextPage, isFetchingNextPage, fetchNextPage } =\n useGetAllSubscriptions<InfiniteData<Subscription>>(\n currentFilter,\n // Since the user may edit their subscriptions on this page, set staleTime to infinity to prevent re-fetching while editing\n {\n staleTime: Infinity,\n select: data => ({\n pages: data.pages.flatMap(page => page.results),\n pageParams: data.pageParams,\n }),\n },\n // Override the query key with a unique ID, because we don't want changes to invalidate this list while it's being used\n [`subscriptionPageFetch_${instanceSpecificQueryKey}`, currentFilter],\n )\n\n return (\n <>\n <Box sx={{ float: 'right' }}>\n <DropdownSelect\n variant={'outlined'}\n options={sortOptions.map(option => option.label)}\n selectedIndex={sortOptions.findIndex(\n option => option.value === sortDirection.value,\n )}\n setSelectedIndex={index => setSortDirection(sortOptions[index])}\n />\n </Box>\n\n <Tabs\n sx={{ mb: 3 }}\n value={objectType}\n onChange={(event: SyntheticEvent, newValue: SubscriptionObjectType) => {\n event.stopPropagation()\n setObjectType(newValue)\n }}\n textColor=\"secondary\"\n indicatorColor=\"secondary\"\n >\n <Tab value={SubscriptionObjectType.FORUM} label={'Project Forums'} />\n <Tab value={SubscriptionObjectType.THREAD} label={'Threads'} />\n </Tabs>\n <Stack\n sx={{\n gap: 0.5,\n }}\n >\n {data?.pages.map(subscription => (\n <SubscriptionItem\n key={subscription.subscriptionId}\n subscription={subscription}\n />\n ))}\n </Stack>\n\n {hasNextPage && (\n <Button\n variant=\"contained\"\n onClick={() => {\n fetchNextPage()\n }}\n disabled={isFetchingNextPage}\n sx={{ mt: 6 }}\n >\n {isFetchingNextPage ? 'Loading...' : 'Load More'}\n </Button>\n )}\n </>\n )\n}\n"],"mappings":";;;;;;;;AAeA,IAAM,IAA4B,CAChC;CAAE,OAAO;CAAO,OAAO;AAAc,GACrC;CAAE,OAAO;CAAQ,OAAO;AAAc,CACxC;AAEA,SAAwB,IAAmB;CACzC,IAAM,CAAC,GAAY,KAAiB,EAClC,EAAuB,KACzB,GACM,CAAC,GAAe,KAAoB,EAAqB,EAAY,EAAE,GAEvE,IAA2B,EAAM,GAEjC,IAAgB;EACR;EACZ,QAAQ,EAAsB;EAC9B,eAAe,EAAc;CAC/B,GAEM,EAAE,SAAM,gBAAa,uBAAoB,qBAC7C,EACE,GAEA;EACE,WAAW;EACX,SAAQ,OAAS;GACf,OAAO,EAAK,MAAM,SAAQ,MAAQ,EAAK,OAAO;GAC9C,YAAY,EAAK;EACnB;CACF,GAEA,CAAC,yBAAyB,KAA4B,CAAa,CACrE;CAEF,OACE,kBAAA,GAAA,EAAA,UAAA;EACE,kBAAC,GAAD;GAAK,IAAI,EAAE,OAAO,QAAQ;aACxB,kBAAC,GAAD;IACE,SAAS;IACT,SAAS,EAAY,KAAI,MAAU,EAAO,KAAK;IAC/C,eAAe,EAAY,WACzB,MAAU,EAAO,UAAU,EAAc,KAC3C;IACA,mBAAkB,MAAS,EAAiB,EAAY,EAAM;GAC/D,CAAA;EACE,CAAA;EAEL,kBAAC,GAAD;GACE,IAAI,EAAE,IAAI,EAAE;GACZ,OAAO;GACP,WAAW,GAAuB,MAAqC;IAErE,AADA,EAAM,gBAAgB,GACtB,EAAc,CAAQ;GACxB;GACA,WAAU;GACV,gBAAe;aARjB,CAUE,kBAAC,GAAD;IAAK,OAAO,EAAuB;IAAO,OAAO;GAAmB,CAAA,GACpE,kBAAC,GAAD;IAAK,OAAO,EAAuB;IAAQ,OAAO;GAAY,CAAA,CAC1D;;EACN,kBAAC,GAAD;GACE,IAAI,EACF,KAAK,GACP;aAEC,GAAM,MAAM,KAAI,MACf,kBAAC,GAAD,EAEgB,gBACf,GAFM,EAAa,cAEnB,CACF;EACI,CAAA;EAEN,KACC,kBAAC,GAAD;GACE,SAAQ;GACR,eAAe;IACb,EAAc;GAChB;GACA,UAAU;GACV,IAAI,EAAE,IAAI,EAAE;aAEX,IAAqB,eAAe;EAC/B,CAAA;CAEV,EAAA,CAAA;AAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadTopic.js","names":[],"sources":["../../../src/components/SubscriptionPage/ThreadTopic.tsx"],"sourcesContent":["import { useGetThread } from '@/synapse-queries/forum/useThread'\nimport { useSubscription } from '@/synapse-queries/subscription/useSubscription'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport {\n Subscription,\n SubscriptionObjectType,\n} from '@sage-bionetworks/synapse-types'\nimport Topic from './Topic'\n\nexport type SubscriptionItemProps = {\n subscription: Subscription\n}\n\nexport default function SubscriptionItem(props: SubscriptionItemProps) {\n const { subscription } = props\n\n const { threadData } = useGetThread(subscription.objectId)\n const { isSubscribed, isLoading, toggleSubscribed } = useSubscription(\n subscription.objectId,\n SubscriptionObjectType.THREAD,\n )\n\n let href: string | undefined\n if (threadData) {\n href = `${getEndpoint(BackendDestinationEnum.PORTAL_ENDPOINT)}Synapse:${\n threadData.projectId\n }/discussion/threadId=${subscription.objectId}`\n }\n\n return (\n <Topic\n isLoading={isLoading}\n isSubscribed={isSubscribed}\n icon={'discussion'}\n name={threadData?.title}\n nameHref={href}\n onToggleSubscribe={toggleSubscribed}\n />\n )\n}\n"],"mappings":";;;;;;;AAgBA,SAAwB,EAAiB,GAA8B;CACrE,IAAM,EAAE,oBAAiB,GAEnB,EAAE,kBAAe,EAAa,EAAa,
|
|
1
|
+
{"version":3,"file":"ThreadTopic.js","names":[],"sources":["../../../src/components/SubscriptionPage/ThreadTopic.tsx"],"sourcesContent":["import { useGetThread } from '@/synapse-queries/forum/useThread'\nimport { useSubscription } from '@/synapse-queries/subscription/useSubscription'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport {\n Subscription,\n SubscriptionObjectType,\n} from '@sage-bionetworks/synapse-types'\nimport Topic from './Topic'\n\nexport type SubscriptionItemProps = {\n subscription: Subscription\n}\n\nexport default function SubscriptionItem(props: SubscriptionItemProps) {\n const { subscription } = props\n\n const { threadData } = useGetThread(subscription.objectId)\n const { isSubscribed, isLoading, toggleSubscribed } = useSubscription(\n subscription.objectId,\n SubscriptionObjectType.THREAD,\n )\n\n let href: string | undefined\n if (threadData) {\n href = `${getEndpoint(BackendDestinationEnum.PORTAL_ENDPOINT)}Synapse:${\n threadData.projectId\n }/discussion/threadId=${subscription.objectId}`\n }\n\n return (\n <Topic\n isLoading={isLoading}\n isSubscribed={isSubscribed}\n icon={'discussion'}\n name={threadData?.title}\n nameHref={href}\n onToggleSubscribe={toggleSubscribed}\n />\n )\n}\n"],"mappings":";;;;;;;AAgBA,SAAwB,EAAiB,GAA8B;CACrE,IAAM,EAAE,oBAAiB,GAEnB,EAAE,kBAAe,EAAa,EAAa,QAAQ,GACnD,EAAE,iBAAc,cAAW,wBAAqB,EACpD,EAAa,UACb,EAAuB,MACzB,GAEI;CAOJ,OANI,MACF,IAAO,GAAG,EAAY,EAAuB,eAAe,EAAE,UAC5D,EAAW,UACZ,uBAAuB,EAAa,aAIrC,kBAAC,GAAD;EACa;EACG;EACd,MAAM;EACN,MAAM,GAAY;EAClB,UAAU;EACV,mBAAmB;CACpB,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Topic.js","names":[],"sources":["../../../src/components/SubscriptionPage/Topic.tsx"],"sourcesContent":["import ConditionalWrapper from '@/components/utils/ConditionalWrapper'\nimport { Button, Link, Skeleton, Stack } from '@mui/material'\nimport IconSvg, { IconName } from '../IconSvg'\n\nexport type TopicProps = {\n isSubscribed: boolean\n isLoading: boolean\n icon: IconName\n name?: string\n nameHref?: string\n onToggleSubscribe: () => void\n}\n\n/**\n * Represents a single object on which a Synapse user has subscribed to notifications\n * @param props\n * @constructor\n */\nexport default function Topic(props: TopicProps) {\n const { icon, isSubscribed, isLoading, nameHref, name, onToggleSubscribe } =\n props\n\n return (\n <Stack\n sx={{\n flexDirection: 'row',\n alignItems: 'center',\n }}\n >\n <Button\n sx={{ width: '80px', mr: 3 }}\n onClick={onToggleSubscribe}\n variant={isSubscribed ? 'outlined' : 'contained'}\n disabled={isLoading}\n >\n {isSubscribed ? 'Unfollow' : 'Follow'}\n </Button>\n <IconSvg icon={icon} sx={{ color: 'primary.main', mr: 1.5 }} />\n <ConditionalWrapper\n condition={!name}\n wrapper={Skeleton}\n wrapperProps={{ width: 300, height: 20 }}\n >\n <Link underline={'hover'} href={nameHref} target=\"_blank\">\n {name}\n </Link>\n </ConditionalWrapper>\n </Stack>\n )\n}\n"],"mappings":";;;;;AAkBA,SAAwB,EAAM,GAAmB;CAC/C,IAAM,EAAE,SAAM,iBAAc,cAAW,aAAU,SAAM,yBACrD;
|
|
1
|
+
{"version":3,"file":"Topic.js","names":[],"sources":["../../../src/components/SubscriptionPage/Topic.tsx"],"sourcesContent":["import ConditionalWrapper from '@/components/utils/ConditionalWrapper'\nimport { Button, Link, Skeleton, Stack } from '@mui/material'\nimport IconSvg, { IconName } from '../IconSvg'\n\nexport type TopicProps = {\n isSubscribed: boolean\n isLoading: boolean\n icon: IconName\n name?: string\n nameHref?: string\n onToggleSubscribe: () => void\n}\n\n/**\n * Represents a single object on which a Synapse user has subscribed to notifications\n * @param props\n * @constructor\n */\nexport default function Topic(props: TopicProps) {\n const { icon, isSubscribed, isLoading, nameHref, name, onToggleSubscribe } =\n props\n\n return (\n <Stack\n sx={{\n flexDirection: 'row',\n alignItems: 'center',\n }}\n >\n <Button\n sx={{ width: '80px', mr: 3 }}\n onClick={onToggleSubscribe}\n variant={isSubscribed ? 'outlined' : 'contained'}\n disabled={isLoading}\n >\n {isSubscribed ? 'Unfollow' : 'Follow'}\n </Button>\n <IconSvg icon={icon} sx={{ color: 'primary.main', mr: 1.5 }} />\n <ConditionalWrapper\n condition={!name}\n wrapper={Skeleton}\n wrapperProps={{ width: 300, height: 20 }}\n >\n <Link underline={'hover'} href={nameHref} target=\"_blank\">\n {name}\n </Link>\n </ConditionalWrapper>\n </Stack>\n )\n}\n"],"mappings":";;;;;AAkBA,SAAwB,EAAM,GAAmB;CAC/C,IAAM,EAAE,SAAM,iBAAc,cAAW,aAAU,SAAM,yBACrD;CAEF,OACE,kBAAC,GAAD;EACE,IAAI;GACF,eAAe;GACf,YAAY;EACd;YAJF;GAME,kBAAC,GAAD;IACE,IAAI;KAAE,OAAO;KAAQ,IAAI;IAAE;IAC3B,SAAS;IACT,SAAS,IAAe,aAAa;IACrC,UAAU;cAET,IAAe,aAAa;GACvB,CAAA;GACR,kBAAC,GAAD;IAAe;IAAM,IAAI;KAAE,OAAO;KAAgB,IAAI;IAAI;GAAI,CAAA;GAC9D,kBAAC,GAAD;IACE,WAAW,CAAC;IACZ,SAAS;IACT,cAAc;KAAE,OAAO;KAAK,QAAQ;IAAG;cAEvC,kBAAC,GAAD;KAAM,WAAW;KAAS,MAAM;KAAU,QAAO;eAC9C;IACG,CAAA;GACY,CAAA;EACf;;AAEX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubsectionRowRenderer.js","names":[],"sources":["../../../src/components/SubsectionRowRenderer/SubsectionRowRenderer.tsx"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseConstants } from '@/utils'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n getAdditionalFilters,\n parseEntityIdFromSqlStatement,\n SQLOperator,\n} from '@/utils/functions/SqlFunctions'\nimport { Typography } from '@mui/material'\nimport {\n ColumnType,\n ColumnTypeEnum,\n QueryBundleRequest,\n RowSet,\n} from '@sage-bionetworks/synapse-types'\nimport { useState } from 'react'\nimport { useDeepCompareEffectNoCheck } from 'use-deep-compare-effect'\nimport { ColumnSpecifiedLink } from '../CardContainerLogic'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\nimport { SkeletonTable } from '../Skeleton/SkeletonTable'\n\nexport type FriendlyValuesMap = {\n [index: string]: string\n}\n\nexport type SubsectionRowRendererProps = {\n sql: string\n isMarkdown?: boolean\n sqlOperator?: SQLOperator\n searchParams?: Record<string, string>\n columnLink?: ColumnSpecifiedLink\n friendlyValuesMap?: FriendlyValuesMap\n columnNameIsSectionTitle?: boolean\n limit?: number\n additionalFiltersSessionStorageKey?: string\n}\n\nconst LIST_COLUMN_TYPES: ColumnType[] = [\n ColumnTypeEnum.BOOLEAN_LIST,\n ColumnTypeEnum.DATE_LIST,\n ColumnTypeEnum.ENTITYID_LIST,\n ColumnTypeEnum.INTEGER_LIST,\n ColumnTypeEnum.STRING_LIST,\n]\n\nfunction SubsectionRowRenderer({\n sql,\n searchParams,\n sqlOperator,\n isMarkdown = false,\n columnLink,\n friendlyValuesMap,\n columnNameIsSectionTitle = false,\n limit,\n additionalFiltersSessionStorageKey,\n}: SubsectionRowRendererProps) {\n const { accessToken } = useSynapseContext()\n const [rowSet, setRowSet] = useState<RowSet>()\n const [isLoading, setIsLoading] = useState<boolean>()\n useDeepCompareEffectNoCheck(() => {\n const fetchData = async function () {\n setIsLoading(true)\n const entityId = parseEntityIdFromSqlStatement(sql)\n const additionalFilters = getAdditionalFilters(\n searchParams,\n sqlOperator,\n additionalFiltersSessionStorageKey,\n )\n const partMask = SynapseConstants.BUNDLE_MASK_QUERY_RESULTS\n const request: QueryBundleRequest = {\n partMask,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n query: {\n sql,\n limit,\n additionalFilters,\n },\n }\n\n const queryResultBundle = await SynapseClient.getQueryTableResults(\n request,\n accessToken,\n )\n setIsLoading(false)\n const queryResults = queryResultBundle?.queryResult?.queryResults\n if (queryResults) {\n setRowSet(queryResults)\n } else {\n console.log('SubsectionRowRenderer: Error getting data')\n }\n }\n fetchData()\n }, [sql, accessToken, searchParams, sqlOperator])\n\n /**\n * If a \"friendly values map\" was provided, then use the friendly value if any of the raw values match.\n * Otherwise, just return the raw value.\n * @param rawValue\n * @returns\n */\n const getFriendlyValue = (rawValue: string) => {\n if (!friendlyValuesMap) {\n return rawValue\n }\n const friendlyValue = friendlyValuesMap[rawValue]\n return friendlyValue ? friendlyValue : rawValue\n }\n return (\n <div className=\"SubsectionRowRenderer\">\n {isLoading && <SkeletonTable numRows={2} numCols={1} />}\n {!isLoading &&\n rowSet &&\n rowSet.rows.length > 0 &&\n rowSet.headers.map((selectColumn, colIndex) => {\n // If a link column was provided (that contain URLs), do not create a page sub-section for that column.\n if (columnLink && selectColumn.name == columnLink.linkColumnName) {\n return <></>\n }\n return (\n <div\n key={`header-${colIndex}`}\n className=\"SubsectionRowRenderer__item\"\n role=\"table\"\n >\n <Typography\n variant={\n columnNameIsSectionTitle ? 'sectionTitle' : 'subsectionHeader'\n }\n role=\"heading\"\n style={{ paddingTop: '10px', marginBottom: '5px' }}\n >\n {selectColumn.name}\n </Typography>\n {columnNameIsSectionTitle && <hr />}\n <div role=\"rowgroup\">\n {rowSet.rows.map((row, rowIndex) => {\n const cellValue = row.values[colIndex]\n // If the cell value is undefined, then go to the next row.\n if (!cellValue) {\n return <></>\n }\n let values\n // If this cell value represents a multi-value (the select column type is a *_LIST column), then parse it and break it apart\n if (LIST_COLUMN_TYPES.includes(selectColumn.columnType)) {\n const jsonData: string[] = JSON.parse(cellValue)\n values = jsonData.map((val: string, index: number) => {\n return (\n <div\n key={`row-${rowIndex}-col-${colIndex}-multi-value`}\n className=\"SubsectionRowRenderer__item__value\"\n role=\"row\"\n >\n {isMarkdown && (\n <MarkdownSynapse markdown={getFriendlyValue(val)} />\n )}\n {!isMarkdown && <p>{getFriendlyValue(val)}</p>}\n </div>\n )\n })\n } else {\n // If this cell value represents a single value\n let renderedValue\n const friendlyCellValue = getFriendlyValue(cellValue)\n if (isMarkdown) {\n renderedValue = (\n <MarkdownSynapse markdown={friendlyCellValue} />\n )\n } else if (\n columnLink &&\n columnLink.matchColumnName == selectColumn.name\n ) {\n // If a link column was provided, then we need to create links (the url is in this other column)\n const urlColumnIndex = rowSet.headers.findIndex(\n col => col.name == columnLink.linkColumnName,\n )\n const values = row.values as string[]\n if (values.some(value => value === null)) {\n console.warn(\n 'Row has null value(s) when no nulls expected',\n )\n }\n\n if (urlColumnIndex > -1) {\n renderedValue = (\n <a\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n href={values[urlColumnIndex]}\n >\n {friendlyCellValue}\n </a>\n )\n } else {\n renderedValue = <p>{friendlyCellValue}</p>\n }\n } else {\n renderedValue = <p>{friendlyCellValue}</p>\n }\n values = (\n <div\n key={`row-${rowIndex}-col-${colIndex}-single`}\n className=\"SubsectionRowRenderer__item__value\"\n role=\"row\"\n >\n {renderedValue}\n </div>\n )\n }\n return values\n })}\n </div>\n </div>\n )\n })}\n </div>\n )\n}\n\nexport default SubsectionRowRenderer\n"],"mappings":";;;;;;;;;;;;;AAqCA,IAAM,IAAkC;CACtC,EAAe;CACf,EAAe;CACf,EAAe;CACf,EAAe;CACf,EAAe;CAChB;AAED,SAAS,EAAsB,EAC7B,QACA,iBACA,gBACA,gBAAa,IACb,eACA,sBACA,8BAA2B,IAC3B,UACA,yCAC6B;CAC7B,IAAM,EAAE,mBAAgB,GAAmB,EACrC,CAAC,GAAQ,KAAa,GAAkB,EACxC,CAAC,GAAW,KAAgB,GAAmB;AACrD,SAAkC;AAiChC,oBAhCoC;AAClC,KAAa,GAAK;GAQlB,IAAM,IAA8B;IAClC,UAAA;IACA,cAAc;IACd,UAVe,EAA8B,EAU7C;IACA,OAAO;KACL;KACA;KACA,mBAbsB,EACxB,GACA,GACA,EAUE;KACD;IACF,EAEK,IAAoB,MAAM,EAAc,qBAC5C,GACA,EACD;AACD,KAAa,GAAM;GACnB,IAAM,IAAe,GAAmB,aAAa;AACrD,GAAI,IACF,EAAU,EAAa,GAEvB,QAAQ,IAAI,4CAA4C;MAGjD;IACV;EAAC;EAAK;EAAa;EAAc;EAAY,CAAC;CAQjD,IAAM,KAAoB,MACnB,KAGiB,EAAkB,MAF/B;AAKX,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACG,KAAa,kBAAC,GAAD;GAAe,SAAS;GAAG,SAAS;GAAK,CAAA,EACtD,CAAC,KACA,KACA,EAAO,KAAK,SAAS,KACrB,EAAO,QAAQ,KAAK,GAAc,MAE5B,KAAc,EAAa,QAAQ,EAAW,iBACzC,kBAAA,GAAA,EAAK,CAAA,GAGZ,kBAAC,OAAD;GAEE,WAAU;GACV,MAAK;aAHP;IAKE,kBAAC,GAAD;KACE,SACE,IAA2B,iBAAiB;KAE9C,MAAK;KACL,OAAO;MAAE,YAAY;MAAQ,cAAc;MAAO;eAEjD,EAAa;KACH,CAAA;IACZ,KAA4B,kBAAC,MAAD,EAAM,CAAA;IACnC,kBAAC,OAAD;KAAK,MAAK;eACP,EAAO,KAAK,KAAK,GAAK,MAAa;MAClC,IAAM,IAAY,EAAI,OAAO;AAE7B,UAAI,CAAC,EACH,QAAO,kBAAA,GAAA,EAAK,CAAA;MAEd,IAAI;AAEJ,UAAI,EAAkB,SAAS,EAAa,WAAW,CAErD,KAD2B,KAAK,MAAM,EAC7B,CAAS,KAAK,GAAa,MAEhC,kBAAC,OAAD;OAEE,WAAU;OACV,MAAK;iBAHP,CAKG,KACC,kBAAC,GAAD,EAAiB,UAAU,EAAiB,EAAI,EAAI,CAAA,EAErD,CAAC,KAAc,kBAAC,KAAD,EAAA,UAAI,EAAiB,EAAI,EAAK,CAAA,CAC1C;SARC,OAAO,EAAS,OAAO,EAAS,cAQjC,CAER;WACG;OAEL,IAAI,GACE,IAAoB,EAAiB,EAAU;AACrD,WAAI,EACF,KACE,kBAAC,GAAD,EAAiB,UAAU,GAAqB,CAAA;gBAGlD,KACA,EAAW,mBAAmB,EAAa,MAC3C;QAEA,IAAM,IAAiB,EAAO,QAAQ,WACpC,MAAO,EAAI,QAAQ,EAAW,eAC/B,EACK,IAAS,EAAI;AAOnB,QANI,EAAO,MAAK,MAAS,MAAU,KAAK,IACtC,QAAQ,KACN,+CACD,EAGH,AAWE,IAXE,IAAiB,KAEjB,kBAAC,KAAD;SACE,KAAI;SACJ,QAAO;SACP,MAAM,EAAO;mBAEZ;SACC,CAAA,GAGU,kBAAC,KAAD,EAAA,UAAI,GAAsB,CAAA;aAG5C,KAAgB,kBAAC,KAAD,EAAA,UAAI,GAAsB,CAAA;AAE5C,WACE,kBAAC,OAAD;QAEE,WAAU;QACV,MAAK;kBAEJ;QACG,EALC,OAAO,EAAS,OAAO,EAAS,SAKjC;;AAGV,aAAO;OACP;KACE,CAAA;IACF;KA3FC,UAAU,IA2FX,CAER,CACA"}
|
|
1
|
+
{"version":3,"file":"SubsectionRowRenderer.js","names":[],"sources":["../../../src/components/SubsectionRowRenderer/SubsectionRowRenderer.tsx"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseConstants } from '@/utils'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n getAdditionalFilters,\n parseEntityIdFromSqlStatement,\n SQLOperator,\n} from '@/utils/functions/SqlFunctions'\nimport { Typography } from '@mui/material'\nimport {\n ColumnType,\n ColumnTypeEnum,\n QueryBundleRequest,\n RowSet,\n} from '@sage-bionetworks/synapse-types'\nimport { useState } from 'react'\nimport { useDeepCompareEffectNoCheck } from 'use-deep-compare-effect'\nimport { ColumnSpecifiedLink } from '../CardContainerLogic'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\nimport { SkeletonTable } from '../Skeleton/SkeletonTable'\n\nexport type FriendlyValuesMap = {\n [index: string]: string\n}\n\nexport type SubsectionRowRendererProps = {\n sql: string\n isMarkdown?: boolean\n sqlOperator?: SQLOperator\n searchParams?: Record<string, string>\n columnLink?: ColumnSpecifiedLink\n friendlyValuesMap?: FriendlyValuesMap\n columnNameIsSectionTitle?: boolean\n limit?: number\n additionalFiltersSessionStorageKey?: string\n}\n\nconst LIST_COLUMN_TYPES: ColumnType[] = [\n ColumnTypeEnum.BOOLEAN_LIST,\n ColumnTypeEnum.DATE_LIST,\n ColumnTypeEnum.ENTITYID_LIST,\n ColumnTypeEnum.INTEGER_LIST,\n ColumnTypeEnum.STRING_LIST,\n]\n\nfunction SubsectionRowRenderer({\n sql,\n searchParams,\n sqlOperator,\n isMarkdown = false,\n columnLink,\n friendlyValuesMap,\n columnNameIsSectionTitle = false,\n limit,\n additionalFiltersSessionStorageKey,\n}: SubsectionRowRendererProps) {\n const { accessToken } = useSynapseContext()\n const [rowSet, setRowSet] = useState<RowSet>()\n const [isLoading, setIsLoading] = useState<boolean>()\n useDeepCompareEffectNoCheck(() => {\n const fetchData = async function () {\n setIsLoading(true)\n const entityId = parseEntityIdFromSqlStatement(sql)\n const additionalFilters = getAdditionalFilters(\n searchParams,\n sqlOperator,\n additionalFiltersSessionStorageKey,\n )\n const partMask = SynapseConstants.BUNDLE_MASK_QUERY_RESULTS\n const request: QueryBundleRequest = {\n partMask,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n query: {\n sql,\n limit,\n additionalFilters,\n },\n }\n\n const queryResultBundle = await SynapseClient.getQueryTableResults(\n request,\n accessToken,\n )\n setIsLoading(false)\n const queryResults = queryResultBundle?.queryResult?.queryResults\n if (queryResults) {\n setRowSet(queryResults)\n } else {\n console.log('SubsectionRowRenderer: Error getting data')\n }\n }\n fetchData()\n }, [sql, accessToken, searchParams, sqlOperator])\n\n /**\n * If a \"friendly values map\" was provided, then use the friendly value if any of the raw values match.\n * Otherwise, just return the raw value.\n * @param rawValue\n * @returns\n */\n const getFriendlyValue = (rawValue: string) => {\n if (!friendlyValuesMap) {\n return rawValue\n }\n const friendlyValue = friendlyValuesMap[rawValue]\n return friendlyValue ? friendlyValue : rawValue\n }\n return (\n <div className=\"SubsectionRowRenderer\">\n {isLoading && <SkeletonTable numRows={2} numCols={1} />}\n {!isLoading &&\n rowSet &&\n rowSet.rows.length > 0 &&\n rowSet.headers.map((selectColumn, colIndex) => {\n // If a link column was provided (that contain URLs), do not create a page sub-section for that column.\n if (columnLink && selectColumn.name == columnLink.linkColumnName) {\n return <></>\n }\n return (\n <div\n key={`header-${colIndex}`}\n className=\"SubsectionRowRenderer__item\"\n role=\"table\"\n >\n <Typography\n variant={\n columnNameIsSectionTitle ? 'sectionTitle' : 'subsectionHeader'\n }\n role=\"heading\"\n style={{ paddingTop: '10px', marginBottom: '5px' }}\n >\n {selectColumn.name}\n </Typography>\n {columnNameIsSectionTitle && <hr />}\n <div role=\"rowgroup\">\n {rowSet.rows.map((row, rowIndex) => {\n const cellValue = row.values[colIndex]\n // If the cell value is undefined, then go to the next row.\n if (!cellValue) {\n return <></>\n }\n let values\n // If this cell value represents a multi-value (the select column type is a *_LIST column), then parse it and break it apart\n if (LIST_COLUMN_TYPES.includes(selectColumn.columnType)) {\n const jsonData: string[] = JSON.parse(cellValue)\n values = jsonData.map((val: string, index: number) => {\n return (\n <div\n key={`row-${rowIndex}-col-${colIndex}-multi-value`}\n className=\"SubsectionRowRenderer__item__value\"\n role=\"row\"\n >\n {isMarkdown && (\n <MarkdownSynapse markdown={getFriendlyValue(val)} />\n )}\n {!isMarkdown && <p>{getFriendlyValue(val)}</p>}\n </div>\n )\n })\n } else {\n // If this cell value represents a single value\n let renderedValue\n const friendlyCellValue = getFriendlyValue(cellValue)\n if (isMarkdown) {\n renderedValue = (\n <MarkdownSynapse markdown={friendlyCellValue} />\n )\n } else if (\n columnLink &&\n columnLink.matchColumnName == selectColumn.name\n ) {\n // If a link column was provided, then we need to create links (the url is in this other column)\n const urlColumnIndex = rowSet.headers.findIndex(\n col => col.name == columnLink.linkColumnName,\n )\n const values = row.values as string[]\n if (values.some(value => value === null)) {\n console.warn(\n 'Row has null value(s) when no nulls expected',\n )\n }\n\n if (urlColumnIndex > -1) {\n renderedValue = (\n <a\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n href={values[urlColumnIndex]}\n >\n {friendlyCellValue}\n </a>\n )\n } else {\n renderedValue = <p>{friendlyCellValue}</p>\n }\n } else {\n renderedValue = <p>{friendlyCellValue}</p>\n }\n values = (\n <div\n key={`row-${rowIndex}-col-${colIndex}-single`}\n className=\"SubsectionRowRenderer__item__value\"\n role=\"row\"\n >\n {renderedValue}\n </div>\n )\n }\n return values\n })}\n </div>\n </div>\n )\n })}\n </div>\n )\n}\n\nexport default SubsectionRowRenderer\n"],"mappings":";;;;;;;;;;;;;AAqCA,IAAM,IAAkC;CACtC,EAAe;CACf,EAAe;CACf,EAAe;CACf,EAAe;CACf,EAAe;AACjB;AAEA,SAAS,EAAsB,EAC7B,QACA,iBACA,gBACA,gBAAa,IACb,eACA,sBACA,8BAA2B,IAC3B,UACA,yCAC6B;CAC7B,IAAM,EAAE,mBAAgB,EAAkB,GACpC,CAAC,GAAQ,KAAa,EAAiB,GACvC,CAAC,GAAW,KAAgB,EAAkB;CACpD,QAAkC;EAiChC,kBAhCoC;GAClC,EAAa,EAAI;GAQjB,IAAM,IAA8B;IAClC,UAAA;IACA,cAAc;IACd,UAVe,EAA8B,CAU7C;IACA,OAAO;KACL;KACA;KACA,mBAbsB,EACxB,GACA,GACA,CAUE;IACF;GACF,GAEM,IAAoB,MAAM,EAAc,qBAC5C,GACA,CACF;GACA,EAAa,EAAK;GAClB,IAAM,IAAe,GAAmB,aAAa;GACrD,AAAI,IACF,EAAU,CAAY,IAEtB,QAAQ,IAAI,2CAA2C;EAE3D,GACU;CACZ,GAAG;EAAC;EAAK;EAAa;EAAc;CAAW,CAAC;CAQhD,IAAM,KAAoB,MACnB,KAGiB,EAAkB,MAF/B;CAKX,OACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACG,KAAa,kBAAC,GAAD;GAAe,SAAS;GAAG,SAAS;EAAI,CAAA,GACrD,CAAC,KACA,KACA,EAAO,KAAK,SAAS,KACrB,EAAO,QAAQ,KAAK,GAAc,MAE5B,KAAc,EAAa,QAAQ,EAAW,iBACzC,kBAAA,GAAA,CAAI,CAAA,IAGX,kBAAC,OAAD;GAEE,WAAU;GACV,MAAK;aAHP;IAKE,kBAAC,GAAD;KACE,SACE,IAA2B,iBAAiB;KAE9C,MAAK;KACL,OAAO;MAAE,YAAY;MAAQ,cAAc;KAAM;eAEhD,EAAa;IACJ,CAAA;IACX,KAA4B,kBAAC,MAAD,CAAK,CAAA;IAClC,kBAAC,OAAD;KAAK,MAAK;eACP,EAAO,KAAK,KAAK,GAAK,MAAa;MAClC,IAAM,IAAY,EAAI,OAAO;MAE7B,IAAI,CAAC,GACH,OAAO,kBAAA,GAAA,CAAI,CAAA;MAEb,IAAI;MAEJ,IAAI,EAAkB,SAAS,EAAa,UAAU,GAEpD,IAD2B,KAAK,MAAM,CAC7B,EAAS,KAAK,GAAa,MAEhC,kBAAC,OAAD;OAEE,WAAU;OACV,MAAK;iBAHP,CAKG,KACC,kBAAC,GAAD,EAAiB,UAAU,EAAiB,CAAG,EAAI,CAAA,GAEpD,CAAC,KAAc,kBAAC,KAAD,EAAA,UAAI,EAAiB,CAAG,EAAK,CAAA,CAC1C;SARE,OAAO,EAAS,OAAO,EAAS,aAQlC,CAER;WACI;OAEL,IAAI,GACE,IAAoB,EAAiB,CAAS;OACpD,IAAI,GACF,IACE,kBAAC,GAAD,EAAiB,UAAU,EAAoB,CAAA;YAE5C,IACL,KACA,EAAW,mBAAmB,EAAa,MAC3C;QAEA,IAAM,IAAiB,EAAO,QAAQ,WACpC,MAAO,EAAI,QAAQ,EAAW,cAChC,GACM,IAAS,EAAI;QAOnB,AANI,EAAO,MAAK,MAAS,MAAU,IAAI,KACrC,QAAQ,KACN,8CACF,GAGF,AAWE,IAXE,IAAiB,KAEjB,kBAAC,KAAD;SACE,KAAI;SACJ,QAAO;SACP,MAAM,EAAO;mBAEZ;QACA,CAAA,IAGW,kBAAC,KAAD,EAAA,UAAI,EAAqB,CAAA;OAE7C,OACE,IAAgB,kBAAC,KAAD,EAAA,UAAI,EAAqB,CAAA;OAE3C,IACE,kBAAC,OAAD;QAEE,WAAU;QACV,MAAK;kBAEJ;OACE,GALE,OAAO,EAAS,OAAO,EAAS,QAKlC;MAET;MACA,OAAO;KACT,CAAC;IACE,CAAA;GACF;KA3FE,UAAU,GA2FZ,CAER,CACA;;AAET"}
|