synapse-react-client 4.0.18 → 4.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SWC.index.d.ts +3 -1
- package/dist/SWC.index.d.ts.map +1 -1
- package/dist/SWC.index.js +3 -1
- package/dist/SWC.index.js.map +1 -1
- package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
- package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
- package/dist/assets/DefaultColorfulPortalCardBackground.js.map +1 -1
- package/dist/assets/GoogleIcon.js.map +1 -1
- package/dist/assets/GoogleIcon24.js.map +1 -1
- package/dist/assets/homepage/BlinkingLiveIcon.d.ts +1 -1
- package/dist/assets/homepage/BlinkingLiveIcon.js.map +1 -1
- package/dist/assets/homepage/aacr.js.map +1 -1
- package/dist/assets/homepage/cri.js.map +1 -1
- package/dist/assets/homepage/ctf.js.map +1 -1
- package/dist/assets/homepage/egress.js.map +1 -1
- package/dist/assets/homepage/facebook.js.map +1 -1
- package/dist/assets/homepage/fisma.js.map +1 -1
- package/dist/assets/homepage/gff.js.map +1 -1
- package/dist/assets/homepage/github.js.map +1 -1
- package/dist/assets/homepage/gray.js.map +1 -1
- package/dist/assets/homepage/hipaa-compliant.js.map +1 -1
- package/dist/assets/homepage/instagram.js.map +1 -1
- package/dist/assets/homepage/linkedin.js.map +1 -1
- package/dist/assets/homepage/ml-commons.js.map +1 -1
- package/dist/assets/homepage/nih-aging.js.map +1 -1
- package/dist/assets/homepage/nih-heart.js.map +1 -1
- package/dist/assets/homepage/nih-nci.js.map +1 -1
- package/dist/assets/homepage/nih-nimh.js.map +1 -1
- package/dist/assets/homepage/ntap.js.map +1 -1
- package/dist/assets/homepage/plan-item.js.map +1 -1
- package/dist/assets/homepage/powered-by-synapse-feature.js.map +1 -1
- package/dist/assets/homepage/precision-governance-feature.js.map +1 -1
- package/dist/assets/homepage/python.js.map +1 -1
- package/dist/assets/homepage/r.js.map +1 -1
- package/dist/assets/homepage/research-credit-feature.js.map +1 -1
- package/dist/assets/homepage/seamless-integration-feature.js.map +1 -1
- package/dist/assets/homepage/sloan.js.map +1 -1
- package/dist/assets/homepage/twitter.js.map +1 -1
- package/dist/assets/homepage/users.js.map +1 -1
- package/dist/assets/homepage/youtube.js.map +1 -1
- package/dist/assets/icons/AccessDataAnywhere.js.map +1 -1
- package/dist/assets/icons/AccessPending.js.map +1 -1
- package/dist/assets/icons/AccessPendingCloud.js.map +1 -1
- package/dist/assets/icons/AddAd.js.map +1 -1
- package/dist/assets/icons/AddToList.js.map +1 -1
- package/dist/assets/icons/Alert.js.map +1 -1
- package/dist/assets/icons/Arrow.js.map +1 -1
- package/dist/assets/icons/AwardScroll.js.map +1 -1
- package/dist/assets/icons/Baseline.js.map +1 -1
- package/dist/assets/icons/Cavatica.js.map +1 -1
- package/dist/assets/icons/CertifiedUser.js.map +1 -1
- package/dist/assets/icons/Challenge.js.map +1 -1
- package/dist/assets/icons/Checkbox/Checked.js.map +1 -1
- package/dist/assets/icons/Checkbox/Checked2.js.map +1 -1
- package/dist/assets/icons/Checkbox/Indeterminate.js.map +1 -1
- package/dist/assets/icons/Checkbox/Indeterminate2.js.map +1 -1
- package/dist/assets/icons/Checkbox/Unchecked.js.map +1 -1
- package/dist/assets/icons/Checkbox/Unchecked2.js.map +1 -1
- package/dist/assets/icons/ClappingHands.js.map +1 -1
- package/dist/assets/icons/CloudWarning.js.map +1 -1
- package/dist/assets/icons/CommunicateFindings.js.map +1 -1
- package/dist/assets/icons/CreateVersion.js.map +1 -1
- package/dist/assets/icons/DNA_Two.js.map +1 -1
- package/dist/assets/icons/Data2.js.map +1 -1
- package/dist/assets/icons/DoubleQuotes.js.map +1 -1
- package/dist/assets/icons/EmailAddressAdornment.js.map +1 -1
- package/dist/assets/icons/FileWithShield.js.map +1 -1
- package/dist/assets/icons/FileWithShield2.js.map +1 -1
- package/dist/assets/icons/FrontHand.js.map +1 -1
- package/dist/assets/icons/HandWithMoney.js.map +1 -1
- package/dist/assets/icons/IconCopy.js.map +1 -1
- package/dist/assets/icons/IconMinus.js.map +1 -1
- package/dist/assets/icons/IconPlus.js.map +1 -1
- package/dist/assets/icons/Java.js.map +1 -1
- package/dist/assets/icons/MintDoi.js.map +1 -1
- package/dist/assets/icons/MultiFile.js.map +1 -1
- package/dist/assets/icons/MultiFile2.js.map +1 -1
- package/dist/assets/icons/NoData.js.map +1 -1
- package/dist/assets/icons/NoSearchResults.js.map +1 -1
- package/dist/assets/icons/ORCIDIcon.js.map +1 -1
- package/dist/assets/icons/OpenBook.js.map +1 -1
- package/dist/assets/icons/Podium.js.map +1 -1
- package/dist/assets/icons/Python.js.map +1 -1
- package/dist/assets/icons/QueryStructuredData.js.map +1 -1
- package/dist/assets/icons/RLogo.js.map +1 -1
- package/dist/assets/icons/RecordProvenance.js.map +1 -1
- package/dist/assets/icons/RosetteRibbon.js.map +1 -1
- package/dist/assets/icons/SageFullLogo.js.map +1 -1
- package/dist/assets/icons/SearchImage.js.map +1 -1
- package/dist/assets/icons/ShareYourResearch.js.map +1 -1
- package/dist/assets/icons/Sort.js.map +1 -1
- package/dist/assets/icons/StarTrophy.js.map +1 -1
- package/dist/assets/icons/SynapseFullLogo.js.map +1 -1
- package/dist/assets/icons/SynapseIconWhite.js.map +1 -1
- package/dist/assets/icons/SynapseLogoName.js.map +1 -1
- package/dist/assets/icons/TasksIcon.js.map +1 -1
- package/dist/assets/icons/Terminal.js.map +1 -1
- package/dist/assets/icons/ThreeStars.js.map +1 -1
- package/dist/assets/icons/UnpackagableFile.js.map +1 -1
- package/dist/assets/icons/UnpackagableFile2.js.map +1 -1
- package/dist/assets/icons/ValidatedProfile.js.map +1 -1
- package/dist/assets/icons/account-certified.js.map +1 -1
- package/dist/assets/icons/account-enabled-mfa.js.map +1 -1
- package/dist/assets/icons/account-validated.js.map +1 -1
- package/dist/assets/icons/bioChemicalPhysical.js.map +1 -1
- package/dist/assets/icons/chart2.js.map +1 -1
- package/dist/assets/icons/columns.js.map +1 -1
- package/dist/assets/icons/columnsDarkTheme.js.map +1 -1
- package/dist/assets/icons/computationalTool.js.map +1 -1
- package/dist/assets/icons/dataReuse.js.map +1 -1
- package/dist/assets/icons/emailAddressAdornment2.js.map +1 -1
- package/dist/assets/icons/emailWithNotification.js.map +1 -1
- package/dist/assets/icons/error_page/maintenance.js.map +1 -1
- package/dist/assets/icons/error_page/no-access.js.map +1 -1
- package/dist/assets/icons/error_page/unavailable.js.map +1 -1
- package/dist/assets/icons/file.js.map +1 -1
- package/dist/assets/icons/inSilicoModel.js.map +1 -1
- package/dist/assets/icons/institution.js.map +1 -1
- package/dist/assets/icons/json-form-tool-no-submissions.js.map +1 -1
- package/dist/assets/icons/modelSystem.js.map +1 -1
- package/dist/assets/icons/mouse.js.map +1 -1
- package/dist/assets/icons/organizations.js.map +1 -1
- package/dist/assets/icons/person.js.map +1 -1
- package/dist/assets/icons/spatialProfiling.js.map +1 -1
- package/dist/assets/icons/standardDataModel.js.map +1 -1
- package/dist/assets/icons/study-active.js.map +1 -1
- package/dist/assets/icons/study-complete.js.map +1 -1
- package/dist/assets/icons/subscribe_plus.js.map +1 -1
- package/dist/assets/icons/synapse-logo.js.map +1 -1
- package/dist/assets/icons/terms/CheckIcon.js.map +1 -1
- package/dist/assets/icons/translational.js.map +1 -1
- package/dist/assets/icons/tree_horizontal.js.map +1 -1
- package/dist/assets/illustrations/acknowledgement_statements_illustration.js.map +1 -1
- package/dist/assets/illustrations/challenges_illustration.js.map +1 -1
- package/dist/assets/illustrations/cohort_builder_illustration.js.map +1 -1
- package/dist/assets/illustrations/data_access_management_illustration.js.map +1 -1
- package/dist/assets/illustrations/datasets_illustration.js.map +1 -1
- package/dist/assets/illustrations/diagonalLinePattern.js.map +1 -1
- package/dist/assets/illustrations/discussions_illustration.js.map +1 -1
- package/dist/assets/illustrations/docker_illustration.js.map +1 -1
- package/dist/assets/illustrations/donation_illustration.js.map +1 -1
- package/dist/assets/illustrations/favorites_illustration.js.map +1 -1
- package/dist/assets/illustrations/files_illustration.js.map +1 -1
- package/dist/assets/illustrations/following_illustration.js.map +1 -1
- package/dist/assets/illustrations/index.js.map +1 -1
- package/dist/assets/illustrations/left_dot_blob_dark_illustration.js.map +1 -1
- package/dist/assets/illustrations/left_dot_blob_illustration.js.map +1 -1
- package/dist/assets/illustrations/projects_illustration.js.map +1 -1
- package/dist/assets/illustrations/right_dot_blob_dark_illustration.js.map +1 -1
- package/dist/assets/illustrations/right_dot_blob_illustration.js.map +1 -1
- package/dist/assets/illustrations/tables_illustration.js.map +1 -1
- package/dist/assets/illustrations/teams_illustration.js.map +1 -1
- package/dist/assets/illustrations/trash_can_illustration.js.map +1 -1
- package/dist/assets/illustrations/underconstruction_illustration.js.map +1 -1
- package/dist/assets/illustrations/wikis_illustration.js.map +1 -1
- package/dist/assets/logos/other/ad-workbench-logo.js.map +1 -1
- package/dist/assets/logos/other/cavatica-logo.js.map +1 -1
- package/dist/assets/logos/other/pluto-logo.js.map +1 -1
- package/dist/assets/logos/other/terra-logo.js.map +1 -1
- package/dist/assets/mui_components/AccessManagement.js.map +1 -1
- package/dist/assets/mui_components/AccountCertified.js.map +1 -1
- package/dist/assets/mui_components/AccountRegistered.js.map +1 -1
- package/dist/assets/mui_components/AccountValidated.js.map +1 -1
- package/dist/assets/mui_components/ActionKey.js.map +1 -1
- package/dist/assets/mui_components/BioChemicalPhysical.js.map +1 -1
- package/dist/assets/mui_components/Chromatin.js.map +1 -1
- package/dist/assets/mui_components/Clinical.js.map +1 -1
- package/dist/assets/mui_components/ComputationalTool.js.map +1 -1
- package/dist/assets/mui_components/Data.js.map +1 -1
- package/dist/assets/mui_components/DataLocked.js.map +1 -1
- package/dist/assets/mui_components/DataReuse.js.map +1 -1
- package/dist/assets/mui_components/Dataset.js.map +1 -1
- package/dist/assets/mui_components/DatasetCollection.js.map +1 -1
- package/dist/assets/mui_components/Docker.js.map +1 -1
- package/dist/assets/mui_components/GeneExpression.js.map +1 -1
- package/dist/assets/mui_components/GeneVariants.js.map +1 -1
- package/dist/assets/mui_components/HelpChatBubble.js.map +1 -1
- package/dist/assets/mui_components/Imaging.js.map +1 -1
- package/dist/assets/mui_components/InSilicoModel.js.map +1 -1
- package/dist/assets/mui_components/Kinomics.js.map +1 -1
- package/dist/assets/mui_components/LineGraph.js.map +1 -1
- package/dist/assets/mui_components/ModelSystem.js.map +1 -1
- package/dist/assets/mui_components/Other.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile2.js.map +1 -1
- package/dist/assets/mui_components/Proteomics.js.map +1 -1
- package/dist/assets/mui_components/Rat.js.map +1 -1
- package/dist/assets/mui_components/SpatialProfiling.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition1.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition2.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition3.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition4.js.map +1 -1
- package/dist/assets/sustainability/dialPosition1.js.map +1 -1
- package/dist/assets/sustainability/dialPosition2.js.map +1 -1
- package/dist/assets/sustainability/dialPosition3.js.map +1 -1
- package/dist/assets/sustainability/dialPosition4.js.map +1 -1
- package/dist/assets/themed_icons/Active.js.map +1 -1
- package/dist/assets/themed_icons/Chart.js.map +1 -1
- package/dist/assets/themed_icons/Close.js.map +1 -1
- package/dist/assets/themed_icons/Collapse.js.map +1 -1
- package/dist/assets/themed_icons/Columns.js.map +1 -1
- package/dist/assets/themed_icons/ColumnsDark.js.map +1 -1
- package/dist/assets/themed_icons/Database.js.map +1 -1
- package/dist/assets/themed_icons/Download.js.map +1 -1
- package/dist/assets/themed_icons/Expand.js.map +1 -1
- package/dist/assets/themed_icons/Explore.js.map +1 -1
- package/dist/assets/themed_icons/ExternalLink.js.map +1 -1
- package/dist/assets/themed_icons/Filter.js.map +1 -1
- package/dist/assets/themed_icons/Program.js.map +1 -1
- package/dist/assets/themed_icons/Project.js.map +1 -1
- package/dist/assets/themed_icons/Publication.js.map +1 -1
- package/dist/assets/themed_icons/Search.js.map +1 -1
- package/dist/assets/themed_icons/Settings.js.map +1 -1
- package/dist/assets/themed_icons/SortDown.js.map +1 -1
- package/dist/assets/themed_icons/SortUp.js.map +1 -1
- package/dist/assets/themed_icons/SqlEditorIcon.js.map +1 -1
- package/dist/assets/themed_icons/Study.js.map +1 -1
- package/dist/assets/themed_icons/ToolClinical.js.map +1 -1
- package/dist/assets/themed_icons/ToolComputational.js.map +1 -1
- package/dist/assets/themed_icons/ToolExperimental.js.map +1 -1
- package/dist/assets/themed_icons/VerticalDots.js.map +1 -1
- package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js.map +1 -1
- package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
- package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js.map +1 -1
- package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +10 -11
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +73 -76
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/AuthenticatedRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/CertificationRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/LockAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/ValidationRequirement.js.map +1 -1
- package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
- package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
- package/dist/components/AccountLevelBadge/AccountLevelBadge.js.map +1 -1
- package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
- package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgement.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
- package/dist/components/AclEditor/AclEditorSkeleton.js.map +1 -1
- package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
- package/dist/components/AclEditor/ReadOnlyPermissionLevel.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js +2 -4
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessItem.js.map +1 -1
- package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
- package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
- package/dist/components/AdaptiveTwoColumnLayout/AdaptiveTwoColumnLayout.js.map +1 -1
- package/dist/components/AddToDownloadListV2.js.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
- package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
- package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
- package/dist/components/Authentication/LoginFlowBackButton.js.map +1 -1
- package/dist/components/Authentication/LoginForm.js.map +1 -1
- package/dist/components/Authentication/LoginMethod.js.map +1 -1
- package/dist/components/Authentication/LoginMethodButton.js.map +1 -1
- package/dist/components/Authentication/Logout.js.map +1 -1
- package/dist/components/Authentication/OneTimePasswordForm.js.map +1 -1
- package/dist/components/Authentication/PasswordField.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
- package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
- package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
- package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
- package/dist/components/Authentication/TOTPForm.js.map +1 -1
- package/dist/components/Authentication/TwoFactorAuthSettingsPanel.js.map +1 -1
- package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
- package/dist/components/Authentication/TwoFactorSecretDialog.js.map +1 -1
- package/dist/components/Authentication/UsernamePasswordForm.js.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/components/CTASectionWrapper/CTASectionWrapper.js.map +1 -1
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
- package/dist/components/CardContainer/CardContainer.js.map +1 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Desktop.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.js.map +1 -1
- package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
- package/dist/components/CardGridWithLinks/CardGridWithLinks.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationAnswer.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
- package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
- package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js.map +1 -1
- package/dist/components/ChallengeRegisterButton/ChallengeRegisterButton.js.map +1 -1
- package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
- package/dist/components/ChallengeSubmission/AddExternalRepo.js.map +1 -1
- package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +62 -64
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionCommitList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamSearch.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +96 -102
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/OpenMembershipInvitation.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/RegistrationSuccessful.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
- package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
- package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopover.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
- package/dist/components/CitationPopover/useCitation.js.map +1 -1
- package/dist/components/ColorGradient/ColorGradient.js.map +1 -1
- package/dist/components/ColoredBulletListItem/ColoredBulletListItem.js.map +1 -1
- package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
- package/dist/components/ComponentCollapse.js.map +1 -1
- package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiePreferencesDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.d.ts.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.js +9 -9
- package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
- package/dist/components/CopyToClipboardIcon.js.map +1 -1
- package/dist/components/CopyToClipboardInput/CopyToClipboardInput.js.map +1 -1
- package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizardUtils.js.map +1 -1
- package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
- package/dist/components/CreateProjectModal/ProjectVisibilityRadioGroup.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableTypeSelection.js.map +1 -1
- package/dist/components/CreateTableViewWizard/ViewTypeSelection.js.map +1 -1
- package/dist/components/CrispChat/CrispChat.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.css +1 -0
- package/dist/components/DataExplorer/DataExplorer.d.ts +13 -0
- package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -0
- package/dist/components/DataExplorer/DataExplorer.js +116 -0
- package/dist/components/DataExplorer/DataExplorer.js.map +1 -0
- package/dist/components/DataExplorer/DataExplorer.module.js +22 -0
- package/dist/components/DataExplorer/DataExplorer.module.js.map +1 -0
- package/dist/components/DataExplorer/DataExplorer.module.scss +156 -0
- package/dist/components/DataGrid/DataGrid.js +72 -72
- package/dist/components/DataGrid/DataGrid.js.map +1 -1
- package/dist/components/DataGrid/DataGridTypes.js.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.d.ts +2 -0
- package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.js +9 -10
- package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
- package/dist/components/DataGrid/StartGridSession.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts +3 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +219 -211
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.js +106 -102
- package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js +97 -89
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/GridAutocompleteChip.js.map +1 -1
- package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts +19 -8
- package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js +64 -43
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
- package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js.map +1 -1
- package/dist/components/DataGrid/components/GridSessionSelectionField.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.d.ts.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +9 -9
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
- package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
- package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +2 -0
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
- package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js +8 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridReplicaUsers.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
- package/dist/components/DataGrid/hooks/useRemoteSelections.js.map +1 -1
- package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
- package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts +2 -0
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js +12 -2
- package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
- package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
- package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
- package/dist/components/DataGrid/utils/MessageCounter.js.map +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/calculateColumnWidth.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
- package/dist/components/DataGrid/utils/convertActionToModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/createTestModel.js.map +1 -1
- package/dist/components/DataGrid/utils/enrichRowsWithChangeInfo.js.map +1 -1
- package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellAuthorSid.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
- package/dist/components/DataGrid/utils/getChangeTooltipText.js.map +1 -1
- package/dist/components/DataGrid/utils/getEmptyValue.js.map +1 -1
- package/dist/components/DataGrid/utils/getReplicaCategory.js.map +1 -1
- package/dist/components/DataGrid/utils/isValidationUpToDateForRow.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxMessage.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxNotification.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxRequest.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxRequestComplete.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxResponse.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
- package/dist/components/DataGrid/utils/logicalTimestampToString.js.map +1 -1
- package/dist/components/DataGrid/utils/mapOperationsToModelChanges.js.map +1 -1
- package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
- package/dist/components/DataGrid/utils/replicaSelectionToGridSelection.js.map +1 -1
- package/dist/components/DataGrid/utils/schemaAwarePasteValue.js.map +1 -1
- package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
- package/dist/components/DatasetJsonLdScript.js.map +1 -1
- package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
- package/dist/components/Dialog/ConfirmCloseWithoutSavingDialog.js.map +1 -1
- package/dist/components/DialogBase.js.map +1 -1
- package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
- package/dist/components/DirectDownload/FileEntityDirectDownload.js.map +1 -1
- package/dist/components/DirectDownloadButton.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
- package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
- package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
- package/dist/components/DownloadCart/DirectProgrammaticDownload.js.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
- package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListStats.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
- package/dist/components/DownloadCart/EnableTwoFaRequirementCard.js.map +1 -1
- package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
- package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
- package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
- package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
- package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
- package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
- package/dist/components/DynamicForm/DynamicForm.js.map +1 -1
- package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemCard.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemLayout.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
- package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
- package/dist/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditorModal.js.map +1 -1
- package/dist/components/EntityAclEditor/InheritanceMessage.js.map +1 -1
- package/dist/components/EntityAclEditor/OpenData.js.map +1 -1
- package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +68 -70
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js +32 -35
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
- package/dist/components/EntityFinder/Breadcrumbs.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinder.js +134 -136
- package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinderModal.js.map +1 -1
- package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
- package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
- package/dist/components/EntityFinder/details/EntityDetailsList.js +20 -20
- package/dist/components/EntityFinder/details/EntityDetailsList.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ReferenceDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/SearchDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.js +67 -67
- package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
- package/dist/components/EntityFinder/details/view/VersionColumnHeader.js +1 -1
- package/dist/components/EntityFinder/details/view/VersionColumnHeader.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/DateCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityBadgeIconsCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityFinderCheckboxCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityFinderVersionCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityNameCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityTypeCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityDirectDownloadCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/UserBadgeCell.js.map +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.js +80 -80
- package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
- package/dist/components/EntityFinder/tree/VirtualizedTree.js +31 -31
- package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
- package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
- package/dist/components/EntityForm/EntityForm.js.map +1 -1
- package/dist/components/EntityHeaderTable/DebouncedInput.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTableCellRenderers.js.map +1 -1
- package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
- package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
- package/dist/components/EntityIcon.js.map +1 -1
- package/dist/components/EntityLink.js.map +1 -1
- package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
- package/dist/components/EntityTreeTable/EntityTreeTable.js.map +1 -1
- package/dist/components/EntityTreeTable/components/AutoLoadMore.js.map +1 -1
- package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityBadgeIconsCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableContext.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableRow.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
- package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
- package/dist/components/EntityUpload/EntityUploadModal.js +29 -31
- package/dist/components/EntityUpload/EntityUploadModal.js.map +1 -1
- package/dist/components/EntityUpload/EntityUploadPromptDialog.js.map +1 -1
- package/dist/components/EntityUpload/ExternalObjectStoreCredentialsForm.js.map +1 -1
- package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
- package/dist/components/EntityUpload/LinkToURL.js.map +1 -1
- package/dist/components/EntityUpload/ProjectStorageLimitAlert.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewScopeEditor.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewScopeEditorModal.js.map +1 -1
- package/dist/components/Evaluation/CreatedOnByUserDiv.js.map +1 -1
- package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -1
- package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditorPage.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditorDropdown.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditorList.js.map +1 -1
- package/dist/components/Evaluation/input_models/models.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
- package/dist/components/EvaluationFinder/EvaluationFinder.js.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.d.ts.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js +24 -30
- package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
- package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataPlots.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
- package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
- package/dist/components/FeaturedResearch/FeaturedResearch.js +16 -18
- package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolCard.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
- package/dist/components/FilePreview/EntityPreview.js.map +1 -1
- package/dist/components/FilePreview/FileEntityPreview.js.map +1 -1
- package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
- package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
- package/dist/components/FilePreview/PdfPreview.js.map +1 -1
- package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
- package/dist/components/FilePreview/PreviewUtils.js.map +1 -1
- package/dist/components/FileUpload/FileUpload.js.map +1 -1
- package/dist/components/Forum/DiscussionReply.js.map +1 -1
- package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
- package/dist/components/Forum/DiscussionThread.js.map +1 -1
- package/dist/components/Forum/ForumPage.js.map +1 -1
- package/dist/components/Forum/ForumTable.js.map +1 -1
- package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
- package/dist/components/Forum/SubscribersModal.js.map +1 -1
- package/dist/components/ForumSearch/ForumSearch.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearch.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
- package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
- package/dist/components/GenericCard/BioregistryRules.js.map +1 -1
- package/dist/components/GenericCard/CardUtils.js.map +1 -1
- package/dist/components/GenericCard/CollapsibleDescription.js.map +1 -1
- package/dist/components/GenericCard/CroissantButton/CroissantButton.js.map +1 -1
- package/dist/components/GenericCard/GenericCard.js.map +1 -1
- package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
- package/dist/components/GenericCard/GenericCardIcon.js.map +1 -1
- package/dist/components/GenericCard/GenericCardTitle.js.map +1 -1
- package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -1
- package/dist/components/GenericCard/Linkify.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/GenericCard/useResolvedSynapseEntity.js.map +1 -1
- package/dist/components/Goals/Goals.Desktop.js.map +1 -1
- package/dist/components/Goals/Goals.Mobile.js.map +1 -1
- package/dist/components/Goals/Goals.js +25 -27
- package/dist/components/Goals/Goals.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.js +14 -16
- package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Desktop.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.js +14 -16
- package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
- package/dist/components/GoogleAnalytics/GoogleAnalytics.js.map +1 -1
- package/dist/components/GoogleMap/GoogleMap.js.map +1 -1
- package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
- package/dist/components/HasAccess/AccessIcon.js +10 -10
- package/dist/components/HasAccess/AccessIcon.js.map +1 -1
- package/dist/components/HasAccess/HasAccessV2.js.map +1 -1
- package/dist/components/HasAccess/useHasAccess.js.map +1 -1
- package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
- package/dist/components/HeaderCard.js.map +1 -1
- package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
- package/dist/components/HexGrid/HexGrid.js.map +1 -1
- package/dist/components/IDUReport/IDUReport.js.map +1 -1
- package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
- package/dist/components/Icon/Icon.js.map +1 -1
- package/dist/components/IconList.js.map +1 -1
- package/dist/components/IconSvg/IconSvg.js.map +1 -1
- package/dist/components/IconSvgButton.js.map +1 -1
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js +7 -9
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
- package/dist/components/ImageFromSynapseTable.js.map +1 -1
- package/dist/components/InteractiveCopyIdsIcon.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditorModal.js.map +1 -1
- package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
- package/dist/components/JsonLdScript.js.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTitleTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/DescriptionFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ErrorListTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldDescriptionTable.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldErrorTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/BooleanWidget.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/DateTimeWidget.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
- package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
- package/dist/components/Markdown/GovernanceMarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
- package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.js +75 -106
- package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.d.ts +14 -4
- package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.js +38 -37
- package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
- package/dist/components/Markdown/MarkdownWidget.js.map +1 -1
- package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
- package/dist/components/Markdown/UserMentionModal.js.map +1 -1
- package/dist/components/Markdown/widget/Bookmarks.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownEntityPreview.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownIDUReport.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapseImage.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapseTable.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownTableOfContents.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownUserOrTeamBadge.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownVideo.js.map +1 -1
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.FormSchema.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
- package/dist/components/MuiContainer.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
- package/dist/components/OAuthClientManagement/CreateOAuthClient.js.map +1 -1
- package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
- package/dist/components/OrientationBanner/OrientationBanner.js.map +1 -1
- package/dist/components/PageProgress/PageProgress.js.map +1 -1
- package/dist/components/Plot/BarPlot.js.map +1 -1
- package/dist/components/Plot/DotPlot.js.map +1 -1
- package/dist/components/Plot/Plot.d.ts +12 -1
- package/dist/components/Plot/Plot.d.ts.map +1 -1
- package/dist/components/Plot/Plot.js +5 -1
- package/dist/components/Plot/Plot.js.map +1 -1
- package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
- package/dist/components/Plot/SynapsePlot.js.map +1 -1
- package/dist/components/Plot/SynapseSankeyPlot.d.ts +12 -0
- package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -0
- package/dist/components/Plot/SynapseSankeyPlot.js +54 -0
- package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -0
- package/dist/components/Plot/ThemesPlot.js.map +1 -1
- package/dist/components/Plot/UpsetPlot.js.map +1 -1
- package/dist/components/Plot/index.d.ts +3 -1
- package/dist/components/Plot/index.d.ts.map +1 -1
- package/dist/components/Plot/index.js +2 -1
- package/dist/components/Plot/safe-react-plotly-factory.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditorModal.js.map +1 -1
- package/dist/components/PortalFeatureHighlights/PortalFeatureHighlights.js.map +1 -1
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js +4 -6
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
- package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
- package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
- package/dist/components/PortalList/PortalCard.js.map +1 -1
- package/dist/components/PortalList/PortalList.js.map +1 -1
- package/dist/components/PortalSectionHeader/PortalSectionHeader.js.map +1 -1
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js +69 -69
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
- package/dist/components/Programs/Programs.Desktop.js.map +1 -1
- package/dist/components/Programs/Programs.Mobile.js.map +1 -1
- package/dist/components/Programs/Programs.js.map +1 -1
- package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
- package/dist/components/ProvenanceGraph/ActivityNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/EntityNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/EntityPlaceholderNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ExpandGraphNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ExternalGraphNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceEntityIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js +13 -13
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/UndefinedNodeLabel.js.map +1 -1
- package/dist/components/QueryContext/QueryContext.js.map +1 -1
- package/dist/components/QueryCount/QueryCount.js.map +1 -1
- package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
- package/dist/components/QuerySortSelector.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/NoContentPlaceholder.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationContext.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.d.ts.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +67 -65
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapper.js +27 -27
- package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapperLoadingScreen.js.map +1 -1
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
- package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
- package/dist/components/QueryWrapper/ViewMoreQueryResultsButton.js.map +1 -1
- package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
- package/dist/components/QueryWrapper/useComputeRowSelectionPrimaryKey.js.map +1 -1
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
- package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
- package/dist/components/QueryWrapper/useHasFacetedSelectColumn.js.map +1 -1
- package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +1 -0
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
- package/dist/components/RORInstitutionField/RORInstitutionField.js.map +1 -1
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js +6 -8
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
- package/dist/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCard.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardMedium.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
- package/dist/components/RenderIfInView/RenderIfInView.js.map +1 -1
- package/dist/components/ResizableContainer/ResizableContainer.js.map +1 -1
- package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
- package/dist/components/Resources/Resources.Desktop.js.map +1 -1
- package/dist/components/Resources/Resources.Mobile.js.map +1 -1
- package/dist/components/Resources/Resources.js +8 -11
- package/dist/components/Resources/Resources.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
- package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
- package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/SynapseAnnotationsWrapIfAdditionalTemplate.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/widget/TextWidget.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.d.ts +1 -1
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js +1 -0
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessRequirementTextInstructions.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
- package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
- package/dist/components/ShowMore/ShowMore.js.map +1 -1
- package/dist/components/SignInButton.js.map +1 -1
- package/dist/components/SignInRequiredModal/SignInRequiredModal.js.map +1 -1
- package/dist/components/Skeleton/SkeletonButton.js.map +1 -1
- package/dist/components/Skeleton/SkeletonInlineBlock.js.map +1 -1
- package/dist/components/Skeleton/SkeletonParagraph.js.map +1 -1
- package/dist/components/Skeleton/SkeletonTable.js.map +1 -1
- package/dist/components/SmartLink/SmartButton.js.map +1 -1
- package/dist/components/SmartLink/SmartLink.js.map +1 -1
- package/dist/components/SmartLink/useSmartLink.js.map +1 -1
- package/dist/components/SourceAppImage.js.map +1 -1
- package/dist/components/SpinnerButton/SpinnerButton.js.map +1 -1
- package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditor.js.map +1 -1
- package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.js.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.d.ts +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.d.ts.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
- package/dist/components/StatisticsPlot.js.map +1 -1
- package/dist/components/StepperDialog/StepperDialog.js.map +1 -1
- package/dist/components/StorybookComponentWrapper.js.map +1 -1
- package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.js.map +1 -1
- package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.js.map +1 -1
- package/dist/components/SubscriptionPage/ForumTopic.js.map +1 -1
- package/dist/components/SubscriptionPage/SubscriptionItem.js.map +1 -1
- package/dist/components/SubscriptionPage/SubscriptionPage.js.map +1 -1
- package/dist/components/SubscriptionPage/ThreadTopic.js.map +1 -1
- package/dist/components/SubscriptionPage/Topic.js.map +1 -1
- package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
- package/dist/components/SustainabilityScorecard/Dial.js.map +1 -1
- package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardUtils.js.map +1 -1
- package/dist/components/SynapseChat/AccessLevelMenu.js.map +1 -1
- package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatDialog.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
- package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
- package/dist/components/SynapseChat/useChatState.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseLinksColumn.js.map +1 -1
- package/dist/components/SynapseForm/DataDebug.js.map +1 -1
- package/dist/components/SynapseForm/Header.js.map +1 -1
- package/dist/components/SynapseForm/NavButtons.js.map +1 -1
- package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
- package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
- package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormCheckboxWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormCheckboxesWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormRadioWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormSubmissionGrid.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormUtils.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
- package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
- package/dist/components/SynapseForm/types.js.map +1 -1
- package/dist/components/SynapseForm/useGetFormPropsFromSearchParams.js.map +1 -1
- package/dist/components/SynapseHomepageV2/FloatingBlobsBackground.js.map +1 -1
- package/dist/components/SynapseHomepageV2/HomepageStyles.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbers.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasets.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatures.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +18 -21
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageV2.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHotdrops.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHotdropsItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInAction.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlan.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlanContent.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlansPage.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +78 -78
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HasAccessChip.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageRouter.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/chipStyles.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControlButton.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControlPanel.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControls.js.map +1 -1
- package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
- package/dist/components/SynapseTable/ExpandCollapseButton.js.map +1 -1
- package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
- package/dist/components/SynapseTable/NoContentAvailable.js.map +1 -1
- package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
- package/dist/components/SynapseTable/SearchResultsNotFound.js.map +1 -1
- package/dist/components/SynapseTable/SearchV2.js.map +1 -1
- package/dist/components/SynapseTable/SqlEditor.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/EntityIdList.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/EvaluationIdRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/ComplexJSONRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONArrayRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONObjectRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONPrimitiveRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONRendererUtils.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONTableCellRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/UserIdList.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableConstants.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableContext.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
- package/dist/components/SynapseTable/TableIsEmpty.js.map +1 -1
- package/dist/components/SynapseTable/TablePagination.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorCheckboxCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorUtils.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +131 -133
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/components/SynapseTable/datasets/EntityFetchErrorCell.js.map +1 -1
- package/dist/components/SynapseTable/export/ADDiscoveryPortalInstructions.js.map +1 -1
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +48 -51
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformDisclaimer.js.map +1 -1
- package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadLoginModal.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
- package/dist/components/SynapseTable/useTableSort.js.map +1 -1
- package/dist/components/SystemUseNotification/SystemUseNotification.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +12 -12
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js +4 -4
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +32 -32
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DefaultValueValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EnumValuesValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js.map +1 -1
- package/dist/components/TableFeedCards/TableFeedCards.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/TableBody.js.map +1 -1
- package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
- package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
- package/dist/components/TeamBadge.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
- package/dist/components/TemplateComponent.js.map +1 -1
- package/dist/components/TemporaryBanner/TemporaryBanner.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditionsItem.js.map +1 -1
- package/dist/components/TextField/TextField.js.map +1 -1
- package/dist/components/TextField/TextFieldWithWordLimit.js.map +1 -1
- package/dist/components/TextToComponentCollapse.js.map +1 -1
- package/dist/components/ThemeGallery/ThemeGallery.js.map +1 -1
- package/dist/components/TimelinePlot/TimelineLegendItem.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
- package/dist/components/TimelinePlot/phasesQueryResponseData.js.map +1 -1
- package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
- package/dist/components/TotalQueryResults.js.map +1 -1
- package/dist/components/UserCard/Avatar.js.map +1 -1
- package/dist/components/UserCard/UserBadge.js.map +1 -1
- package/dist/components/UserCard/UserCard.js.map +1 -1
- package/dist/components/UserCard/UserCardContextMenu.js.map +1 -1
- package/dist/components/UserCard/UserCardLarge.js.map +1 -1
- package/dist/components/UserCard/UserCardMedium.js.map +1 -1
- package/dist/components/UserCardList/UserCardList.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.js.map +1 -1
- package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
- package/dist/components/UserOrTeamBadge/UserOrTeamBadge.js.map +1 -1
- package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
- package/dist/components/UserProfileLinks/UserChallenges.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProfileLinks.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
- package/dist/components/UserProfileLinks/UserTeams.js.map +1 -1
- package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
- package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
- package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
- package/dist/components/Webhook/WebhookVerificationDialog.js.map +1 -1
- package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
- package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButton.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButtonDescription.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButtonGroup.js.map +1 -1
- package/dist/components/WordPress/WordPressLatestPostChip.js.map +1 -1
- package/dist/components/WordPress/useWordPressCategories.js.map +1 -1
- package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
- package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
- package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementSearchBox/AccessRequirementSearchBox.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
- package/dist/components/dataaccess/RejectDataAccessRequestModal.js.map +1 -1
- package/dist/components/dataaccess/RejectProfileValidationRequestModal.js.map +1 -1
- package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
- package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/SubmissionSortStateTranslator.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
- package/dist/components/doi/DoiFormSchemas.js.map +1 -1
- package/dist/components/doi/PrivateEntityDoiWarning.js.map +1 -1
- package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUI.js +30 -32
- package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
- package/dist/components/download_list/DownloadDetails.js.map +1 -1
- package/dist/components/download_list/index.js.map +1 -1
- package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
- package/dist/components/entity/metadata/EntityAnnotationKey.js.map +1 -1
- package/dist/components/entity/metadata/EntityModal.js.map +1 -1
- package/dist/components/entity/metadata/MetadataTable.js.map +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
- package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
- package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
- package/dist/components/entity/page/title_bar/CitationsDialog.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js.map +1 -1
- package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
- package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
- package/dist/components/error/ErrorBanner.js.map +1 -1
- package/dist/components/error/ErrorChip.js.map +1 -1
- package/dist/components/error/ErrorPage.js +24 -24
- package/dist/components/error/ErrorPage.js.map +1 -1
- package/dist/components/error/RouteErrorBoundary.js.map +1 -1
- package/dist/components/error/SendMessageToEntityOwnerDialog.js.map +1 -1
- package/dist/components/error/SynapseObjectDOIInfo.js.map +1 -1
- package/dist/components/favorites/FavoriteButton.js.map +1 -1
- package/dist/components/favorites/FavoritesPage.js.map +1 -1
- package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
- package/dist/components/file/upload/MultiFileUploadProgress.js.map +1 -1
- package/dist/components/file/upload/UploadFilePanel.js.map +1 -1
- package/dist/components/form/RadioGroupWithOtherString.js.map +1 -1
- package/dist/components/home_page/ExpandableContent.js.map +1 -1
- package/dist/components/index.js +48 -47
- package/dist/components/layout/InfiniteTableLayout.js.map +1 -1
- package/dist/components/layout/SWCHeader.js.map +1 -1
- package/dist/components/layout/SWCPageLayout.js.map +1 -1
- package/dist/components/menu/ComplexMenu.js.map +1 -1
- package/dist/components/menu/DropdownMenu.js.map +1 -1
- package/dist/components/row_renderers/Dataset.js.map +1 -1
- package/dist/components/row_renderers/Funder.js.map +1 -1
- package/dist/components/row_renderers/ObservationCard.js.map +1 -1
- package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
- package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
- package/dist/components/styled/HoverPopover.js.map +1 -1
- package/dist/components/styled/InlineBadge.js.map +1 -1
- package/dist/components/styled/InputSizedButton.js.map +1 -1
- package/dist/components/styled/LargeButton.js.map +1 -1
- package/dist/components/styled/LeftRightPanel.js.map +1 -1
- package/dist/components/styled/LightTooltip.js.map +1 -1
- package/dist/components/styled/StyledFormControl.js.map +1 -1
- package/dist/components/styled/StyledPopover.js.map +1 -1
- package/dist/components/styled/StyledTableContainer.js.map +1 -1
- package/dist/components/styled/WideButton.js.map +1 -1
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.d.ts +18 -0
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +113 -0
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -0
- package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewDialog.d.ts +5 -5
- package/dist/components/table/CsvPreview/CsvPreviewDialog.d.ts.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js +27 -76
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.d.ts +19 -0
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js +41 -0
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -0
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.d.ts +12 -0
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js +25 -0
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -0
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.d.ts +18 -0
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js +55 -0
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -0
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.d.ts +19 -0
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.js +35 -0
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -0
- package/dist/components/table/CsvPreview/useCsvUploadPreview.d.ts +22 -0
- package/dist/components/table/CsvPreview/useCsvUploadPreview.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js +32 -0
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -0
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.d.ts +14 -0
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js +23 -0
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -0
- package/dist/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm.js.map +1 -1
- package/dist/components/trash/TrashCanList.js.map +1 -1
- package/dist/components/utils/Blocker.js.map +1 -1
- package/dist/components/utils/ConditionalWrapper.js.map +1 -1
- package/dist/components/utils/VisibilityObserver.js.map +1 -1
- package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
- package/dist/components/widgets/EntityColumnImage.js.map +1 -1
- package/dist/components/widgets/FileHandleLink.js.map +1 -1
- package/dist/components/widgets/ImageFileHandle.js.map +1 -1
- package/dist/components/widgets/LoginAwareButton.js.map +1 -1
- package/dist/components/widgets/Range.js.map +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/components/widgets/SynapseImage.js.map +1 -1
- package/dist/components/widgets/SynapseVideo.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainerSkeleton.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPill.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
- package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
- package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetChip.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterHeader.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterSkeleton.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.js +3 -3
- package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +41 -41
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
- package/dist/features/curator/GridPage/GridPage.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageRouter.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
- package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
- package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
- package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
- package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
- package/dist/features/curator/dashboard/components/UserOrTeamChip.js.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +5 -0
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +227 -181
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +3 -0
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +37 -34
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.d.ts +11 -3
- package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.js +2 -2
- package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getLatestGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/taskHasAssignee.js.map +1 -1
- package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
- package/dist/index.js +54 -53
- package/dist/index.js.map +1 -1
- package/dist/mocks/MockAccessApprovals.js.map +1 -1
- package/dist/mocks/MockSynapseContext.js.map +1 -1
- package/dist/mocks/accessRequirement/mockAccessRequirementAcls.js.map +1 -1
- package/dist/mocks/accessRequirement/mockAccessRequirements.js.map +1 -1
- package/dist/mocks/applicationSessionContext/MockApplicationSessionContext.js.map +1 -1
- package/dist/mocks/challenge/mockChallenge.js.map +1 -1
- package/dist/mocks/chat/mockChat.js.map +1 -1
- package/dist/mocks/curation/mockCurationTask.js.map +1 -1
- package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
- package/dist/mocks/dataaccess/MockResearchProject.js.map +1 -1
- package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
- package/dist/mocks/dataaccess/mockAccessRequest.js.map +1 -1
- package/dist/mocks/discussion/mock_discussion.js.map +1 -1
- package/dist/mocks/doi/MockDoi.js.map +1 -1
- package/dist/mocks/entity/index.js.map +1 -1
- package/dist/mocks/entity/mockDataset.js.map +1 -1
- package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
- package/dist/mocks/entity/mockEntity.js.map +1 -1
- package/dist/mocks/entity/mockEvaluationQueue.js.map +1 -1
- package/dist/mocks/entity/mockFileEntity.js.map +1 -1
- package/dist/mocks/entity/mockFileEntityACLVariants.js.map +1 -1
- package/dist/mocks/entity/mockFileView.js.map +1 -1
- package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
- package/dist/mocks/entity/mockProject.js.map +1 -1
- package/dist/mocks/entity/mockProjectView.js.map +1 -1
- package/dist/mocks/entity/mockReleaseCardsTable.js.map +1 -1
- package/dist/mocks/entity/mockRootEntity.js.map +1 -1
- package/dist/mocks/entity/mockTableEntity.js.map +1 -1
- package/dist/mocks/faker/fakerUtils.js.map +1 -1
- package/dist/mocks/faker/generateDiscussion.js.map +1 -1
- package/dist/mocks/faker/generateEvaluation.js.map +1 -1
- package/dist/mocks/faker/generateFakeEntity.js.map +1 -1
- package/dist/mocks/faker/generateSubscription.js.map +1 -1
- package/dist/mocks/mockAnnotationColumns.js.map +1 -1
- package/dist/mocks/mockCertificationQuiz.js.map +1 -1
- package/dist/mocks/mockDataCatalogQuery.js.map +1 -1
- package/dist/mocks/mockFileViewQuery.js.map +1 -1
- package/dist/mocks/mockOAuthClientAcls.js.map +1 -1
- package/dist/mocks/mockQueryResponseData.js.map +1 -1
- package/dist/mocks/mockQueryResponseDataWithManyEnumFacets.js.map +1 -1
- package/dist/mocks/mockSchema.js.map +1 -1
- package/dist/mocks/mockSearchQueryData.js.map +1 -1
- package/dist/mocks/mockShortIo.js.map +1 -1
- package/dist/mocks/mockSourceAppConfigQuery.js.map +1 -1
- package/dist/mocks/mockSubscription.js.map +1 -1
- package/dist/mocks/mockWiki.js.map +1 -1
- package/dist/mocks/mockWikiPageKey.js.map +1 -1
- package/dist/mocks/mock_drug_tool_data.js.map +1 -1
- package/dist/mocks/mock_file_handle.js.map +1 -1
- package/dist/mocks/mock_file_statistics.js.map +1 -1
- package/dist/mocks/mock_has_access_data.js.map +1 -1
- package/dist/mocks/mock_upload_destination.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementAclHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/dataciteHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/doiHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/evaluationHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/messageHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/oauthClientAclHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/projectStorageHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/realmHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/researchProjectHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/shortIoHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryService.js.map +1 -1
- package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/termsOfServiceHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/webhookHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers.js.map +1 -1
- package/dist/mocks/msw/server.d.ts +1 -1
- package/dist/mocks/msw/server.d.ts.map +1 -1
- package/dist/mocks/msw/server.js.map +1 -1
- package/dist/mocks/msw/util/BasicMockedCrudService.js.map +1 -1
- package/dist/mocks/oauth/MockClient.js.map +1 -1
- package/dist/mocks/personalAccessToken/mockPersonalAccessToken.js.map +1 -1
- package/dist/mocks/projectStorage/mockProjectStorageLimits.js.map +1 -1
- package/dist/mocks/provenance/mockActivity.js.map +1 -1
- package/dist/mocks/query/defaultFileViewColumnModels.js.map +1 -1
- package/dist/mocks/query/mockFeaturedDataTabsQueryData.js.map +1 -1
- package/dist/mocks/query/mockHomepageQueryResultData.js.map +1 -1
- package/dist/mocks/query/mockProjectViewQueryResults.js.map +1 -1
- package/dist/mocks/query/mockRejectionReasonsTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mockUserCardTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mock_query_data.js.map +1 -1
- package/dist/mocks/query/syn16787123.js.map +1 -1
- package/dist/mocks/query/syn17328596.js.map +1 -1
- package/dist/mocks/query/syn51735464.js.map +1 -1
- package/dist/mocks/query/syn51735464GroupBySpecies.js.map +1 -1
- package/dist/mocks/realm/mockRealmPrincipal.js.map +1 -1
- package/dist/mocks/team/mockTeam.js.map +1 -1
- package/dist/mocks/termsOfService/mockTermsOfService.js.map +1 -1
- package/dist/mocks/user/mock_user_profile.js.map +1 -1
- package/dist/mocks/usergroup/mockUserGroup.js.map +1 -1
- package/dist/ror-client/index.js.map +1 -1
- package/dist/stories/ColorPaletteInspector.js.map +1 -1
- package/dist/stories/ToastDemo.js.map +1 -1
- package/dist/stories/stubs/Alert/MuiAlert.js.map +1 -1
- package/dist/stories/stubs/Button/MuiButton.js.map +1 -1
- package/dist/stories/stubs/Dialog/MuiDialog.js.map +1 -1
- package/dist/stories/stubs/TextField/MuiTextField.js.map +1 -1
- package/dist/stories/stubs/Tooltip/MuiTooltip.js.map +1 -1
- package/dist/synapse-client/HttpClient.js.map +1 -1
- package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
- package/dist/synapse-client/SynapseClient.js +61 -69
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-client/SynapseClientUtils.js.map +1 -1
- package/dist/synapse-queries/InfiniteQueryUtils.js.map +1 -1
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
- package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
- package/dist/synapse-queries/asynchronous/usePollAsynchronousJob.js.map +1 -1
- package/dist/synapse-queries/auth/useChangePassword.js.map +1 -1
- package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
- package/dist/synapse-queries/auth/useResetPassword.js.map +1 -1
- package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
- package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
- package/dist/synapse-queries/chat/useChat.js.map +1 -1
- package/dist/synapse-queries/croissant/useGetCroissantUrl.js.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.js +12 -2
- package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessApprovals.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useGetApprovedSubmissionInfo.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
- package/dist/synapse-queries/docker/useGetDockerTag.js.map +1 -1
- package/dist/synapse-queries/doi/useDOI.js.map +1 -1
- package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
- package/dist/synapse-queries/entity/useActionsRequiredForTableQuery.js.map +1 -1
- package/dist/synapse-queries/entity/useEntity.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityActionsRequired.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityChallenge.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityChildren.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityForum.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityHeaders.js.map +1 -1
- package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useProjectStorage.js.map +1 -1
- package/dist/synapse-queries/entity/useSchema.js.map +1 -1
- package/dist/synapse-queries/evaluation/useEvaluation.js.map +1 -1
- package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
- package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
- package/dist/synapse-queries/file/useFiles.js.map +1 -1
- package/dist/synapse-queries/file/useSynapseMultipartUpload.js.map +1 -1
- package/dist/synapse-queries/file/useUploadDestination.js.map +1 -1
- package/dist/synapse-queries/forum/useForum.js.map +1 -1
- package/dist/synapse-queries/forum/useReply.js.map +1 -1
- package/dist/synapse-queries/forum/useThread.js.map +1 -1
- package/dist/synapse-queries/github/useGithub.js.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
- package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
- package/dist/synapse-queries/grid/useGridPresignedUrl.js.map +1 -1
- package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
- package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
- package/dist/synapse-queries/message/useMessage.js.map +1 -1
- package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
- package/dist/synapse-queries/portal/useListPortals.js.map +1 -1
- package/dist/synapse-queries/portal/usePortal.js.map +1 -1
- package/dist/synapse-queries/provenance/useGetActivityForEntity.js.map +1 -1
- package/dist/synapse-queries/realm/useRealmPrincipals.js.map +1 -1
- package/dist/synapse-queries/ror/index.js.map +1 -1
- package/dist/synapse-queries/search/useSearch.js.map +1 -1
- package/dist/synapse-queries/search/useSuggestion.js.map +1 -1
- package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
- package/dist/synapse-queries/table/useColumnModel.js.map +1 -1
- package/dist/synapse-queries/table/useDefiningSql.js.map +1 -1
- package/dist/synapse-queries/table/useDownloadTable.js.map +1 -1
- package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
- package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
- package/dist/synapse-queries/team/useTeam.js.map +1 -1
- package/dist/synapse-queries/team/useTeamList.js.map +1 -1
- package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
- package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
- package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
- package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
- package/dist/synapse-queries/user/useFavorites.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserProjects.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserTeams.js.map +1 -1
- package/dist/synapse-queries/user/usePersonalAccessToken.js.map +1 -1
- package/dist/synapse-queries/user/useProjects.js.map +1 -1
- package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
- package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
- package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
- package/dist/synapse-queries/verificationSubmission/useVerificationSubmission.js.map +1 -1
- package/dist/synapse-queries/webhook/useWebhook.js.map +1 -1
- package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
- package/dist/testutils/ComponentToBePassedPropsCustomMatcher.js.map +1 -1
- package/dist/testutils/IsEditingStoreTestUtils.js +17 -0
- package/dist/testutils/IsEditingStoreTestUtils.js.map +1 -0
- package/dist/testutils/LocationTracker.js.map +1 -1
- package/dist/testutils/MarkdownSynapseUtils.js.map +1 -1
- package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
- package/dist/testutils/TestingLibraryUtils.js +18 -16
- package/dist/testutils/TestingLibraryUtils.js.map +1 -1
- package/dist/testutils/muiDatePickerMock.js.map +1 -1
- package/dist/testutils/vitest.setup.js.map +1 -1
- package/dist/theme/DefaultTheme.js.map +1 -1
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/mergeTheme.js.map +1 -1
- package/dist/theme/palette/Palettes.js.map +1 -1
- package/dist/theme/spreadSx.js.map +1 -1
- package/dist/theme/typography/Link.js.map +1 -1
- package/dist/theme/typography/Typography.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/AppUtils/AppUtils.d.ts.map +1 -1
- package/dist/utils/AppUtils/AppUtils.js +11 -11
- package/dist/utils/AppUtils/AppUtils.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionContext.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/AuthenticationGuard.js.map +1 -1
- package/dist/utils/AppUtils/session/SessionInitializedGuard.js.map +1 -1
- package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
- package/dist/utils/ContentTypeUtils.js.map +1 -1
- package/dist/utils/OrientationBannerConstants.js.map +1 -1
- package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
- package/dist/utils/SynapseConstants.js.map +1 -1
- package/dist/utils/analytics/sendAnalyticsEvent.js.map +1 -1
- package/dist/utils/analytics/sendSearchEvent.js.map +1 -1
- package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
- package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
- package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
- package/dist/utils/context/AridhiaContext.js.map +1 -1
- package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
- package/dist/utils/context/FullContextProvider.js.map +1 -1
- package/dist/utils/context/GlobalIsEditingContext.js.map +1 -1
- package/dist/utils/context/SynapseContext.js.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.d.ts +2 -1
- package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.js +1 -1
- package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
- package/dist/utils/functions/ArrayUtils.js.map +1 -1
- package/dist/utils/functions/DateFormatter.js.map +1 -1
- package/dist/utils/functions/DateTimeUtils.js.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
- package/dist/utils/functions/FileHandleUtils.js.map +1 -1
- package/dist/utils/functions/GridApiUtils.js.map +1 -1
- package/dist/utils/functions/IsEqualTreatUndefinedAsMissing.js.map +1 -1
- package/dist/utils/functions/IsExternalLink.js.map +1 -1
- package/dist/utils/functions/ObjectUtils.js.map +1 -1
- package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
- package/dist/utils/functions/RealmUtils.js.map +1 -1
- package/dist/utils/functions/RegularExpressions.js.map +1 -1
- package/dist/utils/functions/ResolveLinkEntity.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
- package/dist/utils/functions/SqlFunctions.js.map +1 -1
- package/dist/utils/functions/StringUtils.js.map +1 -1
- package/dist/utils/functions/TableColumnSchemaUtils.js.map +1 -1
- package/dist/utils/functions/calculateFriendlyFileSize.js.map +1 -1
- package/dist/utils/functions/colorPalette.js.map +1 -1
- package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
- package/dist/utils/functions/dispatchDownloadListChangeEvent.js.map +1 -1
- package/dist/utils/functions/generateCsrfToken.js.map +1 -1
- package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
- package/dist/utils/functions/getEndpoint.js +3 -3
- package/dist/utils/functions/getEndpoint.js.map +1 -1
- package/dist/utils/functions/getPrincipalDisplayName.js.map +1 -1
- package/dist/utils/functions/getSynapseEntityUrl.js.map +1 -1
- package/dist/utils/functions/getSynapseWebClientLink.js.map +1 -1
- package/dist/utils/functions/getUserData.js.map +1 -1
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
- package/dist/utils/functions/unCamelCase.js.map +1 -1
- package/dist/utils/hooks/useConfirmItems.js.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.d.ts.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.js +24 -23
- package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
- package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
- package/dist/utils/hooks/useDebouncedEffect.js.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
- package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
- package/dist/utils/hooks/useGetEntityMetadata.js.map +1 -1
- package/dist/utils/hooks/useGetGoalData.js +2 -4
- package/dist/utils/hooks/useGetGoalData.js.map +1 -1
- package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
- package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
- package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
- package/dist/utils/hooks/useIsBot.js.map +1 -1
- package/dist/utils/hooks/useJsonLdScriptElement.js.map +1 -1
- package/dist/utils/hooks/useListState.js.map +1 -1
- package/dist/utils/hooks/useLogin.js.map +1 -1
- package/dist/utils/hooks/useMediaPrintOnly.js.map +1 -1
- package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
- package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
- package/dist/utils/hooks/useOneSageURL.js.map +1 -1
- package/dist/utils/hooks/useOverlay.js.map +1 -1
- package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
- package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
- package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
- package/dist/utils/hooks/useSet.js.map +1 -1
- package/dist/utils/hooks/useShowDesktop.js.map +1 -1
- package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
- package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
- package/dist/utils/hooks/useTraceUpdate.js.map +1 -1
- package/dist/utils/hooks/useTrackTransientListItems.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/getActiveUploadCount.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/getFileEntityIdWithSameName.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
- package/dist/utils/html/TargetEnum.js.map +1 -1
- package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
- package/dist/utils/jsonschema/getEnumeratedValues.js.map +1 -1
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
- package/dist/utils/jsonschema/getRequiredAttributes.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaForProperty.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
- package/dist/utils/jsonschema/getType.js.map +1 -1
- package/dist/utils/searchDefaults.js.map +1 -1
- package/dist/utils/slots/SlotUtils.js.map +1 -1
- package/dist/utils/types/IsType.js.map +1 -1
- package/package.json +67 -66
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleAnalytics.js","names":[],"sources":["../../../src/components/GoogleAnalytics/GoogleAnalytics.tsx"],"sourcesContent":["import { useGoogleAnalytics } from '@/utils/hooks'\n\nexport type GoogleAnalyticsProps = {\n measurementId?: string\n}\n/**\n * GoogleAnalytics is a component wrapper for the useGoogleAnalytics() hook.\n * This is exported for use in the Synapse.org GWT codebase.\n * @param props\n */\nexport function GoogleAnalytics(props: GoogleAnalyticsProps) {\n const { measurementId } = props\n useGoogleAnalytics(measurementId)\n return <></>\n}\nexport default GoogleAnalytics\n"],"mappings":";;;;AAUA,SAAgB,EAAgB,GAA6B;CAC3D,IAAM,EAAE,qBAAkB;
|
|
1
|
+
{"version":3,"file":"GoogleAnalytics.js","names":[],"sources":["../../../src/components/GoogleAnalytics/GoogleAnalytics.tsx"],"sourcesContent":["import { useGoogleAnalytics } from '@/utils/hooks'\n\nexport type GoogleAnalyticsProps = {\n measurementId?: string\n}\n/**\n * GoogleAnalytics is a component wrapper for the useGoogleAnalytics() hook.\n * This is exported for use in the Synapse.org GWT codebase.\n * @param props\n */\nexport function GoogleAnalytics(props: GoogleAnalyticsProps) {\n const { measurementId } = props\n useGoogleAnalytics(measurementId)\n return <></>\n}\nexport default GoogleAnalytics\n"],"mappings":";;;;AAUA,SAAgB,EAAgB,GAA6B;CAC3D,IAAM,EAAE,qBAAkB;CAE1B,OADA,EAAmB,CAAa,GACzB,kBAAA,GAAA,CAAI,CAAA;AACb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleMap.js","names":[],"sources":["../../../src/components/GoogleMap/GoogleMap.tsx"],"sourcesContent":["import {\n GeoData,\n getAllSynapseUserGeoData,\n getGoogleMapsApiKey,\n getSynapseTeamGeoData,\n} from '@/synapse-client'\nimport { GoogleMap, LoadScript } from '@react-google-maps/api'\nimport { useQuery } from '@tanstack/react-query'\nimport { useCallback, useMemo, useState } from 'react'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport { SynapseUserMarker } from './SynapseUserMarker'\n\n// Load the google maps types -- note that the script is dynamically loaded, so the module will not be immediately available\n/// <reference types=\"google.maps\" />\n\nexport type MapProps = {\n /** If selected, then the map will only show locations for users in a particular team. */\n teamId?: string\n /** Override the Google Maps API key used by the component. Useful for Storybook. */\n apiKeyOverride?: string\n}\n\n/**\n * Returns a map component showing the locations of Synapse users. Note that this component must be wrapped in a container with defined size, or else the map will not appear.\n * Note that the geolocation data is updated via a cron job, so the map will not update in real time.\n * @param props\n * @returns\n */\nfunction Map(props: MapProps) {\n const { teamId, apiKeyOverride } = props\n\n const { data: apiKey } = useQuery({\n queryKey: ['googleMapsApiKey'],\n queryFn: getGoogleMapsApiKey,\n throwOnError: true,\n })\n\n /** Tracks the currently selected marker on click */\n const [currentOpenGeoData, setCurrentOpenGeoData] = useState<GeoData | null>(\n null,\n )\n\n const { data: geoData, isLoading: isLoadingGeoData } = useQuery({\n queryKey: ['synapseGeoData', teamId],\n\n queryFn: () => {\n if (teamId) {\n return getSynapseTeamGeoData(teamId)\n } else {\n return getAllSynapseUserGeoData()\n }\n },\n\n throwOnError: true,\n })\n\n const onLoad = useCallback(\n function callback(map: google.maps.Map) {\n if (geoData) {\n const bounds = new google.maps.LatLngBounds()\n geoData.forEach(gd => {\n bounds.extend({ lat: gd.latLng[0], lng: gd.latLng[1] })\n })\n map.fitBounds(bounds)\n }\n },\n [geoData],\n )\n\n const initialOptions = useMemo(\n () => ({\n zoom: 1,\n scrollwheel: true,\n mapTypeControl: false,\n streetViewControl: false,\n draggable: true,\n maxZoom: 12,\n controlSize: 22,\n }),\n [],\n )\n if (!(apiKeyOverride || apiKey) || isLoadingGeoData) {\n return <SynapseSpinner />\n }\n\n return (\n <LoadScript\n googleMapsApiKey={(apiKeyOverride || apiKey)!}\n loadingElement={<SynapseSpinner />}\n >\n <GoogleMap\n mapContainerStyle={{ height: '100%', width: '100%' }}\n onLoad={onLoad}\n options={initialOptions}\n >\n {geoData!.map(gd => {\n return (\n <SynapseUserMarker\n key={gd.location}\n geoData={gd}\n onClick={() => setCurrentOpenGeoData(gd)}\n onInfoWindowCloseClick={() => setCurrentOpenGeoData(null)}\n showInfoWindow={gd === currentOpenGeoData}\n />\n )\n })}\n </GoogleMap>\n </LoadScript>\n )\n}\n\nexport default Map\n"],"mappings":";;;;;;;;;AA4BA,SAAS,EAAI,GAAiB;CAC5B,IAAM,EAAE,WAAQ,sBAAmB,GAE7B,EAAE,MAAM,MAAW,EAAS;EAChC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"GoogleMap.js","names":[],"sources":["../../../src/components/GoogleMap/GoogleMap.tsx"],"sourcesContent":["import {\n GeoData,\n getAllSynapseUserGeoData,\n getGoogleMapsApiKey,\n getSynapseTeamGeoData,\n} from '@/synapse-client'\nimport { GoogleMap, LoadScript } from '@react-google-maps/api'\nimport { useQuery } from '@tanstack/react-query'\nimport { useCallback, useMemo, useState } from 'react'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport { SynapseUserMarker } from './SynapseUserMarker'\n\n// Load the google maps types -- note that the script is dynamically loaded, so the module will not be immediately available\n/// <reference types=\"google.maps\" />\n\nexport type MapProps = {\n /** If selected, then the map will only show locations for users in a particular team. */\n teamId?: string\n /** Override the Google Maps API key used by the component. Useful for Storybook. */\n apiKeyOverride?: string\n}\n\n/**\n * Returns a map component showing the locations of Synapse users. Note that this component must be wrapped in a container with defined size, or else the map will not appear.\n * Note that the geolocation data is updated via a cron job, so the map will not update in real time.\n * @param props\n * @returns\n */\nfunction Map(props: MapProps) {\n const { teamId, apiKeyOverride } = props\n\n const { data: apiKey } = useQuery({\n queryKey: ['googleMapsApiKey'],\n queryFn: getGoogleMapsApiKey,\n throwOnError: true,\n })\n\n /** Tracks the currently selected marker on click */\n const [currentOpenGeoData, setCurrentOpenGeoData] = useState<GeoData | null>(\n null,\n )\n\n const { data: geoData, isLoading: isLoadingGeoData } = useQuery({\n queryKey: ['synapseGeoData', teamId],\n\n queryFn: () => {\n if (teamId) {\n return getSynapseTeamGeoData(teamId)\n } else {\n return getAllSynapseUserGeoData()\n }\n },\n\n throwOnError: true,\n })\n\n const onLoad = useCallback(\n function callback(map: google.maps.Map) {\n if (geoData) {\n const bounds = new google.maps.LatLngBounds()\n geoData.forEach(gd => {\n bounds.extend({ lat: gd.latLng[0], lng: gd.latLng[1] })\n })\n map.fitBounds(bounds)\n }\n },\n [geoData],\n )\n\n const initialOptions = useMemo(\n () => ({\n zoom: 1,\n scrollwheel: true,\n mapTypeControl: false,\n streetViewControl: false,\n draggable: true,\n maxZoom: 12,\n controlSize: 22,\n }),\n [],\n )\n if (!(apiKeyOverride || apiKey) || isLoadingGeoData) {\n return <SynapseSpinner />\n }\n\n return (\n <LoadScript\n googleMapsApiKey={(apiKeyOverride || apiKey)!}\n loadingElement={<SynapseSpinner />}\n >\n <GoogleMap\n mapContainerStyle={{ height: '100%', width: '100%' }}\n onLoad={onLoad}\n options={initialOptions}\n >\n {geoData!.map(gd => {\n return (\n <SynapseUserMarker\n key={gd.location}\n geoData={gd}\n onClick={() => setCurrentOpenGeoData(gd)}\n onInfoWindowCloseClick={() => setCurrentOpenGeoData(null)}\n showInfoWindow={gd === currentOpenGeoData}\n />\n )\n })}\n </GoogleMap>\n </LoadScript>\n )\n}\n\nexport default Map\n"],"mappings":";;;;;;;;;AA4BA,SAAS,EAAI,GAAiB;CAC5B,IAAM,EAAE,WAAQ,sBAAmB,GAE7B,EAAE,MAAM,MAAW,EAAS;EAChC,UAAU,CAAC,kBAAkB;EAC7B,SAAS;EACT,cAAc;CAChB,CAAC,GAGK,CAAC,GAAoB,KAAyB,EAClD,IACF,GAEM,EAAE,MAAM,GAAS,WAAW,MAAqB,EAAS;EAC9D,UAAU,CAAC,kBAAkB,CAAM;EAEnC,eACM,IACK,EAAsB,CAAM,IAE5B,EAAyB;EAIpC,cAAc;CAChB,CAAC,GAEK,IAAS,EACb,SAAkB,GAAsB;EACtC,IAAI,GAAS;GACX,IAAM,IAAS,IAAI,OAAO,KAAK,aAAa;GAI5C,AAHA,EAAQ,SAAQ,MAAM;IACpB,EAAO,OAAO;KAAE,KAAK,EAAG,OAAO;KAAI,KAAK,EAAG,OAAO;IAAG,CAAC;GACxD,CAAC,GACD,EAAI,UAAU,CAAM;EACtB;CACF,GACA,CAAC,CAAO,CACV,GAEM,IAAiB,SACd;EACL,MAAM;EACN,aAAa;EACb,gBAAgB;EAChB,mBAAmB;EACnB,WAAW;EACX,SAAS;EACT,aAAa;CACf,IACA,CAAC,CACH;CAKA,OAJI,EAAE,KAAkB,MAAW,IAC1B,kBAAC,GAAD,CAAiB,CAAA,IAIxB,kBAAC,GAAD;EACE,kBAAmB,KAAkB;EACrC,gBAAgB,kBAAC,GAAD,CAAiB,CAAA;YAEjC,kBAAC,GAAD;GACE,mBAAmB;IAAE,QAAQ;IAAQ,OAAO;GAAO;GAC3C;GACR,SAAS;aAER,EAAS,KAAI,MAEV,kBAAC,GAAD;IAEE,SAAS;IACT,eAAe,EAAsB,CAAE;IACvC,8BAA8B,EAAsB,IAAI;IACxD,gBAAgB,MAAO;GACxB,GALM,EAAG,QAKT,CAEJ;EACQ,CAAA;CACD,CAAA;AAEhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SynapseUserMarker.js","names":[],"sources":["../../../src/components/GoogleMap/SynapseUserMarker.tsx"],"sourcesContent":["import { GeoData } from '@/synapse-client'\nimport { Divider, Typography } from '@mui/material'\nimport { InfoWindow, Marker } from '@react-google-maps/api'\nimport { Fragment, useMemo } from 'react'\nimport { UserBadge } from '../UserCard/UserBadge'\n\nconst MAP_MARKER_IMAGE_URL =\n 'https://s3.amazonaws.com/static.synapse.org/images/synapse-map-marker.png'\n\ntype SynapseUserMarkerProps = {\n /** The location and users that this point represents */\n geoData: GeoData\n /** Whether to show the list of users in a pop-up modal */\n showInfoWindow: boolean\n /** Invoked when the marker is clicked */\n onClick: () => void\n /** Invoked when the InfoWindow close button is clicked */\n onInfoWindowCloseClick: () => void\n}\n\n/**\n * A Google Maps marker that represents a particular location for one or more Synapse users.\n * @param props\n * @returns\n */\nexport function SynapseUserMarker(props: SynapseUserMarkerProps) {\n const { geoData, showInfoWindow, onClick, onInfoWindowCloseClick } = props\n const position = useMemo(\n () => ({\n lat: geoData.latLng[0],\n lng: geoData.latLng[1],\n }),\n [geoData.latLng],\n )\n\n const options = useMemo(\n () => ({\n icon: {\n url: MAP_MARKER_IMAGE_URL,\n size: new google.maps.Size(20, 32),\n origin: new google.maps.Point(0, 0),\n anchor: new google.maps.Point(0, 32),\n },\n }),\n [],\n )\n return (\n <Marker onClick={onClick} position={position} options={options}>\n {showInfoWindow && (\n <InfoWindow onCloseClick={onInfoWindowCloseClick}>\n <>\n <Typography variant=\"body1\" component={'span'}>\n {geoData.location}\n </Typography>\n <Divider />\n {geoData.userIds.map(id => (\n <Fragment key={id}>\n <br />\n <UserBadge userId={id} openLinkInNewTab={true} />\n </Fragment>\n ))}\n </>\n </InfoWindow>\n )}\n </Marker>\n )\n}\n\nexport default SynapseUserMarker\n"],"mappings":";;;;;;AAMA,IAAM,IACJ;AAkBF,SAAgB,EAAkB,GAA+B;CAC/D,IAAM,EAAE,YAAS,mBAAgB,YAAS,8BAA2B;
|
|
1
|
+
{"version":3,"file":"SynapseUserMarker.js","names":[],"sources":["../../../src/components/GoogleMap/SynapseUserMarker.tsx"],"sourcesContent":["import { GeoData } from '@/synapse-client'\nimport { Divider, Typography } from '@mui/material'\nimport { InfoWindow, Marker } from '@react-google-maps/api'\nimport { Fragment, useMemo } from 'react'\nimport { UserBadge } from '../UserCard/UserBadge'\n\nconst MAP_MARKER_IMAGE_URL =\n 'https://s3.amazonaws.com/static.synapse.org/images/synapse-map-marker.png'\n\ntype SynapseUserMarkerProps = {\n /** The location and users that this point represents */\n geoData: GeoData\n /** Whether to show the list of users in a pop-up modal */\n showInfoWindow: boolean\n /** Invoked when the marker is clicked */\n onClick: () => void\n /** Invoked when the InfoWindow close button is clicked */\n onInfoWindowCloseClick: () => void\n}\n\n/**\n * A Google Maps marker that represents a particular location for one or more Synapse users.\n * @param props\n * @returns\n */\nexport function SynapseUserMarker(props: SynapseUserMarkerProps) {\n const { geoData, showInfoWindow, onClick, onInfoWindowCloseClick } = props\n const position = useMemo(\n () => ({\n lat: geoData.latLng[0],\n lng: geoData.latLng[1],\n }),\n [geoData.latLng],\n )\n\n const options = useMemo(\n () => ({\n icon: {\n url: MAP_MARKER_IMAGE_URL,\n size: new google.maps.Size(20, 32),\n origin: new google.maps.Point(0, 0),\n anchor: new google.maps.Point(0, 32),\n },\n }),\n [],\n )\n return (\n <Marker onClick={onClick} position={position} options={options}>\n {showInfoWindow && (\n <InfoWindow onCloseClick={onInfoWindowCloseClick}>\n <>\n <Typography variant=\"body1\" component={'span'}>\n {geoData.location}\n </Typography>\n <Divider />\n {geoData.userIds.map(id => (\n <Fragment key={id}>\n <br />\n <UserBadge userId={id} openLinkInNewTab={true} />\n </Fragment>\n ))}\n </>\n </InfoWindow>\n )}\n </Marker>\n )\n}\n\nexport default SynapseUserMarker\n"],"mappings":";;;;;;AAMA,IAAM,IACJ;AAkBF,SAAgB,EAAkB,GAA+B;CAC/D,IAAM,EAAE,YAAS,mBAAgB,YAAS,8BAA2B;CAoBrE,OACE,kBAAC,GAAD;EAAiB;EAAmB,UApBrB,SACR;GACL,KAAK,EAAQ,OAAO;GACpB,KAAK,EAAQ,OAAO;EACtB,IACA,CAAC,EAAQ,MAAM,CAeqB;EAAmB,SAZzC,SACP,EACL,MAAM;GACJ,KAAK;GACL,MAAM,IAAI,OAAO,KAAK,KAAK,IAAI,EAAE;GACjC,QAAQ,IAAI,OAAO,KAAK,MAAM,GAAG,CAAC;GAClC,QAAQ,IAAI,OAAO,KAAK,MAAM,GAAG,EAAE;EACrC,EACF,IACA,CAAC,CAGsD;YACpD,KACC,kBAAC,GAAD;GAAY,cAAc;aACxB,kBAAA,GAAA,EAAA,UAAA;IACE,kBAAC,GAAD;KAAY,SAAQ;KAAQ,WAAW;eACpC,EAAQ;IACC,CAAA;IACZ,kBAAC,GAAD,CAAU,CAAA;IACT,EAAQ,QAAQ,KAAI,MACnB,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,MAAD,CAAK,CAAA,GACL,kBAAC,GAAD;KAAW,QAAQ;KAAI,kBAAkB;IAAO,CAAA,CACxC,EAAA,GAHK,CAGL,CACX;GACD,EAAA,CAAA;EACQ,CAAA;CAER,CAAA;AAEZ"}
|
|
@@ -5,52 +5,52 @@ import { Fragment as n, jsx as r } from "react/jsx-runtime";
|
|
|
5
5
|
var i = /* @__PURE__ */ function(e) {
|
|
6
6
|
return e.Accessible = "Accessible", e.AccessibleWithTerms = "AccessibleWithTerms", e.AccessBlockedByRestriction = "AccessBlockedByRestriction", e.AccessBlockedByRestrictionWithPendingRequest = "AccessBlockedByRestrictionWithPendingRequest", e.AccessBlockedByRestrictionWithPendingExternalRequest = "AccessBlockedByRestrictionWithPendingExternalRequest", e.AccessBlockedByRestrictionWithPendingRDCADAPRequest = "AccessBlockedByRestrictionWithPendingRDCADAPRequest", e.AccessBlockedByRestrictionWithRejectedRDCADAPRequest = "AccessBlockedByRestrictionWithRejectedRDCADAPRequest", e.AccessBlockedByACL = "AccessBlockedByACL", e.AccessBlockedToAnonymous = "AccessBlockedToAnonymous", e.AccessibleExternalFileHandle = "AccessibleExternalFileHandle", e;
|
|
7
7
|
}({}), a = {
|
|
8
|
-
|
|
8
|
+
AccessBlockedToAnonymous: {
|
|
9
9
|
icon: "accessClosed",
|
|
10
10
|
color: (e) => e.palette.warning.main,
|
|
11
11
|
tooltipText: "You must sign in to access this item."
|
|
12
12
|
},
|
|
13
|
-
|
|
13
|
+
AccessBlockedByRestriction: {
|
|
14
14
|
icon: "accessClosed",
|
|
15
15
|
color: (e) => e.palette.warning.main,
|
|
16
16
|
tooltipText: "You must request access to this restricted item."
|
|
17
17
|
},
|
|
18
|
-
|
|
18
|
+
AccessBlockedByRestrictionWithPendingRequest: {
|
|
19
19
|
icon: "accessPending",
|
|
20
20
|
color: (e) => e.palette.warning.main,
|
|
21
21
|
tooltipText: "Your access request is pending approval."
|
|
22
22
|
},
|
|
23
|
-
|
|
23
|
+
AccessBlockedByRestrictionWithPendingExternalRequest: {
|
|
24
24
|
icon: "accessPendingCloud",
|
|
25
25
|
color: (e) => e.palette.warning.main,
|
|
26
26
|
tooltipText: "Your access request is pending approval from an external system."
|
|
27
27
|
},
|
|
28
|
-
|
|
28
|
+
AccessBlockedByRestrictionWithPendingRDCADAPRequest: {
|
|
29
29
|
icon: "accessPendingCloud",
|
|
30
30
|
color: (e) => e.palette.warning.main,
|
|
31
31
|
tooltipText: "Your access request is pending approval by RDCA-DAP."
|
|
32
32
|
},
|
|
33
|
-
|
|
33
|
+
AccessBlockedByRestrictionWithRejectedRDCADAPRequest: {
|
|
34
34
|
icon: "accessClosed",
|
|
35
35
|
color: (e) => e.palette.warning.main,
|
|
36
36
|
tooltipText: "Your access request has been denied by RDCA-DAP."
|
|
37
37
|
},
|
|
38
|
-
|
|
38
|
+
AccessBlockedByACL: {
|
|
39
39
|
icon: "accessClosed",
|
|
40
40
|
color: (e) => e.palette.warning.main,
|
|
41
41
|
tooltipText: "You do not have download access for this item."
|
|
42
42
|
},
|
|
43
|
-
|
|
43
|
+
AccessibleWithTerms: {
|
|
44
44
|
icon: "accessOpen",
|
|
45
45
|
color: (e) => e.palette.success.main,
|
|
46
46
|
tooltipText: "View Terms"
|
|
47
47
|
},
|
|
48
|
-
|
|
48
|
+
Accessible: {
|
|
49
49
|
icon: "accessOpen",
|
|
50
50
|
color: (e) => e.palette.success.main,
|
|
51
51
|
tooltipText: "You have access to this item."
|
|
52
52
|
},
|
|
53
|
-
|
|
53
|
+
AccessibleExternalFileHandle: {
|
|
54
54
|
icon: "linkOff",
|
|
55
55
|
color: (e) => e.palette.grey[700],
|
|
56
56
|
tooltipText: "Access may be controlled by an external system."
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessIcon.js","names":[],"sources":["../../../src/components/HasAccess/AccessIcon.tsx"],"sourcesContent":["import { SxProps, Theme, useTheme } from '@mui/material'\nimport IconSvg, { IconName } from '../IconSvg/IconSvg'\n\nexport enum RestrictionUiType {\n Accessible = 'Accessible',\n AccessibleWithTerms = 'AccessibleWithTerms',\n AccessBlockedByRestriction = 'AccessBlockedByRestriction',\n AccessBlockedByRestrictionWithPendingRequest = 'AccessBlockedByRestrictionWithPendingRequest',\n AccessBlockedByRestrictionWithPendingExternalRequest = 'AccessBlockedByRestrictionWithPendingExternalRequest',\n AccessBlockedByRestrictionWithPendingRDCADAPRequest = 'AccessBlockedByRestrictionWithPendingRDCADAPRequest',\n AccessBlockedByRestrictionWithRejectedRDCADAPRequest = 'AccessBlockedByRestrictionWithRejectedRDCADAPRequest',\n AccessBlockedByACL = 'AccessBlockedByACL',\n AccessBlockedToAnonymous = 'AccessBlockedToAnonymous',\n AccessibleExternalFileHandle = 'AccessibleExternalFileHandle',\n}\n\nconst iconConfiguration: Record<\n RestrictionUiType,\n { icon: IconName; color: (theme: Theme) => string; tooltipText: string }\n> = {\n [RestrictionUiType.AccessBlockedToAnonymous]: {\n icon: 'accessClosed',\n color: theme => theme.palette.warning.main,\n tooltipText: 'You must sign in to access this item.',\n },\n [RestrictionUiType.AccessBlockedByRestriction]: {\n icon: 'accessClosed',\n color: theme => theme.palette.warning.main,\n tooltipText: 'You must request access to this restricted item.',\n },\n [RestrictionUiType.AccessBlockedByRestrictionWithPendingRequest]: {\n icon: 'accessPending',\n color: theme => theme.palette.warning.main,\n tooltipText: 'Your access request is pending approval.',\n },\n [RestrictionUiType.AccessBlockedByRestrictionWithPendingExternalRequest]: {\n icon: 'accessPendingCloud',\n color: theme => theme.palette.warning.main,\n tooltipText:\n 'Your access request is pending approval from an external system.',\n },\n [RestrictionUiType.AccessBlockedByRestrictionWithPendingRDCADAPRequest]: {\n icon: 'accessPendingCloud',\n color: theme => theme.palette.warning.main,\n tooltipText: 'Your access request is pending approval by RDCA-DAP.',\n },\n [RestrictionUiType.AccessBlockedByRestrictionWithRejectedRDCADAPRequest]: {\n icon: 'accessClosed',\n color: theme => theme.palette.warning.main,\n tooltipText: 'Your access request has been denied by RDCA-DAP.',\n },\n [RestrictionUiType.AccessBlockedByACL]: {\n icon: 'accessClosed',\n color: theme => theme.palette.warning.main,\n tooltipText: 'You do not have download access for this item.',\n },\n [RestrictionUiType.AccessibleWithTerms]: {\n icon: 'accessOpen',\n color: theme => theme.palette.success.main,\n tooltipText: 'View Terms',\n },\n [RestrictionUiType.Accessible]: {\n icon: 'accessOpen',\n color: theme => theme.palette.success.main,\n tooltipText: 'You have access to this item.',\n },\n [RestrictionUiType.AccessibleExternalFileHandle]: {\n icon: 'linkOff',\n color: theme => theme.palette.grey[700],\n tooltipText: 'Access may be controlled by an external system.',\n },\n}\n\nfunction AccessIcon(props: {\n restrictionUiType: RestrictionUiType\n wrap?: boolean\n sx?: SxProps<Theme>\n}) {\n const { restrictionUiType, wrap = true, sx } = props\n const theme = useTheme()\n if (restrictionUiType) {\n const configuration = iconConfiguration[restrictionUiType]\n return (\n <IconSvg\n icon={configuration.icon}\n label={configuration.tooltipText}\n wrap={wrap}\n sx={{\n color: configuration.color(theme),\n height: '16px',\n verticalAlign: 'text-top',\n ...sx,\n }}\n />\n )\n }\n // nothing is rendered until downloadType is determined\n return <></>\n}\n\nexport default AccessIcon\n"],"mappings":";;;;AAGA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,
|
|
1
|
+
{"version":3,"file":"AccessIcon.js","names":[],"sources":["../../../src/components/HasAccess/AccessIcon.tsx"],"sourcesContent":["import { SxProps, Theme, useTheme } from '@mui/material'\nimport IconSvg, { IconName } from '../IconSvg/IconSvg'\n\nexport enum RestrictionUiType {\n Accessible = 'Accessible',\n AccessibleWithTerms = 'AccessibleWithTerms',\n AccessBlockedByRestriction = 'AccessBlockedByRestriction',\n AccessBlockedByRestrictionWithPendingRequest = 'AccessBlockedByRestrictionWithPendingRequest',\n AccessBlockedByRestrictionWithPendingExternalRequest = 'AccessBlockedByRestrictionWithPendingExternalRequest',\n AccessBlockedByRestrictionWithPendingRDCADAPRequest = 'AccessBlockedByRestrictionWithPendingRDCADAPRequest',\n AccessBlockedByRestrictionWithRejectedRDCADAPRequest = 'AccessBlockedByRestrictionWithRejectedRDCADAPRequest',\n AccessBlockedByACL = 'AccessBlockedByACL',\n AccessBlockedToAnonymous = 'AccessBlockedToAnonymous',\n AccessibleExternalFileHandle = 'AccessibleExternalFileHandle',\n}\n\nconst iconConfiguration: Record<\n RestrictionUiType,\n { icon: IconName; color: (theme: Theme) => string; tooltipText: string }\n> = {\n [RestrictionUiType.AccessBlockedToAnonymous]: {\n icon: 'accessClosed',\n color: theme => theme.palette.warning.main,\n tooltipText: 'You must sign in to access this item.',\n },\n [RestrictionUiType.AccessBlockedByRestriction]: {\n icon: 'accessClosed',\n color: theme => theme.palette.warning.main,\n tooltipText: 'You must request access to this restricted item.',\n },\n [RestrictionUiType.AccessBlockedByRestrictionWithPendingRequest]: {\n icon: 'accessPending',\n color: theme => theme.palette.warning.main,\n tooltipText: 'Your access request is pending approval.',\n },\n [RestrictionUiType.AccessBlockedByRestrictionWithPendingExternalRequest]: {\n icon: 'accessPendingCloud',\n color: theme => theme.palette.warning.main,\n tooltipText:\n 'Your access request is pending approval from an external system.',\n },\n [RestrictionUiType.AccessBlockedByRestrictionWithPendingRDCADAPRequest]: {\n icon: 'accessPendingCloud',\n color: theme => theme.palette.warning.main,\n tooltipText: 'Your access request is pending approval by RDCA-DAP.',\n },\n [RestrictionUiType.AccessBlockedByRestrictionWithRejectedRDCADAPRequest]: {\n icon: 'accessClosed',\n color: theme => theme.palette.warning.main,\n tooltipText: 'Your access request has been denied by RDCA-DAP.',\n },\n [RestrictionUiType.AccessBlockedByACL]: {\n icon: 'accessClosed',\n color: theme => theme.palette.warning.main,\n tooltipText: 'You do not have download access for this item.',\n },\n [RestrictionUiType.AccessibleWithTerms]: {\n icon: 'accessOpen',\n color: theme => theme.palette.success.main,\n tooltipText: 'View Terms',\n },\n [RestrictionUiType.Accessible]: {\n icon: 'accessOpen',\n color: theme => theme.palette.success.main,\n tooltipText: 'You have access to this item.',\n },\n [RestrictionUiType.AccessibleExternalFileHandle]: {\n icon: 'linkOff',\n color: theme => theme.palette.grey[700],\n tooltipText: 'Access may be controlled by an external system.',\n },\n}\n\nfunction AccessIcon(props: {\n restrictionUiType: RestrictionUiType\n wrap?: boolean\n sx?: SxProps<Theme>\n}) {\n const { restrictionUiType, wrap = true, sx } = props\n const theme = useTheme()\n if (restrictionUiType) {\n const configuration = iconConfiguration[restrictionUiType]\n return (\n <IconSvg\n icon={configuration.icon}\n label={configuration.tooltipText}\n wrap={wrap}\n sx={{\n color: configuration.color(theme),\n height: '16px',\n verticalAlign: 'text-top',\n ...sx,\n }}\n />\n )\n }\n // nothing is rendered until downloadType is determined\n return <></>\n}\n\nexport default AccessIcon\n"],"mappings":";;;;AAGA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,aAAA,cACA,EAAA,sBAAA,uBACA,EAAA,6BAAA,8BACA,EAAA,+CAAA,gDACA,EAAA,uDAAA,wDACA,EAAA,sDAAA,uDACA,EAAA,uDAAA,wDACA,EAAA,qBAAA,sBACA,EAAA,2BAAA,4BACA,EAAA,+BAAA;AACF,EAAA,CAAA,CAAA,GAEM,IAGF;2BAC4C;EAC5C,MAAM;EACN,QAAO,MAAS,EAAM,QAAQ,QAAQ;EACtC,aAAa;CACf;6BACgD;EAC9C,MAAM;EACN,QAAO,MAAS,EAAM,QAAQ,QAAQ;EACtC,aAAa;CACf;+CACkE;EAChE,MAAM;EACN,QAAO,MAAS,EAAM,QAAQ,QAAQ;EACtC,aAAa;CACf;uDAC0E;EACxE,MAAM;EACN,QAAO,MAAS,EAAM,QAAQ,QAAQ;EACtC,aACE;CACJ;sDACyE;EACvE,MAAM;EACN,QAAO,MAAS,EAAM,QAAQ,QAAQ;EACtC,aAAa;CACf;uDAC0E;EACxE,MAAM;EACN,QAAO,MAAS,EAAM,QAAQ,QAAQ;EACtC,aAAa;CACf;qBACwC;EACtC,MAAM;EACN,QAAO,MAAS,EAAM,QAAQ,QAAQ;EACtC,aAAa;CACf;sBACyC;EACvC,MAAM;EACN,QAAO,MAAS,EAAM,QAAQ,QAAQ;EACtC,aAAa;CACf;aACgC;EAC9B,MAAM;EACN,QAAO,MAAS,EAAM,QAAQ,QAAQ;EACtC,aAAa;CACf;+BACkD;EAChD,MAAM;EACN,QAAO,MAAS,EAAM,QAAQ,KAAK;EACnC,aAAa;CACf;AACF;AAEA,SAAS,EAAW,GAIjB;CACD,IAAM,EAAE,sBAAmB,UAAO,IAAM,UAAO,GACzC,IAAQ,EAAS;CACvB,IAAI,GAAmB;EACrB,IAAM,IAAgB,EAAkB;EACxC,OACE,kBAAC,GAAD;GACE,MAAM,EAAc;GACpB,OAAO,EAAc;GACf;GACN,IAAI;IACF,OAAO,EAAc,MAAM,CAAK;IAChC,QAAQ;IACR,eAAe;IACf,GAAG;GACL;EACD,CAAA;CAEL;CAEA,OAAO,kBAAA,GAAA,CAAI,CAAA;AACb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HasAccessV2.js","names":[],"sources":["../../../src/components/HasAccess/HasAccessV2.tsx"],"sourcesContent":["import { useGetRestrictionInformation } from '@/synapse-queries'\nimport { SRC_SIGN_IN_CLASS } from '@/utils/SynapseConstants'\nimport { Box, Button, SxProps, Theme } from '@mui/material'\nimport {\n RestrictableObjectType,\n RestrictionLevel,\n} from '@sage-bionetworks/synapse-types'\nimport { useMemo } from 'react'\nimport { RestrictionUiType } from './AccessIcon'\nimport { useHasAccess } from './useHasAccess'\n\nexport type HasAccessProps = {\n onHide?: () => void\n entityId: string\n className?: string\n showButtonText?: boolean\n wrap?: boolean\n /**\n * If true, the component will show enhanced UI for the case where\n * - the entity is a FileEntity, AND\n * - the caller has permission to fetch the dataFileHandle, AND\n * - the dataFileHandle is an instance of ExternalFileHandleInterface (i.e. the file is not controlled by Synapse)\n * Note that this requires an additional API call that cannot be batched, so it should be avoided in bulk contexts if possible.\n * @default false\n */\n showExternalAccessIcon?: boolean\n sx?: SxProps<Theme>\n}\n\nconst buttonSx = { p: '0px', minWidth: 'unset' }\n\n/**\n * HasAccess shows if the user has access to the file or not. If the user doesn't have access due to a restriction,\n * then a link will be shown that opens a modal with steps to request access.\n */\nexport function HasAccessV2(props: HasAccessProps) {\n const {\n entityId,\n showButtonText = true,\n showExternalAccessIcon = false,\n } = props\n\n const {\n restrictionUiType: restrictionUiTypeValue,\n accessText,\n icon,\n handleGetAccess,\n accessRequirementDialog,\n } = useHasAccess(entityId, true, undefined, { showExternalAccessIcon })\n\n const { data: restrictionInformation } = useGetRestrictionInformation({\n restrictableObjectType: RestrictableObjectType.ENTITY,\n objectId: entityId,\n })\n\n // Sign-in wrapped icon or icon alone\n const iconContainer = useMemo(() => {\n return restrictionUiTypeValue ===\n RestrictionUiType.AccessBlockedToAnonymous ? (\n <Button\n sx={buttonSx}\n className={SRC_SIGN_IN_CLASS}\n onClick={ev => {\n if (ev.isTrusted) {\n /*\n There is a tricky problem - \n The portals listens to click events for buttons with the class SRC_SIGN_IN_CLASS set, it listens to this event\n so that it can display the login modal.\n\n This button has an svg inside of it which is problematic because more often than not clicking this button will \n instead click that svg. The event listener in the portals will break as a result.\n\n Though the svg may get the actual click event, because of event bubbling this button will get its onClick called.\n Once onClick is called we can manually dispatch an event off of this button. This does pose a problem, we end up in a \n infinite loop because this button keeps dispatching click events, so we can use the isTrusted to recognize if onClick was\n triggered programmatically or by user click. Lastly, using { bubbles: true } ensures the event bubbles up to the document level.\n\n */\n const clickEvent = new MouseEvent('click', { bubbles: true })\n ev.currentTarget.dispatchEvent(clickEvent)\n }\n }}\n >\n {icon}\n </Button>\n ) : (\n icon\n )\n }, [restrictionUiTypeValue])\n\n // Access Requirements icon or Icon Container\n const accessRequirementsJsxOrIconContainer = useMemo(() => {\n if (!restrictionInformation || !restrictionUiTypeValue) {\n // loading\n return <></>\n }\n const hasUnmetAccessRequirement =\n restrictionInformation?.hasUnmetAccessRequirement\n const restrictionLevel = restrictionInformation?.restrictionLevel\n let linkText = ''\n\n if (hasUnmetAccessRequirement) {\n linkText = 'Request Access'\n } else if (RestrictionLevel.OPEN === restrictionLevel) {\n // they need to sign in\n return iconContainer\n } else {\n linkText = 'View Terms'\n }\n return (\n <>\n <Button\n sx={buttonSx}\n className={props.className}\n onClick={handleGetAccess}\n >\n {icon}\n {showButtonText && (\n <Box\n sx={{\n ml: '5px',\n }}\n >\n {linkText}\n </Box>\n )}\n </Button>\n {accessRequirementDialog}\n </>\n )\n }, [\n restrictionInformation,\n restrictionUiTypeValue,\n iconContainer,\n handleGetAccess,\n props.className,\n showButtonText,\n accessRequirementDialog,\n accessText,\n icon,\n ])\n\n if (!restrictionUiTypeValue) {\n // loading\n return <></>\n }\n\n return (\n <span style={{ whiteSpace: 'nowrap' }}>\n {accessRequirementsJsxOrIconContainer}\n </span>\n )\n return accessRequirementsJsxOrIconContainer\n}\n\nexport default HasAccessV2\n"],"mappings":";;;;;;;;;;AA6BA,IAAM,IAAW;CAAE,GAAG;CAAO,UAAU;
|
|
1
|
+
{"version":3,"file":"HasAccessV2.js","names":[],"sources":["../../../src/components/HasAccess/HasAccessV2.tsx"],"sourcesContent":["import { useGetRestrictionInformation } from '@/synapse-queries'\nimport { SRC_SIGN_IN_CLASS } from '@/utils/SynapseConstants'\nimport { Box, Button, SxProps, Theme } from '@mui/material'\nimport {\n RestrictableObjectType,\n RestrictionLevel,\n} from '@sage-bionetworks/synapse-types'\nimport { useMemo } from 'react'\nimport { RestrictionUiType } from './AccessIcon'\nimport { useHasAccess } from './useHasAccess'\n\nexport type HasAccessProps = {\n onHide?: () => void\n entityId: string\n className?: string\n showButtonText?: boolean\n wrap?: boolean\n /**\n * If true, the component will show enhanced UI for the case where\n * - the entity is a FileEntity, AND\n * - the caller has permission to fetch the dataFileHandle, AND\n * - the dataFileHandle is an instance of ExternalFileHandleInterface (i.e. the file is not controlled by Synapse)\n * Note that this requires an additional API call that cannot be batched, so it should be avoided in bulk contexts if possible.\n * @default false\n */\n showExternalAccessIcon?: boolean\n sx?: SxProps<Theme>\n}\n\nconst buttonSx = { p: '0px', minWidth: 'unset' }\n\n/**\n * HasAccess shows if the user has access to the file or not. If the user doesn't have access due to a restriction,\n * then a link will be shown that opens a modal with steps to request access.\n */\nexport function HasAccessV2(props: HasAccessProps) {\n const {\n entityId,\n showButtonText = true,\n showExternalAccessIcon = false,\n } = props\n\n const {\n restrictionUiType: restrictionUiTypeValue,\n accessText,\n icon,\n handleGetAccess,\n accessRequirementDialog,\n } = useHasAccess(entityId, true, undefined, { showExternalAccessIcon })\n\n const { data: restrictionInformation } = useGetRestrictionInformation({\n restrictableObjectType: RestrictableObjectType.ENTITY,\n objectId: entityId,\n })\n\n // Sign-in wrapped icon or icon alone\n const iconContainer = useMemo(() => {\n return restrictionUiTypeValue ===\n RestrictionUiType.AccessBlockedToAnonymous ? (\n <Button\n sx={buttonSx}\n className={SRC_SIGN_IN_CLASS}\n onClick={ev => {\n if (ev.isTrusted) {\n /*\n There is a tricky problem - \n The portals listens to click events for buttons with the class SRC_SIGN_IN_CLASS set, it listens to this event\n so that it can display the login modal.\n\n This button has an svg inside of it which is problematic because more often than not clicking this button will \n instead click that svg. The event listener in the portals will break as a result.\n\n Though the svg may get the actual click event, because of event bubbling this button will get its onClick called.\n Once onClick is called we can manually dispatch an event off of this button. This does pose a problem, we end up in a \n infinite loop because this button keeps dispatching click events, so we can use the isTrusted to recognize if onClick was\n triggered programmatically or by user click. Lastly, using { bubbles: true } ensures the event bubbles up to the document level.\n\n */\n const clickEvent = new MouseEvent('click', { bubbles: true })\n ev.currentTarget.dispatchEvent(clickEvent)\n }\n }}\n >\n {icon}\n </Button>\n ) : (\n icon\n )\n }, [restrictionUiTypeValue])\n\n // Access Requirements icon or Icon Container\n const accessRequirementsJsxOrIconContainer = useMemo(() => {\n if (!restrictionInformation || !restrictionUiTypeValue) {\n // loading\n return <></>\n }\n const hasUnmetAccessRequirement =\n restrictionInformation?.hasUnmetAccessRequirement\n const restrictionLevel = restrictionInformation?.restrictionLevel\n let linkText = ''\n\n if (hasUnmetAccessRequirement) {\n linkText = 'Request Access'\n } else if (RestrictionLevel.OPEN === restrictionLevel) {\n // they need to sign in\n return iconContainer\n } else {\n linkText = 'View Terms'\n }\n return (\n <>\n <Button\n sx={buttonSx}\n className={props.className}\n onClick={handleGetAccess}\n >\n {icon}\n {showButtonText && (\n <Box\n sx={{\n ml: '5px',\n }}\n >\n {linkText}\n </Box>\n )}\n </Button>\n {accessRequirementDialog}\n </>\n )\n }, [\n restrictionInformation,\n restrictionUiTypeValue,\n iconContainer,\n handleGetAccess,\n props.className,\n showButtonText,\n accessRequirementDialog,\n accessText,\n icon,\n ])\n\n if (!restrictionUiTypeValue) {\n // loading\n return <></>\n }\n\n return (\n <span style={{ whiteSpace: 'nowrap' }}>\n {accessRequirementsJsxOrIconContainer}\n </span>\n )\n return accessRequirementsJsxOrIconContainer\n}\n\nexport default HasAccessV2\n"],"mappings":";;;;;;;;;;AA6BA,IAAM,IAAW;CAAE,GAAG;CAAO,UAAU;AAAQ;AAM/C,SAAgB,EAAY,GAAuB;CACjD,IAAM,EACJ,aACA,oBAAiB,IACjB,4BAAyB,OACvB,GAEE,EACJ,mBAAmB,GACnB,eACA,SACA,oBACA,+BACE,EAAa,GAAU,IAAM,KAAA,GAAW,EAAE,0BAAuB,CAAC,GAEhE,EAAE,MAAM,MAA2B,EAA6B;EACpE,wBAAwB,EAAuB;EAC/C,UAAU;CACZ,CAAC,GAGK,IAAgB,QACb,MACL,EAAkB,2BAClB,kBAAC,GAAD;EACE,IAAI;EACJ,WAAW;EACX,UAAS,MAAM;GACb,IAAI,EAAG,WAAW;IAehB,IAAM,IAAa,IAAI,WAAW,SAAS,EAAE,SAAS,GAAK,CAAC;IAC5D,EAAG,cAAc,cAAc,CAAU;GAC3C;EACF;YAEC;CACK,CAAA,IAER,GAED,CAAC,CAAsB,CAAC,GAGrB,IAAuC,QAAc;EACzD,IAAI,CAAC,KAA0B,CAAC,GAE9B,OAAO,kBAAA,GAAA,CAAI,CAAA;EAEb,IAAM,IACJ,GAAwB,2BACpB,IAAmB,GAAwB,kBAC7C,IAAW;EAEf,IAAI,GACF,IAAW;OACN,IAAI,EAAiB,SAAS,GAEnC,OAAO;OAEP,IAAW;EAEb,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,IAAI;GACJ,WAAW,EAAM;GACjB,SAAS;aAHX,CAKG,GACA,KACC,kBAAC,GAAD;IACE,IAAI,EACF,IAAI,MACN;cAEC;GACE,CAAA,CAED;MACP,CACD,EAAA,CAAA;CAEN,GAAG;EACD;EACA;EACA;EACA;EACA,EAAM;EACN;EACA;EACA;EACA;CACF,CAAC;CAOD,OALK,IAMH,kBAAC,QAAD;EAAM,OAAO,EAAE,YAAY,SAAS;YACjC;CACG,CAAA,IANC,kBAAA,GAAA,CAAI,CAAA;AASf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHasAccess.js","names":[],"sources":["../../../src/components/HasAccess/useHasAccess.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport AccessIcon, { RestrictionUiType } from './AccessIcon'\nimport {\n AccessRequirement,\n EntityBundle,\n FileHandle,\n RestrictableObjectType,\n RestrictionLevel,\n} from '@sage-bionetworks/synapse-types'\nimport {\n implementsExternalFileHandleInterface,\n isFileEntity,\n SynapseClientError,\n useSynapseContext,\n} from '@/utils'\nimport {\n useGetEntityBundle,\n useGetRestrictionInformation,\n} from '@/synapse-queries'\nimport SynapseClient from '@/synapse-client'\nimport AccessRequirementList, {\n checkHasUnsupportedRequirement,\n} from '../AccessRequirementList/AccessRequirementList'\nimport { BackendDestinationEnum, getEndpoint } from '@/utils/functions'\nimport { UseQueryOptions } from '@tanstack/react-query'\nimport { SxProps, Theme } from '@mui/material'\n\n/**\n * This hook determines if\n * - the entity is a FileEntity, AND\n * - the caller has permission to fetch the dataFileHandle, AND\n * - the dataFileHandle is an instance of ExternalFileHandleInterface (i.e. the file is not controlled by Synapse)\n * Note that this requires an additional API call that cannot be batched, so it should be avoided in bulk contexts if possible.\n */\nfunction useGetIsExternalFileHandle(\n entityId: string,\n options: Partial<UseQueryOptions<EntityBundle, SynapseClientError, boolean>>,\n) {\n return useGetEntityBundle(entityId, undefined, undefined, {\n ...options,\n select: bundle => {\n if (!isFileEntity(bundle.entity)) {\n return false\n }\n const fileEntity = bundle.entity\n const fileHandles = bundle.fileHandles\n const fileHandle: FileHandle | undefined = fileHandles?.find(\n fileHandle => fileHandle.id === fileEntity.dataFileHandleId,\n )\n return fileHandle && implementsExternalFileHandleInterface(fileHandle)\n },\n })\n}\n\n/**\n * Determines whether an Entity is accessible for download, or if it is blocked by the ACL or unmet Access Requirements.\n *\n * To make download available, and determine if the file is downloadable via the web, see {@link DirectDownload.tsx}\n * @param entityId\n * @returns\n */\nexport function useGetRestrictionUiType(\n entityId: string,\n useGetIsExternalFileHandleOptions: Partial<\n UseQueryOptions<EntityBundle, SynapseClientError, boolean>\n >,\n): RestrictionUiType | undefined {\n const { isAuthenticated } = useSynapseContext()\n\n const { data: restrictionInformation } = useGetRestrictionInformation({\n restrictableObjectType: RestrictableObjectType.ENTITY,\n objectId: entityId,\n })\n\n const { data: isExternalFileHandle, isLoading: isLoadingExternalFile } =\n useGetIsExternalFileHandle(entityId, {\n enabled: useGetIsExternalFileHandleOptions.enabled,\n })\n\n if (!restrictionInformation) {\n return undefined\n }\n\n // Only check for external file handle if the feature is enabled\n if (useGetIsExternalFileHandleOptions.enabled) {\n if (isLoadingExternalFile) {\n return undefined\n }\n if (isExternalFileHandle) {\n return RestrictionUiType.AccessibleExternalFileHandle\n }\n }\n\n if (restrictionInformation.hasUnmetAccessRequirement) {\n return RestrictionUiType.AccessBlockedByRestriction\n }\n if (restrictionInformation.userEntityPermissions!.canDownload) {\n if (restrictionInformation.restrictionLevel !== RestrictionLevel.OPEN) {\n // Indicate that there are requirements, but they have been met\n return RestrictionUiType.AccessibleWithTerms\n } else {\n return RestrictionUiType.Accessible\n }\n }\n\n if (isAuthenticated) {\n return RestrictionUiType.AccessBlockedByACL\n }\n return RestrictionUiType.AccessBlockedToAnonymous\n}\n\n//* Get the access level text */\nfunction getAccessText(props: RestrictionUiType | undefined) {\n switch (props) {\n case RestrictionUiType.Accessible:\n return 'Open Access'\n case RestrictionUiType.AccessibleWithTerms:\n return 'View Terms'\n case RestrictionUiType.AccessBlockedByRestriction:\n return 'Request Access'\n case RestrictionUiType.AccessBlockedByACL:\n return 'Access Denied'\n case RestrictionUiType.AccessBlockedToAnonymous:\n return 'Sign In Required'\n case RestrictionUiType.AccessibleExternalFileHandle:\n return 'External Access'\n case undefined:\n return 'Loading...'\n default:\n return ''\n }\n}\n\n// A hook that handles the logic for computing the correct access level, getting the text, and the icon\nexport function useHasAccess(\n entityId: string,\n iconWrap: boolean = false,\n iconSx?: SxProps<Theme>,\n options: { showExternalAccessIcon?: boolean } = {},\n) {\n const [displayAccessRequirement, setDisplayAccessRequirement] =\n useState(false)\n const [accessRequirements, setAccessRequirements] = useState<\n AccessRequirement[]\n >([])\n\n const { accessToken } = useSynapseContext()\n const { showExternalAccessIcon = false } = options\n\n // get access level\n const restrictionUiType = useGetRestrictionUiType(entityId, {\n enabled: showExternalAccessIcon,\n })\n\n const { data: restrictionInformation } = useGetRestrictionInformation({\n restrictableObjectType: RestrictableObjectType.ENTITY,\n objectId: entityId,\n })\n\n // get access level text\n const accessText = getAccessText(restrictionUiType)\n\n // get access level icon\n const icon = (\n <AccessIcon\n restrictionUiType={restrictionUiType!}\n wrap={iconWrap}\n sx={{ ...iconSx }}\n />\n )\n\n const handleGetAccess = useCallback(() => {\n // TODO: The fetch should really happen in the AR List component.\n // If we need to open the AR page in synapse, the logic should be in the modal and it should just close itself right away\n SynapseClient.getAllAccessRequirements(accessToken, entityId).then(\n requirements => {\n if (checkHasUnsupportedRequirement(requirements)) {\n window.open(\n `${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}AccessRequirements:ID=${entityId}&TYPE=ENTITY`,\n '_blank',\n )\n } else {\n setAccessRequirements(requirements)\n setDisplayAccessRequirement(true)\n }\n },\n )\n }, [accessToken, entityId])\n\n // Determine if this access type should show a clickable button\n const isClickable = useMemo(() => {\n if (!restrictionInformation || !restrictionUiType) {\n return false\n }\n\n const hasUnmetAccessRequirement =\n restrictionInformation.hasUnmetAccessRequirement\n const restrictionLevel = restrictionInformation.restrictionLevel\n\n // Clickable if there are unmet requirements or if there are terms to view\n return (\n hasUnmetAccessRequirement ||\n restrictionLevel !== RestrictionLevel.OPEN ||\n restrictionUiType === RestrictionUiType.AccessBlockedToAnonymous\n )\n }, [restrictionInformation, restrictionUiType])\n\n const accessRequirementDialog = displayAccessRequirement ? (\n <AccessRequirementList\n subjectId={entityId}\n subjectType={RestrictableObjectType.ENTITY}\n accessRequirementFromProps={accessRequirements}\n renderAsModal={true}\n onHide={() => {\n setDisplayAccessRequirement(false)\n }}\n />\n ) : null\n\n return {\n restrictionUiType,\n accessText,\n icon,\n handleGetAccess,\n isClickable,\n accessRequirementDialog,\n setDisplayAccessRequirement,\n }\n}\n\nexport default useHasAccess\n"],"mappings":";;;;;;;;;;;;;;;AAkCA,SAAS,EACP,GACA,GACA;
|
|
1
|
+
{"version":3,"file":"useHasAccess.js","names":[],"sources":["../../../src/components/HasAccess/useHasAccess.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport AccessIcon, { RestrictionUiType } from './AccessIcon'\nimport {\n AccessRequirement,\n EntityBundle,\n FileHandle,\n RestrictableObjectType,\n RestrictionLevel,\n} from '@sage-bionetworks/synapse-types'\nimport {\n implementsExternalFileHandleInterface,\n isFileEntity,\n SynapseClientError,\n useSynapseContext,\n} from '@/utils'\nimport {\n useGetEntityBundle,\n useGetRestrictionInformation,\n} from '@/synapse-queries'\nimport SynapseClient from '@/synapse-client'\nimport AccessRequirementList, {\n checkHasUnsupportedRequirement,\n} from '../AccessRequirementList/AccessRequirementList'\nimport { BackendDestinationEnum, getEndpoint } from '@/utils/functions'\nimport { UseQueryOptions } from '@tanstack/react-query'\nimport { SxProps, Theme } from '@mui/material'\n\n/**\n * This hook determines if\n * - the entity is a FileEntity, AND\n * - the caller has permission to fetch the dataFileHandle, AND\n * - the dataFileHandle is an instance of ExternalFileHandleInterface (i.e. the file is not controlled by Synapse)\n * Note that this requires an additional API call that cannot be batched, so it should be avoided in bulk contexts if possible.\n */\nfunction useGetIsExternalFileHandle(\n entityId: string,\n options: Partial<UseQueryOptions<EntityBundle, SynapseClientError, boolean>>,\n) {\n return useGetEntityBundle(entityId, undefined, undefined, {\n ...options,\n select: bundle => {\n if (!isFileEntity(bundle.entity)) {\n return false\n }\n const fileEntity = bundle.entity\n const fileHandles = bundle.fileHandles\n const fileHandle: FileHandle | undefined = fileHandles?.find(\n fileHandle => fileHandle.id === fileEntity.dataFileHandleId,\n )\n return fileHandle && implementsExternalFileHandleInterface(fileHandle)\n },\n })\n}\n\n/**\n * Determines whether an Entity is accessible for download, or if it is blocked by the ACL or unmet Access Requirements.\n *\n * To make download available, and determine if the file is downloadable via the web, see {@link DirectDownload.tsx}\n * @param entityId\n * @returns\n */\nexport function useGetRestrictionUiType(\n entityId: string,\n useGetIsExternalFileHandleOptions: Partial<\n UseQueryOptions<EntityBundle, SynapseClientError, boolean>\n >,\n): RestrictionUiType | undefined {\n const { isAuthenticated } = useSynapseContext()\n\n const { data: restrictionInformation } = useGetRestrictionInformation({\n restrictableObjectType: RestrictableObjectType.ENTITY,\n objectId: entityId,\n })\n\n const { data: isExternalFileHandle, isLoading: isLoadingExternalFile } =\n useGetIsExternalFileHandle(entityId, {\n enabled: useGetIsExternalFileHandleOptions.enabled,\n })\n\n if (!restrictionInformation) {\n return undefined\n }\n\n // Only check for external file handle if the feature is enabled\n if (useGetIsExternalFileHandleOptions.enabled) {\n if (isLoadingExternalFile) {\n return undefined\n }\n if (isExternalFileHandle) {\n return RestrictionUiType.AccessibleExternalFileHandle\n }\n }\n\n if (restrictionInformation.hasUnmetAccessRequirement) {\n return RestrictionUiType.AccessBlockedByRestriction\n }\n if (restrictionInformation.userEntityPermissions!.canDownload) {\n if (restrictionInformation.restrictionLevel !== RestrictionLevel.OPEN) {\n // Indicate that there are requirements, but they have been met\n return RestrictionUiType.AccessibleWithTerms\n } else {\n return RestrictionUiType.Accessible\n }\n }\n\n if (isAuthenticated) {\n return RestrictionUiType.AccessBlockedByACL\n }\n return RestrictionUiType.AccessBlockedToAnonymous\n}\n\n//* Get the access level text */\nfunction getAccessText(props: RestrictionUiType | undefined) {\n switch (props) {\n case RestrictionUiType.Accessible:\n return 'Open Access'\n case RestrictionUiType.AccessibleWithTerms:\n return 'View Terms'\n case RestrictionUiType.AccessBlockedByRestriction:\n return 'Request Access'\n case RestrictionUiType.AccessBlockedByACL:\n return 'Access Denied'\n case RestrictionUiType.AccessBlockedToAnonymous:\n return 'Sign In Required'\n case RestrictionUiType.AccessibleExternalFileHandle:\n return 'External Access'\n case undefined:\n return 'Loading...'\n default:\n return ''\n }\n}\n\n// A hook that handles the logic for computing the correct access level, getting the text, and the icon\nexport function useHasAccess(\n entityId: string,\n iconWrap: boolean = false,\n iconSx?: SxProps<Theme>,\n options: { showExternalAccessIcon?: boolean } = {},\n) {\n const [displayAccessRequirement, setDisplayAccessRequirement] =\n useState(false)\n const [accessRequirements, setAccessRequirements] = useState<\n AccessRequirement[]\n >([])\n\n const { accessToken } = useSynapseContext()\n const { showExternalAccessIcon = false } = options\n\n // get access level\n const restrictionUiType = useGetRestrictionUiType(entityId, {\n enabled: showExternalAccessIcon,\n })\n\n const { data: restrictionInformation } = useGetRestrictionInformation({\n restrictableObjectType: RestrictableObjectType.ENTITY,\n objectId: entityId,\n })\n\n // get access level text\n const accessText = getAccessText(restrictionUiType)\n\n // get access level icon\n const icon = (\n <AccessIcon\n restrictionUiType={restrictionUiType!}\n wrap={iconWrap}\n sx={{ ...iconSx }}\n />\n )\n\n const handleGetAccess = useCallback(() => {\n // TODO: The fetch should really happen in the AR List component.\n // If we need to open the AR page in synapse, the logic should be in the modal and it should just close itself right away\n SynapseClient.getAllAccessRequirements(accessToken, entityId).then(\n requirements => {\n if (checkHasUnsupportedRequirement(requirements)) {\n window.open(\n `${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}AccessRequirements:ID=${entityId}&TYPE=ENTITY`,\n '_blank',\n )\n } else {\n setAccessRequirements(requirements)\n setDisplayAccessRequirement(true)\n }\n },\n )\n }, [accessToken, entityId])\n\n // Determine if this access type should show a clickable button\n const isClickable = useMemo(() => {\n if (!restrictionInformation || !restrictionUiType) {\n return false\n }\n\n const hasUnmetAccessRequirement =\n restrictionInformation.hasUnmetAccessRequirement\n const restrictionLevel = restrictionInformation.restrictionLevel\n\n // Clickable if there are unmet requirements or if there are terms to view\n return (\n hasUnmetAccessRequirement ||\n restrictionLevel !== RestrictionLevel.OPEN ||\n restrictionUiType === RestrictionUiType.AccessBlockedToAnonymous\n )\n }, [restrictionInformation, restrictionUiType])\n\n const accessRequirementDialog = displayAccessRequirement ? (\n <AccessRequirementList\n subjectId={entityId}\n subjectType={RestrictableObjectType.ENTITY}\n accessRequirementFromProps={accessRequirements}\n renderAsModal={true}\n onHide={() => {\n setDisplayAccessRequirement(false)\n }}\n />\n ) : null\n\n return {\n restrictionUiType,\n accessText,\n icon,\n handleGetAccess,\n isClickable,\n accessRequirementDialog,\n setDisplayAccessRequirement,\n }\n}\n\nexport default useHasAccess\n"],"mappings":";;;;;;;;;;;;;;;AAkCA,SAAS,EACP,GACA,GACA;CACA,OAAO,EAAmB,GAAU,KAAA,GAAW,KAAA,GAAW;EACxD,GAAG;EACH,SAAQ,MAAU;GAChB,IAAI,CAAC,EAAa,EAAO,MAAM,GAC7B,OAAO;GAET,IAAM,IAAa,EAAO,QAEpB,IADc,EAAO,aAC6B,MACtD,MAAc,EAAW,OAAO,EAAW,gBAC7C;GACA,OAAO,KAAc,EAAsC,CAAU;EACvE;CACF,CAAC;AACH;AASA,SAAgB,EACd,GACA,GAG+B;CAC/B,IAAM,EAAE,uBAAoB,EAAkB,GAExC,EAAE,MAAM,MAA2B,EAA6B;EACpE,wBAAwB,EAAuB;EAC/C,UAAU;CACZ,CAAC,GAEK,EAAE,MAAM,GAAsB,WAAW,MAC7C,EAA2B,GAAU,EACnC,SAAS,EAAkC,QAC7C,CAAC;CAEE,OAKL;MAAI,EAAkC,SAAS;GAC7C,IAAI,GACF;GAEF,IAAI,GACF,OAAO,EAAkB;EAE7B;EAiBA,OAfI,EAAuB,4BAClB,EAAkB,6BAEvB,EAAuB,sBAAuB,cAC5C,EAAuB,qBAAqB,EAAiB,OAIxD,EAAkB,aAFlB,EAAkB,sBAMzB,IACK,EAAkB,qBAEpB,EAAkB;CAjBzB;AAkBF;AAGA,SAAS,EAAc,GAAsC;CAC3D,QAAQ,GAAR;EACE,KAAK,EAAkB,YACrB,OAAO;EACT,KAAK,EAAkB,qBACrB,OAAO;EACT,KAAK,EAAkB,4BACrB,OAAO;EACT,KAAK,EAAkB,oBACrB,OAAO;EACT,KAAK,EAAkB,0BACrB,OAAO;EACT,KAAK,EAAkB,8BACrB,OAAO;EACT,KAAK,KAAA,GACH,OAAO;EACT,SACE,OAAO;CACX;AACF;AAGA,SAAgB,EACd,GACA,IAAoB,IACpB,GACA,IAAgD,CAAC,GACjD;CACA,IAAM,CAAC,GAA0B,KAC/B,EAAS,EAAK,GACV,CAAC,GAAoB,KAAyB,EAElD,CAAC,CAAC,GAEE,EAAE,mBAAgB,EAAkB,GACpC,EAAE,4BAAyB,OAAU,GAGrC,IAAoB,EAAwB,GAAU,EAC1D,SAAS,EACX,CAAC,GAEK,EAAE,MAAM,MAA2B,EAA6B;EACpE,wBAAwB,EAAuB;EAC/C,UAAU;CACZ,CAAC;CAgED,OAAO;EACL;EACA,YA/DiB,EAAc,CA+D/B;EACA,MA5DA,kBAAC,GAAD;GACqB;GACnB,MAAM;GACN,IAAI,EAAE,GAAG,EAAO;EACjB,CAwDD;EACA,iBAtDsB,QAAkB;GAGxC,EAAc,yBAAyB,GAAa,CAAQ,EAAE,MAC5D,MAAgB;IACd,AAAI,EAA+B,CAAY,IAC7C,OAAO,KACL,GAAG,EACD,EAAuB,eACzB,EAAE,wBAAwB,EAAS,eACnC,QACF,KAEA,EAAsB,CAAY,GAClC,EAA4B,EAAI;GAEpC,CACF;EACF,GAAG,CAAC,GAAa,CAAQ,CAoCvB;EACA,aAlCkB,QAAc;GAChC,IAAI,CAAC,KAA0B,CAAC,GAC9B,OAAO;GAGT,IAAM,IACJ,EAAuB,2BACnB,IAAmB,EAAuB;GAGhD,OACE,KACA,MAAqB,EAAiB,QACtC,MAAsB,EAAkB;EAE5C,GAAG,CAAC,GAAwB,CAAiB,CAmB3C;EACA,yBAlB8B,IAC9B,kBAAC,GAAD;GACE,WAAW;GACX,aAAa,EAAuB;GACpC,4BAA4B;GAC5B,eAAe;GACf,cAAc;IACZ,EAA4B,EAAK;GACnC;EACD,CAAA,IACC;EASF;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderCardV2.js","names":[],"sources":["../../../src/components/HeaderCard/HeaderCardV2.tsx"],"sourcesContent":["import { CardLabel } from '@/components/row_renderers/utils/CardFooter'\nimport React, { forwardRef, ForwardedRef } from 'react'\nimport {\n Box,\n Card,\n Typography,\n // Stack,\n // ButtonProps,\n useTheme,\n useMediaQuery,\n} from '@mui/material'\nimport { DescriptionConfig } from '../CardContainerLogic'\nimport { CollapsibleDescription } from '../GenericCard/CollapsibleDescription'\nimport { GenericCardProps } from '@/components/GenericCard/GenericCard'\nimport { useDocumentMetadata } from '@/utils/context/DocumentMetadataContext'\nimport { SmartButton } from '../SmartLink/SmartButton'\nimport { SmartLink } from '../SmartLink/SmartLink'\n\nexport type HeaderCardV2Props = {\n /** Type label displayed at the top of the card */\n type: string\n /** Main title of the card */\n title: string\n /** Optional subtitle, often used for author or additional context */\n subTitle?: string\n /** Main description text */\n description: string\n /** Maximum number of secondary labels to show before \"Show More\" */\n secondaryLabelLimit?: number\n /** Array of label-value pairs to display in the card footer */\n values?: CardLabel[]\n /** Whether to align the card to the left navigation */\n isAlignToLeftNav?: boolean\n /** Configuration for the collapsible description */\n descriptionConfig?: DescriptionConfig\n /** Character count threshold for truncating description (default 400) */\n charCountCutoff?: number\n /** Optional URL for making the title clickable */\n href?: string\n /** Target attribute for the title link */\n target?: string\n /** Icon element to display */\n icon: React.ReactNode\n /** Optional background image URL */\n backgroundImage?: string\n /** Force values section to appear below main content */\n forceStackedLayout?: boolean\n /** Optional CTA link(s) to display below description. Accepts a single config or an array. */\n ctaLinkConfig?: GenericCardProps['ctaLinkConfig']\n}\n\n/**\n * HeaderCardV2 Component OUT OF DATE COMMENTS\n *\n * A material-UI based card component for displaying detailed information with metadata.\n * This component supports responsive layouts, background images, and dynamic content\n * organization.\n *\n * Layout Structure:\n\n ```\n┌───────────────────────────────────────────────────────────────┐\n│ ┌─────┐ Type Label │\n│ │Icon │ Title │\n│ │ │ Subtitle │\n│ └─────┘ │\n│ Description Metadata │\n│ [Show More/Less] -------- │\n│ Label 1 Value 1 │\n│ [External Site Button] Label 2 Value 2 │\n└───────────────────────────────────────────────────────────────┘\n ```\n *\n * Features:\n * - Responsive layout with configurable breakpoints\n * - Optional background image with overlay\n * - Collapsible description text\n * - Right-aligned or stacked metadata section\n * - Call-to-action buttons\n * - SEO-friendly meta tags management\n *\n * Meta Tags Handling:\n * - Updates document title with card title\n * - Sets meta description from card description/subtitle\n * - Restores original meta data on component cleanup\n *\n * Layout Modes:\n * - Default: Icon + Content | Metadata (on desktop)\n * - Stacked: Full width content with metadata below\n * - Mobile: All sections stack vertically\n *\n * @component\n * @example\n * ```tsx\n * <HeaderCardV2\n * type=\"Study\"\n * title=\"Example Study\"\n * description=\"Study description\"\n * values={[['Status', 'Active'], ['Access', 'Public']]}\n * icon={<StudyIcon />}\n * ctaLinkConfig={{text: \"View Standard on External Website\", link: \"url\"}}\n * />\n * ```\n\n * Core component logic:\n * 1. Responsive Layout:\n * - Uses MUI Grid for flexible layouts\n * - Switches to stacked layout on mobile, when forceStackedLayout is true,\n *\n * 2. Meta Tags:\n * - Manages document title and meta description\n * - Preserves original values for cleanup\n *\n * 3. Content Sections:\n * - Icon: Optional, maintains aspect ratio\n * - Main Content: Type, title, subtitle, description\n * - Metadata: Right-aligned or stacked key-value pairs\n * - CTA Button: Optional button link to external site\n *\n * 4. Styling:\n * - Background image support with overlay\n * - Consistent spacing using MUI theme\n * - Responsive typography\n * - Optional left-nav alignment\n */\nconst HeaderCardV2 = forwardRef(function HeaderCardV2(\n props: HeaderCardV2Props,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n // type,\n title,\n subTitle = '',\n description,\n values,\n // secondaryLabelLimit,\n isAlignToLeftNav,\n descriptionConfig,\n charCountCutoff,\n href,\n target,\n icon,\n backgroundImage,\n forceStackedLayout = false,\n ctaLinkConfig,\n } = props\n\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('md'))\n\n let useStackedLayout = false\n if (forceStackedLayout || isMobile) {\n useStackedLayout = true\n } else {\n // useStackedLayout = metadataHeight > descriptionHeight\n // as per https://github.com/bridge2ai/b2ai-standards-registry/issues/210#issuecomment-2773706202,\n // constrain metadata to 5-line expandable block\n }\n\n const descriptionConfiguration: DescriptionConfig = {\n ...descriptionConfig,\n showFullDescriptionByDefault:\n descriptionConfig?.showFullDescriptionByDefault ?? false,\n }\n const metadataDescription = description || subTitle || undefined\n useDocumentMetadata({\n title,\n description: metadataDescription,\n priority: 100,\n })\n\n // ctaLink stuff - normalize to array\n const ctaLinkConfigs = ctaLinkConfig\n ? Array.isArray(ctaLinkConfig)\n ? ctaLinkConfig\n : [ctaLinkConfig]\n : []\n const ctaLinkBox =\n ctaLinkConfigs.length > 0 ? (\n <Box\n sx={{ display: 'flex', gap: 2, flexWrap: 'wrap', marginTop: '22px' }}\n >\n {ctaLinkConfigs.map((config, index) => (\n <SmartButton\n key={index}\n variant=\"outlined\"\n href={config?.href}\n target={config?.target}\n size=\"large\"\n sx={{\n color: '#FFF',\n '&:hover': {\n color: '#FFF',\n textDecorationColor: '#FFF',\n border: '2px solid white',\n },\n '&:focus': { color: '#FFF' },\n textDecorationColor: '#FFF',\n padding: '6px 24px',\n border: '1px solid white',\n }}\n >\n {config?.text}\n </SmartButton>\n ))}\n </Box>\n ) : null\n\n return (\n <Card\n component={'div'}\n ref={ref}\n sx={{\n borderRadius: 0,\n boxShadow: 'none',\n position: 'relative',\n ...(backgroundImage && {\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundImage: `url(${backgroundImage})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n opacity: 0.1,\n zIndex: 0,\n },\n }),\n ...(isAlignToLeftNav &&\n {\n // Add any special styles for aligned cards\n }),\n }}\n className={`SRC-portalCard SRC-portalCardHeader ${\n isAlignToLeftNav ? 'isAlignToLeftNav' : ''\n }`}\n >\n <Box\n sx={{\n marginLeft: 'auto',\n marginRight: 'auto',\n maxWidth: '1400px',\n display: 'grid',\n gridTemplateColumns: '1fr 12fr 1fr',\n '& > *': {\n gridColumn: 2,\n },\n paddingBottom: '25px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n minHeight: '64px', // Set minimum height to ensure proper centering space\n gap: 1,\n }}\n >\n {icon && (\n <Box\n sx={{\n height: '120px',\n }}\n >\n {icon}\n </Box>\n )}\n\n <Box sx={{}}>\n {/* Title */}\n <Typography\n sx={{\n mb: 1,\n fontSize: '2.5rem',\n letterSpacing: '0.1em', // Add letter spacing\n marginBottom: '0.6em',\n }}\n >\n {href ? (\n <SmartLink\n href={href}\n target={target}\n underline=\"hover\"\n color=\"inherit\"\n >\n {title}\n </SmartLink>\n ) : (\n title\n )}\n </Typography>\n {/* Subtitle */}\n {subTitle && (\n <Typography\n variant=\"body1\"\n color=\"inherit\"\n sx={{\n fontStyle: 'italic',\n fontSize: '1.5rem',\n }}\n >\n {subTitle}\n </Typography>\n )}\n </Box>\n </Box>\n\n <Box\n sx={{\n display: 'flex',\n flexDirection: useStackedLayout ? 'column' : 'row',\n flexWrap: useStackedLayout ? 'nowrap' : 'wrap',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n gap: 2,\n }}\n >\n <Box\n style={{\n flexBasis: useStackedLayout ? '100%' : 'min(65ch, 100%)',\n width: useStackedLayout ? '100%' : 'auto',\n }}\n >\n <CollapsibleDescription\n description={description}\n descriptionSubTitle=\"\"\n descriptionConfig={descriptionConfiguration}\n charCountCutoff={charCountCutoff}\n />\n {ctaLinkBox}\n </Box>\n {values && (\n <Box\n sx={{\n width: useStackedLayout ? '100%' : '30%',\n marginTop: useStackedLayout ? 2 : 0,\n alignItems: 'flex-start',\n }}\n >\n <MetadataTable data={values} />\n </Box>\n )}\n </Box>\n </Box>\n </Card>\n )\n})\n\ntype MetadataTableProps = {\n data: CardLabel[]\n}\n\nfunction MetadataTable({ data }: MetadataTableProps) {\n return (\n <table\n style={{\n width: '100%',\n borderCollapse: 'collapse',\n }}\n >\n <tbody>\n {data.map((item, index) => (\n <tr key={item.columnName || index}>\n <td\n style={{\n width: '1%',\n whiteSpace: 'nowrap',\n padding: '0px 16px 8px 0',\n verticalAlign: 'top',\n fontWeight: 'bold',\n }}\n >\n {item.columnDisplayName}\n </td>\n <td\n style={{\n width: 'auto',\n paddingBottom: '12px',\n verticalAlign: 'top',\n wordBreak: 'break-word',\n }}\n >\n {item.value}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n )\n}\n\nexport default HeaderCardV2\n"],"mappings":";;;;;;;;AA6HA,IAAM,IAAe,EAAW,SAC9B,GACA,GACA;CACA,IAAM,EAEJ,UACA,cAAW,IACX,gBACA,WAEA,qBACA,sBACA,oBACA,SACA,WACA,SACA,oBACA,wBAAqB,IACrB,qBACE,GAGE,IAAW,EADH,GACiB,CAAM,YAAY,KAAK,KAAK,CAAC,EAExD,IAAmB;AACvB,EAAI,KAAsB,OACxB,IAAmB;CAOrB,IAAM,IAA8C;EAClD,GAAG;EACH,8BACE,GAAmB,gCAAgC;EACtD;AAED,GAAoB;EAClB;EACA,aAH0B,KAAe,KAAY,KAAA;EAIrD,UAAU;EACX,CAAC;CAGF,IAAM,IAAiB,IACnB,MAAM,QAAQ,EAAc,GAC1B,IACA,CAAC,EAAc,GACjB,EAAE,EACA,IACJ,EAAe,SAAS,IACtB,kBAAC,GAAD;EACE,IAAI;GAAE,SAAS;GAAQ,KAAK;GAAG,UAAU;GAAQ,WAAW;GAAQ;YAEnE,EAAe,KAAK,GAAQ,MAC3B,kBAAC,GAAD;GAEE,SAAQ;GACR,MAAM,GAAQ;GACd,QAAQ,GAAQ;GAChB,MAAK;GACL,IAAI;IACF,OAAO;IACP,WAAW;KACT,OAAO;KACP,qBAAqB;KACrB,QAAQ;KACT;IACD,WAAW,EAAE,OAAO,QAAQ;IAC5B,qBAAqB;IACrB,SAAS;IACT,QAAQ;IACT;aAEA,GAAQ;GACG,EAnBP,EAmBO,CACd;EACE,CAAA,GACJ;AAEN,QACE,kBAAC,GAAD;EACE,WAAW;EACN;EACL,IAAI;GACF,cAAc;GACd,WAAW;GACX,UAAU;GACV,GAAI,KAAmB,EACrB,aAAa;IACX,SAAS;IACT,UAAU;IACV,KAAK;IACL,MAAM;IACN,OAAO;IACP,QAAQ;IACR,iBAAiB,OAAO,EAAgB;IACxC,gBAAgB;IAChB,oBAAoB;IACpB,SAAS;IACT,QAAQ;IACT,EACF;GACD,GAAI,KACF,EAEC;GACJ;EACD,WAAW,uCACT,IAAmB,qBAAqB;YAG1C,kBAAC,GAAD;GACE,IAAI;IACF,YAAY;IACZ,aAAa;IACb,UAAU;IACV,SAAS;IACT,qBAAqB;IACrB,SAAS,EACP,YAAY,GACb;IACD,eAAe;IAChB;aAXH,CAaE,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,eAAe;KACf,YAAY;KACZ,WAAW;KACX,KAAK;KACN;cAPH,CASG,KACC,kBAAC,GAAD;KACE,IAAI,EACF,QAAQ,SACT;eAEA;KACG,CAAA,EAGR,kBAAC,GAAD;KAAK,IAAI,EAAE;eAAX,CAEE,kBAAC,GAAD;MACE,IAAI;OACF,IAAI;OACJ,UAAU;OACV,eAAe;OACf,cAAc;OACf;gBAEA,IACC,kBAAC,GAAD;OACQ;OACE;OACR,WAAU;OACV,OAAM;iBAEL;OACS,CAAA,GAEZ;MAES,CAAA,EAEZ,KACC,kBAAC,GAAD;MACE,SAAQ;MACR,OAAM;MACN,IAAI;OACF,WAAW;OACX,UAAU;OACX;gBAEA;MACU,CAAA,CAEX;OACF;OAEN,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,eAAe,IAAmB,WAAW;KAC7C,UAAU,IAAmB,WAAW;KACxC,gBAAgB;KAChB,YAAY;KACZ,KAAK;KACN;cARH,CAUE,kBAAC,GAAD;KACE,OAAO;MACL,WAAW,IAAmB,SAAS;MACvC,OAAO,IAAmB,SAAS;MACpC;eAJH,CAME,kBAAC,GAAD;MACe;MACb,qBAAoB;MACpB,mBAAmB;MACF;MACjB,CAAA,EACD,EACG;QACL,KACC,kBAAC,GAAD;KACE,IAAI;MACF,OAAO,IAAmB,SAAS;MACnC,WAAW,IAAmB,IAAI;MAClC,YAAY;MACb;eAED,kBAAC,GAAD,EAAe,MAAM,GAAU,CAAA;KAC3B,CAAA,CAEJ;MACF;;EACD,CAAA;EAET;AAMF,SAAS,EAAc,EAAE,WAA4B;AACnD,QACE,kBAAC,SAAD;EACE,OAAO;GACL,OAAO;GACP,gBAAgB;GACjB;YAED,kBAAC,SAAD,EAAA,UACG,EAAK,KAAK,GAAM,MACf,kBAAC,MAAD,EAAA,UAAA,CACE,kBAAC,MAAD;GACE,OAAO;IACL,OAAO;IACP,YAAY;IACZ,SAAS;IACT,eAAe;IACf,YAAY;IACb;aAEA,EAAK;GACH,CAAA,EACL,kBAAC,MAAD;GACE,OAAO;IACL,OAAO;IACP,eAAe;IACf,eAAe;IACf,WAAW;IACZ;aAEA,EAAK;GACH,CAAA,CACF,EAAA,EAtBI,EAAK,cAAc,EAsBvB,CACL,EACI,CAAA;EACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"HeaderCardV2.js","names":[],"sources":["../../../src/components/HeaderCard/HeaderCardV2.tsx"],"sourcesContent":["import { CardLabel } from '@/components/row_renderers/utils/CardFooter'\nimport React, { forwardRef, ForwardedRef } from 'react'\nimport {\n Box,\n Card,\n Typography,\n // Stack,\n // ButtonProps,\n useTheme,\n useMediaQuery,\n} from '@mui/material'\nimport { DescriptionConfig } from '../CardContainerLogic'\nimport { CollapsibleDescription } from '../GenericCard/CollapsibleDescription'\nimport { GenericCardProps } from '@/components/GenericCard/GenericCard'\nimport { useDocumentMetadata } from '@/utils/context/DocumentMetadataContext'\nimport { SmartButton } from '../SmartLink/SmartButton'\nimport { SmartLink } from '../SmartLink/SmartLink'\n\nexport type HeaderCardV2Props = {\n /** Type label displayed at the top of the card */\n type: string\n /** Main title of the card */\n title: string\n /** Optional subtitle, often used for author or additional context */\n subTitle?: string\n /** Main description text */\n description: string\n /** Maximum number of secondary labels to show before \"Show More\" */\n secondaryLabelLimit?: number\n /** Array of label-value pairs to display in the card footer */\n values?: CardLabel[]\n /** Whether to align the card to the left navigation */\n isAlignToLeftNav?: boolean\n /** Configuration for the collapsible description */\n descriptionConfig?: DescriptionConfig\n /** Character count threshold for truncating description (default 400) */\n charCountCutoff?: number\n /** Optional URL for making the title clickable */\n href?: string\n /** Target attribute for the title link */\n target?: string\n /** Icon element to display */\n icon: React.ReactNode\n /** Optional background image URL */\n backgroundImage?: string\n /** Force values section to appear below main content */\n forceStackedLayout?: boolean\n /** Optional CTA link(s) to display below description. Accepts a single config or an array. */\n ctaLinkConfig?: GenericCardProps['ctaLinkConfig']\n}\n\n/**\n * HeaderCardV2 Component OUT OF DATE COMMENTS\n *\n * A material-UI based card component for displaying detailed information with metadata.\n * This component supports responsive layouts, background images, and dynamic content\n * organization.\n *\n * Layout Structure:\n\n ```\n┌───────────────────────────────────────────────────────────────┐\n│ ┌─────┐ Type Label │\n│ │Icon │ Title │\n│ │ │ Subtitle │\n│ └─────┘ │\n│ Description Metadata │\n│ [Show More/Less] -------- │\n│ Label 1 Value 1 │\n│ [External Site Button] Label 2 Value 2 │\n└───────────────────────────────────────────────────────────────┘\n ```\n *\n * Features:\n * - Responsive layout with configurable breakpoints\n * - Optional background image with overlay\n * - Collapsible description text\n * - Right-aligned or stacked metadata section\n * - Call-to-action buttons\n * - SEO-friendly meta tags management\n *\n * Meta Tags Handling:\n * - Updates document title with card title\n * - Sets meta description from card description/subtitle\n * - Restores original meta data on component cleanup\n *\n * Layout Modes:\n * - Default: Icon + Content | Metadata (on desktop)\n * - Stacked: Full width content with metadata below\n * - Mobile: All sections stack vertically\n *\n * @component\n * @example\n * ```tsx\n * <HeaderCardV2\n * type=\"Study\"\n * title=\"Example Study\"\n * description=\"Study description\"\n * values={[['Status', 'Active'], ['Access', 'Public']]}\n * icon={<StudyIcon />}\n * ctaLinkConfig={{text: \"View Standard on External Website\", link: \"url\"}}\n * />\n * ```\n\n * Core component logic:\n * 1. Responsive Layout:\n * - Uses MUI Grid for flexible layouts\n * - Switches to stacked layout on mobile, when forceStackedLayout is true,\n *\n * 2. Meta Tags:\n * - Manages document title and meta description\n * - Preserves original values for cleanup\n *\n * 3. Content Sections:\n * - Icon: Optional, maintains aspect ratio\n * - Main Content: Type, title, subtitle, description\n * - Metadata: Right-aligned or stacked key-value pairs\n * - CTA Button: Optional button link to external site\n *\n * 4. Styling:\n * - Background image support with overlay\n * - Consistent spacing using MUI theme\n * - Responsive typography\n * - Optional left-nav alignment\n */\nconst HeaderCardV2 = forwardRef(function HeaderCardV2(\n props: HeaderCardV2Props,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n // type,\n title,\n subTitle = '',\n description,\n values,\n // secondaryLabelLimit,\n isAlignToLeftNav,\n descriptionConfig,\n charCountCutoff,\n href,\n target,\n icon,\n backgroundImage,\n forceStackedLayout = false,\n ctaLinkConfig,\n } = props\n\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('md'))\n\n let useStackedLayout = false\n if (forceStackedLayout || isMobile) {\n useStackedLayout = true\n } else {\n // useStackedLayout = metadataHeight > descriptionHeight\n // as per https://github.com/bridge2ai/b2ai-standards-registry/issues/210#issuecomment-2773706202,\n // constrain metadata to 5-line expandable block\n }\n\n const descriptionConfiguration: DescriptionConfig = {\n ...descriptionConfig,\n showFullDescriptionByDefault:\n descriptionConfig?.showFullDescriptionByDefault ?? false,\n }\n const metadataDescription = description || subTitle || undefined\n useDocumentMetadata({\n title,\n description: metadataDescription,\n priority: 100,\n })\n\n // ctaLink stuff - normalize to array\n const ctaLinkConfigs = ctaLinkConfig\n ? Array.isArray(ctaLinkConfig)\n ? ctaLinkConfig\n : [ctaLinkConfig]\n : []\n const ctaLinkBox =\n ctaLinkConfigs.length > 0 ? (\n <Box\n sx={{ display: 'flex', gap: 2, flexWrap: 'wrap', marginTop: '22px' }}\n >\n {ctaLinkConfigs.map((config, index) => (\n <SmartButton\n key={index}\n variant=\"outlined\"\n href={config?.href}\n target={config?.target}\n size=\"large\"\n sx={{\n color: '#FFF',\n '&:hover': {\n color: '#FFF',\n textDecorationColor: '#FFF',\n border: '2px solid white',\n },\n '&:focus': { color: '#FFF' },\n textDecorationColor: '#FFF',\n padding: '6px 24px',\n border: '1px solid white',\n }}\n >\n {config?.text}\n </SmartButton>\n ))}\n </Box>\n ) : null\n\n return (\n <Card\n component={'div'}\n ref={ref}\n sx={{\n borderRadius: 0,\n boxShadow: 'none',\n position: 'relative',\n ...(backgroundImage && {\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundImage: `url(${backgroundImage})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n opacity: 0.1,\n zIndex: 0,\n },\n }),\n ...(isAlignToLeftNav &&\n {\n // Add any special styles for aligned cards\n }),\n }}\n className={`SRC-portalCard SRC-portalCardHeader ${\n isAlignToLeftNav ? 'isAlignToLeftNav' : ''\n }`}\n >\n <Box\n sx={{\n marginLeft: 'auto',\n marginRight: 'auto',\n maxWidth: '1400px',\n display: 'grid',\n gridTemplateColumns: '1fr 12fr 1fr',\n '& > *': {\n gridColumn: 2,\n },\n paddingBottom: '25px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n minHeight: '64px', // Set minimum height to ensure proper centering space\n gap: 1,\n }}\n >\n {icon && (\n <Box\n sx={{\n height: '120px',\n }}\n >\n {icon}\n </Box>\n )}\n\n <Box sx={{}}>\n {/* Title */}\n <Typography\n sx={{\n mb: 1,\n fontSize: '2.5rem',\n letterSpacing: '0.1em', // Add letter spacing\n marginBottom: '0.6em',\n }}\n >\n {href ? (\n <SmartLink\n href={href}\n target={target}\n underline=\"hover\"\n color=\"inherit\"\n >\n {title}\n </SmartLink>\n ) : (\n title\n )}\n </Typography>\n {/* Subtitle */}\n {subTitle && (\n <Typography\n variant=\"body1\"\n color=\"inherit\"\n sx={{\n fontStyle: 'italic',\n fontSize: '1.5rem',\n }}\n >\n {subTitle}\n </Typography>\n )}\n </Box>\n </Box>\n\n <Box\n sx={{\n display: 'flex',\n flexDirection: useStackedLayout ? 'column' : 'row',\n flexWrap: useStackedLayout ? 'nowrap' : 'wrap',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n gap: 2,\n }}\n >\n <Box\n style={{\n flexBasis: useStackedLayout ? '100%' : 'min(65ch, 100%)',\n width: useStackedLayout ? '100%' : 'auto',\n }}\n >\n <CollapsibleDescription\n description={description}\n descriptionSubTitle=\"\"\n descriptionConfig={descriptionConfiguration}\n charCountCutoff={charCountCutoff}\n />\n {ctaLinkBox}\n </Box>\n {values && (\n <Box\n sx={{\n width: useStackedLayout ? '100%' : '30%',\n marginTop: useStackedLayout ? 2 : 0,\n alignItems: 'flex-start',\n }}\n >\n <MetadataTable data={values} />\n </Box>\n )}\n </Box>\n </Box>\n </Card>\n )\n})\n\ntype MetadataTableProps = {\n data: CardLabel[]\n}\n\nfunction MetadataTable({ data }: MetadataTableProps) {\n return (\n <table\n style={{\n width: '100%',\n borderCollapse: 'collapse',\n }}\n >\n <tbody>\n {data.map((item, index) => (\n <tr key={item.columnName || index}>\n <td\n style={{\n width: '1%',\n whiteSpace: 'nowrap',\n padding: '0px 16px 8px 0',\n verticalAlign: 'top',\n fontWeight: 'bold',\n }}\n >\n {item.columnDisplayName}\n </td>\n <td\n style={{\n width: 'auto',\n paddingBottom: '12px',\n verticalAlign: 'top',\n wordBreak: 'break-word',\n }}\n >\n {item.value}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n )\n}\n\nexport default HeaderCardV2\n"],"mappings":";;;;;;;;AA6HA,IAAM,IAAe,EAAW,SAC9B,GACA,GACA;CACA,IAAM,EAEJ,UACA,cAAW,IACX,gBACA,WAEA,qBACA,sBACA,oBACA,SACA,WACA,SACA,oBACA,wBAAqB,IACrB,qBACE,GAGE,IAAW,EADH,EACiB,EAAM,YAAY,KAAK,IAAI,CAAC,GAEvD,IAAmB;CACvB,CAAI,KAAsB,OACxB,IAAmB;CAOrB,IAAM,IAA8C;EAClD,GAAG;EACH,8BACE,GAAmB,gCAAgC;CACvD;CAEA,EAAoB;EAClB;EACA,aAH0B,KAAe,KAAY,KAAA;EAIrD,UAAU;CACZ,CAAC;CAGD,IAAM,IAAiB,IACnB,MAAM,QAAQ,CAAa,IACzB,IACA,CAAC,CAAa,IAChB,CAAC,GACC,IACJ,EAAe,SAAS,IACtB,kBAAC,GAAD;EACE,IAAI;GAAE,SAAS;GAAQ,KAAK;GAAG,UAAU;GAAQ,WAAW;EAAO;YAElE,EAAe,KAAK,GAAQ,MAC3B,kBAAC,GAAD;GAEE,SAAQ;GACR,MAAM,GAAQ;GACd,QAAQ,GAAQ;GAChB,MAAK;GACL,IAAI;IACF,OAAO;IACP,WAAW;KACT,OAAO;KACP,qBAAqB;KACrB,QAAQ;IACV;IACA,WAAW,EAAE,OAAO,OAAO;IAC3B,qBAAqB;IACrB,SAAS;IACT,QAAQ;GACV;aAEC,GAAQ;EACE,GAnBN,CAmBM,CACd;CACE,CAAA,IACH;CAEN,OACE,kBAAC,GAAD;EACE,WAAW;EACN;EACL,IAAI;GACF,cAAc;GACd,WAAW;GACX,UAAU;GACV,GAAI,KAAmB,EACrB,aAAa;IACX,SAAS;IACT,UAAU;IACV,KAAK;IACL,MAAM;IACN,OAAO;IACP,QAAQ;IACR,iBAAiB,OAAO,EAAgB;IACxC,gBAAgB;IAChB,oBAAoB;IACpB,SAAS;IACT,QAAQ;GACV,EACF;GACA,GAAI,KACF,CAEA;EACJ;EACA,WAAW,uCACT,IAAmB,qBAAqB;YAG1C,kBAAC,GAAD;GACE,IAAI;IACF,YAAY;IACZ,aAAa;IACb,UAAU;IACV,SAAS;IACT,qBAAqB;IACrB,SAAS,EACP,YAAY,EACd;IACA,eAAe;GACjB;aAXF,CAaE,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,eAAe;KACf,YAAY;KACZ,WAAW;KACX,KAAK;IACP;cAPF,CASG,KACC,kBAAC,GAAD;KACE,IAAI,EACF,QAAQ,QACV;eAEC;IACE,CAAA,GAGP,kBAAC,GAAD;KAAK,IAAI,CAAC;eAAV,CAEE,kBAAC,GAAD;MACE,IAAI;OACF,IAAI;OACJ,UAAU;OACV,eAAe;OACf,cAAc;MAChB;gBAEC,IACC,kBAAC,GAAD;OACQ;OACE;OACR,WAAU;OACV,OAAM;iBAEL;MACQ,CAAA,IAEX;KAEQ,CAAA,GAEX,KACC,kBAAC,GAAD;MACE,SAAQ;MACR,OAAM;MACN,IAAI;OACF,WAAW;OACX,UAAU;MACZ;gBAEC;KACS,CAAA,CAEX;MACF;OAEL,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,eAAe,IAAmB,WAAW;KAC7C,UAAU,IAAmB,WAAW;KACxC,gBAAgB;KAChB,YAAY;KACZ,KAAK;IACP;cARF,CAUE,kBAAC,GAAD;KACE,OAAO;MACL,WAAW,IAAmB,SAAS;MACvC,OAAO,IAAmB,SAAS;KACrC;eAJF,CAME,kBAAC,GAAD;MACe;MACb,qBAAoB;MACpB,mBAAmB;MACF;KAClB,CAAA,GACA,CACE;QACJ,KACC,kBAAC,GAAD;KACE,IAAI;MACF,OAAO,IAAmB,SAAS;MACnC,WAAW,IAAmB,IAAI;MAClC,YAAY;KACd;eAEA,kBAAC,GAAD,EAAe,MAAM,EAAS,CAAA;IAC3B,CAAA,CAEJ;KACF;;CACD,CAAA;AAEV,CAAC;AAMD,SAAS,EAAc,EAAE,WAA4B;CACnD,OACE,kBAAC,SAAD;EACE,OAAO;GACL,OAAO;GACP,gBAAgB;EAClB;YAEA,kBAAC,SAAD,EAAA,UACG,EAAK,KAAK,GAAM,MACf,kBAAC,MAAD,EAAA,UAAA,CACE,kBAAC,MAAD;GACE,OAAO;IACL,OAAO;IACP,YAAY;IACZ,SAAS;IACT,eAAe;IACf,YAAY;GACd;aAEC,EAAK;EACJ,CAAA,GACJ,kBAAC,MAAD;GACE,OAAO;IACL,OAAO;IACP,eAAe;IACf,eAAe;IACf,WAAW;GACb;aAEC,EAAK;EACJ,CAAA,CACF,EAAA,GAtBK,EAAK,cAAc,CAsBxB,CACL,EACI,CAAA;CACF,CAAA;AAEX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderCard.js","names":[],"sources":["../../src/components/HeaderCard.tsx"],"sourcesContent":["import { CardLabel } from '@/components/row_renderers/utils/CardFooter'\nimport { Box, Container, SxProps } from '@mui/material'\nimport { SmartLink } from './SmartLink/SmartLink'\nimport { ForwardedRef, forwardRef } from 'react'\nimport { FileHandleLink } from './widgets/FileHandleLink'\nimport { GenericCardProps } from '@/components/GenericCard/GenericCard'\nimport { CardFooter } from './row_renderers/utils'\nimport { DescriptionConfig } from './CardContainerLogic'\nimport { CollapsibleDescription } from './GenericCard/CollapsibleDescription'\nimport HeaderCardV2 from './HeaderCard/HeaderCardV2'\nimport SustainabilityScorecard, {\n SustainabilityScorecardProps,\n} from './SustainabilityScorecard/SustainabilityScorecard'\nimport { useDocumentMetadata } from '@/utils/context/DocumentMetadataContext'\nimport { AdaptiveTwoColumnLayout } from './AdaptiveTwoColumnLayout/AdaptiveTwoColumnLayout'\n\nexport type HeaderCardVariant = 'HeaderCard' | 'HeaderCardV2'\n\nexport type HeaderCardProps = {\n type: string\n title: string\n subTitle?: string\n description: string\n secondaryLabelLimit?: number\n values?: CardLabel[]\n isAlignToLeftNav?: boolean\n descriptionConfig?: DescriptionConfig\n charCountCutoff?: number\n href?: string\n target?: string\n titleAsFileHandleLinkConfiguration?: GenericCardProps['titleAsFileHandleLinkConfiguration']\n titleAreaRightContent?: React.ReactNode\n descriptionSubTitle?: string\n icon: React.ReactNode\n headerCardVariant?: HeaderCardVariant\n cardTopContent?: React.ReactNode\n ctaLinkConfig?: GenericCardProps['ctaLinkConfig']\n cardTopButtons?: React.ReactNode\n sustainabilityScorecard?: SustainabilityScorecardProps\n renderedIconList?: React.ReactNode\n cardTypeAdornment?: React.ReactNode\n doiUri?: string\n sx?: SxProps\n}\n\nconst HeaderCardClassic = forwardRef(function HeaderCardClassic(\n props: HeaderCardProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n type,\n title,\n subTitle = '',\n description,\n values,\n secondaryLabelLimit,\n isAlignToLeftNav,\n descriptionConfig,\n descriptionSubTitle = '',\n href,\n target,\n titleAsFileHandleLinkConfiguration,\n titleAreaRightContent,\n icon,\n cardTopContent,\n cardTopButtons,\n sustainabilityScorecard,\n renderedIconList,\n cardTypeAdornment,\n sx,\n } = props\n\n const descriptionConfiguration: DescriptionConfig = {\n ...descriptionConfig,\n showFullDescriptionByDefault:\n descriptionConfig?.showFullDescriptionByDefault ?? false,\n }\n\n const metadataDescription = description || subTitle || undefined\n useDocumentMetadata({\n title,\n description: metadataDescription,\n priority: 100,\n })\n\n return (\n <Box\n ref={ref}\n className={`SRC-portalCard SRC-portalCardHeader ${\n isAlignToLeftNav ? 'isAlignToLeftNav' : ''\n }`}\n sx={{\n // Break out of any constrained parent (e.g. margin:auto containers)\n // so the background stretches full-viewport width.\n width: '100vw',\n marginLeft: 'calc(50% - 50vw)',\n ...sx,\n }}\n >\n <Container maxWidth=\"lg\">\n {/* Row 1: type, cardTypeAdornment, cardTopButtons */}\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '10px',\n }}\n >\n <div className=\"SRC-type\">{type}</div>\n {cardTypeAdornment}\n <Box sx={{ flex: 1 }} />\n {cardTopButtons && (\n <Box sx={{ display: 'flex', gap: '10px' }}>{cardTopButtons}</Box>\n )}\n </Box>\n\n {/* Row 2: Title */}\n <Box>\n <h3 className=\"SRC-boldText\" style={{ margin: 'none' }}>\n {titleAsFileHandleLinkConfiguration ? (\n <FileHandleLink\n fileHandleAssociation={\n titleAsFileHandleLinkConfiguration.fileHandleAssociation\n }\n showDownloadIcon={\n titleAsFileHandleLinkConfiguration.showDownloadIcon\n }\n displayValue={title}\n />\n ) : href ? (\n <SmartLink\n href={href ?? ''}\n className=\"highlight-link\"\n target={target}\n >\n {title}\n </SmartLink>\n ) : (\n <span>{title}</span>\n )}\n </h3>\n </Box>\n\n {/* Row 3: renderedIconList */}\n {renderedIconList && (\n <Box\n sx={{\n '& .icon-list.themed path, & .icon-list.themed circle': {\n fill: 'white',\n },\n }}\n >\n {renderedIconList}\n </Box>\n )}\n\n {/* Row 4: left content, optionally alongside right content in an adaptive two-column layout */}\n {(() => {\n const leftContent = (\n <>\n {/* Column 1: icon (floated left) with subTitle and description flowing around */}\n {icon && (\n <Box\n sx={{\n width: '120px',\n float: 'left',\n paddingRight: '24px',\n paddingBottom: '24px',\n display: 'flex',\n justifyContent: 'center',\n }}\n >\n {icon}\n </Box>\n )}\n {subTitle && <div className=\"SRC-author\">{subTitle}</div>}\n <CollapsibleDescription\n description={description}\n descriptionSubTitle={descriptionSubTitle}\n descriptionConfig={descriptionConfiguration}\n />\n {sustainabilityScorecard && (\n <SustainabilityScorecard\n metricsConfig={sustainabilityScorecard.metricsConfig}\n searchParamKey={sustainabilityScorecard.searchParamKey}\n filterColumn={sustainabilityScorecard.filterColumn}\n scoreDescriptorColumnName={\n sustainabilityScorecard.scoreDescriptorColumnName\n }\n queryRequest={sustainabilityScorecard.queryRequest}\n sustainabilityReportLink={\n sustainabilityScorecard.sustainabilityReportLink\n }\n sx={{\n background: 'rgba(0, 0, 0, 0.10)',\n marginTop: '30px',\n ...sustainabilityScorecard.sx,\n }}\n />\n )}\n <Box sx={{ clear: 'both', pb: 'var(--baseline-grid)' }} />\n </>\n )\n\n const rightContent =\n titleAreaRightContent || cardTopContent || values?.length ? (\n /* Column 2: titleAreaRightContent, cardTopContent, CardFooter */\n <>\n {titleAreaRightContent && (\n <div className=\"SRC-cardTitleAreaDetails\">\n {titleAreaRightContent}\n </div>\n )}\n {cardTopContent && (\n <div className=\"SRC-cardContent\">{cardTopContent}</div>\n )}\n {values && (\n <Box sx={{ '&& .SRC-cardMetadata': { paddingTop: 0 } }}>\n <CardFooter\n isHeader={true}\n secondaryLabelLimit={secondaryLabelLimit}\n values={values}\n />\n </Box>\n )}\n </>\n ) : undefined\n\n return rightContent ? (\n <AdaptiveTwoColumnLayout\n stackRatioThreshold={0.45}\n sx={{ marginTop: '24px' }}\n leftContent={leftContent}\n rightContent={rightContent}\n />\n ) : (\n <Box sx={{ marginTop: '24px' }}>{leftContent}</Box>\n )\n })()}\n </Container>\n </Box>\n )\n})\n\nconst HeaderCard = forwardRef(function HeaderCard(\n props: HeaderCardProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const { headerCardVariant = 'HeaderCard' } = props\n if (headerCardVariant === 'HeaderCardV2') {\n return <HeaderCardV2 {...props} ref={ref} />\n }\n return <HeaderCardClassic {...props} ref={ref} />\n})\n\nexport default HeaderCard\n"],"mappings":";;;;;;;;;;;;;AA6CA,IAAM,IAAoB,EAAW,SACnC,GACA,GACA;CACA,IAAM,EACJ,SACA,UACA,cAAW,IACX,gBACA,WACA,wBACA,qBACA,sBACA,yBAAsB,IACtB,SACA,WACA,uCACA,0BACA,SACA,mBACA,mBACA,4BACA,qBACA,sBACA,UACE,GAEE,IAA8C;EAClD,GAAG;EACH,8BACE,GAAmB,gCAAgC;EACtD;AASD,QANA,EAAoB;EAClB;EACA,aAH0B,KAAe,KAAY,KAAA;EAIrD,UAAU;EACX,CAAC,EAGA,kBAAC,GAAD;EACO;EACL,WAAW,uCACT,IAAmB,qBAAqB;EAE1C,IAAI;GAGF,OAAO;GACP,YAAY;GACZ,GAAG;GACJ;YAED,kBAAC,GAAD;GAAW,UAAS;aAApB;IAEE,kBAAC,GAAD;KACE,IAAI;MACF,SAAS;MACT,eAAe;MACf,YAAY;MACZ,KAAK;MACN;eANH;MAQE,kBAAC,OAAD;OAAK,WAAU;iBAAY;OAAW,CAAA;MACrC;MACD,kBAAC,GAAD,EAAK,IAAI,EAAE,MAAM,GAAG,EAAI,CAAA;MACvB,KACC,kBAAC,GAAD;OAAK,IAAI;QAAE,SAAS;QAAQ,KAAK;QAAQ;iBAAG;OAAqB,CAAA;MAE/D;;IAGN,kBAAC,GAAD,EAAA,UACE,kBAAC,MAAD;KAAI,WAAU;KAAe,OAAO,EAAE,QAAQ,QAAQ;eACnD,IACC,kBAAC,GAAD;MACE,uBACE,EAAmC;MAErC,kBACE,EAAmC;MAErC,cAAc;MACd,CAAA,GACA,IACF,kBAAC,GAAD;MACE,MAAM,KAAQ;MACd,WAAU;MACF;gBAEP;MACS,CAAA,GAEZ,kBAAC,QAAD,EAAA,UAAO,GAAa,CAAA;KAEnB,CAAA,EACD,CAAA;IAGL,KACC,kBAAC,GAAD;KACE,IAAI,EACF,wDAAwD,EACtD,MAAM,SACP,EACF;eAEA;KACG,CAAA;WAIA;KACN,IAAM,IACJ,kBAAA,GAAA,EAAA,UAAA;MAEG,KACC,kBAAC,GAAD;OACE,IAAI;QACF,OAAO;QACP,OAAO;QACP,cAAc;QACd,eAAe;QACf,SAAS;QACT,gBAAgB;QACjB;iBAEA;OACG,CAAA;MAEP,KAAY,kBAAC,OAAD;OAAK,WAAU;iBAAc;OAAe,CAAA;MACzD,kBAAC,GAAD;OACe;OACQ;OACrB,mBAAmB;OACnB,CAAA;MACD,KACC,kBAAC,GAAD;OACE,eAAe,EAAwB;OACvC,gBAAgB,EAAwB;OACxC,cAAc,EAAwB;OACtC,2BACE,EAAwB;OAE1B,cAAc,EAAwB;OACtC,0BACE,EAAwB;OAE1B,IAAI;QACF,YAAY;QACZ,WAAW;QACX,GAAG,EAAwB;QAC5B;OACD,CAAA;MAEJ,kBAAC,GAAD,EAAK,IAAI;OAAE,OAAO;OAAQ,IAAI;OAAwB,EAAI,CAAA;MACzD,EAAA,CAAA,EAGC,IACJ,KAAyB,KAAkB,GAAQ,SAEjD,kBAAA,GAAA,EAAA,UAAA;MACG,KACC,kBAAC,OAAD;OAAK,WAAU;iBACZ;OACG,CAAA;MAEP,KACC,kBAAC,OAAD;OAAK,WAAU;iBAAmB;OAAqB,CAAA;MAExD,KACC,kBAAC,GAAD;OAAK,IAAI,EAAE,wBAAwB,EAAE,YAAY,GAAG,EAAE;iBACpD,kBAAC,GAAD;QACE,UAAU;QACW;QACb;QACR,CAAA;OACE,CAAA;MAEP,EAAA,CAAA,GACD,KAAA;AAEN,YAAO,IACL,kBAAC,GAAD;MACE,qBAAqB;MACrB,IAAI,EAAE,WAAW,QAAQ;MACZ;MACC;MACd,CAAA,GAEF,kBAAC,GAAD;MAAK,IAAI,EAAE,WAAW,QAAQ;gBAAG;MAAkB,CAAA;QAEnD;IACM;;EACR,CAAA;EAER,EAEI,IAAa,EAAW,SAC5B,GACA,GACA;CACA,IAAM,EAAE,uBAAoB,iBAAiB;AAI7C,QAFS,EADL,MAAsB,iBAChB,IAEF,GAFC;EAAc,GAAI;EAAY;EAAO,CAAA;EAG9C"}
|
|
1
|
+
{"version":3,"file":"HeaderCard.js","names":[],"sources":["../../src/components/HeaderCard.tsx"],"sourcesContent":["import { CardLabel } from '@/components/row_renderers/utils/CardFooter'\nimport { Box, Container, SxProps } from '@mui/material'\nimport { SmartLink } from './SmartLink/SmartLink'\nimport { ForwardedRef, forwardRef } from 'react'\nimport { FileHandleLink } from './widgets/FileHandleLink'\nimport { GenericCardProps } from '@/components/GenericCard/GenericCard'\nimport { CardFooter } from './row_renderers/utils'\nimport { DescriptionConfig } from './CardContainerLogic'\nimport { CollapsibleDescription } from './GenericCard/CollapsibleDescription'\nimport HeaderCardV2 from './HeaderCard/HeaderCardV2'\nimport SustainabilityScorecard, {\n SustainabilityScorecardProps,\n} from './SustainabilityScorecard/SustainabilityScorecard'\nimport { useDocumentMetadata } from '@/utils/context/DocumentMetadataContext'\nimport { AdaptiveTwoColumnLayout } from './AdaptiveTwoColumnLayout/AdaptiveTwoColumnLayout'\n\nexport type HeaderCardVariant = 'HeaderCard' | 'HeaderCardV2'\n\nexport type HeaderCardProps = {\n type: string\n title: string\n subTitle?: string\n description: string\n secondaryLabelLimit?: number\n values?: CardLabel[]\n isAlignToLeftNav?: boolean\n descriptionConfig?: DescriptionConfig\n charCountCutoff?: number\n href?: string\n target?: string\n titleAsFileHandleLinkConfiguration?: GenericCardProps['titleAsFileHandleLinkConfiguration']\n titleAreaRightContent?: React.ReactNode\n descriptionSubTitle?: string\n icon: React.ReactNode\n headerCardVariant?: HeaderCardVariant\n cardTopContent?: React.ReactNode\n ctaLinkConfig?: GenericCardProps['ctaLinkConfig']\n cardTopButtons?: React.ReactNode\n sustainabilityScorecard?: SustainabilityScorecardProps\n renderedIconList?: React.ReactNode\n cardTypeAdornment?: React.ReactNode\n doiUri?: string\n sx?: SxProps\n}\n\nconst HeaderCardClassic = forwardRef(function HeaderCardClassic(\n props: HeaderCardProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n type,\n title,\n subTitle = '',\n description,\n values,\n secondaryLabelLimit,\n isAlignToLeftNav,\n descriptionConfig,\n descriptionSubTitle = '',\n href,\n target,\n titleAsFileHandleLinkConfiguration,\n titleAreaRightContent,\n icon,\n cardTopContent,\n cardTopButtons,\n sustainabilityScorecard,\n renderedIconList,\n cardTypeAdornment,\n sx,\n } = props\n\n const descriptionConfiguration: DescriptionConfig = {\n ...descriptionConfig,\n showFullDescriptionByDefault:\n descriptionConfig?.showFullDescriptionByDefault ?? false,\n }\n\n const metadataDescription = description || subTitle || undefined\n useDocumentMetadata({\n title,\n description: metadataDescription,\n priority: 100,\n })\n\n return (\n <Box\n ref={ref}\n className={`SRC-portalCard SRC-portalCardHeader ${\n isAlignToLeftNav ? 'isAlignToLeftNav' : ''\n }`}\n sx={{\n // Break out of any constrained parent (e.g. margin:auto containers)\n // so the background stretches full-viewport width.\n width: '100vw',\n marginLeft: 'calc(50% - 50vw)',\n ...sx,\n }}\n >\n <Container maxWidth=\"lg\">\n {/* Row 1: type, cardTypeAdornment, cardTopButtons */}\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '10px',\n }}\n >\n <div className=\"SRC-type\">{type}</div>\n {cardTypeAdornment}\n <Box sx={{ flex: 1 }} />\n {cardTopButtons && (\n <Box sx={{ display: 'flex', gap: '10px' }}>{cardTopButtons}</Box>\n )}\n </Box>\n\n {/* Row 2: Title */}\n <Box>\n <h3 className=\"SRC-boldText\" style={{ margin: 'none' }}>\n {titleAsFileHandleLinkConfiguration ? (\n <FileHandleLink\n fileHandleAssociation={\n titleAsFileHandleLinkConfiguration.fileHandleAssociation\n }\n showDownloadIcon={\n titleAsFileHandleLinkConfiguration.showDownloadIcon\n }\n displayValue={title}\n />\n ) : href ? (\n <SmartLink\n href={href ?? ''}\n className=\"highlight-link\"\n target={target}\n >\n {title}\n </SmartLink>\n ) : (\n <span>{title}</span>\n )}\n </h3>\n </Box>\n\n {/* Row 3: renderedIconList */}\n {renderedIconList && (\n <Box\n sx={{\n '& .icon-list.themed path, & .icon-list.themed circle': {\n fill: 'white',\n },\n }}\n >\n {renderedIconList}\n </Box>\n )}\n\n {/* Row 4: left content, optionally alongside right content in an adaptive two-column layout */}\n {(() => {\n const leftContent = (\n <>\n {/* Column 1: icon (floated left) with subTitle and description flowing around */}\n {icon && (\n <Box\n sx={{\n width: '120px',\n float: 'left',\n paddingRight: '24px',\n paddingBottom: '24px',\n display: 'flex',\n justifyContent: 'center',\n }}\n >\n {icon}\n </Box>\n )}\n {subTitle && <div className=\"SRC-author\">{subTitle}</div>}\n <CollapsibleDescription\n description={description}\n descriptionSubTitle={descriptionSubTitle}\n descriptionConfig={descriptionConfiguration}\n />\n {sustainabilityScorecard && (\n <SustainabilityScorecard\n metricsConfig={sustainabilityScorecard.metricsConfig}\n searchParamKey={sustainabilityScorecard.searchParamKey}\n filterColumn={sustainabilityScorecard.filterColumn}\n scoreDescriptorColumnName={\n sustainabilityScorecard.scoreDescriptorColumnName\n }\n queryRequest={sustainabilityScorecard.queryRequest}\n sustainabilityReportLink={\n sustainabilityScorecard.sustainabilityReportLink\n }\n sx={{\n background: 'rgba(0, 0, 0, 0.10)',\n marginTop: '30px',\n ...sustainabilityScorecard.sx,\n }}\n />\n )}\n <Box sx={{ clear: 'both', pb: 'var(--baseline-grid)' }} />\n </>\n )\n\n const rightContent =\n titleAreaRightContent || cardTopContent || values?.length ? (\n /* Column 2: titleAreaRightContent, cardTopContent, CardFooter */\n <>\n {titleAreaRightContent && (\n <div className=\"SRC-cardTitleAreaDetails\">\n {titleAreaRightContent}\n </div>\n )}\n {cardTopContent && (\n <div className=\"SRC-cardContent\">{cardTopContent}</div>\n )}\n {values && (\n <Box sx={{ '&& .SRC-cardMetadata': { paddingTop: 0 } }}>\n <CardFooter\n isHeader={true}\n secondaryLabelLimit={secondaryLabelLimit}\n values={values}\n />\n </Box>\n )}\n </>\n ) : undefined\n\n return rightContent ? (\n <AdaptiveTwoColumnLayout\n stackRatioThreshold={0.45}\n sx={{ marginTop: '24px' }}\n leftContent={leftContent}\n rightContent={rightContent}\n />\n ) : (\n <Box sx={{ marginTop: '24px' }}>{leftContent}</Box>\n )\n })()}\n </Container>\n </Box>\n )\n})\n\nconst HeaderCard = forwardRef(function HeaderCard(\n props: HeaderCardProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const { headerCardVariant = 'HeaderCard' } = props\n if (headerCardVariant === 'HeaderCardV2') {\n return <HeaderCardV2 {...props} ref={ref} />\n }\n return <HeaderCardClassic {...props} ref={ref} />\n})\n\nexport default HeaderCard\n"],"mappings":";;;;;;;;;;;;;AA6CA,IAAM,IAAoB,EAAW,SACnC,GACA,GACA;CACA,IAAM,EACJ,SACA,UACA,cAAW,IACX,gBACA,WACA,wBACA,qBACA,sBACA,yBAAsB,IACtB,SACA,WACA,uCACA,0BACA,SACA,mBACA,mBACA,4BACA,qBACA,sBACA,UACE,GAEE,IAA8C;EAClD,GAAG;EACH,8BACE,GAAmB,gCAAgC;CACvD;CASA,OANA,EAAoB;EAClB;EACA,aAH0B,KAAe,KAAY,KAAA;EAIrD,UAAU;CACZ,CAAC,GAGC,kBAAC,GAAD;EACO;EACL,WAAW,uCACT,IAAmB,qBAAqB;EAE1C,IAAI;GAGF,OAAO;GACP,YAAY;GACZ,GAAG;EACL;YAEA,kBAAC,GAAD;GAAW,UAAS;aAApB;IAEE,kBAAC,GAAD;KACE,IAAI;MACF,SAAS;MACT,eAAe;MACf,YAAY;MACZ,KAAK;KACP;eANF;MAQE,kBAAC,OAAD;OAAK,WAAU;iBAAY;MAAU,CAAA;MACpC;MACD,kBAAC,GAAD,EAAK,IAAI,EAAE,MAAM,EAAE,EAAI,CAAA;MACtB,KACC,kBAAC,GAAD;OAAK,IAAI;QAAE,SAAS;QAAQ,KAAK;OAAO;iBAAI;MAAoB,CAAA;KAE/D;;IAGL,kBAAC,GAAD,EAAA,UACE,kBAAC,MAAD;KAAI,WAAU;KAAe,OAAO,EAAE,QAAQ,OAAO;eAClD,IACC,kBAAC,GAAD;MACE,uBACE,EAAmC;MAErC,kBACE,EAAmC;MAErC,cAAc;KACf,CAAA,IACC,IACF,kBAAC,GAAD;MACE,MAAM,KAAQ;MACd,WAAU;MACF;gBAEP;KACQ,CAAA,IAEX,kBAAC,QAAD,EAAA,UAAO,EAAY,CAAA;IAEnB,CAAA,EACD,CAAA;IAGJ,KACC,kBAAC,GAAD;KACE,IAAI,EACF,wDAAwD,EACtD,MAAM,QACR,EACF;eAEC;IACE,CAAA;WAIC;KACN,IAAM,IACJ,kBAAA,GAAA,EAAA,UAAA;MAEG,KACC,kBAAC,GAAD;OACE,IAAI;QACF,OAAO;QACP,OAAO;QACP,cAAc;QACd,eAAe;QACf,SAAS;QACT,gBAAgB;OAClB;iBAEC;MACE,CAAA;MAEN,KAAY,kBAAC,OAAD;OAAK,WAAU;iBAAc;MAAc,CAAA;MACxD,kBAAC,GAAD;OACe;OACQ;OACrB,mBAAmB;MACpB,CAAA;MACA,KACC,kBAAC,GAAD;OACE,eAAe,EAAwB;OACvC,gBAAgB,EAAwB;OACxC,cAAc,EAAwB;OACtC,2BACE,EAAwB;OAE1B,cAAc,EAAwB;OACtC,0BACE,EAAwB;OAE1B,IAAI;QACF,YAAY;QACZ,WAAW;QACX,GAAG,EAAwB;OAC7B;MACD,CAAA;MAEH,kBAAC,GAAD,EAAK,IAAI;OAAE,OAAO;OAAQ,IAAI;MAAuB,EAAI,CAAA;KACzD,EAAA,CAAA,GAGE,IACJ,KAAyB,KAAkB,GAAQ,SAEjD,kBAAA,GAAA,EAAA,UAAA;MACG,KACC,kBAAC,OAAD;OAAK,WAAU;iBACZ;MACE,CAAA;MAEN,KACC,kBAAC,OAAD;OAAK,WAAU;iBAAmB;MAAoB,CAAA;MAEvD,KACC,kBAAC,GAAD;OAAK,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,EAAE;iBACnD,kBAAC,GAAD;QACE,UAAU;QACW;QACb;OACT,CAAA;MACE,CAAA;KAEP,EAAA,CAAA,IACA,KAAA;KAEN,OAAO,IACL,kBAAC,GAAD;MACE,qBAAqB;MACrB,IAAI,EAAE,WAAW,OAAO;MACX;MACC;KACf,CAAA,IAED,kBAAC,GAAD;MAAK,IAAI,EAAE,WAAW,OAAO;gBAAI;KAAiB,CAAA;IAEtD,GAAG;GACM;;CACR,CAAA;AAET,CAAC,GAEK,IAAa,EAAW,SAC5B,GACA,GACA;CACA,IAAM,EAAE,uBAAoB,iBAAiB;CAI7C,OAFS,EADL,MAAsB,iBAChB,IAEF,GAFC;EAAc,GAAI;EAAY;CAAM,CAAA;AAG/C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HelpPopover.js","names":[],"sources":["../../../src/components/HelpPopover/HelpPopover.tsx"],"sourcesContent":["import { MarkdownPopover } from '../Markdown/MarkdownPopover'\nimport { ButtonProps, SxProps, TooltipProps } from '@mui/material'\nimport { HelpOutlineTwoTone } from '@mui/icons-material'\n\nexport type HelpPopoverProps = {\n markdownText: string\n helpUrl?: string\n placement?: TooltipProps['placement']\n showCloseButton?: boolean\n className?: string\n containerSx?: SxProps\n iconSx?: SxProps\n Icon?: React.ComponentType<{ className?: string; sx?: SxProps }>\n}\n\nexport function HelpPopover({\n markdownText,\n helpUrl,\n placement = 'bottom',\n showCloseButton = true,\n className = '',\n iconSx,\n containerSx,\n Icon = HelpOutlineTwoTone,\n}: HelpPopoverProps) {\n const actionButtonConfig = helpUrl\n ? {\n content: <>More info</>,\n closePopoverOnClick: true,\n onClick: () => window.open(helpUrl, '_blank'),\n color: 'primary' as ButtonProps['color'],\n }\n : undefined\n return (\n <>\n <MarkdownPopover\n contentProps={{ markdown: markdownText }}\n placement={placement}\n actionButton={actionButtonConfig}\n showCloseButton={showCloseButton}\n maxWidth=\"350px\"\n containerSx={containerSx}\n >\n <Icon className={`HelpButton ${className}`} sx={iconSx} />\n </MarkdownPopover>\n </>\n )\n}\n\nexport default HelpPopover\n"],"mappings":";;;;AAeA,SAAgB,EAAY,EAC1B,iBACA,YACA,eAAY,UACZ,qBAAkB,IAClB,eAAY,IACZ,WACA,gBACA,UAAO,KACY;
|
|
1
|
+
{"version":3,"file":"HelpPopover.js","names":[],"sources":["../../../src/components/HelpPopover/HelpPopover.tsx"],"sourcesContent":["import { MarkdownPopover } from '../Markdown/MarkdownPopover'\nimport { ButtonProps, SxProps, TooltipProps } from '@mui/material'\nimport { HelpOutlineTwoTone } from '@mui/icons-material'\n\nexport type HelpPopoverProps = {\n markdownText: string\n helpUrl?: string\n placement?: TooltipProps['placement']\n showCloseButton?: boolean\n className?: string\n containerSx?: SxProps\n iconSx?: SxProps\n Icon?: React.ComponentType<{ className?: string; sx?: SxProps }>\n}\n\nexport function HelpPopover({\n markdownText,\n helpUrl,\n placement = 'bottom',\n showCloseButton = true,\n className = '',\n iconSx,\n containerSx,\n Icon = HelpOutlineTwoTone,\n}: HelpPopoverProps) {\n const actionButtonConfig = helpUrl\n ? {\n content: <>More info</>,\n closePopoverOnClick: true,\n onClick: () => window.open(helpUrl, '_blank'),\n color: 'primary' as ButtonProps['color'],\n }\n : undefined\n return (\n <>\n <MarkdownPopover\n contentProps={{ markdown: markdownText }}\n placement={placement}\n actionButton={actionButtonConfig}\n showCloseButton={showCloseButton}\n maxWidth=\"350px\"\n containerSx={containerSx}\n >\n <Icon className={`HelpButton ${className}`} sx={iconSx} />\n </MarkdownPopover>\n </>\n )\n}\n\nexport default HelpPopover\n"],"mappings":";;;;AAeA,SAAgB,EAAY,EAC1B,iBACA,YACA,eAAY,UACZ,qBAAkB,IAClB,eAAY,IACZ,WACA,gBACA,UAAO,KACY;CASnB,OACE,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;EACE,cAAc,EAAE,UAAU,EAAa;EAC5B;EACX,cAbqB,IACvB;GACE,SAAS,kBAAA,GAAA,EAAA,UAAE,YAAW,CAAA;GACtB,qBAAqB;GACrB,eAAe,OAAO,KAAK,GAAS,QAAQ;GAC5C,OAAO;EACT,IACA,KAAA;EAOmB;EACjB,UAAS;EACI;YAEb,kBAAC,GAAD;GAAM,WAAW,cAAc;GAAa,IAAI;EAAS,CAAA;CAC1C,CAAA,EACjB,CAAA;AAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HexGrid.js","names":[],"sources":["../../../src/components/HexGrid/HexGrid.tsx"],"sourcesContent":["import styles from './HexGrid.module.scss'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport {\n FileHandleAssociateType,\n QueryBundleRequest,\n} from '@sage-bionetworks/synapse-types'\nimport { SynapseConstants } from '@/utils'\nimport { useGetFullTableQueryResults } from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { ImageFileHandle } from '@/components/widgets/ImageFileHandle'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport { ButtonBase, Typography } from '@mui/material'\n\n// Column values resolved by name so consumers don't need the indices that are only known inside HexGrid.\nexport type HexRowData = {\n title: string\n imageFileHandleId: string | null\n description: string | null\n entityId: string\n}\n\ntype HexGridProps = {\n sql: string\n titleColName: string\n imageColName: string\n descriptionColName: string\n onRowClick?: (rowData: HexRowData) => void\n}\n\nfunction HexGrid({\n sql,\n titleColName,\n imageColName,\n descriptionColName,\n onRowClick,\n}: HexGridProps) {\n const entityId = parseEntityIdFromSqlStatement(sql)\n const queryBundleRequest: QueryBundleRequest = {\n entityId,\n query: { sql },\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n }\n\n const { data: queryResultBundle } =\n useGetFullTableQueryResults(queryBundleRequest)\n\n const dataRows = queryResultBundle?.queryResult?.queryResults.rows ?? []\n\n const titleColIndex = getFieldIndex(titleColName, queryResultBundle)\n\n const imageColIndex = getFieldIndex(imageColName, queryResultBundle)\n\n const descColIndex = getFieldIndex(descriptionColName, queryResultBundle)\n\n return (\n <div className={styles.hexSlat}>\n <div className={styles.gridWrapper}>\n <ul className={styles.hexGrid}>\n {dataRows.map(row => (\n <ButtonBase\n component=\"li\"\n key={row.rowId}\n className={styles.hex}\n onClick={() =>\n onRowClick?.({\n title: row.values[titleColIndex] ?? '',\n imageFileHandleId: row.values[imageColIndex] ?? null,\n description: row.values[descColIndex] ?? null,\n entityId,\n })\n }\n >\n <div className={styles.hexIn}>\n <Typography variant=\"headline3\" className={styles.hexTitle}>\n {row.values[titleColIndex]}\n </Typography>\n <ImageFileHandle\n fileHandleAssociation={{\n fileHandleId: row.values[imageColIndex] ?? '',\n associateObjectId: entityId,\n associateObjectType: FileHandleAssociateType.TableEntity,\n }}\n imgProps={{ className: styles.hexIcon }}\n />\n </div>\n </ButtonBase>\n ))}\n </ul>\n </div>\n </div>\n )\n}\n\nexport default HexGrid\n"],"mappings":";;;;;;;;;;;AA4BA,SAAS,EAAQ,EACf,QACA,iBACA,iBACA,uBACA,iBACe;CACf,IAAM,IAAW,EAA8B,
|
|
1
|
+
{"version":3,"file":"HexGrid.js","names":[],"sources":["../../../src/components/HexGrid/HexGrid.tsx"],"sourcesContent":["import styles from './HexGrid.module.scss'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport {\n FileHandleAssociateType,\n QueryBundleRequest,\n} from '@sage-bionetworks/synapse-types'\nimport { SynapseConstants } from '@/utils'\nimport { useGetFullTableQueryResults } from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { ImageFileHandle } from '@/components/widgets/ImageFileHandle'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport { ButtonBase, Typography } from '@mui/material'\n\n// Column values resolved by name so consumers don't need the indices that are only known inside HexGrid.\nexport type HexRowData = {\n title: string\n imageFileHandleId: string | null\n description: string | null\n entityId: string\n}\n\ntype HexGridProps = {\n sql: string\n titleColName: string\n imageColName: string\n descriptionColName: string\n onRowClick?: (rowData: HexRowData) => void\n}\n\nfunction HexGrid({\n sql,\n titleColName,\n imageColName,\n descriptionColName,\n onRowClick,\n}: HexGridProps) {\n const entityId = parseEntityIdFromSqlStatement(sql)\n const queryBundleRequest: QueryBundleRequest = {\n entityId,\n query: { sql },\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n }\n\n const { data: queryResultBundle } =\n useGetFullTableQueryResults(queryBundleRequest)\n\n const dataRows = queryResultBundle?.queryResult?.queryResults.rows ?? []\n\n const titleColIndex = getFieldIndex(titleColName, queryResultBundle)\n\n const imageColIndex = getFieldIndex(imageColName, queryResultBundle)\n\n const descColIndex = getFieldIndex(descriptionColName, queryResultBundle)\n\n return (\n <div className={styles.hexSlat}>\n <div className={styles.gridWrapper}>\n <ul className={styles.hexGrid}>\n {dataRows.map(row => (\n <ButtonBase\n component=\"li\"\n key={row.rowId}\n className={styles.hex}\n onClick={() =>\n onRowClick?.({\n title: row.values[titleColIndex] ?? '',\n imageFileHandleId: row.values[imageColIndex] ?? null,\n description: row.values[descColIndex] ?? null,\n entityId,\n })\n }\n >\n <div className={styles.hexIn}>\n <Typography variant=\"headline3\" className={styles.hexTitle}>\n {row.values[titleColIndex]}\n </Typography>\n <ImageFileHandle\n fileHandleAssociation={{\n fileHandleId: row.values[imageColIndex] ?? '',\n associateObjectId: entityId,\n associateObjectType: FileHandleAssociateType.TableEntity,\n }}\n imgProps={{ className: styles.hexIcon }}\n />\n </div>\n </ButtonBase>\n ))}\n </ul>\n </div>\n </div>\n )\n}\n\nexport default HexGrid\n"],"mappings":";;;;;;;;;;;AA4BA,SAAS,EAAQ,EACf,QACA,iBACA,iBACA,uBACA,iBACe;CACf,IAAM,IAAW,EAA8B,CAAG,GAU5C,EAAE,MAAM,MACZ,EAA4B;EAT5B;EACA,OAAO,EAAE,OAAI;EACb,UACE;EAEF,cAAc;CAIc,CAAkB,GAE1C,IAAW,GAAmB,aAAa,aAAa,QAAQ,CAAC,GAEjE,IAAgB,EAAc,GAAc,CAAiB,GAE7D,IAAgB,EAAc,GAAc,CAAiB,GAE7D,IAAe,EAAc,GAAoB,CAAiB;CAExE,OACE,kBAAC,OAAD;EAAK,WAAW,EAAO;YACrB,kBAAC,OAAD;GAAK,WAAW,EAAO;aACrB,kBAAC,MAAD;IAAI,WAAW,EAAO;cACnB,EAAS,KAAI,MACZ,kBAAC,GAAD;KACE,WAAU;KAEV,WAAW,EAAO;KAClB,eACE,IAAa;MACX,OAAO,EAAI,OAAO,MAAkB;MACpC,mBAAmB,EAAI,OAAO,MAAkB;MAChD,aAAa,EAAI,OAAO,MAAiB;MACzC;KACF,CAAC;eAGH,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAvB,CACE,kBAAC,GAAD;OAAY,SAAQ;OAAY,WAAW,EAAO;iBAC/C,EAAI,OAAO;MACF,CAAA,GACZ,kBAAC,GAAD;OACE,uBAAuB;QACrB,cAAc,EAAI,OAAO,MAAkB;QAC3C,mBAAmB;QACnB,qBAAqB,EAAwB;OAC/C;OACA,UAAU,EAAE,WAAW,EAAO,QAAQ;MACvC,CAAA,CACE;;IACK,GAxBL,EAAI,KAwBC,CACb;GACC,CAAA;EACD,CAAA;CACF,CAAA;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IDUReport.js","names":[],"sources":["../../../src/components/IDUReport/IDUReport.tsx"],"sourcesContent":["import { useGetApprovedSubmissionInfoInfinite } from '@/synapse-queries'\nimport { SubmissionInfo } from '@sage-bionetworks/synapse-types'\nimport { Fragment, useEffect } from 'react'\nimport { useInView } from 'react-intersection-observer'\nimport {\n LoadingSubmissionInfoCard,\n SubmissionInfoCard,\n} from './IDUReportSubmissionInfo'\n\nexport type IDUReportProps = {\n accessRequirementId: string\n}\n\nexport function IDUReport(props: IDUReportProps): React.ReactNode {\n const { accessRequirementId } = props\n // Load the next page when this ref comes into view.\n const { ref, inView } = useInView()\n\n const {\n data,\n status,\n isLoading,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n } = useGetApprovedSubmissionInfoInfinite(accessRequirementId, {\n throwOnError: true,\n })\n useEffect(() => {\n if (\n status === 'success' &&\n !isFetchingNextPage &&\n hasNextPage &&\n fetchNextPage &&\n inView\n ) {\n fetchNextPage()\n }\n }, [status, hasNextPage, isFetchingNextPage, fetchNextPage, inView])\n\n const allRows = data?.pages.flatMap(page => page.results) ?? []\n\n return (\n <>\n {allRows.length > 0 && (\n <div className=\"IDUReport\">\n {allRows.map((item: SubmissionInfo) => {\n return (\n <Fragment key={JSON.stringify(item)}>\n <SubmissionInfoCard info={item} />\n <hr />\n </Fragment>\n )\n })}\n {/* To trigger loading the next page */}\n <div ref={ref} />\n </div>\n )}\n {(isLoading || isFetchingNextPage) && (\n <>\n <LoadingSubmissionInfoCard />\n <LoadingSubmissionInfoCard />\n </>\n )}\n </>\n )\n}\nexport default IDUReport\n"],"mappings":";;;;;;;AAaA,SAAgB,EAAU,GAAwC;CAChE,IAAM,EAAE,2BAAwB,GAE1B,EAAE,QAAK,cAAW,
|
|
1
|
+
{"version":3,"file":"IDUReport.js","names":[],"sources":["../../../src/components/IDUReport/IDUReport.tsx"],"sourcesContent":["import { useGetApprovedSubmissionInfoInfinite } from '@/synapse-queries'\nimport { SubmissionInfo } from '@sage-bionetworks/synapse-types'\nimport { Fragment, useEffect } from 'react'\nimport { useInView } from 'react-intersection-observer'\nimport {\n LoadingSubmissionInfoCard,\n SubmissionInfoCard,\n} from './IDUReportSubmissionInfo'\n\nexport type IDUReportProps = {\n accessRequirementId: string\n}\n\nexport function IDUReport(props: IDUReportProps): React.ReactNode {\n const { accessRequirementId } = props\n // Load the next page when this ref comes into view.\n const { ref, inView } = useInView()\n\n const {\n data,\n status,\n isLoading,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n } = useGetApprovedSubmissionInfoInfinite(accessRequirementId, {\n throwOnError: true,\n })\n useEffect(() => {\n if (\n status === 'success' &&\n !isFetchingNextPage &&\n hasNextPage &&\n fetchNextPage &&\n inView\n ) {\n fetchNextPage()\n }\n }, [status, hasNextPage, isFetchingNextPage, fetchNextPage, inView])\n\n const allRows = data?.pages.flatMap(page => page.results) ?? []\n\n return (\n <>\n {allRows.length > 0 && (\n <div className=\"IDUReport\">\n {allRows.map((item: SubmissionInfo) => {\n return (\n <Fragment key={JSON.stringify(item)}>\n <SubmissionInfoCard info={item} />\n <hr />\n </Fragment>\n )\n })}\n {/* To trigger loading the next page */}\n <div ref={ref} />\n </div>\n )}\n {(isLoading || isFetchingNextPage) && (\n <>\n <LoadingSubmissionInfoCard />\n <LoadingSubmissionInfoCard />\n </>\n )}\n </>\n )\n}\nexport default IDUReport\n"],"mappings":";;;;;;;AAaA,SAAgB,EAAU,GAAwC;CAChE,IAAM,EAAE,2BAAwB,GAE1B,EAAE,QAAK,cAAW,EAAU,GAE5B,EACJ,SACA,WACA,cACA,gBACA,uBACA,qBACE,EAAqC,GAAqB,EAC5D,cAAc,GAChB,CAAC;CACD,QAAgB;EACd,AACE,MAAW,aACX,CAAC,KACD,KACA,KACA,KAEA,EAAc;CAElB,GAAG;EAAC;EAAQ;EAAa;EAAoB;EAAe;CAAM,CAAC;CAEnE,IAAM,IAAU,GAAM,MAAM,SAAQ,MAAQ,EAAK,OAAO,KAAK,CAAC;CAE9D,OACE,kBAAA,GAAA,EAAA,UAAA,CACG,EAAQ,SAAS,KAChB,kBAAC,OAAD;EAAK,WAAU;YAAf,CACG,EAAQ,KAAK,MAEV,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAoB,MAAM,EAAO,CAAA,GACjC,kBAAC,MAAD,CAAK,CAAA,CACG,EAAA,GAHK,KAAK,UAAU,CAAI,CAGxB,CAEb,GAED,kBAAC,OAAD,EAAU,OAAM,CAAA,CACb;MAEL,KAAa,MACb,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,CAA4B,CAAA,GAC5B,kBAAC,GAAD,CAA4B,CAAA,CAC5B,EAAA,CAAA,CAEJ,EAAA,CAAA;AAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IDUReportSubmissionInfo.js","names":[],"sources":["../../../src/components/IDUReport/IDUReportSubmissionInfo.tsx"],"sourcesContent":["import { formatDate } from '@/utils/functions/DateFormatter'\nimport { Skeleton } from '@mui/material'\nimport { SubmissionInfo } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\nimport { SkeletonTable } from '../Skeleton/SkeletonTable'\nimport { UserBadge } from '../UserCard/UserBadge'\n\nexport type SubmissionInfoCardProps = {\n info: SubmissionInfo\n}\n\nexport function SubmissionInfoCard({ info }: SubmissionInfoCardProps) {\n return (\n <>\n {info && (\n <div className=\"SubmissionInfoCard\">\n <strong> Project Lead: </strong> <span>{info.projectLead}</span>{' '}\n <br />\n <strong> Institution: </strong> <span>{info.institution}</span> <br />\n <strong> Data Access Request Submitted By: </strong>{' '}\n <UserBadge userId={info.submittedBy} /> <br />\n <strong>\n {' '}\n Intended Data Use Statement (accepted on{' '}\n {formatDate(dayjs(info.modifiedOn), 'M/D/YYYY')}):\n </strong>\n <MarkdownSynapse markdown={info.intendedDataUseStatement} />\n {info.accessorChanges &&\n info.accessorChanges.map(accessorChange => (\n <div key={`${accessorChange.userId}-${accessorChange.type}`}>\n <UserBadge userId={accessorChange.userId} />{' '}\n {accessorChange.type}\n </div>\n ))}\n </div>\n )}\n </>\n )\n}\n\nexport function LoadingSubmissionInfoCard() {\n return (\n <div className=\"SubmissionInfoCard\">\n <SkeletonTable numCols={1} numRows={4} />\n <Skeleton variant=\"rectangular\" width={'100%'} height={80} />\n </div>\n )\n}\n"],"mappings":";;;;;;;;AAYA,SAAgB,EAAmB,EAAE,WAAiC;
|
|
1
|
+
{"version":3,"file":"IDUReportSubmissionInfo.js","names":[],"sources":["../../../src/components/IDUReport/IDUReportSubmissionInfo.tsx"],"sourcesContent":["import { formatDate } from '@/utils/functions/DateFormatter'\nimport { Skeleton } from '@mui/material'\nimport { SubmissionInfo } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\nimport { SkeletonTable } from '../Skeleton/SkeletonTable'\nimport { UserBadge } from '../UserCard/UserBadge'\n\nexport type SubmissionInfoCardProps = {\n info: SubmissionInfo\n}\n\nexport function SubmissionInfoCard({ info }: SubmissionInfoCardProps) {\n return (\n <>\n {info && (\n <div className=\"SubmissionInfoCard\">\n <strong> Project Lead: </strong> <span>{info.projectLead}</span>{' '}\n <br />\n <strong> Institution: </strong> <span>{info.institution}</span> <br />\n <strong> Data Access Request Submitted By: </strong>{' '}\n <UserBadge userId={info.submittedBy} /> <br />\n <strong>\n {' '}\n Intended Data Use Statement (accepted on{' '}\n {formatDate(dayjs(info.modifiedOn), 'M/D/YYYY')}):\n </strong>\n <MarkdownSynapse markdown={info.intendedDataUseStatement} />\n {info.accessorChanges &&\n info.accessorChanges.map(accessorChange => (\n <div key={`${accessorChange.userId}-${accessorChange.type}`}>\n <UserBadge userId={accessorChange.userId} />{' '}\n {accessorChange.type}\n </div>\n ))}\n </div>\n )}\n </>\n )\n}\n\nexport function LoadingSubmissionInfoCard() {\n return (\n <div className=\"SubmissionInfoCard\">\n <SkeletonTable numCols={1} numRows={4} />\n <Skeleton variant=\"rectangular\" width={'100%'} height={80} />\n </div>\n )\n}\n"],"mappings":";;;;;;;;AAYA,SAAgB,EAAmB,EAAE,WAAiC;CACpE,OACE,kBAAA,GAAA,EAAA,UACG,KACC,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,UAAD,EAAA,UAAQ,kBAAuB,CAAA;GAAC;GAAC,kBAAC,QAAD,EAAA,UAAO,EAAK,YAAkB,CAAA;GAAE;GACjE,kBAAC,MAAD,CAAK,CAAA;GACL,kBAAC,UAAD,EAAA,UAAQ,iBAAsB,CAAA;GAAC;GAAC,kBAAC,QAAD,EAAA,UAAO,EAAK,YAAkB,CAAA;GAAC;GAAC,kBAAC,MAAD,CAAK,CAAA;GACrE,kBAAC,UAAD,EAAA,UAAQ,sCAA2C,CAAA;GAAE;GACrD,kBAAC,GAAD,EAAW,QAAQ,EAAK,YAAc,CAAA;GAAC;GAAC,kBAAC,MAAD,CAAK,CAAA;GAC7C,kBAAC,UAAD,EAAA,UAAA;IACG;IAAI;IACwC;IAC5C,EAAW,EAAM,EAAK,UAAU,GAAG,UAAU;IAAE;GAC1C,EAAA,CAAA;GACR,kBAAC,GAAD,EAAiB,UAAU,EAAK,yBAA2B,CAAA;GAC1D,EAAK,mBACJ,EAAK,gBAAgB,KAAI,MACvB,kBAAC,OAAD,EAAA,UAAA;IACE,kBAAC,GAAD,EAAW,QAAQ,EAAe,OAAS,CAAA;IAAE;IAC5C,EAAe;GACb,EAAA,GAHK,GAAG,EAAe,OAAO,GAAG,EAAe,MAGhD,CACN;EACA;IAEP,CAAA;AAEN;AAEA,SAAgB,IAA4B;CAC1C,OACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,GAAD;GAAe,SAAS;GAAG,SAAS;EAAI,CAAA,GACxC,kBAAC,GAAD;GAAU,SAAQ;GAAc,OAAO;GAAQ,QAAQ;EAAK,CAAA,CACzD;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.js","names":[],"sources":["../../../src/components/Icon/Icon.tsx"],"sourcesContent":["import { ReactComponent as chart2Svg } from '@/assets/icons/chart2.svg'\nimport { ReactComponent as Data2Svg } from '@/assets/icons/Data2.svg'\nimport { ReactComponent as DNA_TwoSvg } from '@/assets/icons/DNA_Two.svg'\nimport { ReactComponent as fileSvg } from '@/assets/icons/file.svg'\nimport { ReactComponent as institutionSvg } from '@/assets/icons/institution.svg'\nimport { ReactComponent as mouseSvg } from '@/assets/icons/mouse.svg'\nimport { ReactComponent as organizationsSvg } from '@/assets/icons/organizations.svg'\nimport { ReactComponent as personSvg } from '@/assets/icons/person.svg'\nimport { ReactComponent as studyActiveSvg } from '@/assets/icons/study-active.svg'\nimport { ReactComponent as studyCompleteSvg } from '@/assets/icons/study-complete.svg'\nimport { ReactComponent as translationalSvg } from '@/assets/icons/translational.svg'\nimport { ReactComponent as treeHorizontalSvg } from '@/assets/icons/tree_horizontal.svg'\nimport { ReactComponent as standardDataModelSvg } from '@/assets/icons/standardDataModel.svg'\nimport { ReactComponent as Challenge } from '@/assets/icons/Challenge.svg'\nimport {\n Chart,\n Close,\n Collapse,\n Columns,\n ColumnsDark,\n Database,\n Download,\n Expand,\n Explore,\n ExternalLink,\n Filter,\n Program,\n Project,\n Publication,\n Search,\n Settings,\n SortDown,\n SortUp,\n SqlEditorIcon,\n Study,\n ToolClinical,\n ToolComputational,\n ToolExperimental,\n VerticalDots,\n} from '@/assets/themed_icons'\nimport {\n CHALLENGE,\n CHART,\n CHART2,\n CLINICAL,\n CLOSE,\n COLLAPSE,\n COLUMNS,\n COLUMNSDARK,\n COMPUTATIONAL,\n COMPUTATIONAL_TOOL,\n CONTRIBUTOR,\n DATABASE,\n DATASET,\n DOWNLOAD,\n DOWNLOAD_PERMISSION_REQUIRED,\n EASY_DIFFICULTY,\n EXPAND,\n EXPERIMENTAL,\n EXPERIMENTAL_TOOL,\n EXPLORE,\n EXTERNAL_RESOURCE,\n EXTERNALLINK,\n FILE,\n FILTER,\n FUNDER,\n GRANT,\n MEDIUM_DIFFICULTY,\n MOUSE,\n ORGANIZATION,\n PERSON,\n PROGRAM,\n PROJECT,\n PUBLICATION,\n SEARCH,\n SETTINGS,\n SORTDOWN,\n SORTUP,\n SQL_EDITOR,\n STANDARD_DATA_MODEL,\n STUDY,\n STUDY_ACTIVE,\n STUDY_COMPLETE,\n TOOL,\n TRANSLATIONAL,\n TREE_HORIZONTAL,\n VARIABLE_DIFFICULTY,\n VERTICAL_DOTS,\n} from '@/utils/SynapseConstants'\nimport { ComponentType } from 'react'\nimport IconSvg from '../IconSvg/IconSvg'\n\nexport type IconOptions = Record<string, string | ComponentType<any>>\n\nexport type IconProps = {\n type: string\n iconOptions?: IconOptions\n value?: string\n isHeader?: boolean\n cssClass?: string\n}\n\nconst iconSvgMapping = {\n clipboard: <IconSvg icon=\"clipboard\" />,\n [DATASET]: <IconSvg icon=\"dataset\" />,\n [EXTERNAL_RESOURCE]: <IconSvg icon=\"link\" />,\n}\n\nconst defaultIcons = {\n [DATABASE]: Database, // this returns svg tag\n [FUNDER]: Data2Svg,\n [TOOL]: DNA_TwoSvg,\n [STUDY_ACTIVE]: studyActiveSvg,\n [STUDY_COMPLETE]: studyCompleteSvg,\n // new icons\n [PUBLICATION]: Publication,\n [STUDY]: Study,\n [EXPERIMENTAL]: ToolExperimental,\n [EXPERIMENTAL_TOOL]: ToolExperimental,\n [COMPUTATIONAL]: ToolComputational,\n [COMPUTATIONAL_TOOL]: ToolComputational,\n [CLINICAL]: ToolClinical,\n [PROGRAM]: Program,\n [PROJECT]: Project,\n [GRANT]: Project,\n [ORGANIZATION]: organizationsSvg,\n [PERSON]: personSvg,\n [MOUSE]: mouseSvg,\n [TRANSLATIONAL]: translationalSvg,\n [EXPLORE]: Explore,\n [SEARCH]: Search,\n [CHART]: Chart,\n [FILTER]: Filter,\n [SQL_EDITOR]: SqlEditorIcon,\n [DOWNLOAD]: Download,\n [EXPAND]: Expand,\n [COLLAPSE]: Collapse,\n [CLOSE]: Close,\n [SORTUP]: SortUp,\n [SORTDOWN]: SortDown,\n [SETTINGS]: Settings,\n [COLUMNS]: Columns,\n [COLUMNSDARK]: ColumnsDark,\n [CHALLENGE]: Challenge,\n [VERTICAL_DOTS]: VerticalDots,\n [CHART2]: chart2Svg,\n [FILE]: fileSvg,\n [EXTERNALLINK]: ExternalLink,\n [CONTRIBUTOR]: institutionSvg,\n [TREE_HORIZONTAL]: treeHorizontalSvg,\n [STANDARD_DATA_MODEL]: standardDataModelSvg,\n [EASY_DIFFICULTY]:\n 'https://s3.amazonaws.com/static.synapse.org/images/easy.svg',\n [MEDIUM_DIFFICULTY]:\n 'https://s3.amazonaws.com/static.synapse.org/images/medium.svg',\n [VARIABLE_DIFFICULTY]:\n 'https://s3.amazonaws.com/static.synapse.org/images/variable.svg',\n [DOWNLOAD_PERMISSION_REQUIRED]:\n 'https://s3.amazonaws.com/static.synapse.org/images/downloadPermissionRequired.svg',\n}\nfunction Icon({ type, value = '', iconOptions, cssClass }: IconProps) {\n const IconSvg = iconSvgMapping[value] || iconSvgMapping[type]\n if (IconSvg) return IconSvg\n\n const iconSet = { ...defaultIcons, ...iconOptions }\n // see if the value has a corresponding icon, e.g. 'Active' in a studies table\n // or if the type of card has a corresponding icon, e.g. 'Publication'\n const IconDefinition = iconSet[value] || iconSet[type]\n const className = `iconImg ${cssClass ?? ''}`\n if (IconDefinition == null) {\n console.warn('Icon type not found:', type)\n return <></>\n }\n if (typeof IconDefinition === 'string') {\n return <img src={IconDefinition} className={className} />\n }\n return (\n <span>\n <IconDefinition className={className} />\n </span>\n )\n}\nexport default Icon\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsGA,IAAM,IAAiB;CACrB,WAAW,kBAAC,GAAD,EAAS,MAAK,
|
|
1
|
+
{"version":3,"file":"Icon.js","names":[],"sources":["../../../src/components/Icon/Icon.tsx"],"sourcesContent":["import { ReactComponent as chart2Svg } from '@/assets/icons/chart2.svg'\nimport { ReactComponent as Data2Svg } from '@/assets/icons/Data2.svg'\nimport { ReactComponent as DNA_TwoSvg } from '@/assets/icons/DNA_Two.svg'\nimport { ReactComponent as fileSvg } from '@/assets/icons/file.svg'\nimport { ReactComponent as institutionSvg } from '@/assets/icons/institution.svg'\nimport { ReactComponent as mouseSvg } from '@/assets/icons/mouse.svg'\nimport { ReactComponent as organizationsSvg } from '@/assets/icons/organizations.svg'\nimport { ReactComponent as personSvg } from '@/assets/icons/person.svg'\nimport { ReactComponent as studyActiveSvg } from '@/assets/icons/study-active.svg'\nimport { ReactComponent as studyCompleteSvg } from '@/assets/icons/study-complete.svg'\nimport { ReactComponent as translationalSvg } from '@/assets/icons/translational.svg'\nimport { ReactComponent as treeHorizontalSvg } from '@/assets/icons/tree_horizontal.svg'\nimport { ReactComponent as standardDataModelSvg } from '@/assets/icons/standardDataModel.svg'\nimport { ReactComponent as Challenge } from '@/assets/icons/Challenge.svg'\nimport {\n Chart,\n Close,\n Collapse,\n Columns,\n ColumnsDark,\n Database,\n Download,\n Expand,\n Explore,\n ExternalLink,\n Filter,\n Program,\n Project,\n Publication,\n Search,\n Settings,\n SortDown,\n SortUp,\n SqlEditorIcon,\n Study,\n ToolClinical,\n ToolComputational,\n ToolExperimental,\n VerticalDots,\n} from '@/assets/themed_icons'\nimport {\n CHALLENGE,\n CHART,\n CHART2,\n CLINICAL,\n CLOSE,\n COLLAPSE,\n COLUMNS,\n COLUMNSDARK,\n COMPUTATIONAL,\n COMPUTATIONAL_TOOL,\n CONTRIBUTOR,\n DATABASE,\n DATASET,\n DOWNLOAD,\n DOWNLOAD_PERMISSION_REQUIRED,\n EASY_DIFFICULTY,\n EXPAND,\n EXPERIMENTAL,\n EXPERIMENTAL_TOOL,\n EXPLORE,\n EXTERNAL_RESOURCE,\n EXTERNALLINK,\n FILE,\n FILTER,\n FUNDER,\n GRANT,\n MEDIUM_DIFFICULTY,\n MOUSE,\n ORGANIZATION,\n PERSON,\n PROGRAM,\n PROJECT,\n PUBLICATION,\n SEARCH,\n SETTINGS,\n SORTDOWN,\n SORTUP,\n SQL_EDITOR,\n STANDARD_DATA_MODEL,\n STUDY,\n STUDY_ACTIVE,\n STUDY_COMPLETE,\n TOOL,\n TRANSLATIONAL,\n TREE_HORIZONTAL,\n VARIABLE_DIFFICULTY,\n VERTICAL_DOTS,\n} from '@/utils/SynapseConstants'\nimport { ComponentType } from 'react'\nimport IconSvg from '../IconSvg/IconSvg'\n\nexport type IconOptions = Record<string, string | ComponentType<any>>\n\nexport type IconProps = {\n type: string\n iconOptions?: IconOptions\n value?: string\n isHeader?: boolean\n cssClass?: string\n}\n\nconst iconSvgMapping = {\n clipboard: <IconSvg icon=\"clipboard\" />,\n [DATASET]: <IconSvg icon=\"dataset\" />,\n [EXTERNAL_RESOURCE]: <IconSvg icon=\"link\" />,\n}\n\nconst defaultIcons = {\n [DATABASE]: Database, // this returns svg tag\n [FUNDER]: Data2Svg,\n [TOOL]: DNA_TwoSvg,\n [STUDY_ACTIVE]: studyActiveSvg,\n [STUDY_COMPLETE]: studyCompleteSvg,\n // new icons\n [PUBLICATION]: Publication,\n [STUDY]: Study,\n [EXPERIMENTAL]: ToolExperimental,\n [EXPERIMENTAL_TOOL]: ToolExperimental,\n [COMPUTATIONAL]: ToolComputational,\n [COMPUTATIONAL_TOOL]: ToolComputational,\n [CLINICAL]: ToolClinical,\n [PROGRAM]: Program,\n [PROJECT]: Project,\n [GRANT]: Project,\n [ORGANIZATION]: organizationsSvg,\n [PERSON]: personSvg,\n [MOUSE]: mouseSvg,\n [TRANSLATIONAL]: translationalSvg,\n [EXPLORE]: Explore,\n [SEARCH]: Search,\n [CHART]: Chart,\n [FILTER]: Filter,\n [SQL_EDITOR]: SqlEditorIcon,\n [DOWNLOAD]: Download,\n [EXPAND]: Expand,\n [COLLAPSE]: Collapse,\n [CLOSE]: Close,\n [SORTUP]: SortUp,\n [SORTDOWN]: SortDown,\n [SETTINGS]: Settings,\n [COLUMNS]: Columns,\n [COLUMNSDARK]: ColumnsDark,\n [CHALLENGE]: Challenge,\n [VERTICAL_DOTS]: VerticalDots,\n [CHART2]: chart2Svg,\n [FILE]: fileSvg,\n [EXTERNALLINK]: ExternalLink,\n [CONTRIBUTOR]: institutionSvg,\n [TREE_HORIZONTAL]: treeHorizontalSvg,\n [STANDARD_DATA_MODEL]: standardDataModelSvg,\n [EASY_DIFFICULTY]:\n 'https://s3.amazonaws.com/static.synapse.org/images/easy.svg',\n [MEDIUM_DIFFICULTY]:\n 'https://s3.amazonaws.com/static.synapse.org/images/medium.svg',\n [VARIABLE_DIFFICULTY]:\n 'https://s3.amazonaws.com/static.synapse.org/images/variable.svg',\n [DOWNLOAD_PERMISSION_REQUIRED]:\n 'https://s3.amazonaws.com/static.synapse.org/images/downloadPermissionRequired.svg',\n}\nfunction Icon({ type, value = '', iconOptions, cssClass }: IconProps) {\n const IconSvg = iconSvgMapping[value] || iconSvgMapping[type]\n if (IconSvg) return IconSvg\n\n const iconSet = { ...defaultIcons, ...iconOptions }\n // see if the value has a corresponding icon, e.g. 'Active' in a studies table\n // or if the type of card has a corresponding icon, e.g. 'Publication'\n const IconDefinition = iconSet[value] || iconSet[type]\n const className = `iconImg ${cssClass ?? ''}`\n if (IconDefinition == null) {\n console.warn('Icon type not found:', type)\n return <></>\n }\n if (typeof IconDefinition === 'string') {\n return <img src={IconDefinition} className={className} />\n }\n return (\n <span>\n <IconDefinition className={className} />\n </span>\n )\n}\nexport default Icon\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsGA,IAAM,IAAiB;CACrB,WAAW,kBAAC,GAAD,EAAS,MAAK,YAAa,CAAA;EACrC,KAAU,kBAAC,GAAD,EAAS,MAAK,UAAW,CAAA;EACnC,IAAoB,kBAAC,GAAD,EAAS,MAAK,OAAQ,CAAA;AAC7C,GAEM,KAAe;EAClB,KAAW;EACX,IAAS;EACT,IAAO;EACP,IAAe;EACf,IAAiB;EAEjB,IAAc;EACd,IAAQ;EACR,IAAe;EACf,IAAoB;EACpB,IAAgB;EAChB,KAAqB;EACrB,IAAW;EACX,IAAU;EACV,IAAU;EACV,IAAQ;EACR,IAAe;EACf,IAAS;EACT,IAAQ;EACR,IAAgB;EAChB,IAAU;EACV,IAAS;EACT,IAAQ;EACR,IAAS;EACT,IAAa;EACb,KAAW;EACX,IAAS;EACT,IAAW;EACX,IAAQ;EACR,IAAS;EACT,IAAW;EACX,IAAW;EACX,IAAU;EACV,IAAc;EACd,IAAY;EACZ,IAAgB;EAChB,IAAS;EACT,IAAO;EACP,IAAe;EACf,KAAc;EACd,IAAkB;EAClB,IAAsB;EACtB,KACC;EACD,IACC;EACD,IACC;EACD,KACC;AACJ;AACA,SAAS,GAAK,EAAE,SAAM,WAAQ,IAAI,gBAAa,eAAuB;CACpE,IAAM,IAAU,EAAe,MAAU,EAAe;CACxD,IAAI,GAAS,OAAO;CAEpB,IAAM,IAAU;EAAE,GAAG;EAAc,GAAG;CAAY,GAG5C,IAAiB,EAAQ,MAAU,EAAQ,IAC3C,IAAY,WAAW,KAAY;CAQzC,OAPI,KAAkB,QACpB,QAAQ,KAAK,wBAAwB,CAAI,GAClC,kBAAA,IAAA,CAAI,CAAA,KAET,OAAO,KAAmB,WACrB,kBAAC,OAAD;EAAK,KAAK;EAA2B;CAAY,CAAA,IAGxD,kBAAC,QAAD,EAAA,UACE,kBAAC,GAAD,EAA2B,aAAY,CAAA,EACnC,CAAA;AAEV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconList.js","names":[],"sources":["../../src/components/IconList.tsx"],"sourcesContent":["import { UniqueFacetIdentifier } from '@/utils'\nimport { merge } from 'lodash-es'\nimport { useCallback, useMemo } from 'react'\nimport IconSvg, { IconSvgProps } from './IconSvg/IconSvg'\nimport { useQueryContext } from './QueryContext'\n\ntype IconConfigs = {\n [index: string]: IconSvgProps // if the icon option has the \"label\" set, it will show tooltip in IconSvg\n}\n\nexport type IconListProps = {\n iconConfigs: IconConfigs\n iconNames: string[]\n commonIconProps?: Omit<IconSvgProps, 'icon'>\n useTheme?: boolean\n useBackground?: boolean\n}\n\nconst defaultCommonIconProps: IconListProps['commonIconProps'] = {\n sx: { fontSize: '24px' },\n}\n\nfunction IconList(props: IconListProps) {\n const {\n iconConfigs,\n iconNames,\n commonIconProps = defaultCommonIconProps,\n useTheme,\n useBackground,\n } = props\n let noMatch: boolean = false\n const css = useTheme ? 'icon-list themed' : 'icon-list'\n const componentCss = useBackground ? `${css} bg-circle` : css\n const queryContext = useQueryContext()\n const { addValueToSelectedFacet } = queryContext\n\n const handleIconClick = useCallback(\n (dataType: 'string') => {\n const facet: UniqueFacetIdentifier = {\n columnName: 'dataType',\n }\n addValueToSelectedFacet(facet, dataType)\n },\n [addValueToSelectedFacet],\n )\n\n const mergedIconConfigs: IconConfigs = useMemo(() => {\n const mergedIconConfigs: IconConfigs = {}\n for (const [key, iconProps] of Object.entries(iconConfigs)) {\n mergedIconConfigs[key] = merge({}, commonIconProps, iconProps)\n }\n return mergedIconConfigs\n }, [iconConfigs, commonIconProps])\n\n const buildIconList = () => {\n const unique = Array.from(new Set(iconNames))\n return unique.map((el: any) => {\n const iconConfig = mergedIconConfigs[el]\n // if this data type value doesn't have a matching icon, we use the \"other\" icon\n if (!iconConfig) {\n noMatch = true\n return\n } else {\n return (\n <IconSvg\n key={el}\n {...iconConfig}\n onClick={() => handleIconClick(el)}\n />\n )\n }\n })\n }\n\n return (\n <span className={componentCss}>\n {buildIconList()}\n {noMatch && mergedIconConfigs['other'] ? (\n <IconSvg {...mergedIconConfigs['other']} />\n ) : (\n <></>\n )}\n </span>\n )\n}\n\nexport default IconList\n"],"mappings":";;;;;;;AAkBA,IAAM,IAA2D,EAC/D,IAAI,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"IconList.js","names":[],"sources":["../../src/components/IconList.tsx"],"sourcesContent":["import { UniqueFacetIdentifier } from '@/utils'\nimport { merge } from 'lodash-es'\nimport { useCallback, useMemo } from 'react'\nimport IconSvg, { IconSvgProps } from './IconSvg/IconSvg'\nimport { useQueryContext } from './QueryContext'\n\ntype IconConfigs = {\n [index: string]: IconSvgProps // if the icon option has the \"label\" set, it will show tooltip in IconSvg\n}\n\nexport type IconListProps = {\n iconConfigs: IconConfigs\n iconNames: string[]\n commonIconProps?: Omit<IconSvgProps, 'icon'>\n useTheme?: boolean\n useBackground?: boolean\n}\n\nconst defaultCommonIconProps: IconListProps['commonIconProps'] = {\n sx: { fontSize: '24px' },\n}\n\nfunction IconList(props: IconListProps) {\n const {\n iconConfigs,\n iconNames,\n commonIconProps = defaultCommonIconProps,\n useTheme,\n useBackground,\n } = props\n let noMatch: boolean = false\n const css = useTheme ? 'icon-list themed' : 'icon-list'\n const componentCss = useBackground ? `${css} bg-circle` : css\n const queryContext = useQueryContext()\n const { addValueToSelectedFacet } = queryContext\n\n const handleIconClick = useCallback(\n (dataType: 'string') => {\n const facet: UniqueFacetIdentifier = {\n columnName: 'dataType',\n }\n addValueToSelectedFacet(facet, dataType)\n },\n [addValueToSelectedFacet],\n )\n\n const mergedIconConfigs: IconConfigs = useMemo(() => {\n const mergedIconConfigs: IconConfigs = {}\n for (const [key, iconProps] of Object.entries(iconConfigs)) {\n mergedIconConfigs[key] = merge({}, commonIconProps, iconProps)\n }\n return mergedIconConfigs\n }, [iconConfigs, commonIconProps])\n\n const buildIconList = () => {\n const unique = Array.from(new Set(iconNames))\n return unique.map((el: any) => {\n const iconConfig = mergedIconConfigs[el]\n // if this data type value doesn't have a matching icon, we use the \"other\" icon\n if (!iconConfig) {\n noMatch = true\n return\n } else {\n return (\n <IconSvg\n key={el}\n {...iconConfig}\n onClick={() => handleIconClick(el)}\n />\n )\n }\n })\n }\n\n return (\n <span className={componentCss}>\n {buildIconList()}\n {noMatch && mergedIconConfigs['other'] ? (\n <IconSvg {...mergedIconConfigs['other']} />\n ) : (\n <></>\n )}\n </span>\n )\n}\n\nexport default IconList\n"],"mappings":";;;;;;;AAkBA,IAAM,IAA2D,EAC/D,IAAI,EAAE,UAAU,OAAO,EACzB;AAEA,SAAS,EAAS,GAAsB;CACtC,IAAM,EACJ,gBACA,cACA,qBAAkB,GAClB,aACA,qBACE,GACA,IAAmB,IACjB,IAAM,IAAW,qBAAqB,aACtC,IAAe,IAAgB,GAAG,EAAI,cAAc,GAEpD,EAAE,+BADa,EACe,GAE9B,IAAkB,GACrB,MAAuB;EAItB,EAAwB,EAFtB,YAAY,WAEU,GAAO,CAAQ;CACzC,GACA,CAAC,CAAuB,CAC1B,GAEM,IAAiC,QAAc;EACnD,IAAM,IAAiC,CAAC;EACxC,KAAK,IAAM,CAAC,GAAK,MAAc,OAAO,QAAQ,CAAW,GACvD,EAAkB,KAAO,EAAM,CAAC,GAAG,GAAiB,CAAS;EAE/D,OAAO;CACT,GAAG,CAAC,GAAa,CAAe,CAAC;CAsBjC,OACE,kBAAC,QAAD;EAAM,WAAW;YAAjB,CApBe,MAAM,KAAK,IAAI,IAAI,CAAS,CACpC,EAAO,KAAK,MAAY;GAC7B,IAAM,IAAa,EAAkB;GAErC,IAAK,GAIH,OACE,kBAAC,GAAD;IAEE,GAAI;IACJ,eAAe,EAAgB,CAAE;GAClC,GAHM,CAGN;GARH,IAAU;EAWd,CAAC,GAME,KAAW,EAAkB,QAC5B,kBAAC,GAAD,EAAS,GAAI,EAAkB,MAAW,CAAA,IAE1C,kBAAA,GAAA,CAAI,CAAA,CAEF;;AAEV"}
|