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":"RecentPublicationsGrid.js","names":[],"sources":["../../../src/components/RecentPublicationsGrid/RecentPublicationsGrid.tsx"],"sourcesContent":["import React from 'react'\nimport useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/index'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport { convertDoiToLink } from '@/utils/functions/RegularExpressions'\nimport {\n BUNDLE_MASK_QUERY_RESULTS,\n BUNDLE_MASK_QUERY_SELECT_COLUMNS,\n} from '@/utils/SynapseConstants'\nimport { Box, Chip, Link as MuiLink, Skeleton, Typography } from '@mui/material'\nimport Grid from '@mui/material/Grid'\nimport { QueryBundleRequest, Row } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport PortalSectionHeader from '../PortalSectionHeader'\n\nexport type RecentPublicationsGridProps = {\n sql: string\n buttonLink?: string\n buttonLinkText?: string\n summaryText?: string\n}\n\ntype PublicationCardProps = {\n pub: Row\n isLoading: boolean\n categoryColIndex: number\n titleColIndex: number\n journalColIndex: number\n publicationDateColIndex: number\n doiColIndex: number\n}\n\nconst PublicationCard = ({\n pub,\n isLoading,\n categoryColIndex: _categoryColIndex, // PORTALS-3426 - category was dropped\n titleColIndex,\n journalColIndex,\n publicationDateColIndex,\n doiColIndex,\n}: PublicationCardProps): React.ReactNode => (\n <Grid\n key={pub.rowId}\n sx={{\n height: { xs: 'auto', sm: 'initial' },\n minWidth: { xs: '280px', lg: 'initial' },\n maxWidth: { xs: '450px', lg: 'initial' },\n }}\n >\n <Box sx={{ height: '100%' }}>\n {isLoading ? (\n <Skeleton variant=\"rectangular\" height={275} width=\"100%\" />\n ) : (\n <div>\n {pub.values[journalColIndex] && (\n <Chip\n label={\n <Typography\n variant={'overline'}\n sx={{ fontSize: '14px', lineHeight: 'initial' }}\n >\n {pub.values[journalColIndex]}\n </Typography>\n }\n sx={{\n borderRadius: '3px',\n height: 'auto',\n padding: '4px 8px',\n '& .MuiChip-label': {\n padding: '0',\n display: 'block',\n whiteSpace: 'normal',\n },\n }}\n />\n )}\n <Typography\n variant=\"headline2\"\n sx={{\n color: 'grey.1000',\n fontSize: '21px',\n padding: '20px 0px',\n }}\n >\n <MuiLink\n href={convertDoiToLink(pub.values[doiColIndex] || '')}\n target=\"_blank\"\n sx={{\n color: 'inherit',\n textDecoration: 'none',\n fontWeight: 'inherit',\n '&:hover': {\n textDecoration: 'none',\n },\n }}\n >\n {pub.values[titleColIndex]}\n </MuiLink>\n </Typography>\n <Box\n sx={{\n display: 'flex',\n gap: '8px',\n flexDirection: 'column',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n color: 'grey.700',\n fontSize: '14px',\n lineHeight: 1.35,\n paddingBottom: { xs: 0, md: '35px' },\n }}\n >\n {pub.values[publicationDateColIndex] &&\n formatDate(\n dayjs(Number(pub.values[publicationDateColIndex])),\n 'MMMM, YYYY',\n )}\n </Typography>\n </Box>\n </div>\n )}\n </Box>\n </Grid>\n)\n\nfunction RecentPublicationsGrid(props: RecentPublicationsGridProps) {\n const { sql, buttonLink, buttonLinkText, summaryText } = props\n\n const entityId = parseEntityIdFromSqlStatement(sql)\n\n const queryBundleRequest: QueryBundleRequest = {\n partMask: BUNDLE_MASK_QUERY_SELECT_COLUMNS | BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n query: {\n sql,\n },\n }\n const { data: queryResultBundle, isLoading } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const dataRows = queryResultBundle?.queryResult!.queryResults.rows ?? []\n\n enum ExpectedColumns {\n CATEGORY = 'Category',\n JOURNAL = 'Journal',\n TITLE = 'Title',\n PUBLICATION_DATE = 'publicationDate',\n DOI = 'DOI',\n }\n\n const categoryColIndex = getFieldIndex(\n ExpectedColumns.CATEGORY,\n queryResultBundle,\n )\n const journalColIndex = getFieldIndex(\n ExpectedColumns.JOURNAL,\n queryResultBundle,\n )\n const titleColIndex = getFieldIndex(ExpectedColumns.TITLE, queryResultBundle)\n const publicationDateColIndex = getFieldIndex(\n ExpectedColumns.PUBLICATION_DATE,\n queryResultBundle,\n )\n const doiColIndex = getFieldIndex(ExpectedColumns.DOI, queryResultBundle)\n\n return (\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: { xs: '1fr', md: '3fr 1fr' },\n height: { xs: 'auto', md: 'initial' },\n gap: { xs: '24px', md: '80px' },\n padding: { xs: '40px', lg: '80px' },\n }}\n >\n <Box\n sx={{\n order: { xs: 1, md: 0 },\n }}\n >\n <Box\n sx={theme => ({\n display: 'grid',\n gap: '32px',\n gridTemplateColumns: {\n xs: '1fr',\n sm: 'repeat(auto-fill, minmax(280px, 1fr))',\n lg: 'repeat(auto-fill, minmax(255px, 1fr))',\n xl: 'repeat(auto-fill, minmax(322px, 1fr))',\n },\n [theme.breakpoints.down('sm')]: {\n '& > :nth-of-type(n+4)': {\n display: 'none',\n },\n },\n })}\n >\n {dataRows.map(pub => (\n <PublicationCard\n pub={pub}\n key={pub.rowId}\n isLoading={isLoading}\n categoryColIndex={categoryColIndex}\n titleColIndex={titleColIndex}\n journalColIndex={journalColIndex}\n publicationDateColIndex={publicationDateColIndex}\n doiColIndex={doiColIndex}\n />\n ))}\n </Box>\n </Box>\n <Box sx={{ paddingBottom: '30px' }}>\n <PortalSectionHeader\n title=\"Recently Published\"\n summaryText={summaryText}\n buttonText={buttonLinkText}\n link={buttonLink}\n reverseButtonAndText\n sx={{\n h2: { fontSize: '24px', paddingTop: '30px', width: '100%' },\n '& p': { fontSize: '16px', lineHeight: '24px' },\n }}\n />\n </Box>\n </Box>\n )\n}\n\nexport default RecentPublicationsGrid\n"],"mappings":";;;;;;;;;;;;;;AAiCA,IAAM,KAAmB,EACvB,QACA,cACA,kBAAkB,GAClB,kBACA,oBACA,4BACA,qBAEA,kBAAC,GAAD;CAEE,IAAI;EACF,QAAQ;GAAE,IAAI;GAAQ,IAAI;
|
|
1
|
+
{"version":3,"file":"RecentPublicationsGrid.js","names":[],"sources":["../../../src/components/RecentPublicationsGrid/RecentPublicationsGrid.tsx"],"sourcesContent":["import React from 'react'\nimport useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/index'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport { convertDoiToLink } from '@/utils/functions/RegularExpressions'\nimport {\n BUNDLE_MASK_QUERY_RESULTS,\n BUNDLE_MASK_QUERY_SELECT_COLUMNS,\n} from '@/utils/SynapseConstants'\nimport { Box, Chip, Link as MuiLink, Skeleton, Typography } from '@mui/material'\nimport Grid from '@mui/material/Grid'\nimport { QueryBundleRequest, Row } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport PortalSectionHeader from '../PortalSectionHeader'\n\nexport type RecentPublicationsGridProps = {\n sql: string\n buttonLink?: string\n buttonLinkText?: string\n summaryText?: string\n}\n\ntype PublicationCardProps = {\n pub: Row\n isLoading: boolean\n categoryColIndex: number\n titleColIndex: number\n journalColIndex: number\n publicationDateColIndex: number\n doiColIndex: number\n}\n\nconst PublicationCard = ({\n pub,\n isLoading,\n categoryColIndex: _categoryColIndex, // PORTALS-3426 - category was dropped\n titleColIndex,\n journalColIndex,\n publicationDateColIndex,\n doiColIndex,\n}: PublicationCardProps): React.ReactNode => (\n <Grid\n key={pub.rowId}\n sx={{\n height: { xs: 'auto', sm: 'initial' },\n minWidth: { xs: '280px', lg: 'initial' },\n maxWidth: { xs: '450px', lg: 'initial' },\n }}\n >\n <Box sx={{ height: '100%' }}>\n {isLoading ? (\n <Skeleton variant=\"rectangular\" height={275} width=\"100%\" />\n ) : (\n <div>\n {pub.values[journalColIndex] && (\n <Chip\n label={\n <Typography\n variant={'overline'}\n sx={{ fontSize: '14px', lineHeight: 'initial' }}\n >\n {pub.values[journalColIndex]}\n </Typography>\n }\n sx={{\n borderRadius: '3px',\n height: 'auto',\n padding: '4px 8px',\n '& .MuiChip-label': {\n padding: '0',\n display: 'block',\n whiteSpace: 'normal',\n },\n }}\n />\n )}\n <Typography\n variant=\"headline2\"\n sx={{\n color: 'grey.1000',\n fontSize: '21px',\n padding: '20px 0px',\n }}\n >\n <MuiLink\n href={convertDoiToLink(pub.values[doiColIndex] || '')}\n target=\"_blank\"\n sx={{\n color: 'inherit',\n textDecoration: 'none',\n fontWeight: 'inherit',\n '&:hover': {\n textDecoration: 'none',\n },\n }}\n >\n {pub.values[titleColIndex]}\n </MuiLink>\n </Typography>\n <Box\n sx={{\n display: 'flex',\n gap: '8px',\n flexDirection: 'column',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n color: 'grey.700',\n fontSize: '14px',\n lineHeight: 1.35,\n paddingBottom: { xs: 0, md: '35px' },\n }}\n >\n {pub.values[publicationDateColIndex] &&\n formatDate(\n dayjs(Number(pub.values[publicationDateColIndex])),\n 'MMMM, YYYY',\n )}\n </Typography>\n </Box>\n </div>\n )}\n </Box>\n </Grid>\n)\n\nfunction RecentPublicationsGrid(props: RecentPublicationsGridProps) {\n const { sql, buttonLink, buttonLinkText, summaryText } = props\n\n const entityId = parseEntityIdFromSqlStatement(sql)\n\n const queryBundleRequest: QueryBundleRequest = {\n partMask: BUNDLE_MASK_QUERY_SELECT_COLUMNS | BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n query: {\n sql,\n },\n }\n const { data: queryResultBundle, isLoading } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const dataRows = queryResultBundle?.queryResult!.queryResults.rows ?? []\n\n enum ExpectedColumns {\n CATEGORY = 'Category',\n JOURNAL = 'Journal',\n TITLE = 'Title',\n PUBLICATION_DATE = 'publicationDate',\n DOI = 'DOI',\n }\n\n const categoryColIndex = getFieldIndex(\n ExpectedColumns.CATEGORY,\n queryResultBundle,\n )\n const journalColIndex = getFieldIndex(\n ExpectedColumns.JOURNAL,\n queryResultBundle,\n )\n const titleColIndex = getFieldIndex(ExpectedColumns.TITLE, queryResultBundle)\n const publicationDateColIndex = getFieldIndex(\n ExpectedColumns.PUBLICATION_DATE,\n queryResultBundle,\n )\n const doiColIndex = getFieldIndex(ExpectedColumns.DOI, queryResultBundle)\n\n return (\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: { xs: '1fr', md: '3fr 1fr' },\n height: { xs: 'auto', md: 'initial' },\n gap: { xs: '24px', md: '80px' },\n padding: { xs: '40px', lg: '80px' },\n }}\n >\n <Box\n sx={{\n order: { xs: 1, md: 0 },\n }}\n >\n <Box\n sx={theme => ({\n display: 'grid',\n gap: '32px',\n gridTemplateColumns: {\n xs: '1fr',\n sm: 'repeat(auto-fill, minmax(280px, 1fr))',\n lg: 'repeat(auto-fill, minmax(255px, 1fr))',\n xl: 'repeat(auto-fill, minmax(322px, 1fr))',\n },\n [theme.breakpoints.down('sm')]: {\n '& > :nth-of-type(n+4)': {\n display: 'none',\n },\n },\n })}\n >\n {dataRows.map(pub => (\n <PublicationCard\n pub={pub}\n key={pub.rowId}\n isLoading={isLoading}\n categoryColIndex={categoryColIndex}\n titleColIndex={titleColIndex}\n journalColIndex={journalColIndex}\n publicationDateColIndex={publicationDateColIndex}\n doiColIndex={doiColIndex}\n />\n ))}\n </Box>\n </Box>\n <Box sx={{ paddingBottom: '30px' }}>\n <PortalSectionHeader\n title=\"Recently Published\"\n summaryText={summaryText}\n buttonText={buttonLinkText}\n link={buttonLink}\n reverseButtonAndText\n sx={{\n h2: { fontSize: '24px', paddingTop: '30px', width: '100%' },\n '& p': { fontSize: '16px', lineHeight: '24px' },\n }}\n />\n </Box>\n </Box>\n )\n}\n\nexport default RecentPublicationsGrid\n"],"mappings":";;;;;;;;;;;;;;AAiCA,IAAM,KAAmB,EACvB,QACA,cACA,kBAAkB,GAClB,kBACA,oBACA,4BACA,qBAEA,kBAAC,GAAD;CAEE,IAAI;EACF,QAAQ;GAAE,IAAI;GAAQ,IAAI;EAAU;EACpC,UAAU;GAAE,IAAI;GAAS,IAAI;EAAU;EACvC,UAAU;GAAE,IAAI;GAAS,IAAI;EAAU;CACzC;WAEA,kBAAC,GAAD;EAAK,IAAI,EAAE,QAAQ,OAAO;YACvB,IACC,kBAAC,GAAD;GAAU,SAAQ;GAAc,QAAQ;GAAK,OAAM;EAAQ,CAAA,IAE3D,kBAAC,OAAD,EAAA,UAAA;GACG,EAAI,OAAO,MACV,kBAAC,GAAD;IACE,OACE,kBAAC,GAAD;KACE,SAAS;KACT,IAAI;MAAE,UAAU;MAAQ,YAAY;KAAU;eAE7C,EAAI,OAAO;IACF,CAAA;IAEd,IAAI;KACF,cAAc;KACd,QAAQ;KACR,SAAS;KACT,oBAAoB;MAClB,SAAS;MACT,SAAS;MACT,YAAY;KACd;IACF;GACD,CAAA;GAEH,kBAAC,GAAD;IACE,SAAQ;IACR,IAAI;KACF,OAAO;KACP,UAAU;KACV,SAAS;IACX;cAEA,kBAAC,GAAD;KACE,MAAM,EAAiB,EAAI,OAAO,MAAgB,EAAE;KACpD,QAAO;KACP,IAAI;MACF,OAAO;MACP,gBAAgB;MAChB,YAAY;MACZ,WAAW,EACT,gBAAgB,OAClB;KACF;eAEC,EAAI,OAAO;IACL,CAAA;GACC,CAAA;GACZ,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,KAAK;KACL,eAAe;IACjB;cAEA,kBAAC,GAAD;KACE,SAAQ;KACR,IAAI;MACF,OAAO;MACP,UAAU;MACV,YAAY;MACZ,eAAe;OAAE,IAAI;OAAG,IAAI;MAAO;KACrC;eAEC,EAAI,OAAO,MACV,EACE,EAAM,OAAO,EAAI,OAAO,EAAwB,CAAC,GACjD,YACF;IACQ,CAAA;GACT,CAAA;EACF,EAAA,CAAA;CAEJ,CAAA;AACD,GAnFC,EAAI,KAmFL;AAGR,SAAS,EAAuB,GAAoC;CAClE,IAAM,EAAE,QAAK,eAAY,mBAAgB,mBAAgB,GAYnD,EAAE,MAAM,GAAmB,iBAC/B,EAAwB;EARxB,UAAA;EACA,cAAc;EACd,UALe,EAA8B,CAK7C;EACA,OAAO,EACL,OACF;CAGwB,CAAkB,GAEtC,IAAW,GAAmB,YAAa,aAAa,QAAQ,CAAC,GAUjE,IAAmB,EAAA,YAEvB,CACF,GACM,IAAkB,EAAA,WAEtB,CACF,GACM,IAAgB,EAAA,SAAqC,CAAiB,GACtE,IAA0B,EAAA,mBAE9B,CACF,GACM,IAAc,EAAA,OAAmC,CAAiB;CAExE,OACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,qBAAqB;IAAE,IAAI;IAAO,IAAI;GAAU;GAChD,QAAQ;IAAE,IAAI;IAAQ,IAAI;GAAU;GACpC,KAAK;IAAE,IAAI;IAAQ,IAAI;GAAO;GAC9B,SAAS;IAAE,IAAI;IAAQ,IAAI;GAAO;EACpC;YAPF,CASE,kBAAC,GAAD;GACE,IAAI,EACF,OAAO;IAAE,IAAI;IAAG,IAAI;GAAE,EACxB;aAEA,kBAAC,GAAD;IACE,KAAI,OAAU;KACZ,SAAS;KACT,KAAK;KACL,qBAAqB;MACnB,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;KACN;MACC,EAAM,YAAY,KAAK,IAAI,IAAI,EAC9B,yBAAyB,EACvB,SAAS,OACX,EACF;IACF;cAEC,EAAS,KAAI,MACZ,kBAAC,GAAD;KACO;KAEM;KACO;KACH;KACE;KACQ;KACZ;IACd,GAPM,EAAI,KAOV,CACF;GACE,CAAA;EACF,CAAA,GACL,kBAAC,GAAD;GAAK,IAAI,EAAE,eAAe,OAAO;aAC/B,kBAAC,GAAD;IACE,OAAM;IACO;IACb,YAAY;IACZ,MAAM;IACN,sBAAA;IACA,IAAI;KACF,IAAI;MAAE,UAAU;MAAQ,YAAY;MAAQ,OAAO;KAAO;KAC1D,OAAO;MAAE,UAAU;MAAQ,YAAY;KAAO;IAChD;GACD,CAAA;EACE,CAAA,CACF;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegisterPageLogoutPrompt.js","names":[],"sources":["../../../src/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.tsx"],"sourcesContent":["import SageFullLogo from '@/assets/icons/SageFullLogo'\nimport { Button, Paper, Typography } from '@mui/material'\nimport { ReactNode } from 'react'\nimport { useApplicationSessionContext } from '@/utils'\n\nexport type RegisterPageLogoutPromptProps = {\n logo?: ReactNode\n}\n\nexport default function RegisterPageLogoutPrompt(\n props: RegisterPageLogoutPromptProps,\n) {\n const { logo = <SageFullLogo width={'100%'} /> } = props\n\n const { clearSession } = useApplicationSessionContext()\n\n return (\n <Paper\n sx={{\n width: '450px',\n px: 8,\n py: 6,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n }}\n >\n {logo}\n <Typography\n variant={'headline3'}\n sx={{\n my: 1,\n }}\n >\n Already Logged In\n </Typography>\n <Typography\n variant={'smallText1'}\n sx={{\n my: 1,\n }}\n >\n To register an account, please log out first\n </Typography>\n <Button\n variant={'contained'}\n size={'large'}\n fullWidth\n sx={{ p: 1.5, mt: 5, fontSize: '16px' }}\n onClick={() => {\n clearSession()\n }}\n >\n Log Out\n </Button>\n </Paper>\n )\n}\n"],"mappings":";;;;;;AASA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,UAAO,kBAAC,GAAD,EAAc,OAAO,
|
|
1
|
+
{"version":3,"file":"RegisterPageLogoutPrompt.js","names":[],"sources":["../../../src/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.tsx"],"sourcesContent":["import SageFullLogo from '@/assets/icons/SageFullLogo'\nimport { Button, Paper, Typography } from '@mui/material'\nimport { ReactNode } from 'react'\nimport { useApplicationSessionContext } from '@/utils'\n\nexport type RegisterPageLogoutPromptProps = {\n logo?: ReactNode\n}\n\nexport default function RegisterPageLogoutPrompt(\n props: RegisterPageLogoutPromptProps,\n) {\n const { logo = <SageFullLogo width={'100%'} /> } = props\n\n const { clearSession } = useApplicationSessionContext()\n\n return (\n <Paper\n sx={{\n width: '450px',\n px: 8,\n py: 6,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n }}\n >\n {logo}\n <Typography\n variant={'headline3'}\n sx={{\n my: 1,\n }}\n >\n Already Logged In\n </Typography>\n <Typography\n variant={'smallText1'}\n sx={{\n my: 1,\n }}\n >\n To register an account, please log out first\n </Typography>\n <Button\n variant={'contained'}\n size={'large'}\n fullWidth\n sx={{ p: 1.5, mt: 5, fontSize: '16px' }}\n onClick={() => {\n clearSession()\n }}\n >\n Log Out\n </Button>\n </Paper>\n )\n}\n"],"mappings":";;;;;;AASA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,UAAO,kBAAC,GAAD,EAAc,OAAO,OAAS,CAAA,MAAM,GAE7C,EAAE,oBAAiB,EAA6B;CAEtD,OACE,kBAAC,GAAD;EACE,IAAI;GACF,OAAO;GACP,IAAI;GACJ,IAAI;GACJ,SAAS;GACT,eAAe;GACf,YAAY;EACd;YARF;GAUG;GACD,kBAAC,GAAD;IACE,SAAS;IACT,IAAI,EACF,IAAI,EACN;cACD;GAEW,CAAA;GACZ,kBAAC,GAAD;IACE,SAAS;IACT,IAAI,EACF,IAAI,EACN;cACD;GAEW,CAAA;GACZ,kBAAC,GAAD;IACE,SAAS;IACT,MAAM;IACN,WAAA;IACA,IAAI;KAAE,GAAG;KAAK,IAAI;KAAG,UAAU;IAAO;IACtC,eAAe;KACb,EAAa;IACf;cACD;GAEO,CAAA;EACH;;AAEX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleaseCard.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCard.tsx"],"sourcesContent":["import { ReleaseCardLarge } from './ReleaseCardLarge'\nimport { ReleaseCardMedium } from './ReleaseCardMedium'\nimport { ReleaseCardConfig } from './ReleaseCardTypes'\n\n/**\n * Column index values into the row values given provided in \"data\"\n * Used to define release metadata (entity id, name, date)\n * as well as statistics and button to explore data\n */\nexport type ReleaseCardSchema = Record<string, number>\n\nexport type ReleaseCardProps = {\n schema: ReleaseCardSchema\n data: (string | null)[]\n includePortalCardClass?: boolean\n releaseCardConfig: ReleaseCardConfig\n}\n\n/**\n * Specialized Release Card, initially implemented for the GENIE portal.\n * Expects columns used to define release metadata (entity id, name, date)\n * as well as statistics columns and columns for defining a button to explore data\n * as defined in the releaseCardConfig\n */\nexport function ReleaseCard(props: ReleaseCardProps) {\n const { releaseCardConfig, ...rest } = props\n switch (releaseCardConfig.cardSize) {\n case 'large':\n return (\n <ReleaseCardLarge releaseCardConfig={releaseCardConfig} {...rest} />\n )\n case 'medium':\n return (\n <ReleaseCardMedium releaseCardConfig={releaseCardConfig} {...rest} />\n )\n default:\n console.error('No size specified for ReleaseCard')\n return <div />\n }\n}\n"],"mappings":";;;;AAwBA,SAAgB,EAAY,GAAyB;CACnD,IAAM,EAAE,sBAAmB,GAAG,MAAS;
|
|
1
|
+
{"version":3,"file":"ReleaseCard.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCard.tsx"],"sourcesContent":["import { ReleaseCardLarge } from './ReleaseCardLarge'\nimport { ReleaseCardMedium } from './ReleaseCardMedium'\nimport { ReleaseCardConfig } from './ReleaseCardTypes'\n\n/**\n * Column index values into the row values given provided in \"data\"\n * Used to define release metadata (entity id, name, date)\n * as well as statistics and button to explore data\n */\nexport type ReleaseCardSchema = Record<string, number>\n\nexport type ReleaseCardProps = {\n schema: ReleaseCardSchema\n data: (string | null)[]\n includePortalCardClass?: boolean\n releaseCardConfig: ReleaseCardConfig\n}\n\n/**\n * Specialized Release Card, initially implemented for the GENIE portal.\n * Expects columns used to define release metadata (entity id, name, date)\n * as well as statistics columns and columns for defining a button to explore data\n * as defined in the releaseCardConfig\n */\nexport function ReleaseCard(props: ReleaseCardProps) {\n const { releaseCardConfig, ...rest } = props\n switch (releaseCardConfig.cardSize) {\n case 'large':\n return (\n <ReleaseCardLarge releaseCardConfig={releaseCardConfig} {...rest} />\n )\n case 'medium':\n return (\n <ReleaseCardMedium releaseCardConfig={releaseCardConfig} {...rest} />\n )\n default:\n console.error('No size specified for ReleaseCard')\n return <div />\n }\n}\n"],"mappings":";;;;AAwBA,SAAgB,EAAY,GAAyB;CACnD,IAAM,EAAE,sBAAmB,GAAG,MAAS;CACvC,QAAQ,EAAkB,UAA1B;EACE,KAAK,SACH,OACE,kBAAC,GAAD;GAAqC;GAAmB,GAAI;EAAO,CAAA;EAEvE,KAAK,UACH,OACE,kBAAC,GAAD;GAAsC;GAAmB,GAAI;EAAO,CAAA;EAExE,SAEE,OADA,QAAQ,MAAM,mCAAmC,GAC1C,kBAAC,OAAD,CAAM,CAAA;CACjB;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleaseCardLarge.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardLarge.tsx"],"sourcesContent":["import { CalendarTodayTwoTone } from '@mui/icons-material'\nimport { Box, Button, Divider, Stack, Typography } from '@mui/material'\nimport { Fragment, useEffect, useState } from 'react'\nimport { Link as ReactRouterLink } from 'react-router'\nimport { ReleaseCardProps } from './ReleaseCard'\nimport { ReleaseCardLargeConfig, ReleaseCardStat } from './ReleaseCardTypes'\nimport {\n formatExplorePagePathAndQueryString,\n formatReleaseCardData,\n} from './ReleaseCardUtils'\n\nfunction StatFlex({ value, label }: ReleaseCardStat) {\n return (\n <Stack\n direction=\"column\"\n sx={{\n alignItems: 'center',\n padding: { xs: '20px 10px', md: '20px 40px' },\n gap: '10px',\n // ensure that stats are aligned when multiple cards are stacked vertically\n width: { xs: 'unset', lg: '200px' },\n }}\n >\n <Typography variant=\"headline1\">{value}</Typography>\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n color: 'grey.700',\n }}\n >\n {label}\n </Typography>\n </Stack>\n )\n}\n\nexport type ReleaseCardLargeProps = Omit<\n ReleaseCardProps,\n 'releaseCardConfig'\n> & { releaseCardConfig: ReleaseCardLargeConfig }\n\nexport function ReleaseCardLarge({\n data,\n schema,\n includePortalCardClass = true,\n releaseCardConfig,\n}: ReleaseCardLargeProps) {\n const { releaseName, releaseDate, stats } = formatReleaseCardData(\n schema,\n data,\n releaseCardConfig.releaseMetadataConfig,\n releaseCardConfig.statsConfig,\n )\n const { primaryBtnConfig, secondaryBtnConfig } = releaseCardConfig\n\n const [primaryBtnPathAndQuery, setPrimaryBtnPathAndQuery] = useState<\n string | null\n >(null)\n const [secondaryBtnPathAndQuery, setSecondaryBtnPathAndQuery] = useState<\n string | null\n >(null)\n\n useEffect(() => {\n formatExplorePagePathAndQueryString(schema, data, primaryBtnConfig).then(\n setPrimaryBtnPathAndQuery,\n )\n\n formatExplorePagePathAndQueryString(schema, data, secondaryBtnConfig).then(\n setSecondaryBtnPathAndQuery,\n )\n }, [schema, data, primaryBtnConfig, secondaryBtnConfig])\n\n if (releaseName === null) return <></>\n\n return (\n <Box\n className={`ReleaseCard ${\n includePortalCardClass ? 'SRC-portalCard' : ''\n }`}\n sx={{\n minWidth: '200px',\n }}\n >\n <Stack\n direction={{ xs: 'column', lg: 'row' }}\n sx={{\n justifyContent: 'space-between',\n gap: '20px',\n padding: '20px',\n }}\n >\n <Stack\n direction=\"column\"\n sx={{\n gap: '20px',\n }}\n >\n <Stack\n direction=\"row\"\n sx={{\n alignItems: 'center',\n gap: '10px',\n }}\n >\n <CalendarTodayTwoTone sx={{ color: 'grey.700' }} />\n <Typography variant=\"headline1\">\n {releaseCardConfig.prependRelease && 'Release '}\n {releaseName}\n </Typography>\n </Stack>\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n sx={{\n alignItems: { xs: 'flex-start', sm: 'center' },\n gap: '20px',\n }}\n >\n {primaryBtnConfig && primaryBtnPathAndQuery && (\n <Button\n component={ReactRouterLink}\n variant=\"contained\"\n color=\"primary\"\n to={primaryBtnPathAndQuery}\n >\n {primaryBtnConfig.label}\n </Button>\n )}\n {secondaryBtnConfig && secondaryBtnPathAndQuery && (\n <Button component={ReactRouterLink} to={secondaryBtnPathAndQuery}>\n {secondaryBtnConfig.label}\n </Button>\n )}\n </Stack>\n </Stack>\n <Divider /> {/* divides stacks when page is narrow */}\n <Stack\n direction=\"row\"\n sx={{\n gap: { xs: 0, lg: '10px' },\n alignItems: 'center',\n justifyContent: { xs: 'space-evenly', lg: 'unset' },\n flexWrap: { xs: 'wrap', lg: 'nowrap' },\n }}\n >\n <StatFlex {...releaseDate} />\n {stats.map(stat => {\n return (\n <Fragment key={stat.label}>\n <Divider orientation=\"vertical\" flexItem />\n <StatFlex {...stat} />\n </Fragment>\n )\n })}\n </Stack>\n </Stack>\n </Box>\n )\n}\n"],"mappings":";;;;;;;AAWA,SAAS,EAAS,EAAE,UAAO,YAA0B;
|
|
1
|
+
{"version":3,"file":"ReleaseCardLarge.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardLarge.tsx"],"sourcesContent":["import { CalendarTodayTwoTone } from '@mui/icons-material'\nimport { Box, Button, Divider, Stack, Typography } from '@mui/material'\nimport { Fragment, useEffect, useState } from 'react'\nimport { Link as ReactRouterLink } from 'react-router'\nimport { ReleaseCardProps } from './ReleaseCard'\nimport { ReleaseCardLargeConfig, ReleaseCardStat } from './ReleaseCardTypes'\nimport {\n formatExplorePagePathAndQueryString,\n formatReleaseCardData,\n} from './ReleaseCardUtils'\n\nfunction StatFlex({ value, label }: ReleaseCardStat) {\n return (\n <Stack\n direction=\"column\"\n sx={{\n alignItems: 'center',\n padding: { xs: '20px 10px', md: '20px 40px' },\n gap: '10px',\n // ensure that stats are aligned when multiple cards are stacked vertically\n width: { xs: 'unset', lg: '200px' },\n }}\n >\n <Typography variant=\"headline1\">{value}</Typography>\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n color: 'grey.700',\n }}\n >\n {label}\n </Typography>\n </Stack>\n )\n}\n\nexport type ReleaseCardLargeProps = Omit<\n ReleaseCardProps,\n 'releaseCardConfig'\n> & { releaseCardConfig: ReleaseCardLargeConfig }\n\nexport function ReleaseCardLarge({\n data,\n schema,\n includePortalCardClass = true,\n releaseCardConfig,\n}: ReleaseCardLargeProps) {\n const { releaseName, releaseDate, stats } = formatReleaseCardData(\n schema,\n data,\n releaseCardConfig.releaseMetadataConfig,\n releaseCardConfig.statsConfig,\n )\n const { primaryBtnConfig, secondaryBtnConfig } = releaseCardConfig\n\n const [primaryBtnPathAndQuery, setPrimaryBtnPathAndQuery] = useState<\n string | null\n >(null)\n const [secondaryBtnPathAndQuery, setSecondaryBtnPathAndQuery] = useState<\n string | null\n >(null)\n\n useEffect(() => {\n formatExplorePagePathAndQueryString(schema, data, primaryBtnConfig).then(\n setPrimaryBtnPathAndQuery,\n )\n\n formatExplorePagePathAndQueryString(schema, data, secondaryBtnConfig).then(\n setSecondaryBtnPathAndQuery,\n )\n }, [schema, data, primaryBtnConfig, secondaryBtnConfig])\n\n if (releaseName === null) return <></>\n\n return (\n <Box\n className={`ReleaseCard ${\n includePortalCardClass ? 'SRC-portalCard' : ''\n }`}\n sx={{\n minWidth: '200px',\n }}\n >\n <Stack\n direction={{ xs: 'column', lg: 'row' }}\n sx={{\n justifyContent: 'space-between',\n gap: '20px',\n padding: '20px',\n }}\n >\n <Stack\n direction=\"column\"\n sx={{\n gap: '20px',\n }}\n >\n <Stack\n direction=\"row\"\n sx={{\n alignItems: 'center',\n gap: '10px',\n }}\n >\n <CalendarTodayTwoTone sx={{ color: 'grey.700' }} />\n <Typography variant=\"headline1\">\n {releaseCardConfig.prependRelease && 'Release '}\n {releaseName}\n </Typography>\n </Stack>\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n sx={{\n alignItems: { xs: 'flex-start', sm: 'center' },\n gap: '20px',\n }}\n >\n {primaryBtnConfig && primaryBtnPathAndQuery && (\n <Button\n component={ReactRouterLink}\n variant=\"contained\"\n color=\"primary\"\n to={primaryBtnPathAndQuery}\n >\n {primaryBtnConfig.label}\n </Button>\n )}\n {secondaryBtnConfig && secondaryBtnPathAndQuery && (\n <Button component={ReactRouterLink} to={secondaryBtnPathAndQuery}>\n {secondaryBtnConfig.label}\n </Button>\n )}\n </Stack>\n </Stack>\n <Divider /> {/* divides stacks when page is narrow */}\n <Stack\n direction=\"row\"\n sx={{\n gap: { xs: 0, lg: '10px' },\n alignItems: 'center',\n justifyContent: { xs: 'space-evenly', lg: 'unset' },\n flexWrap: { xs: 'wrap', lg: 'nowrap' },\n }}\n >\n <StatFlex {...releaseDate} />\n {stats.map(stat => {\n return (\n <Fragment key={stat.label}>\n <Divider orientation=\"vertical\" flexItem />\n <StatFlex {...stat} />\n </Fragment>\n )\n })}\n </Stack>\n </Stack>\n </Box>\n )\n}\n"],"mappings":";;;;;;;AAWA,SAAS,EAAS,EAAE,UAAO,YAA0B;CACnD,OACE,kBAAC,GAAD;EACE,WAAU;EACV,IAAI;GACF,YAAY;GACZ,SAAS;IAAE,IAAI;IAAa,IAAI;GAAY;GAC5C,KAAK;GAEL,OAAO;IAAE,IAAI;IAAS,IAAI;GAAQ;EACpC;YARF,CAUE,kBAAC,GAAD;GAAY,SAAQ;aAAa;EAAkB,CAAA,GACnD,kBAAC,GAAD;GACE,SAAQ;GACR,IAAI;IACF,YAAY;IACZ,OAAO;GACT;aAEC;EACS,CAAA,CACP;;AAEX;AAOA,SAAgB,EAAiB,EAC/B,SACA,WACA,4BAAyB,IACzB,wBACwB;CACxB,IAAM,EAAE,gBAAa,gBAAa,aAAU,EAC1C,GACA,GACA,EAAkB,uBAClB,EAAkB,WACpB,GACM,EAAE,qBAAkB,0BAAuB,GAE3C,CAAC,GAAwB,KAA6B,EAE1D,IAAI,GACA,CAAC,GAA0B,KAA+B,EAE9D,IAAI;CAcN,OAZA,QAAgB;EAKd,AAJA,EAAoC,GAAQ,GAAM,CAAgB,EAAE,KAClE,CACF,GAEA,EAAoC,GAAQ,GAAM,CAAkB,EAAE,KACpE,CACF;CACF,GAAG;EAAC;EAAQ;EAAM;EAAkB;CAAkB,CAAC,GAEnD,MAAgB,OAAa,kBAAA,GAAA,CAAI,CAAA,IAGnC,kBAAC,GAAD;EACE,WAAW,eACT,IAAyB,mBAAmB;EAE9C,IAAI,EACF,UAAU,QACZ;YAEA,kBAAC,GAAD;GACE,WAAW;IAAE,IAAI;IAAU,IAAI;GAAM;GACrC,IAAI;IACF,gBAAgB;IAChB,KAAK;IACL,SAAS;GACX;aANF;IAQE,kBAAC,GAAD;KACE,WAAU;KACV,IAAI,EACF,KAAK,OACP;eAJF,CAME,kBAAC,GAAD;MACE,WAAU;MACV,IAAI;OACF,YAAY;OACZ,KAAK;MACP;gBALF,CAOE,kBAAC,GAAD,EAAsB,IAAI,EAAE,OAAO,WAAW,EAAI,CAAA,GAClD,kBAAC,GAAD;OAAY,SAAQ;iBAApB,CACG,EAAkB,kBAAkB,YACpC,CACS;QACP;SACP,kBAAC,GAAD;MACE,WAAW;OAAE,IAAI;OAAU,IAAI;MAAM;MACrC,IAAI;OACF,YAAY;QAAE,IAAI;QAAc,IAAI;OAAS;OAC7C,KAAK;MACP;gBALF,CAOG,KAAoB,KACnB,kBAAC,GAAD;OACE,WAAW;OACX,SAAQ;OACR,OAAM;OACN,IAAI;iBAEH,EAAiB;MACZ,CAAA,GAET,KAAsB,KACrB,kBAAC,GAAD;OAAQ,WAAW;OAAiB,IAAI;iBACrC,EAAmB;MACd,CAAA,CAEL;OACF;;IACP,kBAAC,GAAD,CAAU,CAAA;IAAC;IACX,kBAAC,GAAD;KACE,WAAU;KACV,IAAI;MACF,KAAK;OAAE,IAAI;OAAG,IAAI;MAAO;MACzB,YAAY;MACZ,gBAAgB;OAAE,IAAI;OAAgB,IAAI;MAAQ;MAClD,UAAU;OAAE,IAAI;OAAQ,IAAI;MAAS;KACvC;eAPF,CASE,kBAAC,GAAD,EAAU,GAAI,EAAc,CAAA,GAC3B,EAAM,KAAI,MAEP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAS,aAAY;MAAW,UAAA;KAAU,CAAA,GAC1C,kBAAC,GAAD,EAAU,GAAI,EAAO,CAAA,CACb,EAAA,GAHK,EAAK,KAGV,CAEb,CACI;;GACF;;CACJ,CAAA;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleaseCardMedium.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardMedium.tsx"],"sourcesContent":["import { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { Box, Button, Link, Typography } from '@mui/material'\nimport { Link as ReactRouterLink } from 'react-router'\nimport { ReleaseCardProps } from './ReleaseCard'\nimport { ReleaseCardMediumConfig, ReleaseCardStat } from './ReleaseCardTypes'\nimport { formatReleaseCardData } from './ReleaseCardUtils'\n\nfunction StatGrid({ value, label }: ReleaseCardStat) {\n return (\n <>\n <Box\n sx={{\n gridColumn: 'span 1',\n gridRow: 'span 1',\n justifySelf: 'flex-end',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n }}\n >\n {value}\n </Typography>\n </Box>\n <Box\n sx={{\n gridColumn: 'span 1',\n gridRow: 'span 1',\n justifySelf: 'flex-start',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n color: 'grey.700',\n }}\n >\n {label}\n </Typography>\n </Box>\n </>\n )\n}\n\nexport type ReleaseCardMediumProps = Omit<\n ReleaseCardProps,\n 'releaseCardConfig'\n> & { releaseCardConfig: ReleaseCardMediumConfig }\n\nexport function ReleaseCardMedium({\n data,\n schema,\n includePortalCardClass = true,\n releaseCardConfig,\n}: ReleaseCardMediumProps) {\n const { releaseName, releaseEntityId, releaseDate, stats } =\n formatReleaseCardData(\n schema,\n data,\n releaseCardConfig.releaseMetadataConfig,\n releaseCardConfig.statsConfig,\n )\n\n if (releaseName === null) return <></>\n\n const nCols = 2\n const SPAN_ALL_COLS = `span ${nCols}`\n const nRows = stats.length + 4\n\n return (\n <Box\n className={`ReleaseCard ${\n includePortalCardClass ? 'SRC-portalCard' : ''\n }`}\n sx={{\n display: 'grid',\n gridTemplateColumns: `repeat(${nCols}, 1fr)`, // columns are controlled by this component, not the parent grid\n columnGap: '10px',\n gridTemplateRows: 'subgrid', // rows are controlled by parent grid, so text will be aligned across cards\n gridRow: `span ${nRows}`, // ensures that card spans the correct number of rows in the parent grid\n rowGap: '0px', // prevent parent grid from applying its gap to the subgrid rows\n alignItems: 'center',\n justifyItems: 'center',\n textAlign: 'center',\n padding: '30px 40px 40px',\n my: 0, // remove margin added by .SRC-portalCard - CardContainer list will set the gap between cards\n }}\n >\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n alignSelf: 'end',\n }}\n >\n <Typography variant=\"headline1\">{releaseName}</Typography>\n </Box>\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n mb: '30px',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n fontStyle: 'italic',\n color: 'grey.800',\n }}\n >{`Released ${releaseDate.value}`}</Typography>\n </Box>\n {stats.map(stat => (\n <StatGrid key={stat.label} {...stat} />\n ))}\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n mt: '20px',\n mb: '5px',\n }}\n >\n <Button\n component={ReactRouterLink}\n to={releaseCardConfig.requestAccessPath}\n sx={{ fontSize: '14px' }}\n >\n Request Access\n </Button>\n </Box>\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n }}\n >\n {releaseEntityId && (\n <Link\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${releaseEntityId}`}\n target=\"_blank\"\n rel=\"noreferrer\"\n sx={{\n fontSize: '14px',\n textDecoration: 'none',\n }}\n >\n View on Synapse.org\n </Link>\n )}\n </Box>\n </Box>\n )\n}\n"],"mappings":";;;;;;AAOA,SAAS,EAAS,EAAE,UAAO,YAA0B;
|
|
1
|
+
{"version":3,"file":"ReleaseCardMedium.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardMedium.tsx"],"sourcesContent":["import { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { Box, Button, Link, Typography } from '@mui/material'\nimport { Link as ReactRouterLink } from 'react-router'\nimport { ReleaseCardProps } from './ReleaseCard'\nimport { ReleaseCardMediumConfig, ReleaseCardStat } from './ReleaseCardTypes'\nimport { formatReleaseCardData } from './ReleaseCardUtils'\n\nfunction StatGrid({ value, label }: ReleaseCardStat) {\n return (\n <>\n <Box\n sx={{\n gridColumn: 'span 1',\n gridRow: 'span 1',\n justifySelf: 'flex-end',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n }}\n >\n {value}\n </Typography>\n </Box>\n <Box\n sx={{\n gridColumn: 'span 1',\n gridRow: 'span 1',\n justifySelf: 'flex-start',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n color: 'grey.700',\n }}\n >\n {label}\n </Typography>\n </Box>\n </>\n )\n}\n\nexport type ReleaseCardMediumProps = Omit<\n ReleaseCardProps,\n 'releaseCardConfig'\n> & { releaseCardConfig: ReleaseCardMediumConfig }\n\nexport function ReleaseCardMedium({\n data,\n schema,\n includePortalCardClass = true,\n releaseCardConfig,\n}: ReleaseCardMediumProps) {\n const { releaseName, releaseEntityId, releaseDate, stats } =\n formatReleaseCardData(\n schema,\n data,\n releaseCardConfig.releaseMetadataConfig,\n releaseCardConfig.statsConfig,\n )\n\n if (releaseName === null) return <></>\n\n const nCols = 2\n const SPAN_ALL_COLS = `span ${nCols}`\n const nRows = stats.length + 4\n\n return (\n <Box\n className={`ReleaseCard ${\n includePortalCardClass ? 'SRC-portalCard' : ''\n }`}\n sx={{\n display: 'grid',\n gridTemplateColumns: `repeat(${nCols}, 1fr)`, // columns are controlled by this component, not the parent grid\n columnGap: '10px',\n gridTemplateRows: 'subgrid', // rows are controlled by parent grid, so text will be aligned across cards\n gridRow: `span ${nRows}`, // ensures that card spans the correct number of rows in the parent grid\n rowGap: '0px', // prevent parent grid from applying its gap to the subgrid rows\n alignItems: 'center',\n justifyItems: 'center',\n textAlign: 'center',\n padding: '30px 40px 40px',\n my: 0, // remove margin added by .SRC-portalCard - CardContainer list will set the gap between cards\n }}\n >\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n alignSelf: 'end',\n }}\n >\n <Typography variant=\"headline1\">{releaseName}</Typography>\n </Box>\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n mb: '30px',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n fontStyle: 'italic',\n color: 'grey.800',\n }}\n >{`Released ${releaseDate.value}`}</Typography>\n </Box>\n {stats.map(stat => (\n <StatGrid key={stat.label} {...stat} />\n ))}\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n mt: '20px',\n mb: '5px',\n }}\n >\n <Button\n component={ReactRouterLink}\n to={releaseCardConfig.requestAccessPath}\n sx={{ fontSize: '14px' }}\n >\n Request Access\n </Button>\n </Box>\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n }}\n >\n {releaseEntityId && (\n <Link\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${releaseEntityId}`}\n target=\"_blank\"\n rel=\"noreferrer\"\n sx={{\n fontSize: '14px',\n textDecoration: 'none',\n }}\n >\n View on Synapse.org\n </Link>\n )}\n </Box>\n </Box>\n )\n}\n"],"mappings":";;;;;;AAOA,SAAS,EAAS,EAAE,UAAO,YAA0B;CACnD,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,IAAI;GACF,YAAY;GACZ,SAAS;GACT,aAAa;EACf;YAEA,kBAAC,GAAD;GACE,SAAQ;GACR,IAAI,EACF,YAAY,OACd;aAEC;EACS,CAAA;CACT,CAAA,GACL,kBAAC,GAAD;EACE,IAAI;GACF,YAAY;GACZ,SAAS;GACT,aAAa;EACf;YAEA,kBAAC,GAAD;GACE,SAAQ;GACR,IAAI;IACF,YAAY;IACZ,OAAO;GACT;aAEC;EACS,CAAA;CACT,CAAA,CACL,EAAA,CAAA;AAEN;AAOA,SAAgB,EAAkB,EAChC,SACA,WACA,4BAAyB,IACzB,wBACyB;CACzB,IAAM,EAAE,gBAAa,oBAAiB,gBAAa,aACjD,EACE,GACA,GACA,EAAkB,uBAClB,EAAkB,WACpB;CAEF,IAAI,MAAgB,MAAM,OAAO,kBAAA,GAAA,CAAI,CAAA;CAErC,IACM,IAAgB,UAChB,IAAQ,EAAM,SAAS;CAE7B,OACE,kBAAC,GAAD;EACE,WAAW,eACT,IAAyB,mBAAmB;EAE9C,IAAI;GACF,SAAS;GACT,qBAAqB;GACrB,WAAW;GACX,kBAAkB;GAClB,SAAS,QAAQ;GACjB,QAAQ;GACR,YAAY;GACZ,cAAc;GACd,WAAW;GACX,SAAS;GACT,IAAI;EACN;YAhBF;GAkBE,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;KACT,WAAW;IACb;cAEA,kBAAC,GAAD;KAAY,SAAQ;eAAa;IAAwB,CAAA;GACtD,CAAA;GACL,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;KACT,IAAI;IACN;cAEA,kBAAC,GAAD;KACE,SAAQ;KACR,IAAI;MACF,YAAY;MACZ,WAAW;MACX,OAAO;KACT;eACA,YAAY,EAAY;IAAoB,CAAA;GAC3C,CAAA;GACJ,EAAM,KAAI,MACT,kBAAC,GAAD,EAA2B,GAAI,EAAO,GAAvB,EAAK,KAAkB,CACvC;GACD,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;KACT,IAAI;KACJ,IAAI;IACN;cAEA,kBAAC,GAAD;KACE,WAAW;KACX,IAAI,EAAkB;KACtB,IAAI,EAAE,UAAU,OAAO;eACxB;IAEO,CAAA;GACL,CAAA;GACL,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;IACX;cAEC,KACC,kBAAC,GAAD;KACE,MAAM,GAAG,EAA2B,OAAO,UAAU;KACrD,QAAO;KACP,KAAI;KACJ,IAAI;MACF,UAAU;MACV,gBAAgB;KAClB;eACD;IAEK,CAAA;GAEL,CAAA;EACF;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleaseCardUtils.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardUtils.ts"],"sourcesContent":["import { formatDate } from '@/utils/functions/DateFormatter'\nimport dayjs from 'dayjs'\nimport { generateEncodedPathAndQueryForSelectedFacetURL } from '../QueryWrapper'\nimport { SelectedFacet } from '../QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL'\nimport { ReleaseCardSchema } from './ReleaseCard'\nimport {\n ButtonToExplorePageConfig,\n ReleaseCardStat,\n ReleaseMetadataConfig,\n SelectedFacetConfig,\n StatConfig,\n} from './ReleaseCardTypes'\n\nconst MISSING_STAT_DEFAULT_VALUE = 'Unknown'\n\nconst formatNumber = (num: number) => {\n if (num < 1_000_000) return num.toLocaleString()\n const numberFormatter = new Intl.NumberFormat([], {\n minimumFractionDigits: 1,\n maximumFractionDigits: 2,\n notation: 'compact',\n localeMatcher: 'best fit',\n })\n return numberFormatter.format(num)\n}\n\nconst getValueFromData = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n columnName: string,\n) => {\n const columnIndex = schema[columnName]\n let columnValue\n if (columnIndex === undefined) {\n console.error(`Could not find column named ${columnName}`)\n columnValue = null\n } else {\n columnValue = data[columnIndex]\n }\n return columnValue\n}\n\nconst formatReleaseStats = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n statsConfig: StatConfig[],\n) => {\n return statsConfig.map(statConfig => {\n const { columnName, label } = statConfig\n const statString = getValueFromData(schema, data, columnName)\n const cardStat: ReleaseCardStat = {\n label: label,\n value: statString\n ? formatNumber(Number(statString))\n : MISSING_STAT_DEFAULT_VALUE,\n }\n return cardStat\n })\n}\n\nconst formatReleaseDate = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n releaseDateColumnName: string,\n) => {\n const releaseDateString = getValueFromData(\n schema,\n data,\n releaseDateColumnName,\n )\n const cardStat: ReleaseCardStat = {\n label: 'Date of release',\n value: releaseDateString\n ? formatDate(dayjs(Number(releaseDateString)), 'MM/DD/YYYY')\n : MISSING_STAT_DEFAULT_VALUE,\n }\n return cardStat\n}\n\nexport const formatReleaseCardData = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n releaseMetdataConfig: ReleaseMetadataConfig,\n statsConfig: StatConfig[],\n) => {\n return {\n releaseName: getValueFromData(\n schema,\n data,\n releaseMetdataConfig.releaseNameColumnName,\n ),\n releaseEntityId: getValueFromData(\n schema,\n data,\n releaseMetdataConfig.releaseEntityIdColumnName,\n ),\n releaseDate: formatReleaseDate(\n schema,\n data,\n releaseMetdataConfig.releaseDateColumnName,\n ),\n stats: formatReleaseStats(schema, data, statsConfig),\n }\n}\n\nconst getAllSelectedFacets = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n selectedFacetConfigs: SelectedFacetConfig[] | undefined,\n staticSelectedFacets: SelectedFacet[] | undefined,\n): SelectedFacet[] => {\n const allSelectedFacets: SelectedFacet[] = staticSelectedFacets\n ? [...staticSelectedFacets]\n : []\n\n if (selectedFacetConfigs) {\n selectedFacetConfigs.forEach(selectedFacetConfig => {\n const sourceDataFacetValueColumnName =\n selectedFacetConfig.sourceTableColumnName\n const facetValue = sourceDataFacetValueColumnName\n ? getValueFromData(schema, data, sourceDataFacetValueColumnName)\n : null\n if (facetValue) {\n allSelectedFacets.push({\n facet: selectedFacetConfig.destinationTableColumnName,\n facetValue: facetValue,\n })\n }\n })\n }\n\n return allSelectedFacets\n}\n\nexport const formatExplorePagePathAndQueryString = async (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n btnConfig?: ButtonToExplorePageConfig,\n): Promise<string | null> => {\n if (!btnConfig) return null\n const path = getValueFromData(\n schema,\n data,\n btnConfig.sourceTablePathColumnName,\n )\n if (!path) {\n console.warn(\n `Column not found in source table or cell did not have value in source table for ${btnConfig.sourceTablePathColumnName}`,\n )\n return null\n }\n\n const {\n sourceTableSqlColumnName: sourceExploreDataSqlColumnName,\n selectedFacetConfigs,\n staticSelectedFacets,\n } = btnConfig\n\n const exploreDataSql = sourceExploreDataSqlColumnName\n ? getValueFromData(schema, data, sourceExploreDataSqlColumnName)\n : null\n const allSelectedFacets = getAllSelectedFacets(\n schema,\n data,\n selectedFacetConfigs,\n staticSelectedFacets,\n )\n const hasSelectedFacets = exploreDataSql && allSelectedFacets.length > 0\n\n return hasSelectedFacets\n ? await generateEncodedPathAndQueryForSelectedFacetURL(\n path,\n exploreDataSql,\n allSelectedFacets,\n )\n : path\n}\n"],"mappings":";;;;;AAaA,IAAM,IAA6B,WAE7B,KAAgB,MAChB,IAAM,MAAkB,EAAI,
|
|
1
|
+
{"version":3,"file":"ReleaseCardUtils.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardUtils.ts"],"sourcesContent":["import { formatDate } from '@/utils/functions/DateFormatter'\nimport dayjs from 'dayjs'\nimport { generateEncodedPathAndQueryForSelectedFacetURL } from '../QueryWrapper'\nimport { SelectedFacet } from '../QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL'\nimport { ReleaseCardSchema } from './ReleaseCard'\nimport {\n ButtonToExplorePageConfig,\n ReleaseCardStat,\n ReleaseMetadataConfig,\n SelectedFacetConfig,\n StatConfig,\n} from './ReleaseCardTypes'\n\nconst MISSING_STAT_DEFAULT_VALUE = 'Unknown'\n\nconst formatNumber = (num: number) => {\n if (num < 1_000_000) return num.toLocaleString()\n const numberFormatter = new Intl.NumberFormat([], {\n minimumFractionDigits: 1,\n maximumFractionDigits: 2,\n notation: 'compact',\n localeMatcher: 'best fit',\n })\n return numberFormatter.format(num)\n}\n\nconst getValueFromData = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n columnName: string,\n) => {\n const columnIndex = schema[columnName]\n let columnValue\n if (columnIndex === undefined) {\n console.error(`Could not find column named ${columnName}`)\n columnValue = null\n } else {\n columnValue = data[columnIndex]\n }\n return columnValue\n}\n\nconst formatReleaseStats = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n statsConfig: StatConfig[],\n) => {\n return statsConfig.map(statConfig => {\n const { columnName, label } = statConfig\n const statString = getValueFromData(schema, data, columnName)\n const cardStat: ReleaseCardStat = {\n label: label,\n value: statString\n ? formatNumber(Number(statString))\n : MISSING_STAT_DEFAULT_VALUE,\n }\n return cardStat\n })\n}\n\nconst formatReleaseDate = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n releaseDateColumnName: string,\n) => {\n const releaseDateString = getValueFromData(\n schema,\n data,\n releaseDateColumnName,\n )\n const cardStat: ReleaseCardStat = {\n label: 'Date of release',\n value: releaseDateString\n ? formatDate(dayjs(Number(releaseDateString)), 'MM/DD/YYYY')\n : MISSING_STAT_DEFAULT_VALUE,\n }\n return cardStat\n}\n\nexport const formatReleaseCardData = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n releaseMetdataConfig: ReleaseMetadataConfig,\n statsConfig: StatConfig[],\n) => {\n return {\n releaseName: getValueFromData(\n schema,\n data,\n releaseMetdataConfig.releaseNameColumnName,\n ),\n releaseEntityId: getValueFromData(\n schema,\n data,\n releaseMetdataConfig.releaseEntityIdColumnName,\n ),\n releaseDate: formatReleaseDate(\n schema,\n data,\n releaseMetdataConfig.releaseDateColumnName,\n ),\n stats: formatReleaseStats(schema, data, statsConfig),\n }\n}\n\nconst getAllSelectedFacets = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n selectedFacetConfigs: SelectedFacetConfig[] | undefined,\n staticSelectedFacets: SelectedFacet[] | undefined,\n): SelectedFacet[] => {\n const allSelectedFacets: SelectedFacet[] = staticSelectedFacets\n ? [...staticSelectedFacets]\n : []\n\n if (selectedFacetConfigs) {\n selectedFacetConfigs.forEach(selectedFacetConfig => {\n const sourceDataFacetValueColumnName =\n selectedFacetConfig.sourceTableColumnName\n const facetValue = sourceDataFacetValueColumnName\n ? getValueFromData(schema, data, sourceDataFacetValueColumnName)\n : null\n if (facetValue) {\n allSelectedFacets.push({\n facet: selectedFacetConfig.destinationTableColumnName,\n facetValue: facetValue,\n })\n }\n })\n }\n\n return allSelectedFacets\n}\n\nexport const formatExplorePagePathAndQueryString = async (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n btnConfig?: ButtonToExplorePageConfig,\n): Promise<string | null> => {\n if (!btnConfig) return null\n const path = getValueFromData(\n schema,\n data,\n btnConfig.sourceTablePathColumnName,\n )\n if (!path) {\n console.warn(\n `Column not found in source table or cell did not have value in source table for ${btnConfig.sourceTablePathColumnName}`,\n )\n return null\n }\n\n const {\n sourceTableSqlColumnName: sourceExploreDataSqlColumnName,\n selectedFacetConfigs,\n staticSelectedFacets,\n } = btnConfig\n\n const exploreDataSql = sourceExploreDataSqlColumnName\n ? getValueFromData(schema, data, sourceExploreDataSqlColumnName)\n : null\n const allSelectedFacets = getAllSelectedFacets(\n schema,\n data,\n selectedFacetConfigs,\n staticSelectedFacets,\n )\n const hasSelectedFacets = exploreDataSql && allSelectedFacets.length > 0\n\n return hasSelectedFacets\n ? await generateEncodedPathAndQueryForSelectedFacetURL(\n path,\n exploreDataSql,\n allSelectedFacets,\n )\n : path\n}\n"],"mappings":";;;;;AAaA,IAAM,IAA6B,WAE7B,KAAgB,MAChB,IAAM,MAAkB,EAAI,eAAe,IAOxC,IANqB,KAAK,aAAa,CAAC,GAAG;CAChD,uBAAuB;CACvB,uBAAuB;CACvB,UAAU;CACV,eAAe;AACjB,CACO,EAAgB,OAAO,CAAG,GAG7B,KACJ,GACA,GACA,MACG;CACH,IAAM,IAAc,EAAO,IACvB;CAOJ,OANI,MAAgB,KAAA,KAClB,QAAQ,MAAM,+BAA+B,GAAY,GACzD,IAAc,QAEd,IAAc,EAAK,IAEd;AACT,GAEM,KACJ,GACA,GACA,MAEO,EAAY,KAAI,MAAc;CACnC,IAAM,EAAE,eAAY,aAAU,GACxB,IAAa,EAAiB,GAAQ,GAAM,CAAU;CAO5D,OAAO;EALE;EACP,OAAO,IACH,EAAa,OAAO,CAAU,CAAC,IAC/B;CAEC;AACT,CAAC,GAGG,KACJ,GACA,GACA,MACG;CACH,IAAM,IAAoB,EACxB,GACA,GACA,CACF;CAOA,OAAO;EALL,OAAO;EACP,OAAO,IACH,EAAW,EAAM,OAAO,CAAiB,CAAC,GAAG,YAAY,IACzD;CAEC;AACT,GAEa,KACX,GACA,GACA,GACA,OAEO;CACL,aAAa,EACX,GACA,GACA,EAAqB,qBACvB;CACA,iBAAiB,EACf,GACA,GACA,EAAqB,yBACvB;CACA,aAAa,EACX,GACA,GACA,EAAqB,qBACvB;CACA,OAAO,EAAmB,GAAQ,GAAM,CAAW;AACrD,IAGI,KACJ,GACA,GACA,GACA,MACoB;CACpB,IAAM,IAAqC,IACvC,CAAC,GAAG,CAAoB,IACxB,CAAC;CAkBL,OAhBI,KACF,EAAqB,SAAQ,MAAuB;EAClD,IAAM,IACJ,EAAoB,uBAChB,IAAa,IACf,EAAiB,GAAQ,GAAM,CAA8B,IAC7D;EACJ,AAAI,KACF,EAAkB,KAAK;GACrB,OAAO,EAAoB;GACf;EACd,CAAC;CAEL,CAAC,GAGI;AACT,GAEa,IAAsC,OACjD,GACA,GACA,MAC2B;CAC3B,IAAI,CAAC,GAAW,OAAO;CACvB,IAAM,IAAO,EACX,GACA,GACA,EAAU,yBACZ;CACA,IAAI,CAAC,GAIH,OAHA,QAAQ,KACN,mFAAmF,EAAU,2BAC/F,GACO;CAGT,IAAM,EACJ,0BAA0B,GAC1B,yBACA,4BACE,GAEE,IAAiB,IACnB,EAAiB,GAAQ,GAAM,CAA8B,IAC7D,MACE,IAAoB,EACxB,GACA,GACA,GACA,CACF;CAGA,OAF0B,KAAkB,EAAkB,SAAS,IAGnE,MAAM,EACJ,GACA,GACA,CACF,IACA;AACN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderIfInView.js","names":[],"sources":["../../../src/components/RenderIfInView/RenderIfInView.tsx"],"sourcesContent":["import VisibilityObserver from '@/components/utils/VisibilityObserver'\nimport { Component, PropsWithChildren } from 'react'\n\nexport class RenderIfInView extends Component<PropsWithChildren<unknown>> {\n public render() {\n return <VisibilityObserver renderInView={this.getChildren} />\n }\n\n private getChildren = () => {\n return <>{this.props.children}</>\n }\n}\n\nexport default RenderIfInView\n"],"mappings":";;;;AAGA,IAAa,IAAb,cAAoC,EAAsC;CACxE,SAAgB;
|
|
1
|
+
{"version":3,"file":"RenderIfInView.js","names":[],"sources":["../../../src/components/RenderIfInView/RenderIfInView.tsx"],"sourcesContent":["import VisibilityObserver from '@/components/utils/VisibilityObserver'\nimport { Component, PropsWithChildren } from 'react'\n\nexport class RenderIfInView extends Component<PropsWithChildren<unknown>> {\n public render() {\n return <VisibilityObserver renderInView={this.getChildren} />\n }\n\n private getChildren = () => {\n return <>{this.props.children}</>\n }\n}\n\nexport default RenderIfInView\n"],"mappings":";;;;AAGA,IAAa,IAAb,cAAoC,EAAsC;CACxE,SAAgB;EACd,OAAO,kBAAC,GAAD,EAAoB,cAAc,KAAK,YAAc,CAAA;CAC9D;CAEA,oBACS,kBAAA,GAAA,EAAA,UAAG,KAAK,MAAM,SAAW,CAAA;AAEpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResizableContainer.js","names":[],"sources":["../../../src/components/ResizableContainer/ResizableContainer.tsx"],"sourcesContent":["import { Box, SxProps, Theme } from '@mui/material'\nimport { ReactNode } from 'react'\n\nexport interface ResizeHandleProps {\n onMouseDown: (e: React.MouseEvent) => void\n sx?: SxProps<Theme>\n}\n\nexport function ResizeHandle({ onMouseDown, sx }: ResizeHandleProps) {\n return (\n <Box\n onMouseDown={onMouseDown}\n sx={{\n position: 'absolute',\n bottom: 0,\n right: 0,\n width: 20,\n height: 20,\n cursor: 'se-resize',\n // Add a simple diagonal lines to indicate resize handle\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n right: 7,\n bottom: 7,\n width: 5,\n height: 5,\n borderRight: '2px solid #999',\n borderBottom: '2px solid #999',\n },\n ...sx,\n }}\n />\n )\n}\n\nexport interface ResizableContainerProps {\n children: ReactNode\n width: number\n height: number\n onResizeStart: (e: React.MouseEvent) => void\n showResizeHandle?: boolean\n resizeHandleSx?: SxProps<Theme>\n sx?: SxProps<Theme>\n}\n\n/** See DraggableDialog for an example on how to use useResizable with a ResizableContainer */\nexport function ResizableContainer({\n children,\n width,\n height,\n onResizeStart,\n showResizeHandle = true,\n resizeHandleSx,\n sx,\n}: ResizableContainerProps) {\n return (\n <Box\n sx={{\n position: 'relative',\n width: `${width}px`,\n height: `${height}px`,\n ...sx,\n }}\n >\n {children}\n {showResizeHandle && (\n <ResizeHandle onMouseDown={onResizeStart} sx={resizeHandleSx} />\n )}\n </Box>\n )\n}\n"],"mappings":";;;AAQA,SAAgB,EAAa,EAAE,gBAAa,SAAyB;
|
|
1
|
+
{"version":3,"file":"ResizableContainer.js","names":[],"sources":["../../../src/components/ResizableContainer/ResizableContainer.tsx"],"sourcesContent":["import { Box, SxProps, Theme } from '@mui/material'\nimport { ReactNode } from 'react'\n\nexport interface ResizeHandleProps {\n onMouseDown: (e: React.MouseEvent) => void\n sx?: SxProps<Theme>\n}\n\nexport function ResizeHandle({ onMouseDown, sx }: ResizeHandleProps) {\n return (\n <Box\n onMouseDown={onMouseDown}\n sx={{\n position: 'absolute',\n bottom: 0,\n right: 0,\n width: 20,\n height: 20,\n cursor: 'se-resize',\n // Add a simple diagonal lines to indicate resize handle\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n right: 7,\n bottom: 7,\n width: 5,\n height: 5,\n borderRight: '2px solid #999',\n borderBottom: '2px solid #999',\n },\n ...sx,\n }}\n />\n )\n}\n\nexport interface ResizableContainerProps {\n children: ReactNode\n width: number\n height: number\n onResizeStart: (e: React.MouseEvent) => void\n showResizeHandle?: boolean\n resizeHandleSx?: SxProps<Theme>\n sx?: SxProps<Theme>\n}\n\n/** See DraggableDialog for an example on how to use useResizable with a ResizableContainer */\nexport function ResizableContainer({\n children,\n width,\n height,\n onResizeStart,\n showResizeHandle = true,\n resizeHandleSx,\n sx,\n}: ResizableContainerProps) {\n return (\n <Box\n sx={{\n position: 'relative',\n width: `${width}px`,\n height: `${height}px`,\n ...sx,\n }}\n >\n {children}\n {showResizeHandle && (\n <ResizeHandle onMouseDown={onResizeStart} sx={resizeHandleSx} />\n )}\n </Box>\n )\n}\n"],"mappings":";;;AAQA,SAAgB,EAAa,EAAE,gBAAa,SAAyB;CACnE,OACE,kBAAC,GAAD;EACe;EACb,IAAI;GACF,UAAU;GACV,QAAQ;GACR,OAAO;GACP,OAAO;GACP,QAAQ;GACR,QAAQ;GAER,aAAa;IACX,SAAS;IACT,UAAU;IACV,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,aAAa;IACb,cAAc;GAChB;GACA,GAAG;EACL;CACD,CAAA;AAEL;AAaA,SAAgB,EAAmB,EACjC,aACA,UACA,WACA,kBACA,sBAAmB,IACnB,mBACA,SAC0B;CAC1B,OACE,kBAAC,GAAD;EACE,IAAI;GACF,UAAU;GACV,OAAO,GAAG,EAAM;GAChB,QAAQ,GAAG,EAAO;GAClB,GAAG;EACL;YANF,CAQG,GACA,KACC,kBAAC,GAAD;GAAc,aAAa;GAAe,IAAI;EAAiB,CAAA,CAE9D;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResizable.js","names":[],"sources":["../../../../src/components/ResizableContainer/hooks/useResizable.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react'\n\nexport interface ResizableOptions {\n initialWidth?: number\n initialHeight?: number\n minWidth?: number\n minHeight?: number\n maxWidth?: number\n maxHeight?: number\n onResize?: (size: { width: number; height: number }) => void\n}\n\nexport interface ResizableState {\n width: number\n height: number\n isResizing: boolean\n}\n\nexport interface ResizableHandlers {\n handleResizeStart: (e: React.MouseEvent) => void\n setSize: (size: { width: number; height: number }) => void\n}\n\n/** See DraggableDialog for an example on how to use useResizable with a ResizableContainer */\nexport function useResizable(\n options: ResizableOptions = {},\n): ResizableState & ResizableHandlers {\n const {\n initialWidth = 600,\n initialHeight = 500,\n minWidth = 300,\n minHeight = 200,\n maxWidth = 1200,\n maxHeight = 800,\n onResize,\n } = options\n\n const [size, setSize] = useState({\n width: initialWidth,\n height: initialHeight,\n })\n const [isResizing, setIsResizing] = useState(false)\n const resizeStartRef = useRef<{\n x: number\n y: number\n width: number\n height: number\n } | null>(null)\n\n const handleResizeStart = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setIsResizing(true)\n resizeStartRef.current = {\n x: e.clientX,\n y: e.clientY,\n width: size.width,\n height: size.height,\n }\n },\n [size],\n )\n\n const handleResizeMove = useCallback(\n (e: MouseEvent) => {\n if (!isResizing || !resizeStartRef.current) return\n\n const deltaX = e.clientX - resizeStartRef.current.x\n const deltaY = e.clientY - resizeStartRef.current.y\n\n const newWidth = Math.max(\n minWidth,\n Math.min(maxWidth, resizeStartRef.current.width + deltaX),\n )\n const newHeight = Math.max(\n minHeight,\n Math.min(maxHeight, resizeStartRef.current.height + deltaY),\n )\n\n const newSize = { width: newWidth, height: newHeight }\n setSize(newSize)\n onResize?.(newSize)\n },\n [isResizing, minWidth, maxWidth, minHeight, maxHeight, onResize],\n )\n\n const handleResizeEnd = useCallback(() => {\n setIsResizing(false)\n resizeStartRef.current = null\n }, [])\n\n useEffect(() => {\n if (isResizing) {\n document.addEventListener('mousemove', handleResizeMove)\n document.addEventListener('mouseup', handleResizeEnd)\n }\n return () => {\n document.removeEventListener('mousemove', handleResizeMove)\n document.removeEventListener('mouseup', handleResizeEnd)\n }\n }, [isResizing, handleResizeMove, handleResizeEnd])\n\n return {\n width: size.width,\n height: size.height,\n isResizing,\n handleResizeStart,\n setSize,\n }\n}\n"],"mappings":";;AAwBA,SAAgB,EACd,IAA4B,
|
|
1
|
+
{"version":3,"file":"useResizable.js","names":[],"sources":["../../../../src/components/ResizableContainer/hooks/useResizable.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react'\n\nexport interface ResizableOptions {\n initialWidth?: number\n initialHeight?: number\n minWidth?: number\n minHeight?: number\n maxWidth?: number\n maxHeight?: number\n onResize?: (size: { width: number; height: number }) => void\n}\n\nexport interface ResizableState {\n width: number\n height: number\n isResizing: boolean\n}\n\nexport interface ResizableHandlers {\n handleResizeStart: (e: React.MouseEvent) => void\n setSize: (size: { width: number; height: number }) => void\n}\n\n/** See DraggableDialog for an example on how to use useResizable with a ResizableContainer */\nexport function useResizable(\n options: ResizableOptions = {},\n): ResizableState & ResizableHandlers {\n const {\n initialWidth = 600,\n initialHeight = 500,\n minWidth = 300,\n minHeight = 200,\n maxWidth = 1200,\n maxHeight = 800,\n onResize,\n } = options\n\n const [size, setSize] = useState({\n width: initialWidth,\n height: initialHeight,\n })\n const [isResizing, setIsResizing] = useState(false)\n const resizeStartRef = useRef<{\n x: number\n y: number\n width: number\n height: number\n } | null>(null)\n\n const handleResizeStart = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setIsResizing(true)\n resizeStartRef.current = {\n x: e.clientX,\n y: e.clientY,\n width: size.width,\n height: size.height,\n }\n },\n [size],\n )\n\n const handleResizeMove = useCallback(\n (e: MouseEvent) => {\n if (!isResizing || !resizeStartRef.current) return\n\n const deltaX = e.clientX - resizeStartRef.current.x\n const deltaY = e.clientY - resizeStartRef.current.y\n\n const newWidth = Math.max(\n minWidth,\n Math.min(maxWidth, resizeStartRef.current.width + deltaX),\n )\n const newHeight = Math.max(\n minHeight,\n Math.min(maxHeight, resizeStartRef.current.height + deltaY),\n )\n\n const newSize = { width: newWidth, height: newHeight }\n setSize(newSize)\n onResize?.(newSize)\n },\n [isResizing, minWidth, maxWidth, minHeight, maxHeight, onResize],\n )\n\n const handleResizeEnd = useCallback(() => {\n setIsResizing(false)\n resizeStartRef.current = null\n }, [])\n\n useEffect(() => {\n if (isResizing) {\n document.addEventListener('mousemove', handleResizeMove)\n document.addEventListener('mouseup', handleResizeEnd)\n }\n return () => {\n document.removeEventListener('mousemove', handleResizeMove)\n document.removeEventListener('mouseup', handleResizeEnd)\n }\n }, [isResizing, handleResizeMove, handleResizeEnd])\n\n return {\n width: size.width,\n height: size.height,\n isResizing,\n handleResizeStart,\n setSize,\n }\n}\n"],"mappings":";;AAwBA,SAAgB,EACd,IAA4B,CAAC,GACO;CACpC,IAAM,EACJ,kBAAe,KACf,mBAAgB,KAChB,cAAW,KACX,eAAY,KACZ,cAAW,MACX,eAAY,KACZ,gBACE,GAEE,CAAC,GAAM,KAAW,EAAS;EAC/B,OAAO;EACP,QAAQ;CACV,CAAC,GACK,CAAC,GAAY,KAAiB,EAAS,EAAK,GAC5C,IAAiB,EAKb,IAAI,GAER,IAAoB,GACvB,MAAwB;EAIvB,AAHA,EAAE,eAAe,GACjB,EAAE,gBAAgB,GAClB,EAAc,EAAI,GAClB,EAAe,UAAU;GACvB,GAAG,EAAE;GACL,GAAG,EAAE;GACL,OAAO,EAAK;GACZ,QAAQ,EAAK;EACf;CACF,GACA,CAAC,CAAI,CACP,GAEM,IAAmB,GACtB,MAAkB;EACjB,IAAI,CAAC,KAAc,CAAC,EAAe,SAAS;EAE5C,IAAM,IAAS,EAAE,UAAU,EAAe,QAAQ,GAC5C,IAAS,EAAE,UAAU,EAAe,QAAQ,GAW5C,IAAU;GAAE,OATD,KAAK,IACpB,GACA,KAAK,IAAI,GAAU,EAAe,QAAQ,QAAQ,CAAM,CAOjC;GAAU,QALjB,KAAK,IACrB,GACA,KAAK,IAAI,GAAW,EAAe,QAAQ,SAAS,CAAM,CAGjB;EAAU;EAErD,AADA,EAAQ,CAAO,GACf,IAAW,CAAO;CACpB,GACA;EAAC;EAAY;EAAU;EAAU;EAAW;EAAW;CAAQ,CACjE,GAEM,IAAkB,QAAkB;EAExC,AADA,EAAc,EAAK,GACnB,EAAe,UAAU;CAC3B,GAAG,CAAC,CAAC;CAaL,OAXA,SACM,MACF,SAAS,iBAAiB,aAAa,CAAgB,GACvD,SAAS,iBAAiB,WAAW,CAAe,UAEzC;EAEX,AADA,SAAS,oBAAoB,aAAa,CAAgB,GAC1D,SAAS,oBAAoB,WAAW,CAAe;CACzD,IACC;EAAC;EAAY;EAAkB;CAAe,CAAC,GAE3C;EACL,OAAO,EAAK;EACZ,QAAQ,EAAK;EACb;EACA;EACA;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resources.Desktop.js","names":[],"sources":["../../../src/components/Resources/Resources.Desktop.tsx"],"sourcesContent":["import { Data } from './Resources'\nimport { useState } from 'react'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\n\nexport type ResourcesDesktopProps = {\n data: Data\n}\n\nexport default function ResourcesDesktop({ data }: ResourcesDesktopProps) {\n const [index, setIndex] = useState(0)\n return (\n <div className=\"control-container\">\n <div className=\"button-container\">\n {data?.map((el, curIndex) => {\n return (\n <button\n className={index === curIndex ? 'isSelected' : ''}\n onClick={() => setIndex(curIndex)}\n key={el.name}\n >\n {el.name}\n </button>\n )\n })}\n {/*\n This button keeps the border line in the button container running from top to bottom,\n it doesn't have any functionality.\n */}\n <button className=\"gap-fill\" />\n </div>\n <div className=\"content-container\">\n {data?.map((el, curIndex) => {\n const { ownerId, wikiId } = el\n return (\n <span key={ownerId} className={index === curIndex ? '' : 'hide'}>\n <MarkdownSynapse ownerId={ownerId} wikiId={wikiId} />\n </span>\n )\n })}\n </div>\n </div>\n )\n}\n"],"mappings":";;;;AAQA,SAAwB,EAAiB,EAAE,WAA+B;CACxE,IAAM,CAAC,GAAO,KAAY,EAAS,
|
|
1
|
+
{"version":3,"file":"Resources.Desktop.js","names":[],"sources":["../../../src/components/Resources/Resources.Desktop.tsx"],"sourcesContent":["import { Data } from './Resources'\nimport { useState } from 'react'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\n\nexport type ResourcesDesktopProps = {\n data: Data\n}\n\nexport default function ResourcesDesktop({ data }: ResourcesDesktopProps) {\n const [index, setIndex] = useState(0)\n return (\n <div className=\"control-container\">\n <div className=\"button-container\">\n {data?.map((el, curIndex) => {\n return (\n <button\n className={index === curIndex ? 'isSelected' : ''}\n onClick={() => setIndex(curIndex)}\n key={el.name}\n >\n {el.name}\n </button>\n )\n })}\n {/*\n This button keeps the border line in the button container running from top to bottom,\n it doesn't have any functionality.\n */}\n <button className=\"gap-fill\" />\n </div>\n <div className=\"content-container\">\n {data?.map((el, curIndex) => {\n const { ownerId, wikiId } = el\n return (\n <span key={ownerId} className={index === curIndex ? '' : 'hide'}>\n <MarkdownSynapse ownerId={ownerId} wikiId={wikiId} />\n </span>\n )\n })}\n </div>\n </div>\n )\n}\n"],"mappings":";;;;AAQA,SAAwB,EAAiB,EAAE,WAA+B;CACxE,IAAM,CAAC,GAAO,KAAY,EAAS,CAAC;CACpC,OACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACG,GAAM,KAAK,GAAI,MAEZ,kBAAC,UAAD;IACE,WAAW,MAAU,IAAW,eAAe;IAC/C,eAAe,EAAS,CAAQ;cAG/B,EAAG;GACE,GAHD,EAAG,IAGF,CAEX,GAKD,kBAAC,UAAD,EAAQ,WAAU,WAAY,CAAA,CAC3B;MACL,kBAAC,OAAD;GAAK,WAAU;aACZ,GAAM,KAAK,GAAI,MAAa;IAC3B,IAAM,EAAE,YAAS,cAAW;IAC5B,OACE,kBAAC,QAAD;KAAoB,WAAW,MAAU,IAAW,KAAK;eACvD,kBAAC,GAAD;MAA0B;MAAiB;KAAS,CAAA;IAChD,GAFK,CAEL;GAEV,CAAC;EACE,CAAA,CACF;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resources.Mobile.js","names":[],"sources":["../../../src/components/Resources/Resources.Mobile.tsx"],"sourcesContent":["import { Data } from './Resources'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\nimport ExpandableContent from '../home_page/ExpandableContent'\n\nexport type ResourcesMobileProps = {\n data: Data\n}\n\nexport default function ResourcesMobile({ data }: ResourcesMobileProps) {\n return (\n <div className=\"Resources_Mobile\">\n {data.map(({ name, ownerId, wikiId }) => {\n const title = <> {name} </>\n const markdown = <MarkdownSynapse ownerId={ownerId} wikiId={wikiId} />\n return <ExpandableContent key={name} title={title} content={markdown} />\n })}\n </div>\n )\n}\n"],"mappings":";;;;AAQA,SAAwB,EAAgB,EAAE,WAA8B;
|
|
1
|
+
{"version":3,"file":"Resources.Mobile.js","names":[],"sources":["../../../src/components/Resources/Resources.Mobile.tsx"],"sourcesContent":["import { Data } from './Resources'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\nimport ExpandableContent from '../home_page/ExpandableContent'\n\nexport type ResourcesMobileProps = {\n data: Data\n}\n\nexport default function ResourcesMobile({ data }: ResourcesMobileProps) {\n return (\n <div className=\"Resources_Mobile\">\n {data.map(({ name, ownerId, wikiId }) => {\n const title = <> {name} </>\n const markdown = <MarkdownSynapse ownerId={ownerId} wikiId={wikiId} />\n return <ExpandableContent key={name} title={title} content={markdown} />\n })}\n </div>\n )\n}\n"],"mappings":";;;;AAQA,SAAwB,EAAgB,EAAE,WAA8B;CACtE,OACE,kBAAC,OAAD;EAAK,WAAU;YACZ,EAAK,KAAK,EAAE,SAAM,YAAS,gBAGnB,kBAAC,GAAD;GAAqC,OAF9B,kBAAA,GAAA,EAAA,UAAA;IAAE;IAAE;IAAK;GAAG,EAAA,CAEkB;GAAO,SADlC,kBAAC,GAAD;IAA0B;IAAiB;GAAS,CACT;EAAW,GAAxC,CAAwC,CACxE;CACE,CAAA;AAET"}
|
|
@@ -8,19 +8,16 @@ import i from "./Resources.Desktop.js";
|
|
|
8
8
|
import a from "./Resources.Mobile.js";
|
|
9
9
|
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
10
10
|
//#region src/components/Resources/Resources.tsx
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}(c || {});
|
|
14
|
-
function l(l) {
|
|
15
|
-
let { entityId: u } = l, d = t(), { data: f, error: p } = r({
|
|
11
|
+
function c(c) {
|
|
12
|
+
let { entityId: l } = c, u = t(), { data: d, error: f } = r({
|
|
16
13
|
concreteType: "org.sagebionetworks.repo.model.table.QueryBundleRequest",
|
|
17
|
-
entityId:
|
|
14
|
+
entityId: l,
|
|
18
15
|
partMask: 5,
|
|
19
|
-
query: { sql: `SELECT Name, Wiki FROM ${
|
|
20
|
-
}),
|
|
16
|
+
query: { sql: `SELECT Name, Wiki FROM ${l} ORDER BY ItemOrder` }
|
|
17
|
+
}), p = n("Name", d), m = n("Wiki", d), h = d?.queryResult?.queryResults.rows.map((e) => {
|
|
21
18
|
let t = e.values;
|
|
22
19
|
t.some((e) => e === null) && console.warn("Row has null value(s) when no nulls expected");
|
|
23
|
-
let n = t[
|
|
20
|
+
let n = t[p], r = (t[m] ?? "").split("/");
|
|
24
21
|
return {
|
|
25
22
|
name: n,
|
|
26
23
|
ownerId: r[0],
|
|
@@ -29,10 +26,10 @@ function l(l) {
|
|
|
29
26
|
}) ?? [];
|
|
30
27
|
return /* @__PURE__ */ s("div", {
|
|
31
28
|
className: "Resources",
|
|
32
|
-
children: [/* @__PURE__ */ o(e, { error:
|
|
29
|
+
children: [/* @__PURE__ */ o(e, { error: f }), o(u ? i : a, { data: h })]
|
|
33
30
|
});
|
|
34
31
|
}
|
|
35
32
|
//#endregion
|
|
36
|
-
export {
|
|
33
|
+
export { c as Resources, c as default };
|
|
37
34
|
|
|
38
35
|
//# sourceMappingURL=Resources.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resources.js","names":[],"sources":["../../../src/components/Resources/Resources.tsx"],"sourcesContent":["import useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { SynapseConstants } from '@/utils'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport useShowDesktop from '@/utils/hooks/useShowDesktop'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport ResourcesDesktop from './Resources.Desktop'\nimport ResourcesMobile from './Resources.Mobile'\n\nexport type ResourcesProps = {\n entityId: string\n}\n\nenum ExpectedColumns {\n NAME = 'Name',\n WIKI = 'Wiki',\n}\n\nexport type Data = {\n name: string\n ownerId: string\n wikiId: string\n}[]\n\nexport function Resources(props: ResourcesProps) {\n const { entityId } = props\n const showDesktop = useShowDesktop()\n\n const queryBundleRequest: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS,\n query: {\n sql: `SELECT Name, Wiki FROM ${entityId} ORDER BY ItemOrder`,\n },\n }\n const { data: queryResultBundle, error } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const nameIndex = getFieldIndex(ExpectedColumns.NAME, queryResultBundle)\n const wikiIndex = getFieldIndex(ExpectedColumns.WIKI, queryResultBundle)\n const data: Data =\n queryResultBundle?.queryResult?.queryResults.rows.map(el => {\n const values = el.values as string[]\n if (values.some(value => value === null)) {\n console.warn('Row has null value(s) when no nulls expected')\n }\n\n const name = values[nameIndex]\n const wikiValue = values[wikiIndex] ?? ''\n const split = wikiValue.split('/')\n const ownerId = split[0]\n const wikiId = split[2]\n return {\n name,\n ownerId,\n wikiId,\n }\n }) ?? []\n return (\n <div className=\"Resources\">\n <ErrorBanner error={error} />\n {showDesktop ? (\n <ResourcesDesktop data={data} />\n ) : (\n <ResourcesMobile data={data} />\n )}\n </div>\n )\n}\n\nexport default Resources\n"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Resources.js","names":[],"sources":["../../../src/components/Resources/Resources.tsx"],"sourcesContent":["import useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { SynapseConstants } from '@/utils'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport useShowDesktop from '@/utils/hooks/useShowDesktop'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport ResourcesDesktop from './Resources.Desktop'\nimport ResourcesMobile from './Resources.Mobile'\n\nexport type ResourcesProps = {\n entityId: string\n}\n\nenum ExpectedColumns {\n NAME = 'Name',\n WIKI = 'Wiki',\n}\n\nexport type Data = {\n name: string\n ownerId: string\n wikiId: string\n}[]\n\nexport function Resources(props: ResourcesProps) {\n const { entityId } = props\n const showDesktop = useShowDesktop()\n\n const queryBundleRequest: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS,\n query: {\n sql: `SELECT Name, Wiki FROM ${entityId} ORDER BY ItemOrder`,\n },\n }\n const { data: queryResultBundle, error } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const nameIndex = getFieldIndex(ExpectedColumns.NAME, queryResultBundle)\n const wikiIndex = getFieldIndex(ExpectedColumns.WIKI, queryResultBundle)\n const data: Data =\n queryResultBundle?.queryResult?.queryResults.rows.map(el => {\n const values = el.values as string[]\n if (values.some(value => value === null)) {\n console.warn('Row has null value(s) when no nulls expected')\n }\n\n const name = values[nameIndex]\n const wikiValue = values[wikiIndex] ?? ''\n const split = wikiValue.split('/')\n const ownerId = split[0]\n const wikiId = split[2]\n return {\n name,\n ownerId,\n wikiId,\n }\n }) ?? []\n return (\n <div className=\"Resources\">\n <ErrorBanner error={error} />\n {showDesktop ? (\n <ResourcesDesktop data={data} />\n ) : (\n <ResourcesMobile data={data} />\n )}\n </div>\n )\n}\n\nexport default Resources\n"],"mappings":";;;;;;;;;;AAwBA,SAAgB,EAAU,GAAuB;CAC/C,IAAM,EAAE,gBAAa,GACf,IAAc,EAAe,GAY7B,EAAE,MAAM,GAAmB,aAC/B,EAAwB;EAVxB,cAAc;EACd;EACA,UACE;EAEF,OAAO,EACL,KAAK,0BAA0B,EAAS,qBAC1C;CAGwB,CAAkB,GAEtC,IAAY,EAAA,QAAoC,CAAiB,GACjE,IAAY,EAAA,QAAoC,CAAiB,GACjE,IACJ,GAAmB,aAAa,aAAa,KAAK,KAAI,MAAM;EAC1D,IAAM,IAAS,EAAG;EAClB,AAAI,EAAO,MAAK,MAAS,MAAU,IAAI,KACrC,QAAQ,KAAK,8CAA8C;EAG7D,IAAM,IAAO,EAAO,IAEd,KADY,EAAO,MAAc,IACf,MAAM,GAAG;EAGjC,OAAO;GACL;GACA,SAJc,EAAM;GAKpB,QAJa,EAAM;EAKrB;CACF,CAAC,KAAK,CAAC;CACT,OACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,GAAD,EAAoB,SAAQ,CAAA,GAE1B,EADD,IACE,IAEA,GAFD,EAAwB,QAAO,CAED,CAE7B;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowDataTable.js","names":[],"sources":["../../../src/components/RowDataTable/RowDataTable.tsx"],"sourcesContent":["import React from 'react'\nimport { StyledTableContainer } from '@/components/styled/StyledTableContainer'\nimport { SelectColumn } from '@sage-bionetworks/synapse-types'\nimport { LabelLinkConfig } from '../CardContainerLogic'\nimport { SynapseCardLabel } from '../GenericCard'\n\nexport type RowDataTableProps = {\n /** Array of string values corresponding to the data for a row */\n rowData: Array<string | null>\n /** The headers for the columns in the table */\n headers: SelectColumn[]\n /** Optional list of column names whose data should be displayed in the table. If not provided, all columns with data will be shown. */\n displayedColumns?: string[]\n /** Optional configuration for linking columns */\n columnLinks?: LabelLinkConfig\n /** Optional display value overrides for column names */\n columnAliases?: Record<string, string>\n}\n\n/**\n * Displays a table of column names and Synapse Table row data represented as key/value pairs\n */\nconst RowDataTable = (props: RowDataTableProps): React.ReactNode => {\n const { columnAliases, columnLinks, headers, rowData, displayedColumns } =\n props\n\n const columns = displayedColumns\n ? headers\n .filter(header => displayedColumns.includes(header.name))\n .map(header => header.name)\n : headers.map(header => header.name)\n\n const labelValueArray: [string, string][] = []\n\n for (let i = 0; i < columns.length; i += 1) {\n const columnName = columns[i]\n const columnIndex = headers.findIndex(header => header.name === columnName)\n const value = columnIndex !== -1 ? rowData[columnIndex] : undefined\n\n // value can be 'null' if column type is of type STRING or '[null]' if column type is of STRING_LIST\n const column = headers[columnIndex]\n const isNullValue = value === 'null'\n const isListType = column.columnType.endsWith('_LIST')\n\n const isEmptyListOrListOfNull = value === '[]' || value === '[null]'\n if (\n typeof value === 'string' &&\n !(isNullValue || (isListType && isEmptyListOrListOfNull))\n ) {\n labelValueArray.push([columnName, value])\n }\n }\n\n return (\n <StyledTableContainer sx={{ width: '100%' }}>\n <table style={{ width: '100%' }}>\n <tbody>\n {labelValueArray?.map(([columnName, value]) => (\n <tr key={columnName}>\n <td style={{ width: '256px' }}>\n <span\n style={{\n fontSize: '14px',\n lineHeight: '20px',\n color: '#333',\n }}\n >\n {columnAliases?.[columnName] ?? columnName}\n </span>\n </td>\n <td>\n <SynapseCardLabel\n value={value}\n columnName={columnName}\n labelLink={columnLinks?.find(\n link => link.matchColumnName === columnName,\n )}\n selectColumns={headers}\n columnModels={undefined}\n isHeader={false}\n rowData={rowData}\n />\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </StyledTableContainer>\n )\n}\n\nexport default RowDataTable\n"],"mappings":";;;;;;AAsBA,IAAM,KAAgB,MAA8C;CAClE,IAAM,EAAE,kBAAe,gBAAa,YAAS,YAAS,wBACpD,GAEI,IAAU,IACZ,EACG,QAAO,MAAU,EAAiB,SAAS,EAAO,
|
|
1
|
+
{"version":3,"file":"RowDataTable.js","names":[],"sources":["../../../src/components/RowDataTable/RowDataTable.tsx"],"sourcesContent":["import React from 'react'\nimport { StyledTableContainer } from '@/components/styled/StyledTableContainer'\nimport { SelectColumn } from '@sage-bionetworks/synapse-types'\nimport { LabelLinkConfig } from '../CardContainerLogic'\nimport { SynapseCardLabel } from '../GenericCard'\n\nexport type RowDataTableProps = {\n /** Array of string values corresponding to the data for a row */\n rowData: Array<string | null>\n /** The headers for the columns in the table */\n headers: SelectColumn[]\n /** Optional list of column names whose data should be displayed in the table. If not provided, all columns with data will be shown. */\n displayedColumns?: string[]\n /** Optional configuration for linking columns */\n columnLinks?: LabelLinkConfig\n /** Optional display value overrides for column names */\n columnAliases?: Record<string, string>\n}\n\n/**\n * Displays a table of column names and Synapse Table row data represented as key/value pairs\n */\nconst RowDataTable = (props: RowDataTableProps): React.ReactNode => {\n const { columnAliases, columnLinks, headers, rowData, displayedColumns } =\n props\n\n const columns = displayedColumns\n ? headers\n .filter(header => displayedColumns.includes(header.name))\n .map(header => header.name)\n : headers.map(header => header.name)\n\n const labelValueArray: [string, string][] = []\n\n for (let i = 0; i < columns.length; i += 1) {\n const columnName = columns[i]\n const columnIndex = headers.findIndex(header => header.name === columnName)\n const value = columnIndex !== -1 ? rowData[columnIndex] : undefined\n\n // value can be 'null' if column type is of type STRING or '[null]' if column type is of STRING_LIST\n const column = headers[columnIndex]\n const isNullValue = value === 'null'\n const isListType = column.columnType.endsWith('_LIST')\n\n const isEmptyListOrListOfNull = value === '[]' || value === '[null]'\n if (\n typeof value === 'string' &&\n !(isNullValue || (isListType && isEmptyListOrListOfNull))\n ) {\n labelValueArray.push([columnName, value])\n }\n }\n\n return (\n <StyledTableContainer sx={{ width: '100%' }}>\n <table style={{ width: '100%' }}>\n <tbody>\n {labelValueArray?.map(([columnName, value]) => (\n <tr key={columnName}>\n <td style={{ width: '256px' }}>\n <span\n style={{\n fontSize: '14px',\n lineHeight: '20px',\n color: '#333',\n }}\n >\n {columnAliases?.[columnName] ?? columnName}\n </span>\n </td>\n <td>\n <SynapseCardLabel\n value={value}\n columnName={columnName}\n labelLink={columnLinks?.find(\n link => link.matchColumnName === columnName,\n )}\n selectColumns={headers}\n columnModels={undefined}\n isHeader={false}\n rowData={rowData}\n />\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </StyledTableContainer>\n )\n}\n\nexport default RowDataTable\n"],"mappings":";;;;;;AAsBA,IAAM,KAAgB,MAA8C;CAClE,IAAM,EAAE,kBAAe,gBAAa,YAAS,YAAS,wBACpD,GAEI,IAAU,IACZ,EACG,QAAO,MAAU,EAAiB,SAAS,EAAO,IAAI,CAAC,EACvD,KAAI,MAAU,EAAO,IAAI,IAC5B,EAAQ,KAAI,MAAU,EAAO,IAAI,GAE/B,IAAsC,CAAC;CAE7C,KAAK,IAAI,IAAI,GAAG,IAAI,EAAQ,QAAQ,KAAK,GAAG;EAC1C,IAAM,IAAa,EAAQ,IACrB,IAAc,EAAQ,WAAU,MAAU,EAAO,SAAS,CAAU,GACpE,IAAQ,MAAgB,KAA4B,KAAA,IAAvB,EAAQ,IAGrC,IAAS,EAAQ,IACjB,IAAc,MAAU,QACxB,IAAa,EAAO,WAAW,SAAS,OAAO;EAGrD,AACE,OAAO,KAAU,YACjB,EAAE,KAAgB,MAHY,MAAU,QAAQ,MAAU,cAK1D,EAAgB,KAAK,CAAC,GAAY,CAAK,CAAC;CAE5C;CAEA,OACE,kBAAC,GAAD;EAAsB,IAAI,EAAE,OAAO,OAAO;YACxC,kBAAC,SAAD;GAAO,OAAO,EAAE,OAAO,OAAO;aAC5B,kBAAC,SAAD,EAAA,UACG,GAAiB,KAAK,CAAC,GAAY,OAClC,kBAAC,MAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,OAAO,EAAE,OAAO,QAAQ;cAC1B,kBAAC,QAAD;KACE,OAAO;MACL,UAAU;MACV,YAAY;MACZ,OAAO;KACT;eAEC,IAAgB,MAAe;IAC5B,CAAA;GACJ,CAAA,GACJ,kBAAC,MAAD,EAAA,UACE,kBAAC,GAAD;IACS;IACK;IACZ,WAAW,GAAa,MACtB,MAAQ,EAAK,oBAAoB,CACnC;IACA,eAAe;IACf,cAAc,KAAA;IACd,UAAU;IACD;GACV,CAAA,EACC,CAAA,CACF,EAAA,GAzBK,CAyBL,CACL,EACI,CAAA;EACF,CAAA;CACa,CAAA;AAE1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowDataTableWithQuery.js","names":[],"sources":["../../../src/components/RowDataTable/RowDataTableWithQuery.tsx"],"sourcesContent":["import React from 'react'\nimport useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions'\nimport {\n BUNDLE_MASK_QUERY_RESULTS,\n BUNDLE_MASK_QUERY_SELECT_COLUMNS,\n} from '@/utils/SynapseConstants'\nimport { Query, QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { LabelLinkConfig } from '../CardContainerLogic'\nimport { SkeletonTable } from '../Skeleton'\nimport RowDataTable from './RowDataTable'\n\nexport type RowDataTableWithQueryProps = {\n /** The query used to retrieve data */\n query: Query\n /** Optional list of column names whose data should be displayed in the table. If not provided, all columns with data will be shown. */\n displayedColumns?: string[]\n /** Optional display value overrides for column names */\n columnAliases?: Record<string, string>\n /** Optional configuration for linking columns */\n columnLinks?: LabelLinkConfig\n}\n\n/**\n * For the first row returned by the query, displays a table of column names and Synapse Table row data represented as key/value pairs\n */\nconst RowDataTableWithQuery = (\n props: RowDataTableWithQueryProps,\n): React.ReactNode => {\n const { columnAliases, columnLinks, query, displayedColumns } = props\n const entityId = parseEntityIdFromSqlStatement(query.sql)\n\n const queryBundleRequest: QueryBundleRequest = {\n partMask: BUNDLE_MASK_QUERY_SELECT_COLUMNS | BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n query,\n }\n\n const { data: queryResultBundle, isLoading } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const rowData =\n queryResultBundle?.queryResult!.queryResults.rows[0].values ?? []\n const headers = queryResultBundle?.queryResult!.queryResults.headers ?? []\n\n if (isLoading) return <SkeletonTable numRows={6} numCols={1} />\n\n return (\n <RowDataTable\n columnAliases={columnAliases}\n columnLinks={columnLinks}\n rowData={rowData}\n headers={headers}\n displayedColumns={displayedColumns}\n />\n )\n}\n\nexport default RowDataTableWithQuery\n"],"mappings":";;;;;;;;;;AA0BA,IAAM,KACJ,MACoB;CACpB,IAAM,EAAE,kBAAe,gBAAa,UAAO,wBAAqB,GAU1D,EAAE,MAAM,GAAmB,iBAC/B,EAAwB;EAPxB,UAAA;EACA,cAAc;EACd,UALe,EAA8B,EAAM,
|
|
1
|
+
{"version":3,"file":"RowDataTableWithQuery.js","names":[],"sources":["../../../src/components/RowDataTable/RowDataTableWithQuery.tsx"],"sourcesContent":["import React from 'react'\nimport useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions'\nimport {\n BUNDLE_MASK_QUERY_RESULTS,\n BUNDLE_MASK_QUERY_SELECT_COLUMNS,\n} from '@/utils/SynapseConstants'\nimport { Query, QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { LabelLinkConfig } from '../CardContainerLogic'\nimport { SkeletonTable } from '../Skeleton'\nimport RowDataTable from './RowDataTable'\n\nexport type RowDataTableWithQueryProps = {\n /** The query used to retrieve data */\n query: Query\n /** Optional list of column names whose data should be displayed in the table. If not provided, all columns with data will be shown. */\n displayedColumns?: string[]\n /** Optional display value overrides for column names */\n columnAliases?: Record<string, string>\n /** Optional configuration for linking columns */\n columnLinks?: LabelLinkConfig\n}\n\n/**\n * For the first row returned by the query, displays a table of column names and Synapse Table row data represented as key/value pairs\n */\nconst RowDataTableWithQuery = (\n props: RowDataTableWithQueryProps,\n): React.ReactNode => {\n const { columnAliases, columnLinks, query, displayedColumns } = props\n const entityId = parseEntityIdFromSqlStatement(query.sql)\n\n const queryBundleRequest: QueryBundleRequest = {\n partMask: BUNDLE_MASK_QUERY_SELECT_COLUMNS | BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n query,\n }\n\n const { data: queryResultBundle, isLoading } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const rowData =\n queryResultBundle?.queryResult!.queryResults.rows[0].values ?? []\n const headers = queryResultBundle?.queryResult!.queryResults.headers ?? []\n\n if (isLoading) return <SkeletonTable numRows={6} numCols={1} />\n\n return (\n <RowDataTable\n columnAliases={columnAliases}\n columnLinks={columnLinks}\n rowData={rowData}\n headers={headers}\n displayedColumns={displayedColumns}\n />\n )\n}\n\nexport default RowDataTableWithQuery\n"],"mappings":";;;;;;;;;;AA0BA,IAAM,KACJ,MACoB;CACpB,IAAM,EAAE,kBAAe,gBAAa,UAAO,wBAAqB,GAU1D,EAAE,MAAM,GAAmB,iBAC/B,EAAwB;EAPxB,UAAA;EACA,cAAc;EACd,UALe,EAA8B,EAAM,GAKnD;EACA;CAIwB,CAAkB,GAEtC,IACJ,GAAmB,YAAa,aAAa,KAAK,GAAG,UAAU,CAAC,GAC5D,IAAU,GAAmB,YAAa,aAAa,WAAW,CAAC;CAIzE,OAFI,IAAkB,kBAAC,GAAD;EAAe,SAAS;EAAG,SAAS;CAAI,CAAA,IAG5D,kBAAC,GAAD;EACiB;EACF;EACJ;EACA;EACS;CACnB,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RssFeedCards.js","names":[],"sources":["../../../src/components/RssFeedCards/RssFeedCards.tsx"],"sourcesContent":["import NoData from '@/assets/icons/NoData'\nimport { ReactComponent as SubscribePlus } from '@/assets/icons/subscribe_plus.svg'\nimport LargeButton from '@/components/styled/LargeButton'\nimport dayjs from 'dayjs'\nimport { Component } from 'react'\nimport MailchimpSubscribe from 'react-mailchimp-subscribe'\nimport Parser from 'rss-parser'\n\nconst rssParser = new Parser()\ntype RssState = {\n rssFeed: any\n isLoadingError: boolean\n isShowingSubscribeUI: boolean\n allItemsUrl?: string\n}\n\nexport type RssFilter = {\n type?: 'tag' | 'category'\n value: string\n}\n\nexport type RssFeedCardsProps = {\n url: string\n filter?: RssFilter // optional tag or category to use as a filter\n itemsToShow: number\n allowCategories?: string[]\n mailChimpListName?: string\n mailChimpUrl?: string\n viewAllNewsButtonText?: string\n}\nexport class RssFeedCards extends Component<RssFeedCardsProps, RssState> {\n // only update the state if this component is mounted\n _isMounted = false\n\n constructor(props: RssFeedCardsProps) {\n super(props)\n this.state = {\n rssFeed: {},\n isLoadingError: false,\n isShowingSubscribeUI: false,\n }\n }\n\n componentDidMount() {\n this._isMounted = true\n const { url, filter } = this.props\n const filterValue = filter?.value\n const filterType = filter?.type\n const tagPath = filterValue\n ? `/${filterType ?? 'tag'}/${filterValue.replace(' ', '-')}`\n : ''\n const allItems = `${url}${tagPath}`\n const feedUrl = `${allItems}/?feed=rss2`\n fetch(feedUrl)\n .then(response => response.text())\n .then(responseData => rssParser.parseString(responseData))\n .then(rss => {\n if (this._isMounted) {\n this.setState({ rssFeed: rss, allItemsUrl: allItems })\n }\n })\n .catch(err => {\n if (this._isMounted) {\n this.setState({ isLoadingError: true })\n }\n })\n }\n\n componentWillUnmount() {\n this._isMounted = false\n }\n\n public onClickSubscribe = () => {\n this.setState({ isShowingSubscribeUI: true })\n }\n\n render() {\n const { viewAllNewsButtonText } = this.props\n\n if (this.state.rssFeed.items?.length === 0) {\n return (\n <div className=\"text-center SRCBorderedPanel SRCBorderedPanel--padded2x\">\n {NoData}\n <div style={{ marginTop: '20px', fontStyle: 'italic' }}>\n There are no items currently available\n </div>\n </div>\n )\n }\n return (\n <>\n {this.props.mailChimpUrl && (\n <div className=\"FeedSubscribe\">\n {!this.state.isShowingSubscribeUI && (\n <a\n className=\"FeedSubscribeToNewsLink SRC-no-border-bottom-imp\"\n onClick={this.onClickSubscribe}\n >\n <SubscribePlus title=\"Subscribe to News\" />\n Subscribe to News\n </a>\n )}\n {this.state.isShowingSubscribeUI && (\n <div className=\"MailchimpSubscribeContainer\">\n <SubscribePlus title=\"Subscribe to News\" />\n <p>\n Subscribe to receive the {this.props.mailChimpListName} by\n e-mail, which provides information and updates related to the\n Portal. You can opt out at any time by using the unsubscribe\n link within the e-mail. We will not share your information\n with any third parties or use it for any other purposes.\n </p>\n <div className=\"SRC-marginBottomTop\">\n <MailchimpSubscribe url={this.props.mailChimpUrl} />\n </div>\n </div>\n )}\n </div>\n )}\n <div className=\"Feed\">\n <div className=\"FeedItems\">\n {this.state.rssFeed.items &&\n this.state.rssFeed.items.map((item: any, index: any) => {\n // The other is to hide the large number of items in a particular feed (usually a max of 10 are returned). See state.isShowingMoreItems\n if (index >= this.props.itemsToShow) {\n return\n }\n\n return (\n <div key={item.guid} className={`FeedItem`}>\n <div>\n {this.props.allowCategories &&\n this.props.allowCategories.length > 0 && (\n <div className=\"FeedItemCategories\">\n {item['categories'].map((categoryName: string) => {\n // are we allowed to show this category/tag?\n const categoryNameLowerCase =\n categoryName.toLowerCase()\n const allowCategories = this.props.allowCategories\n if (\n allowCategories?.findIndex(\n item =>\n categoryNameLowerCase ===\n item.toLowerCase(),\n ) === -1\n )\n return <></>\n // else\n return (\n <a\n href={`${\n this.state.rssFeed.link\n }/tag/${categoryName.replace(' ', '-')}`}\n className=\"SRC-no-border-bottom-imp\"\n key={`${item.guid}_${categoryName}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <div className=\"FeedItemCategory\">\n {categoryName}\n </div>\n </a>\n )\n })}\n </div>\n )}\n <p className=\"FeedItemDate\">\n {dayjs(item['isoDate']).format('MMMM YYYY')}\n </p>\n <p className=\"FeedItemTitle\">{item['title']}</p>\n <div className=\"FeedItemDescription\">\n {item['contentSnippet'].replace(/\\[...\\]|\\[…\\]/gm, '…')}\n </div>\n <a\n className=\"FeedItemLink\"\n href={item['link']}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Continue reading\n </a>\n </div>\n </div>\n )\n })}\n </div>\n {this.state.rssFeed.items &&\n this.state.rssFeed.items.length > this.props.itemsToShow &&\n this.state.allItemsUrl && (\n <div className=\"FeedViewAllNewsButtonContainer\">\n <LargeButton\n color=\"secondary\"\n variant=\"contained\"\n onClick={() =>\n window.open(this.state.allItemsUrl, '_blank', 'noopener')\n }\n // @ts-expect-error - target prop exists, but TS doesn't recognize on styled component\n target=\"_blank\"\n >\n {viewAllNewsButtonText ?? 'View All News'}\n </LargeButton>\n </div>\n )}\n {this.state.isLoadingError && (\n <div>Unable to load feed: {this.props.url}</div>\n )}\n </div>\n </>\n )\n }\n}\n\nexport default RssFeedCards\n"],"mappings":";;;;;;;;;AAQA,IAAM,IAAY,IAAI,GAAQ,EAsBjB,IAAb,cAAkC,EAAuC;CAEvE,aAAa;CAEb,YAAY,GAA0B;AAEpC,EADA,MAAM,EAAM,EACZ,KAAK,QAAQ;GACX,SAAS,EAAE;GACX,gBAAgB;GAChB,sBAAsB;GACvB;;CAGH,oBAAoB;AAClB,OAAK,aAAa;EAClB,IAAM,EAAE,QAAK,cAAW,KAAK,OACvB,IAAc,GAAQ,OACtB,IAAa,GAAQ,MAIrB,IAAW,GAAG,IAHJ,IACZ,IAAI,KAAc,MAAM,GAAG,EAAY,QAAQ,KAAK,IAAI,KACxD,MAEE,IAAU,GAAG,EAAS;AAC5B,QAAM,EAAQ,CACX,MAAK,MAAY,EAAS,MAAM,CAAC,CACjC,MAAK,MAAgB,EAAU,YAAY,EAAa,CAAC,CACzD,MAAK,MAAO;AACX,GAAI,KAAK,cACP,KAAK,SAAS;IAAE,SAAS;IAAK,aAAa;IAAU,CAAC;IAExD,CACD,OAAM,MAAO;AACZ,GAAI,KAAK,cACP,KAAK,SAAS,EAAE,gBAAgB,IAAM,CAAC;IAEzC;;CAGN,uBAAuB;AACrB,OAAK,aAAa;;CAGpB,yBAAgC;AAC9B,OAAK,SAAS,EAAE,sBAAsB,IAAM,CAAC;;CAG/C,SAAS;EACP,IAAM,EAAE,6BAA0B,KAAK;AAYvC,SAVI,KAAK,MAAM,QAAQ,OAAO,WAAW,IAErC,kBAAC,OAAD;GAAK,WAAU;aAAf,CACG,GACD,kBAAC,OAAD;IAAK,OAAO;KAAE,WAAW;KAAQ,WAAW;KAAU;cAAE;IAElD,CAAA,CACF;OAIR,kBAAA,GAAA,EAAA,UAAA,CACG,KAAK,MAAM,gBACV,kBAAC,OAAD;GAAK,WAAU;aAAf,CACG,CAAC,KAAK,MAAM,wBACX,kBAAC,KAAD;IACE,WAAU;IACV,SAAS,KAAK;cAFhB,CAIE,kBAAC,GAAD,EAAe,OAAM,qBAAsB,CAAA,EAAA,oBAEzC;OAEL,KAAK,MAAM,wBACV,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD,EAAe,OAAM,qBAAsB,CAAA;KAC3C,kBAAC,KAAD,EAAA,UAAA;MAAG;MACyB,KAAK,MAAM;MAAkB;MAKrD,EAAA,CAAA;KACJ,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,GAAD,EAAoB,KAAK,KAAK,MAAM,cAAgB,CAAA;MAChD,CAAA;KACF;MAEJ;MAER,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,OAAD;KAAK,WAAU;eACZ,KAAK,MAAM,QAAQ,SAClB,KAAK,MAAM,QAAQ,MAAM,KAAK,GAAW,MAAe;AAElD,iBAAS,KAAK,MAAM,aAIxB,QACE,kBAAC,OAAD;OAAqB,WAAW;iBAC9B,kBAAC,OAAD,EAAA,UAAA;QACG,KAAK,MAAM,mBACV,KAAK,MAAM,gBAAgB,SAAS,KAClC,kBAAC,OAAD;SAAK,WAAU;mBACZ,EAAK,WAAc,KAAK,MAAyB;UAEhD,IAAM,IACJ,EAAa,aAAa;AAW5B,iBAVwB,KAAK,MAAM,iBAEhB,WACf,MACE,MACA,EAAK,aAAa,CACrB,KAAK,KAEC,kBAAA,GAAA,EAAK,CAAA,GAGZ,kBAAC,KAAD;WACE,MAAM,GACJ,KAAK,MAAM,QAAQ,KACpB,OAAO,EAAa,QAAQ,KAAK,IAAI;WACtC,WAAU;WAEV,QAAO;WACP,KAAI;qBAEJ,kBAAC,OAAD;YAAK,WAAU;sBACZ;YACG,CAAA;WACJ,EAPG,GAAG,EAAK,KAAK,GAAG,IAOnB;WAEN;SACE,CAAA;QAEV,kBAAC,KAAD;SAAG,WAAU;mBACV,EAAM,EAAK,QAAW,CAAC,OAAO,YAAY;SACzC,CAAA;QACJ,kBAAC,KAAD;SAAG,WAAU;mBAAiB,EAAK;SAAa,CAAA;QAChD,kBAAC,OAAD;SAAK,WAAU;mBACZ,EAAK,eAAkB,QAAQ,mBAAmB,IAAI;SACnD,CAAA;QACN,kBAAC,KAAD;SACE,WAAU;SACV,MAAM,EAAK;SACX,QAAO;SACP,KAAI;mBACL;SAEG,CAAA;QACA,EAAA,CAAA;OACF,EArDI,EAAK,KAqDT;OAER;KACA,CAAA;IACL,KAAK,MAAM,QAAQ,SAClB,KAAK,MAAM,QAAQ,MAAM,SAAS,KAAK,MAAM,eAC7C,KAAK,MAAM,eACT,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,GAAD;MACE,OAAM;MACN,SAAQ;MACR,eACE,OAAO,KAAK,KAAK,MAAM,aAAa,UAAU,WAAW;MAG3D,QAAO;gBAEN,KAAyB;MACd,CAAA;KACV,CAAA;IAET,KAAK,MAAM,kBACV,kBAAC,OAAD,EAAA,UAAA,CAAK,yBAAsB,KAAK,MAAM,IAAU,EAAA,CAAA;IAE9C;KACL,EAAA,CAAA"}
|
|
1
|
+
{"version":3,"file":"RssFeedCards.js","names":[],"sources":["../../../src/components/RssFeedCards/RssFeedCards.tsx"],"sourcesContent":["import NoData from '@/assets/icons/NoData'\nimport { ReactComponent as SubscribePlus } from '@/assets/icons/subscribe_plus.svg'\nimport LargeButton from '@/components/styled/LargeButton'\nimport dayjs from 'dayjs'\nimport { Component } from 'react'\nimport MailchimpSubscribe from 'react-mailchimp-subscribe'\nimport Parser from 'rss-parser'\n\nconst rssParser = new Parser()\ntype RssState = {\n rssFeed: any\n isLoadingError: boolean\n isShowingSubscribeUI: boolean\n allItemsUrl?: string\n}\n\nexport type RssFilter = {\n type?: 'tag' | 'category'\n value: string\n}\n\nexport type RssFeedCardsProps = {\n url: string\n filter?: RssFilter // optional tag or category to use as a filter\n itemsToShow: number\n allowCategories?: string[]\n mailChimpListName?: string\n mailChimpUrl?: string\n viewAllNewsButtonText?: string\n}\nexport class RssFeedCards extends Component<RssFeedCardsProps, RssState> {\n // only update the state if this component is mounted\n _isMounted = false\n\n constructor(props: RssFeedCardsProps) {\n super(props)\n this.state = {\n rssFeed: {},\n isLoadingError: false,\n isShowingSubscribeUI: false,\n }\n }\n\n componentDidMount() {\n this._isMounted = true\n const { url, filter } = this.props\n const filterValue = filter?.value\n const filterType = filter?.type\n const tagPath = filterValue\n ? `/${filterType ?? 'tag'}/${filterValue.replace(' ', '-')}`\n : ''\n const allItems = `${url}${tagPath}`\n const feedUrl = `${allItems}/?feed=rss2`\n fetch(feedUrl)\n .then(response => response.text())\n .then(responseData => rssParser.parseString(responseData))\n .then(rss => {\n if (this._isMounted) {\n this.setState({ rssFeed: rss, allItemsUrl: allItems })\n }\n })\n .catch(err => {\n if (this._isMounted) {\n this.setState({ isLoadingError: true })\n }\n })\n }\n\n componentWillUnmount() {\n this._isMounted = false\n }\n\n public onClickSubscribe = () => {\n this.setState({ isShowingSubscribeUI: true })\n }\n\n render() {\n const { viewAllNewsButtonText } = this.props\n\n if (this.state.rssFeed.items?.length === 0) {\n return (\n <div className=\"text-center SRCBorderedPanel SRCBorderedPanel--padded2x\">\n {NoData}\n <div style={{ marginTop: '20px', fontStyle: 'italic' }}>\n There are no items currently available\n </div>\n </div>\n )\n }\n return (\n <>\n {this.props.mailChimpUrl && (\n <div className=\"FeedSubscribe\">\n {!this.state.isShowingSubscribeUI && (\n <a\n className=\"FeedSubscribeToNewsLink SRC-no-border-bottom-imp\"\n onClick={this.onClickSubscribe}\n >\n <SubscribePlus title=\"Subscribe to News\" />\n Subscribe to News\n </a>\n )}\n {this.state.isShowingSubscribeUI && (\n <div className=\"MailchimpSubscribeContainer\">\n <SubscribePlus title=\"Subscribe to News\" />\n <p>\n Subscribe to receive the {this.props.mailChimpListName} by\n e-mail, which provides information and updates related to the\n Portal. You can opt out at any time by using the unsubscribe\n link within the e-mail. We will not share your information\n with any third parties or use it for any other purposes.\n </p>\n <div className=\"SRC-marginBottomTop\">\n <MailchimpSubscribe url={this.props.mailChimpUrl} />\n </div>\n </div>\n )}\n </div>\n )}\n <div className=\"Feed\">\n <div className=\"FeedItems\">\n {this.state.rssFeed.items &&\n this.state.rssFeed.items.map((item: any, index: any) => {\n // The other is to hide the large number of items in a particular feed (usually a max of 10 are returned). See state.isShowingMoreItems\n if (index >= this.props.itemsToShow) {\n return\n }\n\n return (\n <div key={item.guid} className={`FeedItem`}>\n <div>\n {this.props.allowCategories &&\n this.props.allowCategories.length > 0 && (\n <div className=\"FeedItemCategories\">\n {item['categories'].map((categoryName: string) => {\n // are we allowed to show this category/tag?\n const categoryNameLowerCase =\n categoryName.toLowerCase()\n const allowCategories = this.props.allowCategories\n if (\n allowCategories?.findIndex(\n item =>\n categoryNameLowerCase ===\n item.toLowerCase(),\n ) === -1\n )\n return <></>\n // else\n return (\n <a\n href={`${\n this.state.rssFeed.link\n }/tag/${categoryName.replace(' ', '-')}`}\n className=\"SRC-no-border-bottom-imp\"\n key={`${item.guid}_${categoryName}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <div className=\"FeedItemCategory\">\n {categoryName}\n </div>\n </a>\n )\n })}\n </div>\n )}\n <p className=\"FeedItemDate\">\n {dayjs(item['isoDate']).format('MMMM YYYY')}\n </p>\n <p className=\"FeedItemTitle\">{item['title']}</p>\n <div className=\"FeedItemDescription\">\n {item['contentSnippet'].replace(/\\[...\\]|\\[…\\]/gm, '…')}\n </div>\n <a\n className=\"FeedItemLink\"\n href={item['link']}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Continue reading\n </a>\n </div>\n </div>\n )\n })}\n </div>\n {this.state.rssFeed.items &&\n this.state.rssFeed.items.length > this.props.itemsToShow &&\n this.state.allItemsUrl && (\n <div className=\"FeedViewAllNewsButtonContainer\">\n <LargeButton\n color=\"secondary\"\n variant=\"contained\"\n onClick={() =>\n window.open(this.state.allItemsUrl, '_blank', 'noopener')\n }\n // @ts-expect-error - target prop exists, but TS doesn't recognize on styled component\n target=\"_blank\"\n >\n {viewAllNewsButtonText ?? 'View All News'}\n </LargeButton>\n </div>\n )}\n {this.state.isLoadingError && (\n <div>Unable to load feed: {this.props.url}</div>\n )}\n </div>\n </>\n )\n }\n}\n\nexport default RssFeedCards\n"],"mappings":";;;;;;;;;AAQA,IAAM,IAAY,IAAI,EAAO,GAsBhB,IAAb,cAAkC,EAAuC;CAEvE,aAAa;CAEb,YAAY,GAA0B;EAEpC,AADA,MAAM,CAAK,GACX,KAAK,QAAQ;GACX,SAAS,CAAC;GACV,gBAAgB;GAChB,sBAAsB;EACxB;CACF;CAEA,oBAAoB;EAClB,KAAK,aAAa;EAClB,IAAM,EAAE,QAAK,cAAW,KAAK,OACvB,IAAc,GAAQ,OACtB,IAAa,GAAQ,MAIrB,IAAW,GAAG,IAHJ,IACZ,IAAI,KAAc,MAAM,GAAG,EAAY,QAAQ,KAAK,GAAG,MACvD,MAEE,IAAU,GAAG,EAAS;EAC5B,MAAM,CAAO,EACV,MAAK,MAAY,EAAS,KAAK,CAAC,EAChC,MAAK,MAAgB,EAAU,YAAY,CAAY,CAAC,EACxD,MAAK,MAAO;GACX,AAAI,KAAK,cACP,KAAK,SAAS;IAAE,SAAS;IAAK,aAAa;GAAS,CAAC;EAEzD,CAAC,EACA,OAAM,MAAO;GACZ,AAAI,KAAK,cACP,KAAK,SAAS,EAAE,gBAAgB,GAAK,CAAC;EAE1C,CAAC;CACL;CAEA,uBAAuB;EACrB,KAAK,aAAa;CACpB;CAEA,yBAAgC;EAC9B,KAAK,SAAS,EAAE,sBAAsB,GAAK,CAAC;CAC9C;CAEA,SAAS;EACP,IAAM,EAAE,6BAA0B,KAAK;EAYvC,OAVI,KAAK,MAAM,QAAQ,OAAO,WAAW,IAErC,kBAAC,OAAD;GAAK,WAAU;aAAf,CACG,GACD,kBAAC,OAAD;IAAK,OAAO;KAAE,WAAW;KAAQ,WAAW;IAAS;cAAG;GAEnD,CAAA,CACF;OAIP,kBAAA,GAAA,EAAA,UAAA,CACG,KAAK,MAAM,gBACV,kBAAC,OAAD;GAAK,WAAU;aAAf,CACG,CAAC,KAAK,MAAM,wBACX,kBAAC,KAAD;IACE,WAAU;IACV,SAAS,KAAK;cAFhB,CAIE,kBAAC,GAAD,EAAe,OAAM,oBAAqB,CAAA,GAAC,mBAE1C;OAEJ,KAAK,MAAM,wBACV,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD,EAAe,OAAM,oBAAqB,CAAA;KAC1C,kBAAC,KAAD,EAAA,UAAA;MAAG;MACyB,KAAK,MAAM;MAAkB;KAKtD,EAAA,CAAA;KACH,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,GAAD,EAAoB,KAAK,KAAK,MAAM,aAAe,CAAA;KAChD,CAAA;IACF;KAEJ;MAEP,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,OAAD;KAAK,WAAU;eACZ,KAAK,MAAM,QAAQ,SAClB,KAAK,MAAM,QAAQ,MAAM,KAAK,GAAW,MAAe;MAElD,WAAS,KAAK,MAAM,cAIxB,OACE,kBAAC,OAAD;OAAqB,WAAW;iBAC9B,kBAAC,OAAD,EAAA,UAAA;QACG,KAAK,MAAM,mBACV,KAAK,MAAM,gBAAgB,SAAS,KAClC,kBAAC,OAAD;SAAK,WAAU;mBACZ,EAAK,WAAc,KAAK,MAAyB;UAEhD,IAAM,IACJ,EAAa,YAAY;UAW3B,OAVwB,KAAK,MAAM,iBAEhB,WACf,MACE,MACA,EAAK,YAAY,CACrB,MAAM,KAEC,kBAAA,GAAA,CAAI,CAAA,IAGX,kBAAC,KAAD;WACE,MAAM,GACJ,KAAK,MAAM,QAAQ,KACpB,OAAO,EAAa,QAAQ,KAAK,GAAG;WACrC,WAAU;WAEV,QAAO;WACP,KAAI;qBAEJ,kBAAC,OAAD;YAAK,WAAU;sBACZ;WACE,CAAA;UACJ,GAPI,GAAG,EAAK,KAAK,GAAG,GAOpB;SAEP,CAAC;QACE,CAAA;QAET,kBAAC,KAAD;SAAG,WAAU;mBACV,EAAM,EAAK,OAAU,EAAE,OAAO,WAAW;QACzC,CAAA;QACH,kBAAC,KAAD;SAAG,WAAU;mBAAiB,EAAK;QAAY,CAAA;QAC/C,kBAAC,OAAD;SAAK,WAAU;mBACZ,EAAK,eAAkB,QAAQ,mBAAmB,GAAG;QACnD,CAAA;QACL,kBAAC,KAAD;SACE,WAAU;SACV,MAAM,EAAK;SACX,QAAO;SACP,KAAI;mBACL;QAEE,CAAA;OACA,EAAA,CAAA;MACF,GArDK,EAAK,IAqDV;KAET,CAAC;IACA,CAAA;IACJ,KAAK,MAAM,QAAQ,SAClB,KAAK,MAAM,QAAQ,MAAM,SAAS,KAAK,MAAM,eAC7C,KAAK,MAAM,eACT,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,GAAD;MACE,OAAM;MACN,SAAQ;MACR,eACE,OAAO,KAAK,KAAK,MAAM,aAAa,UAAU,UAAU;MAG1D,QAAO;gBAEN,KAAyB;KACf,CAAA;IACV,CAAA;IAER,KAAK,MAAM,kBACV,kBAAC,OAAD,EAAA,UAAA,CAAK,yBAAsB,KAAK,MAAM,GAAS,EAAA,CAAA;GAE9C;IACL,EAAA,CAAA;CAEN;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SageResourcesPopover.js","names":[],"sources":["../../../src/components/SageResourcesPopover/SageResourcesPopover.tsx"],"sourcesContent":["import { useSourceAppConfigs } from '@/utils/hooks'\nimport { Box, Button, Grid, Popover, Typography, useTheme } from '@mui/material'\nimport {\n ColumnSingleValueQueryFilter,\n ColumnSingleValueFilterOperator,\n} from '@sage-bionetworks/synapse-types'\n\nexport type SageResourcesPopoverProps = {\n sourceAppConfigTableID?: string\n anchorEl: HTMLElement | null\n onClose: () => void\n resourceName?: string\n description?: string\n filterByType?: 'SynapsePortal' | 'SageSolution'\n allResourcesUrl?: string\n}\n\nexport function SageResourcesPopover({\n sourceAppConfigTableID = 'syn45291362',\n anchorEl,\n onClose,\n resourceName = 'Portals',\n description = 'Sage Bionetworks builds and supports community portals as tailored platforms for data sharing and collaboration across diverse research areas.',\n filterByType,\n allResourcesUrl,\n}: SageResourcesPopoverProps) {\n const theme = useTheme()\n const open = Boolean(anchorEl)\n const hostname = typeof window !== 'undefined' ? window.location.hostname : ''\n\n const additionalFilters: ColumnSingleValueQueryFilter[] = [\n {\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter',\n columnName: 'isPublicized',\n operator: ColumnSingleValueFilterOperator.EQUAL,\n values: ['true'],\n },\n ]\n if (filterByType) {\n additionalFilters.push({\n isDefiningCondition: false,\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter',\n columnName: 'portalType',\n operator: ColumnSingleValueFilterOperator.EQUAL,\n values: [filterByType],\n })\n }\n const sourceAppConfigs = useSourceAppConfigs(\n sourceAppConfigTableID,\n additionalFilters,\n )\n\n return (\n <Popover\n open={open}\n anchorEl={anchorEl}\n onClose={onClose}\n sx={{ width: '90%', height: '90%' }}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'center' }}\n transformOrigin={{ vertical: 'top', horizontal: 'center' }}\n >\n <Grid container spacing={2} sx={{ p: '24px' }}>\n <Grid size={{ xs: 12, lg: 3 }}>\n <Box sx={{ p: theme.spacing(4), pr: '5px' }}>\n <Typography\n variant=\"headline1\"\n sx={{ fontSize: '30px', pb: '30px', fontWeight: 600 }}\n >\n {resourceName}\n </Typography>\n <Typography variant=\"body1\" sx={{ pb: '10px', fontWeight: 500 }}>\n {description}\n </Typography>\n {allResourcesUrl && (\n <Button\n type=\"button\"\n color=\"primary\"\n variant=\"contained\"\n sx={{\n p: '10px 50px',\n mt: '30px',\n height: '100%',\n '&:hover': { color: 'white' },\n }}\n href={allResourcesUrl}\n >\n See all {resourceName}\n </Button>\n )}\n </Box>\n </Grid>\n\n <Grid size={{ xs: 12, lg: 9 }}>\n <Grid container>\n {sourceAppConfigs\n ?.filter(config => {\n if (config.appURL.toLowerCase().startsWith('http')) {\n const url = new URL(config.appURL)\n return url.hostname !== hostname\n }\n return true\n })\n .map(config => (\n <Grid\n key={config.appId}\n size={{ xs: 12, sm: 6, lg: 4 }}\n className=\"sourceAppItem\"\n sx={{\n p: '30px',\n border: '1px solid #F1F3F5',\n '&:hover': {\n backgroundColor: '#d7dee433',\n cursor: 'pointer',\n },\n }}\n >\n <div\n onClick={() => {\n window.open(config.appURL, '_blank')\n onClose()\n }}\n >\n <Box\n sx={{\n pb: '10px',\n img: {\n maxHeight: '50px',\n height: '50px',\n maxWidth: '100%',\n },\n }}\n >\n {config.logo}\n </Box>\n <Typography variant=\"body1\" sx={{ fontWeight: 500 }}>\n {config.shortDescription}\n </Typography>\n </div>\n </Grid>\n ))}\n </Grid>\n </Grid>\n </Grid>\n </Popover>\n )\n}\n"],"mappings":";;;;;;AAiBA,SAAgB,EAAqB,EACnC,4BAAyB,eACzB,aACA,YACA,kBAAe,WACf,iBAAc,kJACd,iBACA,sBAC4B;CAC5B,IAAM,IAAQ,
|
|
1
|
+
{"version":3,"file":"SageResourcesPopover.js","names":[],"sources":["../../../src/components/SageResourcesPopover/SageResourcesPopover.tsx"],"sourcesContent":["import { useSourceAppConfigs } from '@/utils/hooks'\nimport { Box, Button, Grid, Popover, Typography, useTheme } from '@mui/material'\nimport {\n ColumnSingleValueQueryFilter,\n ColumnSingleValueFilterOperator,\n} from '@sage-bionetworks/synapse-types'\n\nexport type SageResourcesPopoverProps = {\n sourceAppConfigTableID?: string\n anchorEl: HTMLElement | null\n onClose: () => void\n resourceName?: string\n description?: string\n filterByType?: 'SynapsePortal' | 'SageSolution'\n allResourcesUrl?: string\n}\n\nexport function SageResourcesPopover({\n sourceAppConfigTableID = 'syn45291362',\n anchorEl,\n onClose,\n resourceName = 'Portals',\n description = 'Sage Bionetworks builds and supports community portals as tailored platforms for data sharing and collaboration across diverse research areas.',\n filterByType,\n allResourcesUrl,\n}: SageResourcesPopoverProps) {\n const theme = useTheme()\n const open = Boolean(anchorEl)\n const hostname = typeof window !== 'undefined' ? window.location.hostname : ''\n\n const additionalFilters: ColumnSingleValueQueryFilter[] = [\n {\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter',\n columnName: 'isPublicized',\n operator: ColumnSingleValueFilterOperator.EQUAL,\n values: ['true'],\n },\n ]\n if (filterByType) {\n additionalFilters.push({\n isDefiningCondition: false,\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter',\n columnName: 'portalType',\n operator: ColumnSingleValueFilterOperator.EQUAL,\n values: [filterByType],\n })\n }\n const sourceAppConfigs = useSourceAppConfigs(\n sourceAppConfigTableID,\n additionalFilters,\n )\n\n return (\n <Popover\n open={open}\n anchorEl={anchorEl}\n onClose={onClose}\n sx={{ width: '90%', height: '90%' }}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'center' }}\n transformOrigin={{ vertical: 'top', horizontal: 'center' }}\n >\n <Grid container spacing={2} sx={{ p: '24px' }}>\n <Grid size={{ xs: 12, lg: 3 }}>\n <Box sx={{ p: theme.spacing(4), pr: '5px' }}>\n <Typography\n variant=\"headline1\"\n sx={{ fontSize: '30px', pb: '30px', fontWeight: 600 }}\n >\n {resourceName}\n </Typography>\n <Typography variant=\"body1\" sx={{ pb: '10px', fontWeight: 500 }}>\n {description}\n </Typography>\n {allResourcesUrl && (\n <Button\n type=\"button\"\n color=\"primary\"\n variant=\"contained\"\n sx={{\n p: '10px 50px',\n mt: '30px',\n height: '100%',\n '&:hover': { color: 'white' },\n }}\n href={allResourcesUrl}\n >\n See all {resourceName}\n </Button>\n )}\n </Box>\n </Grid>\n\n <Grid size={{ xs: 12, lg: 9 }}>\n <Grid container>\n {sourceAppConfigs\n ?.filter(config => {\n if (config.appURL.toLowerCase().startsWith('http')) {\n const url = new URL(config.appURL)\n return url.hostname !== hostname\n }\n return true\n })\n .map(config => (\n <Grid\n key={config.appId}\n size={{ xs: 12, sm: 6, lg: 4 }}\n className=\"sourceAppItem\"\n sx={{\n p: '30px',\n border: '1px solid #F1F3F5',\n '&:hover': {\n backgroundColor: '#d7dee433',\n cursor: 'pointer',\n },\n }}\n >\n <div\n onClick={() => {\n window.open(config.appURL, '_blank')\n onClose()\n }}\n >\n <Box\n sx={{\n pb: '10px',\n img: {\n maxHeight: '50px',\n height: '50px',\n maxWidth: '100%',\n },\n }}\n >\n {config.logo}\n </Box>\n <Typography variant=\"body1\" sx={{ fontWeight: 500 }}>\n {config.shortDescription}\n </Typography>\n </div>\n </Grid>\n ))}\n </Grid>\n </Grid>\n </Grid>\n </Popover>\n )\n}\n"],"mappings":";;;;;;AAiBA,SAAgB,EAAqB,EACnC,4BAAyB,eACzB,aACA,YACA,kBAAe,WACf,iBAAc,kJACd,iBACA,sBAC4B;CAC5B,IAAM,IAAQ,EAAS,GACjB,IAAO,EAAQ,GACf,IAAW,OAAO,SAAW,MAAc,OAAO,SAAS,WAAW,IAEtE,IAAoD,CACxD;EACE,cACE;EACF,YAAY;EACZ,UAAU,EAAgC;EAC1C,QAAQ,CAAC,MAAM;CACjB,CACF;CACA,AAAI,KACF,EAAkB,KAAK;EACrB,qBAAqB;EACrB,cACE;EACF,YAAY;EACZ,UAAU,EAAgC;EAC1C,QAAQ,CAAC,CAAY;CACvB,CAAC;CAEH,IAAM,IAAmB,EACvB,GACA,CACF;CAEA,OACE,kBAAC,GAAD;EACQ;EACI;EACD;EACT,IAAI;GAAE,OAAO;GAAO,QAAQ;EAAM;EAClC,cAAc;GAAE,UAAU;GAAU,YAAY;EAAS;EACzD,iBAAiB;GAAE,UAAU;GAAO,YAAY;EAAS;YAEzD,kBAAC,GAAD;GAAM,WAAA;GAAU,SAAS;GAAG,IAAI,EAAE,GAAG,OAAO;aAA5C,CACE,kBAAC,GAAD;IAAM,MAAM;KAAE,IAAI;KAAI,IAAI;IAAE;cAC1B,kBAAC,GAAD;KAAK,IAAI;MAAE,GAAG,EAAM,QAAQ,CAAC;MAAG,IAAI;KAAM;eAA1C;MACE,kBAAC,GAAD;OACE,SAAQ;OACR,IAAI;QAAE,UAAU;QAAQ,IAAI;QAAQ,YAAY;OAAI;iBAEnD;MACS,CAAA;MACZ,kBAAC,GAAD;OAAY,SAAQ;OAAQ,IAAI;QAAE,IAAI;QAAQ,YAAY;OAAI;iBAC3D;MACS,CAAA;MACX,KACC,kBAAC,GAAD;OACE,MAAK;OACL,OAAM;OACN,SAAQ;OACR,IAAI;QACF,GAAG;QACH,IAAI;QACJ,QAAQ;QACR,WAAW,EAAE,OAAO,QAAQ;OAC9B;OACA,MAAM;iBAVR,CAWC,YACU,CACH;;KAEP;;GACD,CAAA,GAEN,kBAAC,GAAD;IAAM,MAAM;KAAE,IAAI;KAAI,IAAI;IAAE;cAC1B,kBAAC,GAAD;KAAM,WAAA;eACH,GACG,QAAO,MACH,EAAO,OAAO,YAAY,EAAE,WAAW,MAAM,IAExC,IADS,IAAI,EAAO,MACpB,EAAI,aAAa,IAEnB,EACR,EACA,KAAI,MACH,kBAAC,GAAD;MAEE,MAAM;OAAE,IAAI;OAAI,IAAI;OAAG,IAAI;MAAE;MAC7B,WAAU;MACV,IAAI;OACF,GAAG;OACH,QAAQ;OACR,WAAW;QACT,iBAAiB;QACjB,QAAQ;OACV;MACF;gBAEA,kBAAC,OAAD;OACE,eAAe;QAEb,AADA,OAAO,KAAK,EAAO,QAAQ,QAAQ,GACnC,EAAQ;OACV;iBAJF,CAME,kBAAC,GAAD;QACE,IAAI;SACF,IAAI;SACJ,KAAK;UACH,WAAW;UACX,QAAQ;UACR,UAAU;SACZ;QACF;kBAEC,EAAO;OACL,CAAA,GACL,kBAAC,GAAD;QAAY,SAAQ;QAAQ,IAAI,EAAE,YAAY,IAAI;kBAC/C,EAAO;OACE,CAAA,CACT;;KACD,GAlCC,EAAO,KAkCR,CACP;IACC,CAAA;GACF,CAAA,CACF;;CACC,CAAA;AAEb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnnotationEditorUtils.js","names":[],"sources":["../../../src/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.ts"],"sourcesContent":["import { AdditionalPropertiesSchemaField } from '@/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField'\nimport {\n englishStringTranslator,\n RJSFValidationError,\n TranslatableString,\n} from '@rjsf/utils'\nimport { JSONSchema7 } from 'json-schema'\nimport { JSONPath } from 'jsonpath-plus'\nimport { flatMap, groupBy, isEmpty, isObject } from 'lodash-es'\n\n/**\n * Generates a JSON schema for the form UI based on the provided validation schema and entity schema base properties.\n *\n * To meet the requirements of the desired form to display, we cannot simply show the validation schema. This is because\n * validation schemas may use conditional logic based on default entity properties (e.g. concreteType) to show/hide fields.\n * This method combines the validation schema with the entity schema base properties to create a new schema that will yield\n * the expected form with desired logic.\n * @param validationSchema\n * @param entitySchema\n */\nexport function getJsonSchemaForForm(\n validationSchema: JSONSchema7 = {},\n entitySchema: JSONSchema7 = {},\n): JSONSchema7 {\n const entitySchemaProperties =\n getPossibleTopLevelPropertiesInObjectSchema(entitySchema)\n\n return {\n $schema: 'http://json-schema.org/draft-07/schema#',\n // Spread the validation schema to ensure all other references are included\n // Top level properties like \"$defs\" get lost if we simply put the entire schema in `allOf`\n ...validationSchema,\n // JSON Schemas for Synapse types use \"definitions\", so it should be manually merged.\n definitions: {\n ...entitySchema.definitions,\n ...validationSchema.definitions,\n },\n allOf: [\n ...(validationSchema.allOf || []),\n // Add in the entity properties\n {\n type: 'object',\n properties: entitySchemaProperties,\n },\n ],\n // Always allow adding additional annotations (though it may violate the validationSchema)\n additionalProperties: true,\n }\n}\n\n/**\n * Generates the UiSchema for the annotations editor.\n * @param entitySchemaBaseProperties\n */\nexport function getUiSchemaForForm(\n entitySchemaBaseProperties: JSONSchema7['properties'] = {},\n) {\n // Each 'base' entity field (id, name, concreteType, etc.) should be hidden\n const uiSchemaWithHiddenEntityProperties = Object.keys(\n entitySchemaBaseProperties,\n ).reduce((prev, curr) => ({ ...prev, [curr]: { 'ui:widget': 'hidden' } }), {})\n\n return {\n ...uiSchemaWithHiddenEntityProperties,\n 'ui:globalOptions': {\n copyable: false, // copy button clutters the UI, is not very useful since schemas are flat objects\n duplicateKeySuffixSeparator: '_', // the default duplicateKeySuffixSeparator creates invalid annotation keys\n },\n additionalProperties: {\n 'ui:field': AdditionalPropertiesSchemaField,\n },\n }\n}\n/**\n * Strips null values from arrays in the provided form data. If the array is empty after\n * removing null values, the key is removed from the form data.\n *\n * This allows users to submit forms with empty array fields (SWC-5762)\n */\nexport function dropNullishArrayValues(\n formData: Record<string, unknown>,\n): Record<string, unknown> {\n const newFormData: Record<string, unknown> = {}\n Object.keys(formData).forEach(key => {\n let value = formData[key]\n if (Array.isArray(value)) {\n value = value.filter((item: any) => item != null)\n if (!isEmpty(value)) {\n newFormData[key] = value\n }\n } else {\n newFormData[key] = value\n }\n })\n return newFormData\n}\n\nexport function dropNullValues(\n formData: Record<string, unknown> = {},\n): Record<string, unknown> {\n return Object.keys(formData).reduce(\n (acc: Record<string, unknown>, key: string) => {\n if (formData[key] !== null) {\n acc[key] = formData[key]\n }\n return acc\n },\n {},\n )\n}\n\n/**\n * Inspects the property of the AjvError and modifies it to be comparable to simple key strings, like entity property keys.\n * @param error\n * @returns\n */\nexport function getFriendlyPropertyName(error: RJSFValidationError): string {\n if (error.property?.startsWith('[')) {\n // Additional properties are surrounded by brackets and quotations, so let's remove them\n return error.property.substring(2, error.property.length - 2)\n } else if (error.property?.startsWith('.')) {\n return error.property.substring(1)\n } else {\n return error.property || ''\n }\n}\n\nexport function transformErrors(\n errors: RJSFValidationError[],\n): RJSFValidationError[] {\n // Transform the errors in the following ways:\n // - Simplify the set of errors when failing to select an enumeration defined with an anyOf (SWC-5724)\n // - Show a custom error message when using a property that collides with an internal entity property (SWC-5678)\n\n // Fixing anyOf errors\n // Group the errors by the property that the error applies to\n const grouped = groupBy(errors, error => error.property)\n Object.keys(grouped).map(property => {\n const errorGroup = grouped[property]\n\n // First, see if it is an anyOf error\n const hasAnyOfError = errorGroup.some(\n e => e.message === 'should match some schema in anyOf',\n )\n\n // We determine if it's an anyOf *enum* error if all error messages in the property match one of these three messages:\n const isEnumError =\n hasAnyOfError &&\n errorGroup.every(error => {\n if (error.message === 'should be string') {\n return true\n } else if (error.message === 'should be equal to constant') {\n return true\n } else if (error.message === 'should match some schema in anyOf') {\n return true\n } else {\n return false\n }\n })\n\n // If it's an anyOf enum error, we just modify the first message and drop the rest\n if (isEnumError && errorGroup.length > 0) {\n errorGroup[0].message = 'should be equal to one of the allowed values'\n grouped[property] = [errorGroup[0]]\n }\n })\n\n // Ungroup the errors after potentially modifying them\n errors = flatMap(grouped)\n\n // Return the transformed errors.\n return errors\n}\n\n/**\n * Custom annotations in Synapse are always arrays. This function converts initial data to be an array type.\n * If the initial data is an array, return the data itself.\n * Otherwise, wrap the data in an array.\n */\nexport function convertToArray<T>(value: T): Array<unknown> {\n if (Array.isArray(value)) {\n return value\n } else {\n return [value]\n }\n}\n\n/**\n * Returns true if the default behavior of the form should be to live validate\n * @param existingAnnotations\n * @param validationSchema\n */\nexport function shouldLiveValidate(\n existingAnnotations: Record<string, unknown> | undefined,\n validationSchema: JSONSchema7 | undefined,\n): boolean {\n const hasExistingAnnotations =\n existingAnnotations && Object.keys(existingAnnotations).length > 0\n return Boolean(hasExistingAnnotations && validationSchema)\n}\n\n/**\n * Returns all possible properties in the schema, including those in nested schemas/definitions. Note that this function\n * only works for 'flat objects', i.e. the schema must\n * - define an object AND\n * - the properties of the object cannot be objects\n * which is compatible with how Synapse Annotations are defined.\n * @param resolvedSchema\n */\nexport function getPossibleTopLevelPropertiesInObjectSchema(\n resolvedSchema: JSONSchema7,\n): JSONSchema7['properties'] {\n const allProperties = {}\n const foundPropertiesObjects = JSONPath({\n path: '$..properties',\n json: resolvedSchema,\n })\n for (const propertiesObject of foundPropertiesObjects) {\n Object.assign(allProperties, propertiesObject)\n }\n // Use the schema.properties to override any properties defined in definitions\n if (isObject(resolvedSchema.properties)) {\n Object.assign(allProperties, resolvedSchema.properties)\n }\n return allProperties\n}\n\n/**\n * Get the Synapse entity schema ID for a particular concrete type.\n * @param concreteType\n */\nexport function getSchemaIdForConcreteType(\n concreteType: string,\n): string | null {\n if (!concreteType || !concreteType.startsWith('org.sagebionetworks')) {\n return null\n }\n // e.g. 'org.sagebionetworks.repo.model.FileEntity' -> 'org.sagebionetworks-repo.model.FileEntity'\n return (\n 'org.sagebionetworks-' +\n concreteType.substring('org.sagebionetworks'.length + 1)\n )\n}\n\n/**\n * Custom string translator for react-jsonschema-form.\n * Overrides the translation for \"NewStringDefault\" by returning an empty string.\n * For all other keys, falls back to the default English string translator.\n *\n * @param stringToTranslate\n * @param params - Optional parameters used to format the translated string.\n * @returns - The translated string.\n */\nexport function customTranslateString(\n stringToTranslate: TranslatableString,\n params?: string[],\n): string {\n switch (stringToTranslate) {\n case TranslatableString.NewStringDefault:\n return ''\n default:\n return englishStringTranslator(stringToTranslate, params)\n }\n}\n"],"mappings":";;;;;AAoBA,SAAgB,EACd,IAAgC,EAAE,EAClC,IAA4B,EAAE,EACjB;CACb,IAAM,IACJ,EAA4C,EAAa;AAE3D,QAAO;EACL,SAAS;EAGT,GAAG;EAEH,aAAa;GACX,GAAG,EAAa;GAChB,GAAG,EAAiB;GACrB;EACD,OAAO,CACL,GAAI,EAAiB,SAAS,EAAE,EAEhC;GACE,MAAM;GACN,YAAY;GACb,CACF;EAED,sBAAsB;EACvB;;AAOH,SAAgB,EACd,IAAwD,EAAE,EAC1D;AAMA,QAAO;EACL,GALyC,OAAO,KAChD,EACD,CAAC,QAAQ,GAAM,OAAU;GAAE,GAAG;IAAO,IAAO,EAAE,aAAa,UAAU;GAAE,GAAG,EAAE,CAGxE;EACH,oBAAoB;GAClB,UAAU;GACV,6BAA6B;GAC9B;EACD,sBAAsB,EACpB,YAAY,GACb;EACF;;AAQH,SAAgB,EACd,GACyB;CACzB,IAAM,IAAuC,EAAE;AAY/C,QAXA,OAAO,KAAK,EAAS,CAAC,SAAQ,MAAO;EACnC,IAAI,IAAQ,EAAS;AACrB,EAAI,MAAM,QAAQ,EAAM,IACtB,IAAQ,EAAM,QAAQ,MAAc,KAAQ,KAAK,EAC5C,EAAQ,EAAM,KACjB,EAAY,KAAO,MAGrB,EAAY,KAAO;GAErB,EACK;;AAGT,SAAgB,EACd,IAAoC,EAAE,EACb;AACzB,QAAO,OAAO,KAAK,EAAS,CAAC,QAC1B,GAA8B,OACzB,EAAS,OAAS,SACpB,EAAI,KAAO,EAAS,KAEf,IAET,EAAE,CACH;;AAQH,SAAgB,EAAwB,GAAoC;AAOxE,QANE,EAAM,UAAU,WAAW,IAAI,GAE1B,EAAM,SAAS,UAAU,GAAG,EAAM,SAAS,SAAS,EAAE,GACpD,EAAM,UAAU,WAAW,IAAI,GACjC,EAAM,SAAS,UAAU,EAAE,GAE3B,EAAM,YAAY;;AAI7B,SAAgB,EACd,GACuB;CAOvB,IAAM,IAAU,EAAQ,IAAQ,MAAS,EAAM,SAAS;AAmCxD,QAlCA,OAAO,KAAK,EAAQ,CAAC,KAAI,MAAY;EACnC,IAAM,IAAa,EAAQ;AAuB3B,EApBsB,EAAW,MAC/B,MAAK,EAAE,YAAY,oCAKnB,IACA,EAAW,OAAM,MACX,EAAM,YAAY,sBAEX,EAAM,YAAY,gCADpB,KAGE,EAAM,YAAY,oCAK7B,IAGe,EAAW,SAAS,MACrC,EAAW,GAAG,UAAU,gDACxB,EAAQ,KAAY,CAAC,EAAW,GAAG;GAErC,EAGF,IAAS,EAAQ,EAAQ,EAGlB;;AAQT,SAAgB,EAAkB,GAA0B;AAIxD,QAHE,MAAM,QAAQ,EAAM,GACf,IAEA,CAAC,EAAM;;AASlB,SAAgB,EACd,GACA,GACS;AAGT,QAAO,GADL,KAAuB,OAAO,KAAK,EAAoB,CAAC,SAAS,KAC1B;;AAW3C,SAAgB,EACd,GAC2B;CAC3B,IAAM,IAAgB,EAAE,EAClB,IAAyB,EAAS;EACtC,MAAM;EACN,MAAM;EACP,CAAC;AACF,MAAK,IAAM,KAAoB,EAC7B,QAAO,OAAO,GAAe,EAAiB;AAMhD,QAHI,EAAS,EAAe,WAAW,IACrC,OAAO,OAAO,GAAe,EAAe,WAAW,EAElD;;AAOT,SAAgB,EACd,GACe;AAKf,QAJI,CAAC,KAAgB,CAAC,EAAa,WAAW,sBAAsB,GAC3D,OAIP,yBACA,EAAa,UAAU,GAAiC;;AAa5D,SAAgB,EACd,GACA,GACQ;AACR,SAAQ,GAAR;EACE,KAAK,EAAmB,iBACtB,QAAO;EACT,QACE,QAAO,EAAwB,GAAmB,EAAO"}
|
|
1
|
+
{"version":3,"file":"AnnotationEditorUtils.js","names":[],"sources":["../../../src/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.ts"],"sourcesContent":["import { AdditionalPropertiesSchemaField } from '@/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField'\nimport {\n englishStringTranslator,\n RJSFValidationError,\n TranslatableString,\n} from '@rjsf/utils'\nimport { JSONSchema7 } from 'json-schema'\nimport { JSONPath } from 'jsonpath-plus'\nimport { flatMap, groupBy, isEmpty, isObject } from 'lodash-es'\n\n/**\n * Generates a JSON schema for the form UI based on the provided validation schema and entity schema base properties.\n *\n * To meet the requirements of the desired form to display, we cannot simply show the validation schema. This is because\n * validation schemas may use conditional logic based on default entity properties (e.g. concreteType) to show/hide fields.\n * This method combines the validation schema with the entity schema base properties to create a new schema that will yield\n * the expected form with desired logic.\n * @param validationSchema\n * @param entitySchema\n */\nexport function getJsonSchemaForForm(\n validationSchema: JSONSchema7 = {},\n entitySchema: JSONSchema7 = {},\n): JSONSchema7 {\n const entitySchemaProperties =\n getPossibleTopLevelPropertiesInObjectSchema(entitySchema)\n\n return {\n $schema: 'http://json-schema.org/draft-07/schema#',\n // Spread the validation schema to ensure all other references are included\n // Top level properties like \"$defs\" get lost if we simply put the entire schema in `allOf`\n ...validationSchema,\n // JSON Schemas for Synapse types use \"definitions\", so it should be manually merged.\n definitions: {\n ...entitySchema.definitions,\n ...validationSchema.definitions,\n },\n allOf: [\n ...(validationSchema.allOf || []),\n // Add in the entity properties\n {\n type: 'object',\n properties: entitySchemaProperties,\n },\n ],\n // Always allow adding additional annotations (though it may violate the validationSchema)\n additionalProperties: true,\n }\n}\n\n/**\n * Generates the UiSchema for the annotations editor.\n * @param entitySchemaBaseProperties\n */\nexport function getUiSchemaForForm(\n entitySchemaBaseProperties: JSONSchema7['properties'] = {},\n) {\n // Each 'base' entity field (id, name, concreteType, etc.) should be hidden\n const uiSchemaWithHiddenEntityProperties = Object.keys(\n entitySchemaBaseProperties,\n ).reduce((prev, curr) => ({ ...prev, [curr]: { 'ui:widget': 'hidden' } }), {})\n\n return {\n ...uiSchemaWithHiddenEntityProperties,\n 'ui:globalOptions': {\n copyable: false, // copy button clutters the UI, is not very useful since schemas are flat objects\n duplicateKeySuffixSeparator: '_', // the default duplicateKeySuffixSeparator creates invalid annotation keys\n },\n additionalProperties: {\n 'ui:field': AdditionalPropertiesSchemaField,\n },\n }\n}\n/**\n * Strips null values from arrays in the provided form data. If the array is empty after\n * removing null values, the key is removed from the form data.\n *\n * This allows users to submit forms with empty array fields (SWC-5762)\n */\nexport function dropNullishArrayValues(\n formData: Record<string, unknown>,\n): Record<string, unknown> {\n const newFormData: Record<string, unknown> = {}\n Object.keys(formData).forEach(key => {\n let value = formData[key]\n if (Array.isArray(value)) {\n value = value.filter((item: any) => item != null)\n if (!isEmpty(value)) {\n newFormData[key] = value\n }\n } else {\n newFormData[key] = value\n }\n })\n return newFormData\n}\n\nexport function dropNullValues(\n formData: Record<string, unknown> = {},\n): Record<string, unknown> {\n return Object.keys(formData).reduce(\n (acc: Record<string, unknown>, key: string) => {\n if (formData[key] !== null) {\n acc[key] = formData[key]\n }\n return acc\n },\n {},\n )\n}\n\n/**\n * Inspects the property of the AjvError and modifies it to be comparable to simple key strings, like entity property keys.\n * @param error\n * @returns\n */\nexport function getFriendlyPropertyName(error: RJSFValidationError): string {\n if (error.property?.startsWith('[')) {\n // Additional properties are surrounded by brackets and quotations, so let's remove them\n return error.property.substring(2, error.property.length - 2)\n } else if (error.property?.startsWith('.')) {\n return error.property.substring(1)\n } else {\n return error.property || ''\n }\n}\n\nexport function transformErrors(\n errors: RJSFValidationError[],\n): RJSFValidationError[] {\n // Transform the errors in the following ways:\n // - Simplify the set of errors when failing to select an enumeration defined with an anyOf (SWC-5724)\n // - Show a custom error message when using a property that collides with an internal entity property (SWC-5678)\n\n // Fixing anyOf errors\n // Group the errors by the property that the error applies to\n const grouped = groupBy(errors, error => error.property)\n Object.keys(grouped).map(property => {\n const errorGroup = grouped[property]\n\n // First, see if it is an anyOf error\n const hasAnyOfError = errorGroup.some(\n e => e.message === 'should match some schema in anyOf',\n )\n\n // We determine if it's an anyOf *enum* error if all error messages in the property match one of these three messages:\n const isEnumError =\n hasAnyOfError &&\n errorGroup.every(error => {\n if (error.message === 'should be string') {\n return true\n } else if (error.message === 'should be equal to constant') {\n return true\n } else if (error.message === 'should match some schema in anyOf') {\n return true\n } else {\n return false\n }\n })\n\n // If it's an anyOf enum error, we just modify the first message and drop the rest\n if (isEnumError && errorGroup.length > 0) {\n errorGroup[0].message = 'should be equal to one of the allowed values'\n grouped[property] = [errorGroup[0]]\n }\n })\n\n // Ungroup the errors after potentially modifying them\n errors = flatMap(grouped)\n\n // Return the transformed errors.\n return errors\n}\n\n/**\n * Custom annotations in Synapse are always arrays. This function converts initial data to be an array type.\n * If the initial data is an array, return the data itself.\n * Otherwise, wrap the data in an array.\n */\nexport function convertToArray<T>(value: T): Array<unknown> {\n if (Array.isArray(value)) {\n return value\n } else {\n return [value]\n }\n}\n\n/**\n * Returns true if the default behavior of the form should be to live validate\n * @param existingAnnotations\n * @param validationSchema\n */\nexport function shouldLiveValidate(\n existingAnnotations: Record<string, unknown> | undefined,\n validationSchema: JSONSchema7 | undefined,\n): boolean {\n const hasExistingAnnotations =\n existingAnnotations && Object.keys(existingAnnotations).length > 0\n return Boolean(hasExistingAnnotations && validationSchema)\n}\n\n/**\n * Returns all possible properties in the schema, including those in nested schemas/definitions. Note that this function\n * only works for 'flat objects', i.e. the schema must\n * - define an object AND\n * - the properties of the object cannot be objects\n * which is compatible with how Synapse Annotations are defined.\n * @param resolvedSchema\n */\nexport function getPossibleTopLevelPropertiesInObjectSchema(\n resolvedSchema: JSONSchema7,\n): JSONSchema7['properties'] {\n const allProperties = {}\n const foundPropertiesObjects = JSONPath({\n path: '$..properties',\n json: resolvedSchema,\n })\n for (const propertiesObject of foundPropertiesObjects) {\n Object.assign(allProperties, propertiesObject)\n }\n // Use the schema.properties to override any properties defined in definitions\n if (isObject(resolvedSchema.properties)) {\n Object.assign(allProperties, resolvedSchema.properties)\n }\n return allProperties\n}\n\n/**\n * Get the Synapse entity schema ID for a particular concrete type.\n * @param concreteType\n */\nexport function getSchemaIdForConcreteType(\n concreteType: string,\n): string | null {\n if (!concreteType || !concreteType.startsWith('org.sagebionetworks')) {\n return null\n }\n // e.g. 'org.sagebionetworks.repo.model.FileEntity' -> 'org.sagebionetworks-repo.model.FileEntity'\n return (\n 'org.sagebionetworks-' +\n concreteType.substring('org.sagebionetworks'.length + 1)\n )\n}\n\n/**\n * Custom string translator for react-jsonschema-form.\n * Overrides the translation for \"NewStringDefault\" by returning an empty string.\n * For all other keys, falls back to the default English string translator.\n *\n * @param stringToTranslate\n * @param params - Optional parameters used to format the translated string.\n * @returns - The translated string.\n */\nexport function customTranslateString(\n stringToTranslate: TranslatableString,\n params?: string[],\n): string {\n switch (stringToTranslate) {\n case TranslatableString.NewStringDefault:\n return ''\n default:\n return englishStringTranslator(stringToTranslate, params)\n }\n}\n"],"mappings":";;;;;AAoBA,SAAgB,EACd,IAAgC,CAAC,GACjC,IAA4B,CAAC,GAChB;CACb,IAAM,IACJ,EAA4C,CAAY;CAE1D,OAAO;EACL,SAAS;EAGT,GAAG;EAEH,aAAa;GACX,GAAG,EAAa;GAChB,GAAG,EAAiB;EACtB;EACA,OAAO,CACL,GAAI,EAAiB,SAAS,CAAC,GAE/B;GACE,MAAM;GACN,YAAY;EACd,CACF;EAEA,sBAAsB;CACxB;AACF;AAMA,SAAgB,EACd,IAAwD,CAAC,GACzD;CAMA,OAAO;EACL,GALyC,OAAO,KAChD,CACF,EAAE,QAAQ,GAAM,OAAU;GAAE,GAAG;IAAO,IAAO,EAAE,aAAa,SAAS;EAAE,IAAI,CAAC,CAGvE;EACH,oBAAoB;GAClB,UAAU;GACV,6BAA6B;EAC/B;EACA,sBAAsB,EACpB,YAAY,EACd;CACF;AACF;AAOA,SAAgB,EACd,GACyB;CACzB,IAAM,IAAuC,CAAC;CAY9C,OAXA,OAAO,KAAK,CAAQ,EAAE,SAAQ,MAAO;EACnC,IAAI,IAAQ,EAAS;EACrB,AAAI,MAAM,QAAQ,CAAK,KACrB,IAAQ,EAAM,QAAQ,MAAc,KAAQ,IAAI,GAC3C,EAAQ,CAAK,MAChB,EAAY,KAAO,MAGrB,EAAY,KAAO;CAEvB,CAAC,GACM;AACT;AAEA,SAAgB,EACd,IAAoC,CAAC,GACZ;CACzB,OAAO,OAAO,KAAK,CAAQ,EAAE,QAC1B,GAA8B,OACzB,EAAS,OAAS,SACpB,EAAI,KAAO,EAAS,KAEf,IAET,CAAC,CACH;AACF;AAOA,SAAgB,EAAwB,GAAoC;CAOxE,OANE,EAAM,UAAU,WAAW,GAAG,IAEzB,EAAM,SAAS,UAAU,GAAG,EAAM,SAAS,SAAS,CAAC,IACnD,EAAM,UAAU,WAAW,GAAG,IAChC,EAAM,SAAS,UAAU,CAAC,IAE1B,EAAM,YAAY;AAE7B;AAEA,SAAgB,EACd,GACuB;CAOvB,IAAM,IAAU,EAAQ,IAAQ,MAAS,EAAM,QAAQ;CAmCvD,OAlCA,OAAO,KAAK,CAAO,EAAE,KAAI,MAAY;EACnC,IAAM,IAAa,EAAQ;EAuB3B,AApBsB,EAAW,MAC/B,MAAK,EAAE,YAAY,mCAKnB,KACA,EAAW,OAAM,MACX,EAAM,YAAY,sBAEX,EAAM,YAAY,gCADpB,KAGE,EAAM,YAAY,mCAK9B,KAGgB,EAAW,SAAS,MACrC,EAAW,GAAG,UAAU,gDACxB,EAAQ,KAAY,CAAC,EAAW,EAAE;CAEtC,CAAC,GAGD,IAAS,EAAQ,CAAO,GAGjB;AACT;AAOA,SAAgB,EAAkB,GAA0B;CAIxD,OAHE,MAAM,QAAQ,CAAK,IACd,IAEA,CAAC,CAAK;AAEjB;AAOA,SAAgB,EACd,GACA,GACS;CAGT,OAAO,GADL,KAAuB,OAAO,KAAK,CAAmB,EAAE,SAAS,KAC1B;AAC3C;AAUA,SAAgB,EACd,GAC2B;CAC3B,IAAM,IAAgB,CAAC,GACjB,IAAyB,EAAS;EACtC,MAAM;EACN,MAAM;CACR,CAAC;CACD,KAAK,IAAM,KAAoB,GAC7B,OAAO,OAAO,GAAe,CAAgB;CAM/C,OAHI,EAAS,EAAe,UAAU,KACpC,OAAO,OAAO,GAAe,EAAe,UAAU,GAEjD;AACT;AAMA,SAAgB,EACd,GACe;CAKf,OAJI,CAAC,KAAgB,CAAC,EAAa,WAAW,qBAAqB,IAC1D,OAIP,yBACA,EAAa,UAAU,EAAgC;AAE3D;AAWA,SAAgB,EACd,GACA,GACQ;CACR,QAAQ,GAAR;EACE,KAAK,EAAmB,kBACtB,OAAO;EACT,SACE,OAAO,EAAwB,GAAmB,CAAM;CAC5D;AACF"}
|