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":"MarkdownSynapse.js","names":[],"sources":["../../../src/components/Markdown/MarkdownSynapse.tsx"],"sourcesContent":["import {\n addIdsToReferenceWidgets,\n addIdsToTocWidgets,\n decodeXml,\n handleLinkClicks,\n processMath,\n fixInvalidNesting,\n} from '@/components/Markdown/MarkdownUtils'\nimport {\n useGetWikiPage,\n useGetWikiAttachments,\n} from '@/synapse-queries/wiki/useWiki'\nimport { sanitize } from '@/utils/functions/SanitizeHtmlUtils'\nimport { Link, Typography } from '@mui/material'\nimport markdownitContainer from '@sage-bionetworks/markdown-it-container'\nimport { ObjectType } from '@sage-bionetworks/synapse-types'\nimport MarkdownIt from 'markdown-it'\nimport markdownitBr from 'markdown-it-br'\nimport markdownitCentertext from 'markdown-it-center-text'\nimport markdownitInlineComments from 'markdown-it-inline-comments'\nimport markdownitStrikethroughAlt from 'markdown-it-strikethrough-alt'\nimport markdownitSub from 'markdown-it-sub-alt'\nimport markdownitSup from 'markdown-it-sup-alt'\nimport * as markdownitSynapse from 'markdown-it-synapse'\nimport markdownitSynapsePlugin from 'markdown-it-synapse'\nimport markdownitSynapseHeading from 'markdown-it-synapse-heading'\nimport markdownitMath from 'markdown-it-synapse-math'\nimport markdownitSynapseTable from 'markdown-it-synapse-table'\nimport { JSX, useEffect, useMemo, useRef } from 'react'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport { SkeletonTable } from '../Skeleton'\nimport MarkdownWidget from './MarkdownWidget'\nimport { SynapseWikiContextProvider } from './SynapseWikiContext'\nimport Bookmarks from './widget/Bookmarks'\n\nexport const NO_WIKI_CONTENT = 'There is no content.'\n\nexport type MarkdownSynapseProps = {\n ownerId?: string\n wikiId?: string\n markdown?: string\n renderInline?: boolean\n objectType?: ObjectType\n loadingSkeletonRowCount?: number\n onMarkdownProcessingDone?: (htmlContent: string | null | undefined) => void\n showPlaceholderIfNoWikiContent?: boolean\n}\n\n// Configure markdown-it\nconst md = MarkdownIt({ html: true })\nmarkdownitSynapse.init_markdown_it(\n md,\n markdownitSub,\n markdownitSup,\n markdownitCentertext,\n markdownitSynapseHeading,\n markdownitSynapseTable,\n markdownitStrikethroughAlt,\n markdownitContainer,\n markdownitInlineComments,\n markdownitBr,\n)\nconst mathSuffix = ''\nmd.use(markdownitSynapsePlugin, mathSuffix, 'https://synapse.org').use(\n markdownitMath,\n mathSuffix,\n)\n\n/**\n * Process all the corresponding bookmark tags of the references made throughout the page and renders footnotes, if any exist.\n */\nfunction AddBookmarks(props: { renderInline: boolean; markdown: string }) {\n const { markdown, renderInline } = props\n const footnotesHtml = useMemo(() => {\n markdownitSynapse.resetFootnotes()\n createHTML(renderInline, markdown)\n return createHTML(renderInline, markdownitSynapse.footnotes()).__html\n }, [markdown, renderInline])\n\n if (footnotesHtml.length > 0) {\n return (\n <div>\n <Bookmarks footnotes={footnotesHtml} />\n </div>\n )\n }\n return null\n}\n\n/**\n * Given input text, generate markdown object to be passed onto inner html of some container.\n * @param {String} markdown The text being written in plain markdown\n * @returns {Object} Dictionary to be passed into dangerouslySetInnerHTML with markdown text\n */\nfunction createHTML(renderInline: boolean, markdown?: string) {\n if (!markdown) {\n return { __html: '' }\n }\n // Note - renderInline parses out any block level elements contained in the markdown\n const initText = renderInline\n ? md.renderInline(markdown)\n : md.render(markdown)\n const cleanText = sanitize(initText)\n return { __html: cleanText }\n}\n\n/**\n * Given widgetMap renders it in a React component (or originalMarkup in special cases.)\n *\n * @param {string} widgetParams The params of the widget to render\n * @param {string} originalMarkup The original markup text, this is a special case for widgets that\n * are html specific.\n * @returns the rendered markdown widget\n */\nfunction MapParamsToMarkdownWidget(props: {\n widgetParams: string\n originalMarkup: string\n}) {\n const { widgetParams, originalMarkup } = props\n // General workflow -\n // 1. Capture widget parameters\n // 2. Transform any widget xml parameters to standard text\n // 3. Split those parameters into a map\n // 4. Render that widget based on its parameters\n\n // steps 1,2\n const decodedWidgetParams = decodeXml(widgetParams)\n\n // decodedWidgetParams look like {<widget>?param1=xxx¶m2=yyy}\n const questionIndex = decodedWidgetParams.indexOf('?')\n if (questionIndex === -1) {\n // e.g. toc is passed, there are no params\n return (\n <MarkdownWidget\n key={JSON.stringify(decodedWidgetParams)}\n widgetType={decodedWidgetParams as any}\n widgetParamsMapped={{}}\n originalMarkup={originalMarkup}\n />\n )\n }\n const widgetType = decodedWidgetParams.substring(0, questionIndex)\n const widgetParamsMapped: Record<string, string> = {}\n // map out params and their values\n decodedWidgetParams\n .substring(questionIndex + 1)\n .split('&')\n .forEach(keyPair => {\n let [key, value] = keyPair.split('=')\n value = decodeURIComponent(value)\n widgetParamsMapped[key] = value\n })\n return (\n <MarkdownWidget\n key={JSON.stringify(decodedWidgetParams)}\n widgetType={widgetType as any}\n widgetParamsMapped={widgetParamsMapped}\n originalMarkup={originalMarkup}\n />\n )\n}\n\n/**\n * Component that process all the markdown and transforms it to the appropriate Synapse widgets.\n *\n * @returns JSX of the markdown into widgets\n */\nfunction RenderMarkdown(props: {\n renderInline: boolean\n markdown: string\n isLoading: boolean\n showPlaceholderIfNoWikiContent: boolean\n}) {\n const { renderInline, markdown, isLoading, showPlaceholderIfNoWikiContent } =\n props\n\n const markup = useMemo(() => {\n // create initial markup\n let markup = createHTML(renderInline, markdown).__html\n // process reference widgets\n markup = addIdsToReferenceWidgets(markup)\n // process table of contents widgets\n markup = addIdsToTocWidgets(markup)\n\n return markup\n }, [markdown, renderInline])\n\n const processedDocuments = useMemo(() => {\n if (markup.length > 0) {\n const domParser = new DOMParser()\n const document = domParser.parseFromString(markup, 'text/html')\n\n fixInvalidNesting(document.body)\n\n return document.body\n }\n return null\n }, [markup])\n\n if (processedDocuments) {\n return <RecursiveRender element={processedDocuments} markdown={markup} />\n }\n\n if (!isLoading && showPlaceholderIfNoWikiContent && markup === '') {\n return (\n <Typography variant=\"body1Italic\" sx={{ mb: 1 }}>\n {NO_WIKI_CONTENT}\n </Typography>\n )\n }\n\n return\n}\n\n/**\n * recursiveRender will render react tree from HTML tree\n *\n * @param {Node} element This will be either a text Node or an HTMLElement\n * @param {string} markdown The original markdown, its kept as a special case for the table of contents widget\n * @returns {*}\n */\n\nfunction RecursiveRender(props: { element: Node; markdown: string }) {\n const { element, markdown } = props\n /*\n Recursively render the html tree created from the markdown, there are a few cases:\n 1. element is Node and is text in which case it is simply rendered\n 2. element is an HTMLElement and is: a self closing tag, has no children (e.g. <br>), or its a synapse widget and is\n rendered accordingly\n 3. element is an HTMLElement and has children so we loop through its childNodes, recurively render those, and then render its own tag\n as the parent of those child nodes. Note - childNodes was specifically chosen over .children because text Nodes\n would not come through .children\n */\n if (element.nodeType === Node.TEXT_NODE) {\n // case 1.\n return <>{element.textContent}</>\n } else if (\n element.nodeType === Node.ELEMENT_NODE &&\n element instanceof HTMLElement\n ) {\n const Tag: keyof JSX.IntrinsicElements =\n element.tagName.toLowerCase() as keyof JSX.IntrinsicElements\n const widgetParams = element.getAttribute('data-widgetparams')\n\n if (widgetParams) {\n // case 2\n // process widget\n return (\n <MapParamsToMarkdownWidget\n widgetParams={widgetParams}\n originalMarkup={markdown}\n />\n )\n }\n // manually add on props, depending on what comes through the markdown their could\n // be unforseen issues with attributes being misnamed according to what react will respect\n // e.g. class instead of className\n const attributes = element.attributes\n const rawProps: Record<string, string> = {}\n for (let i = 0; i < attributes.length; i++) {\n let name = ''\n let value = ''\n const attribute = attributes.item(i)\n if (attribute) {\n name = attribute.name\n value = attribute.value\n }\n if (name && value) {\n rawProps[name] = value\n }\n }\n\n const { style: styleString, class: className, ...props } = rawProps\n // Remap class to className\n props.className = className\n if (styleString) {\n // React expects the `style` prop to be an object, not a string, so use\n // the all-caps STYLE to pass the style string as a custom attribute\n props.STYLE = styleString\n }\n\n if (element.childNodes.length === 0) {\n // case 2\n // e.g. self closing tag like <br/> or <img>\n return <Tag {...props} />\n }\n\n // case 3\n // recursively render children\n const children = Array.from(element.childNodes).map((el, index) => {\n return <RecursiveRender key={index} element={el} markdown={markdown} />\n })\n // Render tagName as parent element of the children below\n switch (Tag) {\n case 'p':\n return (\n <Typography variant={'body1'} {...props} component={Tag}>\n {children}\n </Typography>\n )\n case 'span':\n return (\n <Typography variant={'body1'} {...props} component={Tag}>\n {children}\n </Typography>\n )\n case 'h1':\n return (\n <Typography variant={'headline1'} {...props} component={Tag}>\n {children}\n </Typography>\n )\n case 'h2':\n return (\n <Typography variant={'headline2'} {...props} component={Tag}>\n {children}\n </Typography>\n )\n case 'h3':\n return (\n <Typography variant={'headline3'} {...props} component={Tag}>\n {children}\n </Typography>\n )\n case 'ol':\n return (\n <Typography variant={'body1'} {...props} component={Tag}>\n {children}\n </Typography>\n )\n case 'ul':\n return (\n <Typography variant={'body1'} {...props} component={Tag}>\n {children}\n </Typography>\n )\n case 'a':\n return (\n <Link {...props} component={Tag}>\n {children}\n </Link>\n )\n default:\n if (Tag === 'body') {\n // The component ultimately wraps this content, so if the tag is 'body', just render the children.\n return children\n }\n return <Tag {...props}>{children}</Tag>\n }\n }\n return null\n}\n\n/**\n * Basic Markdown functionality for Synapse, supporting Images/Plots/References/Bookmarks/buttonlinks\n *\n * @class Markdown\n * @extends {Component}\n */\nfunction MarkdownSynapse(props: MarkdownSynapseProps) {\n const {\n ownerId,\n wikiId,\n objectType = ObjectType.ENTITY,\n markdown: markdownFromProps,\n onMarkdownProcessingDone,\n renderInline = false,\n loadingSkeletonRowCount,\n showPlaceholderIfNoWikiContent = false,\n } = props\n\n const markupRef = useRef<HTMLDivElement>(null)\n\n const {\n data: wikiPage,\n isLoading: isLoadingWikiPage,\n error: getWikiPageError,\n } = useGetWikiPage(\n {\n ownerObjectId: ownerId!,\n wikiPageId: wikiId!,\n ownerObjectType: objectType,\n },\n { enabled: Boolean(ownerId) },\n )\n\n const {\n data: wikiAttachments,\n isLoading: isLoadingWikiAttachments,\n error: getWikiAttachmentsError,\n } = useGetWikiAttachments(\n {\n ownerObjectId: ownerId!,\n wikiPageId: wikiId!,\n ownerObjectType: objectType,\n },\n {\n enabled: Boolean(ownerId),\n },\n )\n\n const isLoading = isLoadingWikiPage || isLoadingWikiAttachments\n const error = getWikiPageError || getWikiAttachmentsError\n\n /* Add click handler to the markdown area to handle clicking refs, ToC, etc. */\n useEffect(() => {\n const currentMarkupNode = markupRef.current\n if (currentMarkupNode) {\n currentMarkupNode.addEventListener('click', handleLinkClicks)\n }\n return () => {\n if (currentMarkupNode) {\n currentMarkupNode.removeEventListener('click', handleLinkClicks)\n }\n }\n }, [])\n\n const markdown = markdownFromProps || wikiPage?.markdown || ''\n\n /* When the markdown changes, call the `onMarkdownProcessingDone` callback */\n useEffect(() => {\n if (markdown && onMarkdownProcessingDone) {\n onMarkdownProcessingDone(createHTML(renderInline, markdown).__html)\n }\n }, [wikiPage, onMarkdownProcessingDone, renderInline])\n\n /* When the markdown changes, re-run the math processor */\n useEffect(() => {\n if (markdown) {\n processMath(markupRef)\n }\n }, [markdown])\n\n const loader = loadingSkeletonRowCount ? (\n <SkeletonTable numCols={1} numRows={loadingSkeletonRowCount} />\n ) : (\n <span className=\"spinner\" />\n )\n\n if (error) {\n return <ErrorBanner error={error} />\n }\n const content = (\n <SynapseWikiContextProvider\n wikiContext={{\n ownerId: props.ownerId,\n wikiId: props.wikiId,\n wikiPage: wikiPage,\n fileHandles: wikiAttachments,\n }}\n >\n {isLoading && loader}\n {(markdown || showPlaceholderIfNoWikiContent) && (\n <RenderMarkdown\n markdown={markdown}\n renderInline={renderInline}\n isLoading={isLoading}\n showPlaceholderIfNoWikiContent={showPlaceholderIfNoWikiContent}\n />\n )}\n {markdown && (\n <AddBookmarks renderInline={renderInline} markdown={markdown} />\n )}\n </SynapseWikiContextProvider>\n )\n if (renderInline) {\n return (\n <span\n data-testid=\"markdown\"\n className=\"markdown markdown-inline\"\n ref={markupRef}\n >\n {content}\n </span>\n )\n }\n return (\n <div data-testid=\"markdown\" className=\"markdown\" ref={markupRef}>\n {content}\n </div>\n )\n}\n\nexport { MarkdownSynapse, MarkdownSynapse as Markdown }\n\nexport default MarkdownSynapse\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MarkdownSynapse.js","names":[],"sources":["../../../src/components/Markdown/MarkdownSynapse.tsx"],"sourcesContent":["import {\n addIdsToReferenceWidgets,\n addIdsToTocWidgets,\n decodeXml,\n handleLinkClicks,\n processMath,\n fixInvalidNesting,\n} from '@/components/Markdown/MarkdownUtils'\nimport {\n useGetWikiPage,\n useGetWikiAttachments,\n} from '@/synapse-queries/wiki/useWiki'\nimport { sanitize } from '@/utils/functions/SanitizeHtmlUtils'\nimport { Link, Typography } from '@mui/material'\nimport markdownitContainer from '@sage-bionetworks/markdown-it-container'\nimport { ObjectType } from '@sage-bionetworks/synapse-types'\nimport MarkdownIt from 'markdown-it'\nimport markdownitBr from 'markdown-it-br'\nimport markdownitCentertext from 'markdown-it-center-text'\nimport markdownitInlineComments from 'markdown-it-inline-comments'\nimport markdownitStrikethroughAlt from 'markdown-it-strikethrough-alt'\nimport markdownitSub from 'markdown-it-sub-alt'\nimport markdownitSup from 'markdown-it-sup-alt'\nimport * as markdownitSynapse from 'markdown-it-synapse'\nimport markdownitSynapsePlugin from 'markdown-it-synapse'\nimport markdownitSynapseHeading from 'markdown-it-synapse-heading'\nimport markdownitMath from 'markdown-it-synapse-math'\nimport markdownitSynapseTable from 'markdown-it-synapse-table'\nimport { ComponentProps, ElementType, useEffect, useMemo, useRef } from 'react'\nimport {\n htmlToDOM,\n domToReact,\n attributesToProps,\n Element as DomElement,\n type DOMNode,\n type HTMLReactParserOptions,\n} from 'html-react-parser'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport { SkeletonTable } from '../Skeleton'\nimport MarkdownWidget from './MarkdownWidget'\nimport { SynapseWikiContextProvider } from './SynapseWikiContext'\nimport Bookmarks from './widget/Bookmarks'\n\nexport const NO_WIKI_CONTENT = 'There is no content.'\n\nexport type MarkdownSynapseProps = {\n ownerId?: string\n wikiId?: string\n markdown?: string\n renderInline?: boolean\n objectType?: ObjectType\n loadingSkeletonRowCount?: number\n onMarkdownProcessingDone?: (htmlContent: string | null | undefined) => void\n showPlaceholderIfNoWikiContent?: boolean\n}\n\n// Configure markdown-it\nconst md = MarkdownIt({ html: true })\nmarkdownitSynapse.init_markdown_it(\n md,\n markdownitSub,\n markdownitSup,\n markdownitCentertext,\n markdownitSynapseHeading,\n markdownitSynapseTable,\n markdownitStrikethroughAlt,\n markdownitContainer,\n markdownitInlineComments,\n markdownitBr,\n)\nconst mathSuffix = ''\nmd.use(markdownitSynapsePlugin, mathSuffix, 'https://synapse.org').use(\n markdownitMath,\n mathSuffix,\n)\n\n/**\n * Process all the corresponding bookmark tags of the references made throughout the page and renders footnotes, if any exist.\n */\nfunction AddBookmarks(props: { renderInline: boolean; markdown: string }) {\n const { markdown, renderInline } = props\n const footnotesHtml = useMemo(() => {\n markdownitSynapse.resetFootnotes()\n createHTML(renderInline, markdown)\n return createHTML(renderInline, markdownitSynapse.footnotes()).__html\n }, [markdown, renderInline])\n\n if (footnotesHtml.length > 0) {\n return (\n <div>\n <Bookmarks footnotes={footnotesHtml} />\n </div>\n )\n }\n return null\n}\n\n/**\n * Given input text, generate markdown object to be passed onto inner html of some container.\n * @param {String} markdown The text being written in plain markdown\n * @returns {Object} Dictionary to be passed into dangerouslySetInnerHTML with markdown text\n */\nfunction createHTML(renderInline: boolean, markdown?: string) {\n if (!markdown) {\n return { __html: '' }\n }\n // Note - renderInline parses out any block level elements contained in the markdown\n const initText = renderInline\n ? md.renderInline(markdown)\n : md.render(markdown)\n const cleanText = sanitize(initText)\n return { __html: cleanText }\n}\n\n/**\n * Given widgetMap renders it in a React component (or originalMarkup in special cases.)\n *\n * @param {string} widgetParams The params of the widget to render\n * @param {string} originalMarkup The original markup text, this is a special case for widgets that\n * are html specific.\n * @returns the rendered markdown widget\n */\nfunction MapParamsToMarkdownWidget(props: {\n widgetParams: string\n originalMarkup: string\n}) {\n const { widgetParams, originalMarkup } = props\n // General workflow -\n // 1. Capture widget parameters\n // 2. Transform any widget xml parameters to standard text\n // 3. Split those parameters into a map\n // 4. Render that widget based on its parameters\n\n // steps 1,2\n const decodedWidgetParams = decodeXml(widgetParams)\n\n // decodedWidgetParams look like {<widget>?param1=xxx¶m2=yyy}\n const questionIndex = decodedWidgetParams.indexOf('?')\n if (questionIndex === -1) {\n // e.g. toc is passed, there are no params\n return (\n <MarkdownWidget\n key={JSON.stringify(decodedWidgetParams)}\n widgetType={decodedWidgetParams as any}\n widgetParamsMapped={{}}\n originalMarkup={originalMarkup}\n />\n )\n }\n const widgetType = decodedWidgetParams.substring(0, questionIndex)\n const widgetParamsMapped: Record<string, string> = {}\n // map out params and their values\n decodedWidgetParams\n .substring(questionIndex + 1)\n .split('&')\n .forEach(keyPair => {\n let [key, value] = keyPair.split('=')\n value = decodeURIComponent(value)\n widgetParamsMapped[key] = value\n })\n return (\n <MarkdownWidget\n key={JSON.stringify(decodedWidgetParams)}\n widgetType={widgetType as any}\n widgetParamsMapped={widgetParamsMapped}\n originalMarkup={originalMarkup}\n />\n )\n}\n\n/**\n * Builds the `html-react-parser` options used to convert the parsed markdown\n * HTML tree into React elements.\n *\n * The `replace` callback handles the Synapse-specific cases (widgets, and the\n * elements we render via MUI `Typography`/`Link`); every other element falls\n * through to html-react-parser's default conversion, which maps attributes\n * (e.g. `class` -> `className`, inline `style` string -> object), handles void\n * elements, and assigns React keys to sibling elements.\n *\n * @param markdown The original (post-processing) markup string, forwarded to\n * widgets that need the full markup (e.g. table of contents).\n */\nfunction getParserOptions(markdown: string): HTMLReactParserOptions {\n const options: HTMLReactParserOptions = {\n replace: domNode => {\n if (!(domNode instanceof DomElement)) {\n // Text/comment nodes use default handling.\n return\n }\n\n const widgetParams = domNode.attribs['data-widgetparams']\n if (widgetParams) {\n // Synapse widget\n return (\n <MapParamsToMarkdownWidget\n widgetParams={widgetParams}\n originalMarkup={markdown}\n />\n )\n }\n\n const tag = domNode.name.toLowerCase()\n // attributesToProps remaps `class` -> `className`, parses the inline\n // `style` string into an object, etc.\n const props = attributesToProps(domNode.attribs) as ComponentProps<\n typeof Typography\n >\n const children = domToReact(domNode.children as DOMNode[], options)\n\n switch (tag) {\n case 'p':\n case 'span':\n case 'ol':\n case 'ul':\n return (\n <Typography\n variant={'body1'}\n {...props}\n component={tag as ElementType}\n >\n {children}\n </Typography>\n )\n case 'h1':\n return (\n <Typography\n variant={'headline1'}\n {...props}\n component={tag as ElementType}\n >\n {children}\n </Typography>\n )\n case 'h2':\n return (\n <Typography\n variant={'headline2'}\n {...props}\n component={tag as ElementType}\n >\n {children}\n </Typography>\n )\n case 'h3':\n return (\n <Typography\n variant={'headline3'}\n {...props}\n component={tag as ElementType}\n >\n {children}\n </Typography>\n )\n case 'a':\n return (\n <Link {...props} component={tag as ElementType}>\n {children}\n </Link>\n )\n default:\n // Let html-react-parser render the element with default handling.\n return\n }\n },\n }\n return options\n}\n\n/**\n * Component that process all the markdown and transforms it to the appropriate Synapse widgets.\n *\n * @returns JSX of the markdown into widgets\n */\nfunction RenderMarkdown(props: {\n renderInline: boolean\n markdown: string\n isLoading: boolean\n showPlaceholderIfNoWikiContent: boolean\n}) {\n const { renderInline, markdown, isLoading, showPlaceholderIfNoWikiContent } =\n props\n\n const markup = useMemo(() => {\n // create initial markup\n let markup = createHTML(renderInline, markdown).__html\n // process reference widgets\n markup = addIdsToReferenceWidgets(markup)\n // process table of contents widgets\n markup = addIdsToTocWidgets(markup)\n\n return markup\n }, [markdown, renderInline])\n\n // Parse the markup into React elements. This uses html-react-parser, which\n // is isomorphic and produces `domhandler` nodes in both environments,\n // so there is no dependency on `DOMParser`/`Node`/`HTMLElement` browser globals.\n const content = useMemo(() => {\n if (markup.length > 0) {\n const nodes = htmlToDOM(markup)\n // Fix invalid HTML nesting (e.g. block elements inside <p>) before\n // converting to React.\n nodes.forEach(node => fixInvalidNesting(node))\n return domToReact(nodes, getParserOptions(markup))\n }\n return null\n }, [markup])\n\n if (content) {\n return <>{content}</>\n }\n\n if (!isLoading && showPlaceholderIfNoWikiContent && markup === '') {\n return (\n <Typography variant=\"body1Italic\" sx={{ mb: 1 }}>\n {NO_WIKI_CONTENT}\n </Typography>\n )\n }\n\n return\n}\n\n/**\n * Basic Markdown functionality for Synapse, supporting Images/Plots/References/Bookmarks/buttonlinks\n *\n * @class Markdown\n * @extends {Component}\n */\nfunction MarkdownSynapse(props: MarkdownSynapseProps) {\n const {\n ownerId,\n wikiId,\n objectType = ObjectType.ENTITY,\n markdown: markdownFromProps,\n onMarkdownProcessingDone,\n renderInline = false,\n loadingSkeletonRowCount,\n showPlaceholderIfNoWikiContent = false,\n } = props\n\n const markupRef = useRef<HTMLDivElement>(null)\n\n const {\n data: wikiPage,\n isLoading: isLoadingWikiPage,\n error: getWikiPageError,\n } = useGetWikiPage(\n {\n ownerObjectId: ownerId!,\n wikiPageId: wikiId!,\n ownerObjectType: objectType,\n },\n { enabled: Boolean(ownerId) },\n )\n\n const {\n data: wikiAttachments,\n isLoading: isLoadingWikiAttachments,\n error: getWikiAttachmentsError,\n } = useGetWikiAttachments(\n {\n ownerObjectId: ownerId!,\n wikiPageId: wikiId!,\n ownerObjectType: objectType,\n },\n {\n enabled: Boolean(ownerId),\n },\n )\n\n const isLoading = isLoadingWikiPage || isLoadingWikiAttachments\n const error = getWikiPageError || getWikiAttachmentsError\n\n /* Add click handler to the markdown area to handle clicking refs, ToC, etc. */\n useEffect(() => {\n const currentMarkupNode = markupRef.current\n if (currentMarkupNode) {\n currentMarkupNode.addEventListener('click', handleLinkClicks)\n }\n return () => {\n if (currentMarkupNode) {\n currentMarkupNode.removeEventListener('click', handleLinkClicks)\n }\n }\n }, [])\n\n const markdown = markdownFromProps || wikiPage?.markdown || ''\n\n /* When the markdown changes, call the `onMarkdownProcessingDone` callback */\n useEffect(() => {\n if (markdown && onMarkdownProcessingDone) {\n onMarkdownProcessingDone(createHTML(renderInline, markdown).__html)\n }\n }, [wikiPage, onMarkdownProcessingDone, renderInline])\n\n /* When the markdown changes, re-run the math processor */\n useEffect(() => {\n if (markdown) {\n processMath(markupRef)\n }\n }, [markdown])\n\n const loader = loadingSkeletonRowCount ? (\n <SkeletonTable numCols={1} numRows={loadingSkeletonRowCount} />\n ) : (\n <span className=\"spinner\" />\n )\n\n if (error) {\n return <ErrorBanner error={error} />\n }\n const content = (\n <SynapseWikiContextProvider\n wikiContext={{\n ownerId: props.ownerId,\n wikiId: props.wikiId,\n wikiPage: wikiPage,\n fileHandles: wikiAttachments,\n }}\n >\n {isLoading && loader}\n {(markdown || showPlaceholderIfNoWikiContent) && (\n <RenderMarkdown\n markdown={markdown}\n renderInline={renderInline}\n isLoading={isLoading}\n showPlaceholderIfNoWikiContent={showPlaceholderIfNoWikiContent}\n />\n )}\n {markdown && (\n <AddBookmarks renderInline={renderInline} markdown={markdown} />\n )}\n </SynapseWikiContextProvider>\n )\n if (renderInline) {\n return (\n <span\n data-testid=\"markdown\"\n className=\"markdown markdown-inline\"\n ref={markupRef}\n >\n {content}\n </span>\n )\n }\n return (\n <div data-testid=\"markdown\" className=\"markdown\" ref={markupRef}>\n {content}\n </div>\n )\n}\n\nexport { MarkdownSynapse, MarkdownSynapse as Markdown }\n\nexport default MarkdownSynapse\n"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { RefObject } from 'react';
|
|
2
2
|
import { MarkdownSynapseProps } from './MarkdownSynapse';
|
|
3
|
+
import { Element as DomElement, type DOMNode } from 'html-react-parser';
|
|
3
4
|
/**
|
|
4
5
|
* Find all math identified elements of the form [id^=\"mathjax-\"]
|
|
5
6
|
* (e.g. <dom element id="mathjax-10"> text </dom element>)
|
|
@@ -18,15 +19,24 @@ export declare function decodeXml(xml: string): string;
|
|
|
18
19
|
export declare function addIdsToReferenceWidgets(text: string): string;
|
|
19
20
|
export declare function addIdsToTocWidgets(text: string): string;
|
|
20
21
|
export declare function handleLinkClicks(event: MouseEvent): void;
|
|
22
|
+
/**
|
|
23
|
+
* Extracts the plain text content from an HTML string. Implemented with an
|
|
24
|
+
* isomorphic HTML parser (rather than `document.createElement`) so it can run
|
|
25
|
+
* during server-side rendering / SSG prerender as well as in the browser.
|
|
26
|
+
*/
|
|
21
27
|
export declare function stripHTML(myHtmlString: string): string;
|
|
22
28
|
export declare function transformStringIntoMarkdownProps(value: string, isRawMarkdown?: boolean): MarkdownSynapseProps;
|
|
23
29
|
export declare const markdownToPlainText: (markdown: string, maxLength?: number) => string;
|
|
24
|
-
export declare const isBlockLevelElement: (node:
|
|
30
|
+
export declare const isBlockLevelElement: (node: DOMNode) => boolean;
|
|
25
31
|
/**
|
|
26
32
|
* Fixes invalid HTML nesting (e.g., <div> inside <p>) in a single O(n) pass.
|
|
27
33
|
* It compares the current 'node' against a stack of its 'ancestors'.
|
|
28
|
-
*
|
|
29
|
-
*
|
|
34
|
+
*
|
|
35
|
+
* Operates on the `domhandler` node tree produced by `html-react-parser`'s
|
|
36
|
+
* `htmlToDOM`, so it runs identically in the browser and during SSR/SSG
|
|
37
|
+
* prerender (no dependency on a live DOM, `DOMParser`, or `HTMLElement`).
|
|
38
|
+
* @param node - The current node being inspected.
|
|
39
|
+
* @param ancestors - An array of the current node's ancestor elements
|
|
30
40
|
*/
|
|
31
|
-
export declare function fixInvalidNesting(node:
|
|
41
|
+
export declare function fixInvalidNesting(node: DOMNode, ancestors?: DomElement[]): void;
|
|
32
42
|
//# sourceMappingURL=MarkdownUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownUtils.d.ts","sourceRoot":"","sources":["../../../src/components/Markdown/MarkdownUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"MarkdownUtils.d.ts","sourceRoot":"","sources":["../../../src/components/Markdown/MarkdownUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAGxD,OAAO,EAEL,OAAO,IAAI,UAAU,EAErB,KAAK,OAAO,EACb,MAAM,mBAAmB,CAAA;AAE1B;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,QAoBnE;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,UAapC;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,UAWpD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,UAe9C;AAGD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,QAuCjD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAkBtD;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,OAAO,wBAmBxB;AAID,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,EAAE,YAAY,MAAM,WAYvE,CAAA;AAwDD,eAAO,MAAM,mBAAmB,GAAI,MAAM,OAAO,KAAG,OAcnD,CAAA;AAwBD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EACb,SAAS,GAAE,UAAU,EAAO,GAC3B,IAAI,CAiDN"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { truncateString as e } from "../../utils/functions/StringUtils.js";
|
|
2
2
|
import t from "katex";
|
|
3
3
|
import n from "markdown-it";
|
|
4
|
+
import { Element as r, Text as i, htmlToDOM as a } from "html-react-parser";
|
|
4
5
|
//#region src/components/Markdown/MarkdownUtils.ts
|
|
5
|
-
function
|
|
6
|
+
function o(e) {
|
|
6
7
|
if (!e.current) return;
|
|
7
8
|
let n = e.current.querySelectorAll("[id^=\"mathjax-\"]"), r = /* @__PURE__ */ new RegExp(/\\[()[\]]/, "g");
|
|
8
9
|
n.forEach((e) => {
|
|
@@ -16,7 +17,7 @@ function r(e) {
|
|
|
16
17
|
}
|
|
17
18
|
});
|
|
18
19
|
}
|
|
19
|
-
function
|
|
20
|
+
function s(e) {
|
|
20
21
|
let t = {
|
|
21
22
|
"&": "&",
|
|
22
23
|
">": ">",
|
|
@@ -25,21 +26,21 @@ function i(e) {
|
|
|
25
26
|
};
|
|
26
27
|
return e.replace(/("|<|>|&)/g, (e, n) => t[n]);
|
|
27
28
|
}
|
|
28
|
-
function
|
|
29
|
+
function c(e) {
|
|
29
30
|
let t = /<span.*?id="wikiReference.*?<span.*? data-widgetparams.*?span>/g, n = 1;
|
|
30
31
|
return e.replace(t, () => {
|
|
31
32
|
let e = n;
|
|
32
33
|
return n += 1, `<a href="" id="ref${e}">[${e}]</a>`;
|
|
33
34
|
});
|
|
34
35
|
}
|
|
35
|
-
function
|
|
36
|
+
function l(e) {
|
|
36
37
|
let t = 1;
|
|
37
38
|
return e.replace(/<h[1-6] toc="true">.*<\/h[1-6]>/gm, (e) => {
|
|
38
39
|
let n = t;
|
|
39
40
|
return t += 1, `${e.substring(0, 3)} id="SRC-header-${n}"${e.substring(3)}`;
|
|
40
41
|
});
|
|
41
42
|
}
|
|
42
|
-
function
|
|
43
|
+
function u(e) {
|
|
43
44
|
let t = e.target, n = e.currentTarget;
|
|
44
45
|
if (t.tagName === "A" || t.tagName === "BUTTON") {
|
|
45
46
|
let t = e.target;
|
|
@@ -70,11 +71,12 @@ function s(e) {
|
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
|
-
function
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
function d(e) {
|
|
75
|
+
if (!e) return "";
|
|
76
|
+
let t = (e) => e.map((e) => e instanceof i ? e.data : e instanceof r ? t(e.children) : "").join("");
|
|
77
|
+
return t(a(e));
|
|
76
78
|
}
|
|
77
|
-
function
|
|
79
|
+
function f(e, t) {
|
|
78
80
|
let n = {};
|
|
79
81
|
if (t) n.markdown = e;
|
|
80
82
|
else if (e.includes("/wiki/")) {
|
|
@@ -83,11 +85,11 @@ function l(e, t) {
|
|
|
83
85
|
} else e && (n.ownerId = e);
|
|
84
86
|
return n;
|
|
85
87
|
}
|
|
86
|
-
var
|
|
88
|
+
var p = new n(), m = (t, n) => {
|
|
87
89
|
if (!t || t.length === 0) return "";
|
|
88
|
-
let r =
|
|
90
|
+
let r = d(p.render(t)).replace(/\|/g, "").replace(/#/g, "").replace(/<Synapse widget>/g, "");
|
|
89
91
|
return n ? e(r, n) : r;
|
|
90
|
-
},
|
|
92
|
+
}, h = /* @__PURE__ */ "address.article.aside.blockquote.canvas.dd.div.dl.dt.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.header.hr.li.main.nav.noscript.ol.p.pre.section.table.tfoot.ul.video".split("."), g = [
|
|
91
93
|
"span",
|
|
92
94
|
"a",
|
|
93
95
|
"em",
|
|
@@ -97,50 +99,49 @@ var u = new n(), d = (t, n) => {
|
|
|
97
99
|
"u",
|
|
98
100
|
"sub",
|
|
99
101
|
"sup"
|
|
100
|
-
],
|
|
102
|
+
], _ = [
|
|
101
103
|
"table",
|
|
102
104
|
"thead",
|
|
103
105
|
"tbody",
|
|
104
106
|
"tr",
|
|
105
107
|
"tfoot"
|
|
106
|
-
],
|
|
108
|
+
], v = [
|
|
107
109
|
"badge",
|
|
108
110
|
"image",
|
|
109
111
|
"imageLink",
|
|
110
112
|
"buttonlink"
|
|
111
|
-
],
|
|
112
|
-
if (e
|
|
113
|
-
let t = e.
|
|
114
|
-
return
|
|
115
|
-
},
|
|
116
|
-
if (e
|
|
117
|
-
let t = e
|
|
118
|
-
return
|
|
113
|
+
], y = (e) => {
|
|
114
|
+
if (!(e instanceof r)) return !1;
|
|
115
|
+
let t = e.name.toLowerCase();
|
|
116
|
+
return g.includes(t);
|
|
117
|
+
}, b = (e) => {
|
|
118
|
+
if (!(e instanceof r)) return !1;
|
|
119
|
+
let t = e.name.toLowerCase(), n = h.includes(t), i = e.attribs["data-widgetparams"] ?? null, a = i !== null && !v.includes(i.split("?")[0]);
|
|
120
|
+
return n || a;
|
|
119
121
|
};
|
|
120
|
-
function
|
|
121
|
-
return !(
|
|
122
|
+
function x(e, t) {
|
|
123
|
+
return !(b(e) && y(t) || t.name.toLowerCase() === "button" && e.name.toLowerCase() === "button" || t.name.toLowerCase() === "p" && b(e));
|
|
122
124
|
}
|
|
123
|
-
function
|
|
124
|
-
if (e
|
|
125
|
-
let t = e.
|
|
126
|
-
|
|
125
|
+
function S(e, t = []) {
|
|
126
|
+
if (e instanceof i) {
|
|
127
|
+
let t = e.parent, n = t instanceof r ? t.name.toLowerCase() : void 0;
|
|
128
|
+
if (n && _.includes(n) && !e.data?.trim()) {
|
|
129
|
+
let n = t.children, r = n.indexOf(e);
|
|
130
|
+
r !== -1 && n.splice(r, 1);
|
|
131
|
+
}
|
|
127
132
|
return;
|
|
128
133
|
}
|
|
129
|
-
if (e
|
|
134
|
+
if (!(e instanceof r)) return;
|
|
130
135
|
let n = e;
|
|
131
136
|
for (let e = t.length - 1; e >= 0; e--) {
|
|
132
137
|
let r = t[e];
|
|
133
|
-
|
|
134
|
-
let i = n.ownerDocument.createElement("div");
|
|
135
|
-
for (Array.from(r.attributes).forEach((e) => i.setAttribute(e.name, e.value)); r.firstChild;) i.appendChild(r.firstChild);
|
|
136
|
-
r.parentNode && r.parentNode.replaceChild(i, r), t[e] = i;
|
|
137
|
-
}
|
|
138
|
+
x(n, r) || (r.name = "div");
|
|
138
139
|
}
|
|
139
|
-
t.push(n), Array.from(n.
|
|
140
|
-
|
|
140
|
+
t.push(n), Array.from(n.children).forEach((e) => {
|
|
141
|
+
S(e, t);
|
|
141
142
|
}), t.pop();
|
|
142
143
|
}
|
|
143
144
|
//#endregion
|
|
144
|
-
export {
|
|
145
|
+
export { c as addIdsToReferenceWidgets, l as addIdsToTocWidgets, s as decodeXml, S as fixInvalidNesting, u as handleLinkClicks, b as isBlockLevelElement, m as markdownToPlainText, o as processMath, d as stripHTML, f as transformStringIntoMarkdownProps };
|
|
145
146
|
|
|
146
147
|
//# sourceMappingURL=MarkdownUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownUtils.js","names":[],"sources":["../../../src/components/Markdown/MarkdownUtils.ts"],"sourcesContent":["import katex from 'katex'\nimport { RefObject } from 'react'\nimport { MarkdownSynapseProps } from './MarkdownSynapse'\nimport MarkdownIt from 'markdown-it'\nimport { truncateString } from '@/utils/functions/StringUtils'\n\n/**\n * Find all math identified elements of the form [id^=\\\"mathjax-\\\"]\n * (e.g. <dom element id=\"mathjax-10\"> text </dom element>)\n * and transform them to their math markdown equivalents\n */\nexport function processMath(markupRef: RefObject<HTMLElement | null>) {\n if (!markupRef.current) {\n return\n }\n // use regex to grab all elements\n const mathExpressions =\n markupRef.current.querySelectorAll<HTMLElement>('[id^=\"mathjax-\"]')\n // go through all obtained elements and transform them with katex\n const regEx = new RegExp(/\\\\[()[\\]]/, 'g') // Look for a '\\' followed by either '(', ')', '[', or ']'. We delete these strings since they interfere with katex processing.\n mathExpressions.forEach(element => {\n if (element.textContent && !element.getAttribute('processed')) {\n // only process a math element once, used to double/triple process\n element.setAttribute('processed', 'true')\n const textContent = element.textContent.replace(regEx, '')\n return katex.render(textContent, element, {\n output: 'html',\n throwOnError: false,\n })\n }\n })\n}\n\n/**\n * When the markdown string is transferred over the network certain characters get transformed,\n * this does a simple transformation back to the original user's string.\n *\n * @param {string} xml\n * @returns\n * @memberof MarkdownSynapse\n */\nexport function decodeXml(xml: string) {\n const escapedOneToXmlSpecialMap = {\n '&': '&',\n '>': '>',\n '<': '<',\n '"': '\"',\n }\n return xml.replace(\n /("|<|>|&)/g,\n (str: string, item: keyof typeof escapedOneToXmlSpecialMap) => {\n return escapedOneToXmlSpecialMap[item]\n },\n )\n}\n\nexport function addIdsToReferenceWidgets(text: string) {\n const referenceRegex =\n /<span.*?id=\"wikiReference.*?<span.*? data-widgetparams.*?span>/g\n let referenceCount = 1\n\n return text.replace(referenceRegex, () => {\n // replace all reference tags with id's of the form id=\"ref<number>\"\" that we can read onClick\n const current = referenceCount\n referenceCount += 1\n return `<a href=\"\" id=\"ref${current}\">[${current}]</a>`\n })\n}\n\nexport function addIdsToTocWidgets(text: string) {\n const tocId = 'SRC-header-'\n let tocIdCount = 1\n const TOC_HEADER_REGEX = /<h[1-6] toc=\"true\">.*<\\/h[1-6]>/gm\n\n return text.replace(TOC_HEADER_REGEX, (match: string) => {\n // replace with id of the form id=\"toc\" so we can read them with onclick events\n const curTocId = tocIdCount\n tocIdCount += 1\n const matchWithId = `${match.substring(\n 0,\n 3,\n )} id=\"${tocId}${curTocId}\"${match.substring(3)}`\n return matchWithId\n })\n}\n\n// Manually handle clicks to anchor tags where the scrollto isn't handled by page hash\nexport function handleLinkClicks(event: MouseEvent) {\n const genericElement = event.target as HTMLElement\n const currentTarget = event.currentTarget as HTMLElement\n if (genericElement.tagName === 'A' || genericElement.tagName === 'BUTTON') {\n const anchor = event.target as HTMLAnchorElement\n if (anchor.id.substring(0, 3) === 'ref') {\n event.preventDefault()\n\n // its a reference, so we scroll to the appropriate bookmark\n const referenceNumber = Number(currentTarget.id.substring(3)) // e.g. ref2 => '2'\n const goTo = currentTarget.querySelector(`#bookmark${referenceNumber}`)\n try {\n goTo!.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n })\n } catch (e) {\n console.log('error on scroll', e)\n }\n } else if (\n currentTarget.id !== null &&\n anchor.getAttribute('data-anchor')\n ) {\n event.preventDefault()\n // handle table of contents widget\n const idOfContent = anchor.getAttribute('data-anchor')\n const goTo = currentTarget.querySelector(`[id=\"${idOfContent}\"]`)\n try {\n goTo!.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n })\n } catch (e) {\n console.log('error on scroll', e)\n }\n }\n }\n}\n\nexport function stripHTML(myHtmlString: string): string {\n const el = document.createElement('div')\n el.innerHTML = myHtmlString\n return el.textContent || el.innerText || ''\n}\n\nexport function transformStringIntoMarkdownProps(\n value: string,\n isRawMarkdown?: boolean,\n) {\n const newProps: MarkdownSynapseProps = {}\n if (isRawMarkdown) {\n newProps.markdown = value\n } else {\n if (value.includes('/wiki/')) {\n // value looks like syn20681023/wiki/594680\n const split = value.split('/')\n const ownerId = split[0]\n const wikiId = split[2]\n newProps.ownerId = ownerId\n newProps.wikiId = wikiId\n } else if (value) {\n // else assume it's an ownerId\n newProps.ownerId = value\n }\n }\n return newProps\n}\n\nconst md = new MarkdownIt()\n\nexport const markdownToPlainText = (markdown: string, maxLength?: number) => {\n if (!markdown || markdown.length === 0) {\n return ''\n }\n\n const html = md.render(markdown)\n const plainText = stripHTML(html)\n .replace(/\\|/g, '')\n .replace(/#/g, '')\n .replace(/<Synapse widget>/g, '')\n\n return maxLength ? truncateString(plainText, maxLength) : plainText\n}\n\nconst blockLevelTags = [\n 'address',\n 'article',\n 'aside',\n 'blockquote',\n 'canvas',\n 'dd',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hr',\n 'li',\n 'main',\n 'nav',\n 'noscript',\n 'ol',\n 'p',\n 'pre',\n 'section',\n 'table',\n 'tfoot',\n 'ul',\n 'video',\n]\n\nconst inlineTags = ['span', 'a', 'em', 'strong', 'b', 'i', 'u', 'sub', 'sup']\n\nconst tableTags = ['table', 'thead', 'tbody', 'tr', 'tfoot']\n\n// Widget types that render inline elements and should not be treated as block-level\nconst inlineWidgetTypes = ['badge', 'image', 'imageLink', 'buttonlink']\n\nconst isInlineContainer = (node: Node): boolean => {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n\n const element = node as HTMLElement\n const tag = element.tagName.toLowerCase()\n return inlineTags.includes(tag)\n}\n\n// Check if a node is a block level element\nexport const isBlockLevelElement = (node: Node): boolean => {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n\n const element = node as HTMLElement\n const tag = element.tagName.toLowerCase()\n const isStandardBlock = blockLevelTags.includes(tag)\n\n const widgetParams = element.getAttribute('data-widgetparams')\n const isWidget =\n widgetParams !== null &&\n !inlineWidgetTypes.includes(widgetParams.split('?')[0])\n\n return isStandardBlock || isWidget\n}\n\nfunction isValidNesting(child: HTMLElement, ancestor: HTMLElement): boolean {\n // case 1: block level elements cannot be inside of inline containers\n if (isBlockLevelElement(child) && isInlineContainer(ancestor)) {\n return false\n }\n\n // case 2: buttons cannot be nested inside of other buttons\n if (\n ancestor.tagName.toLowerCase() === 'button' &&\n child.tagName.toLowerCase() === 'button'\n ) {\n return false\n }\n\n // A <p> tag cannot contain block-level elements (including other <p> tags)\n if (ancestor.tagName.toLowerCase() === 'p' && isBlockLevelElement(child)) {\n return false\n }\n\n return true\n}\n\n/**\n * Fixes invalid HTML nesting (e.g., <div> inside <p>) in a single O(n) pass.\n * It compares the current 'node' against a stack of its 'ancestors'.\n * @param node - The current DOM node being inspected.\n * @param ancestors - An array of the current node's parent elements\n */\nexport function fixInvalidNesting(\n node: Node,\n ancestors: HTMLElement[] = [],\n): void {\n // Whitespace-only text nodes are invalid children of table structure elements and must be removed.\n if (node.nodeType === Node.TEXT_NODE) {\n const parentTag = (node.parentNode as HTMLElement)?.tagName?.toLowerCase()\n\n if (tableTags.includes(parentTag) && !node.textContent?.trim()) {\n node.parentNode?.removeChild(node)\n }\n\n return\n }\n\n // We only care about element nodes\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return\n }\n\n const element = node as HTMLElement\n\n // We check the current element against every ancestor in the stack to see if there is any invalid nesting.\n // We iterate backwards (from immediate parent to root) so we fix the closest invalid container first.\n for (let i = ancestors.length - 1; i >= 0; i--) {\n const ancestor = ancestors[i]\n\n // if the nesting is invalid\n if (!isValidNesting(element, ancestor)) {\n // change the ancestor to a div\n const div = element.ownerDocument.createElement('div')\n\n // Preserve all original attributes\n Array.from(ancestor.attributes).forEach(attr =>\n div.setAttribute(attr.name, attr.value),\n )\n\n // Move all children from the old element to the new <div>\n while (ancestor.firstChild) {\n div.appendChild(ancestor.firstChild)\n }\n\n // replace the ancestor with the new div\n if (ancestor.parentNode) {\n ancestor.parentNode.replaceChild(div, ancestor)\n }\n\n ancestors[i] = div // Update our local stack to reference to the new div\n }\n }\n\n // Push the current element to the stack before traversing children\n ancestors.push(element)\n\n Array.from(element.childNodes).forEach(child => {\n fixInvalidNesting(child, ancestors)\n })\n\n // Pop the current element off the stack after traversing its children\n ancestors.pop()\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MarkdownUtils.js","names":[],"sources":["../../../src/components/Markdown/MarkdownUtils.ts"],"sourcesContent":["import katex from 'katex'\nimport { RefObject } from 'react'\nimport { MarkdownSynapseProps } from './MarkdownSynapse'\nimport MarkdownIt from 'markdown-it'\nimport { truncateString } from '@/utils/functions/StringUtils'\nimport {\n htmlToDOM,\n Element as DomElement,\n Text as DomText,\n type DOMNode,\n} from 'html-react-parser'\n\n/**\n * Find all math identified elements of the form [id^=\\\"mathjax-\\\"]\n * (e.g. <dom element id=\"mathjax-10\"> text </dom element>)\n * and transform them to their math markdown equivalents\n */\nexport function processMath(markupRef: RefObject<HTMLElement | null>) {\n if (!markupRef.current) {\n return\n }\n // use regex to grab all elements\n const mathExpressions =\n markupRef.current.querySelectorAll<HTMLElement>('[id^=\"mathjax-\"]')\n // go through all obtained elements and transform them with katex\n const regEx = new RegExp(/\\\\[()[\\]]/, 'g') // Look for a '\\' followed by either '(', ')', '[', or ']'. We delete these strings since they interfere with katex processing.\n mathExpressions.forEach(element => {\n if (element.textContent && !element.getAttribute('processed')) {\n // only process a math element once, used to double/triple process\n element.setAttribute('processed', 'true')\n const textContent = element.textContent.replace(regEx, '')\n return katex.render(textContent, element, {\n output: 'html',\n throwOnError: false,\n })\n }\n })\n}\n\n/**\n * When the markdown string is transferred over the network certain characters get transformed,\n * this does a simple transformation back to the original user's string.\n *\n * @param {string} xml\n * @returns\n * @memberof MarkdownSynapse\n */\nexport function decodeXml(xml: string) {\n const escapedOneToXmlSpecialMap = {\n '&': '&',\n '>': '>',\n '<': '<',\n '"': '\"',\n }\n return xml.replace(\n /("|<|>|&)/g,\n (str: string, item: keyof typeof escapedOneToXmlSpecialMap) => {\n return escapedOneToXmlSpecialMap[item]\n },\n )\n}\n\nexport function addIdsToReferenceWidgets(text: string) {\n const referenceRegex =\n /<span.*?id=\"wikiReference.*?<span.*? data-widgetparams.*?span>/g\n let referenceCount = 1\n\n return text.replace(referenceRegex, () => {\n // replace all reference tags with id's of the form id=\"ref<number>\"\" that we can read onClick\n const current = referenceCount\n referenceCount += 1\n return `<a href=\"\" id=\"ref${current}\">[${current}]</a>`\n })\n}\n\nexport function addIdsToTocWidgets(text: string) {\n const tocId = 'SRC-header-'\n let tocIdCount = 1\n const TOC_HEADER_REGEX = /<h[1-6] toc=\"true\">.*<\\/h[1-6]>/gm\n\n return text.replace(TOC_HEADER_REGEX, (match: string) => {\n // replace with id of the form id=\"toc\" so we can read them with onclick events\n const curTocId = tocIdCount\n tocIdCount += 1\n const matchWithId = `${match.substring(\n 0,\n 3,\n )} id=\"${tocId}${curTocId}\"${match.substring(3)}`\n return matchWithId\n })\n}\n\n// Manually handle clicks to anchor tags where the scrollto isn't handled by page hash\nexport function handleLinkClicks(event: MouseEvent) {\n const genericElement = event.target as HTMLElement\n const currentTarget = event.currentTarget as HTMLElement\n if (genericElement.tagName === 'A' || genericElement.tagName === 'BUTTON') {\n const anchor = event.target as HTMLAnchorElement\n if (anchor.id.substring(0, 3) === 'ref') {\n event.preventDefault()\n\n // its a reference, so we scroll to the appropriate bookmark\n const referenceNumber = Number(currentTarget.id.substring(3)) // e.g. ref2 => '2'\n const goTo = currentTarget.querySelector(`#bookmark${referenceNumber}`)\n try {\n goTo!.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n })\n } catch (e) {\n console.log('error on scroll', e)\n }\n } else if (\n currentTarget.id !== null &&\n anchor.getAttribute('data-anchor')\n ) {\n event.preventDefault()\n // handle table of contents widget\n const idOfContent = anchor.getAttribute('data-anchor')\n const goTo = currentTarget.querySelector(`[id=\"${idOfContent}\"]`)\n try {\n goTo!.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n })\n } catch (e) {\n console.log('error on scroll', e)\n }\n }\n }\n}\n\n/**\n * Extracts the plain text content from an HTML string. Implemented with an\n * isomorphic HTML parser (rather than `document.createElement`) so it can run\n * during server-side rendering / SSG prerender as well as in the browser.\n */\nexport function stripHTML(myHtmlString: string): string {\n if (!myHtmlString) {\n return ''\n }\n const collectText = (nodes: DOMNode[]): string =>\n nodes\n .map(node => {\n if (node instanceof DomText) {\n return node.data\n }\n if (node instanceof DomElement) {\n return collectText(node.children as DOMNode[])\n }\n return ''\n })\n .join('')\n\n return collectText(htmlToDOM(myHtmlString))\n}\n\nexport function transformStringIntoMarkdownProps(\n value: string,\n isRawMarkdown?: boolean,\n) {\n const newProps: MarkdownSynapseProps = {}\n if (isRawMarkdown) {\n newProps.markdown = value\n } else {\n if (value.includes('/wiki/')) {\n // value looks like syn20681023/wiki/594680\n const split = value.split('/')\n const ownerId = split[0]\n const wikiId = split[2]\n newProps.ownerId = ownerId\n newProps.wikiId = wikiId\n } else if (value) {\n // else assume it's an ownerId\n newProps.ownerId = value\n }\n }\n return newProps\n}\n\nconst md = new MarkdownIt()\n\nexport const markdownToPlainText = (markdown: string, maxLength?: number) => {\n if (!markdown || markdown.length === 0) {\n return ''\n }\n\n const html = md.render(markdown)\n const plainText = stripHTML(html)\n .replace(/\\|/g, '')\n .replace(/#/g, '')\n .replace(/<Synapse widget>/g, '')\n\n return maxLength ? truncateString(plainText, maxLength) : plainText\n}\n\nconst blockLevelTags = [\n 'address',\n 'article',\n 'aside',\n 'blockquote',\n 'canvas',\n 'dd',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hr',\n 'li',\n 'main',\n 'nav',\n 'noscript',\n 'ol',\n 'p',\n 'pre',\n 'section',\n 'table',\n 'tfoot',\n 'ul',\n 'video',\n]\n\nconst inlineTags = ['span', 'a', 'em', 'strong', 'b', 'i', 'u', 'sub', 'sup']\n\nconst tableTags = ['table', 'thead', 'tbody', 'tr', 'tfoot']\n\n// Widget types that render inline elements and should not be treated as block-level\nconst inlineWidgetTypes = ['badge', 'image', 'imageLink', 'buttonlink']\n\nconst isInlineContainer = (node: DOMNode): boolean => {\n if (!(node instanceof DomElement)) {\n return false\n }\n\n const tag = node.name.toLowerCase()\n return inlineTags.includes(tag)\n}\n\n// Check if a node is a block level element\nexport const isBlockLevelElement = (node: DOMNode): boolean => {\n if (!(node instanceof DomElement)) {\n return false\n }\n\n const tag = node.name.toLowerCase()\n const isStandardBlock = blockLevelTags.includes(tag)\n\n const widgetParams = node.attribs['data-widgetparams'] ?? null\n const isWidget =\n widgetParams !== null &&\n !inlineWidgetTypes.includes(widgetParams.split('?')[0])\n\n return isStandardBlock || isWidget\n}\n\nfunction isValidNesting(child: DomElement, ancestor: DomElement): boolean {\n // case 1: block level elements cannot be inside of inline containers\n if (isBlockLevelElement(child) && isInlineContainer(ancestor)) {\n return false\n }\n\n // case 2: buttons cannot be nested inside of other buttons\n if (\n ancestor.name.toLowerCase() === 'button' &&\n child.name.toLowerCase() === 'button'\n ) {\n return false\n }\n\n // A <p> tag cannot contain block-level elements (including other <p> tags)\n if (ancestor.name.toLowerCase() === 'p' && isBlockLevelElement(child)) {\n return false\n }\n\n return true\n}\n\n/**\n * Fixes invalid HTML nesting (e.g., <div> inside <p>) in a single O(n) pass.\n * It compares the current 'node' against a stack of its 'ancestors'.\n *\n * Operates on the `domhandler` node tree produced by `html-react-parser`'s\n * `htmlToDOM`, so it runs identically in the browser and during SSR/SSG\n * prerender (no dependency on a live DOM, `DOMParser`, or `HTMLElement`).\n * @param node - The current node being inspected.\n * @param ancestors - An array of the current node's ancestor elements\n */\nexport function fixInvalidNesting(\n node: DOMNode,\n ancestors: DomElement[] = [],\n): void {\n // Whitespace-only text nodes are invalid children of table structure elements and must be removed.\n if (node instanceof DomText) {\n const parent = node.parent\n const parentTag =\n parent instanceof DomElement ? parent.name.toLowerCase() : undefined\n\n if (parentTag && tableTags.includes(parentTag) && !node.data?.trim()) {\n const siblings = (parent as DomElement).children\n const index = siblings.indexOf(node)\n if (index !== -1) {\n siblings.splice(index, 1)\n }\n }\n\n return\n }\n\n // We only care about element nodes\n if (!(node instanceof DomElement)) {\n return\n }\n\n const element = node\n\n // We check the current element against every ancestor in the stack to see if there is any invalid nesting.\n // We iterate backwards (from immediate parent to root) so we fix the closest invalid container first.\n for (let i = ancestors.length - 1; i >= 0; i--) {\n const ancestor = ancestors[i]\n\n // if the nesting is invalid\n if (!isValidNesting(element, ancestor)) {\n // Demote the ancestor to a <div> in place. Renaming preserves the\n // existing attributes (`attribs`) and children, so no node surgery is\n // required.\n ancestor.name = 'div'\n }\n }\n\n // Push the current element to the stack before traversing children\n ancestors.push(element)\n\n // Iterate over a copy because invalid table whitespace may be removed.\n Array.from(element.children).forEach(child => {\n fixInvalidNesting(child as DOMNode, ancestors)\n })\n\n // Pop the current element off the stack after traversing its children\n ancestors.pop()\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownWidget.js","names":[],"sources":["../../../src/components/Markdown/MarkdownWidget.tsx"],"sourcesContent":["import { lazy, Suspense } from 'react'\nimport { SynapseErrorBoundary } from '../error/ErrorBanner'\nimport type { ButtonLinkWidgetParams } from './widget/MarkdownButton'\nimport type { MarkdownEntityPreviewProps } from './widget/MarkdownEntityPreview'\nimport type { MarkdownIDUReportProps } from './widget/MarkdownIDUReport'\nimport type { MarkdownProvenanceGraphProps } from './widget/MarkdownProvenanceGraph'\nimport type { ImageWidgetParams } from './widget/MarkdownSynapseImage'\nimport type { MarkdownSynapsePlotProps } from './widget/MarkdownSynapsePlot'\nimport type { MarkdownSynapseTableProps } from './widget/MarkdownSynapseTable'\nimport type { MarkdownUserOrTeamBadgeProps } from './widget/MarkdownUserOrTeamBadge'\nimport type { MarkdownVideoProps } from './widget/MarkdownVideo'\n\n// Lazy load all widgets -- some can be large & cyclical component trees that will prevent bundle-splitting if we do not dynamically import them\nconst MarkdownVideo = lazy(() => import('./widget/MarkdownVideo'))\nconst MarkdownEntityPreview = lazy(\n () => import('./widget/MarkdownEntityPreview'),\n)\nconst MarkdownIDUReport = lazy(() => import('./widget/MarkdownIDUReport'))\nconst MarkdownProvenanceGraph = lazy(\n () => import('./widget/MarkdownProvenanceGraph'),\n)\nconst MarkdownSynapseImage = lazy(() => import('./widget/MarkdownSynapseImage'))\nconst MarkdownSynapsePlot = lazy(() => import('./widget/MarkdownSynapsePlot'))\nconst MarkdownUserOrTeamBadge = lazy(\n () => import('./widget/MarkdownUserOrTeamBadge'),\n)\nconst MarkdownButton = lazy(() => import('./widget/MarkdownButton'))\nconst MarkdownSynapseTable = lazy(() => import('./widget/MarkdownSynapseTable'))\nconst MarkdownTableOfContents = lazy(\n () => import('./widget/MarkdownTableOfContents'),\n)\n\ntype ButtonLink = {\n widgetType: 'buttonlink'\n widgetParamsMapped: ButtonLinkWidgetParams\n}\n\ntype Image = {\n widgetType: 'image'\n widgetParamsMapped: ImageWidgetParams\n}\n\ntype ImageLink = {\n widgetType: 'imageLink'\n widgetParamsMapped: ImageWidgetParams\n}\n\ntype Plot = {\n widgetType: 'plot'\n widgetParamsMapped: MarkdownSynapsePlotProps\n}\n\ntype TableOfContents = {\n widgetType: 'toc'\n widgetParamsMapped: never\n}\n\ntype UserBadge = {\n widgetType: 'badge'\n widgetParamsMapped: MarkdownUserOrTeamBadgeProps\n}\n\ntype IDUReport = {\n widgetType: 'iduReport'\n widgetParamsMapped: MarkdownIDUReportProps\n}\n\ntype Video = {\n widgetType: 'video' | 'vimeo' | 'youtube'\n widgetParamsMapped: MarkdownVideoProps\n}\n\ntype SynapseTableMarkdown = {\n widgetType: 'synapsetable'\n widgetParamsMapped: MarkdownSynapseTableProps\n}\n\ntype ProvenanceGraph = {\n widgetType: 'provenance'\n widgetParamsMapped: MarkdownProvenanceGraphProps\n}\n\ntype Preview = {\n widgetType: 'preview'\n widgetParamsMapped: MarkdownEntityPreviewProps\n}\n\ntype MarkdownWidgetDefinition =\n | ButtonLink\n | Image\n | ImageLink\n | Plot\n | TableOfContents\n | UserBadge\n | IDUReport\n | Video\n | SynapseTableMarkdown\n | ProvenanceGraph\n | Preview\n\nexport type MarkdownWidgetProps = MarkdownWidgetDefinition & {\n originalMarkup: string\n}\n\nfunction MarkdownWidget(props: MarkdownWidgetProps) {\n const { widgetType, widgetParamsMapped, originalMarkup } = props\n switch (widgetType) {\n case 'buttonlink':\n return <MarkdownButton {...widgetParamsMapped} />\n case 'image':\n case 'imageLink':\n return <MarkdownSynapseImage {...widgetParamsMapped} />\n case 'plot':\n return <MarkdownSynapsePlot {...widgetParamsMapped} />\n case 'toc':\n return <MarkdownTableOfContents originalMarkup={originalMarkup} />\n case 'badge':\n return <MarkdownUserOrTeamBadge {...widgetParamsMapped} />\n case 'iduReport':\n return <MarkdownIDUReport {...widgetParamsMapped} />\n case 'video':\n case 'vimeo':\n case 'youtube':\n return <MarkdownVideo {...widgetParamsMapped} />\n case 'synapsetable':\n return <MarkdownSynapseTable {...widgetParamsMapped} />\n case 'provenance':\n return <MarkdownProvenanceGraph {...widgetParamsMapped} />\n case 'preview':\n return <MarkdownEntityPreview {...widgetParamsMapped} />\n default:\n console.warn(`Unsupported widget: ${widgetType}.`)\n return <></>\n }\n}\n\nexport default function MarkdownWidgetWithWrapper(props: MarkdownWidgetProps) {\n // Wrap the widget in an error boundary and suspense\n return (\n <SynapseErrorBoundary>\n <Suspense>\n <MarkdownWidget {...props} />\n </Suspense>\n </SynapseErrorBoundary>\n )\n}\n"],"mappings":";;;;AAaA,IAAM,IAAgB,QAAW,OAAO,
|
|
1
|
+
{"version":3,"file":"MarkdownWidget.js","names":[],"sources":["../../../src/components/Markdown/MarkdownWidget.tsx"],"sourcesContent":["import { lazy, Suspense } from 'react'\nimport { SynapseErrorBoundary } from '../error/ErrorBanner'\nimport type { ButtonLinkWidgetParams } from './widget/MarkdownButton'\nimport type { MarkdownEntityPreviewProps } from './widget/MarkdownEntityPreview'\nimport type { MarkdownIDUReportProps } from './widget/MarkdownIDUReport'\nimport type { MarkdownProvenanceGraphProps } from './widget/MarkdownProvenanceGraph'\nimport type { ImageWidgetParams } from './widget/MarkdownSynapseImage'\nimport type { MarkdownSynapsePlotProps } from './widget/MarkdownSynapsePlot'\nimport type { MarkdownSynapseTableProps } from './widget/MarkdownSynapseTable'\nimport type { MarkdownUserOrTeamBadgeProps } from './widget/MarkdownUserOrTeamBadge'\nimport type { MarkdownVideoProps } from './widget/MarkdownVideo'\n\n// Lazy load all widgets -- some can be large & cyclical component trees that will prevent bundle-splitting if we do not dynamically import them\nconst MarkdownVideo = lazy(() => import('./widget/MarkdownVideo'))\nconst MarkdownEntityPreview = lazy(\n () => import('./widget/MarkdownEntityPreview'),\n)\nconst MarkdownIDUReport = lazy(() => import('./widget/MarkdownIDUReport'))\nconst MarkdownProvenanceGraph = lazy(\n () => import('./widget/MarkdownProvenanceGraph'),\n)\nconst MarkdownSynapseImage = lazy(() => import('./widget/MarkdownSynapseImage'))\nconst MarkdownSynapsePlot = lazy(() => import('./widget/MarkdownSynapsePlot'))\nconst MarkdownUserOrTeamBadge = lazy(\n () => import('./widget/MarkdownUserOrTeamBadge'),\n)\nconst MarkdownButton = lazy(() => import('./widget/MarkdownButton'))\nconst MarkdownSynapseTable = lazy(() => import('./widget/MarkdownSynapseTable'))\nconst MarkdownTableOfContents = lazy(\n () => import('./widget/MarkdownTableOfContents'),\n)\n\ntype ButtonLink = {\n widgetType: 'buttonlink'\n widgetParamsMapped: ButtonLinkWidgetParams\n}\n\ntype Image = {\n widgetType: 'image'\n widgetParamsMapped: ImageWidgetParams\n}\n\ntype ImageLink = {\n widgetType: 'imageLink'\n widgetParamsMapped: ImageWidgetParams\n}\n\ntype Plot = {\n widgetType: 'plot'\n widgetParamsMapped: MarkdownSynapsePlotProps\n}\n\ntype TableOfContents = {\n widgetType: 'toc'\n widgetParamsMapped: never\n}\n\ntype UserBadge = {\n widgetType: 'badge'\n widgetParamsMapped: MarkdownUserOrTeamBadgeProps\n}\n\ntype IDUReport = {\n widgetType: 'iduReport'\n widgetParamsMapped: MarkdownIDUReportProps\n}\n\ntype Video = {\n widgetType: 'video' | 'vimeo' | 'youtube'\n widgetParamsMapped: MarkdownVideoProps\n}\n\ntype SynapseTableMarkdown = {\n widgetType: 'synapsetable'\n widgetParamsMapped: MarkdownSynapseTableProps\n}\n\ntype ProvenanceGraph = {\n widgetType: 'provenance'\n widgetParamsMapped: MarkdownProvenanceGraphProps\n}\n\ntype Preview = {\n widgetType: 'preview'\n widgetParamsMapped: MarkdownEntityPreviewProps\n}\n\ntype MarkdownWidgetDefinition =\n | ButtonLink\n | Image\n | ImageLink\n | Plot\n | TableOfContents\n | UserBadge\n | IDUReport\n | Video\n | SynapseTableMarkdown\n | ProvenanceGraph\n | Preview\n\nexport type MarkdownWidgetProps = MarkdownWidgetDefinition & {\n originalMarkup: string\n}\n\nfunction MarkdownWidget(props: MarkdownWidgetProps) {\n const { widgetType, widgetParamsMapped, originalMarkup } = props\n switch (widgetType) {\n case 'buttonlink':\n return <MarkdownButton {...widgetParamsMapped} />\n case 'image':\n case 'imageLink':\n return <MarkdownSynapseImage {...widgetParamsMapped} />\n case 'plot':\n return <MarkdownSynapsePlot {...widgetParamsMapped} />\n case 'toc':\n return <MarkdownTableOfContents originalMarkup={originalMarkup} />\n case 'badge':\n return <MarkdownUserOrTeamBadge {...widgetParamsMapped} />\n case 'iduReport':\n return <MarkdownIDUReport {...widgetParamsMapped} />\n case 'video':\n case 'vimeo':\n case 'youtube':\n return <MarkdownVideo {...widgetParamsMapped} />\n case 'synapsetable':\n return <MarkdownSynapseTable {...widgetParamsMapped} />\n case 'provenance':\n return <MarkdownProvenanceGraph {...widgetParamsMapped} />\n case 'preview':\n return <MarkdownEntityPreview {...widgetParamsMapped} />\n default:\n console.warn(`Unsupported widget: ${widgetType}.`)\n return <></>\n }\n}\n\nexport default function MarkdownWidgetWithWrapper(props: MarkdownWidgetProps) {\n // Wrap the widget in an error boundary and suspense\n return (\n <SynapseErrorBoundary>\n <Suspense>\n <MarkdownWidget {...props} />\n </Suspense>\n </SynapseErrorBoundary>\n )\n}\n"],"mappings":";;;;AAaA,IAAM,IAAgB,QAAW,OAAO,4BAAyB,GAC3D,IAAwB,QACtB,OAAO,oCACf,GACM,IAAoB,QAAW,OAAO,gCAA6B,GACnE,IAA0B,QACxB,OAAO,sCACf,GACM,IAAuB,QAAW,OAAO,mCAAgC,GACzE,IAAsB,QAAW,OAAO,kCAA+B,GACvE,IAA0B,QACxB,OAAO,sCACf,GACM,IAAiB,QAAW,OAAO,6BAA0B,GAC7D,IAAuB,QAAW,OAAO,mCAAgC,GACzE,IAA0B,QACxB,OAAO,sCACf;AA0EA,SAAS,EAAe,GAA4B;CAClD,IAAM,EAAE,eAAY,uBAAoB,sBAAmB;CAC3D,QAAQ,GAAR;EACE,KAAK,cACH,OAAO,kBAAC,GAAD,EAAgB,GAAI,EAAqB,CAAA;EAClD,KAAK;EACL,KAAK,aACH,OAAO,kBAAC,GAAD,EAAsB,GAAI,EAAqB,CAAA;EACxD,KAAK,QACH,OAAO,kBAAC,GAAD,EAAqB,GAAI,EAAqB,CAAA;EACvD,KAAK,OACH,OAAO,kBAAC,GAAD,EAAyC,kBAAiB,CAAA;EACnE,KAAK,SACH,OAAO,kBAAC,GAAD,EAAyB,GAAI,EAAqB,CAAA;EAC3D,KAAK,aACH,OAAO,kBAAC,GAAD,EAAmB,GAAI,EAAqB,CAAA;EACrD,KAAK;EACL,KAAK;EACL,KAAK,WACH,OAAO,kBAAC,GAAD,EAAe,GAAI,EAAqB,CAAA;EACjD,KAAK,gBACH,OAAO,kBAAC,GAAD,EAAsB,GAAI,EAAqB,CAAA;EACxD,KAAK,cACH,OAAO,kBAAC,GAAD,EAAyB,GAAI,EAAqB,CAAA;EAC3D,KAAK,WACH,OAAO,kBAAC,GAAD,EAAuB,GAAI,EAAqB,CAAA;EACzD,SAEE,OADA,QAAQ,KAAK,uBAAuB,EAAW,EAAE,GAC1C,kBAAA,GAAA,CAAI,CAAA;CACf;AACF;AAEA,SAAwB,EAA0B,GAA4B;CAE5E,OACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAgB,GAAI,EAAQ,CAAA,EACpB,CAAA,EACU,CAAA;AAE1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SynapseWikiContext.js","names":[],"sources":["../../../src/components/Markdown/SynapseWikiContext.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext } from 'react'\nimport { FileHandleResults, WikiPage } from '@sage-bionetworks/synapse-types'\n\nexport type SynapseWikiContextType = {\n ownerId?: string\n wikiId?: string\n wikiPage?: Partial<WikiPage>\n /** Downloaded file handles that are attached to the wiki */\n fileHandles?: FileHandleResults\n}\n\n/**\n * This must be exported to use the context in class components.\n */\nexport const SynapseWikiContext = createContext<\n SynapseWikiContextType | undefined\n>(undefined)\n\nexport type SynapseWikiContextProviderProps = {\n wikiContext?: SynapseWikiContextType\n children?: ReactNode\n}\n\n/**\n * Provides context related to Synapse Wikis\n * @param param0\n * @returns\n */\nexport function SynapseWikiContextProvider({\n children,\n wikiContext,\n}: SynapseWikiContextProviderProps) {\n return (\n <SynapseWikiContext.Provider value={wikiContext}>\n {children}\n </SynapseWikiContext.Provider>\n )\n}\n\nexport const SynapseWikiContextConsumer = SynapseWikiContext.Consumer\n\nexport function useWikiContext(): SynapseWikiContextType {\n const context = useContext(SynapseWikiContext)\n return context ?? {}\n}\n"],"mappings":";;;AAcA,IAAa,IAAqB,EAEhC,KAAA,
|
|
1
|
+
{"version":3,"file":"SynapseWikiContext.js","names":[],"sources":["../../../src/components/Markdown/SynapseWikiContext.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext } from 'react'\nimport { FileHandleResults, WikiPage } from '@sage-bionetworks/synapse-types'\n\nexport type SynapseWikiContextType = {\n ownerId?: string\n wikiId?: string\n wikiPage?: Partial<WikiPage>\n /** Downloaded file handles that are attached to the wiki */\n fileHandles?: FileHandleResults\n}\n\n/**\n * This must be exported to use the context in class components.\n */\nexport const SynapseWikiContext = createContext<\n SynapseWikiContextType | undefined\n>(undefined)\n\nexport type SynapseWikiContextProviderProps = {\n wikiContext?: SynapseWikiContextType\n children?: ReactNode\n}\n\n/**\n * Provides context related to Synapse Wikis\n * @param param0\n * @returns\n */\nexport function SynapseWikiContextProvider({\n children,\n wikiContext,\n}: SynapseWikiContextProviderProps) {\n return (\n <SynapseWikiContext.Provider value={wikiContext}>\n {children}\n </SynapseWikiContext.Provider>\n )\n}\n\nexport const SynapseWikiContextConsumer = SynapseWikiContext.Consumer\n\nexport function useWikiContext(): SynapseWikiContextType {\n const context = useContext(SynapseWikiContext)\n return context ?? {}\n}\n"],"mappings":";;;AAcA,IAAa,IAAqB,EAEhC,KAAA,CAAS;AAYX,SAAgB,EAA2B,EACzC,aACA,kBACkC;CAClC,OACE,kBAAC,EAAmB,UAApB;EAA6B,OAAO;EACjC;CAC0B,CAAA;AAEjC;AAEA,IAAa,IAA6B,EAAmB;AAE7D,SAAgB,IAAyC;CAEvD,OADgB,EAAW,CACpB,KAAW,CAAC;AACrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserMentionModal.js","names":[],"sources":["../../../src/components/Markdown/UserMentionModal.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { DialogBase } from '../DialogBase'\nimport { TYPE_FILTER, UserGroupHeader } from '@sage-bionetworks/synapse-types'\nimport UserSearchBox from '../UserSearchBox/UserSearchBox'\n\nexport type UserMentionModalProps = {\n show: boolean\n onClose: () => void\n handleUserTag: (user: string) => void\n}\n\nexport function UserMentionModal({\n show,\n onClose,\n handleUserTag,\n}: UserMentionModalProps) {\n const onUserChange = useCallback(\n (selected: string | null, header: UserGroupHeader | null) => {\n if (selected && header) {\n handleUserTag(header.userName)\n }\n onClose()\n },\n [onClose, handleUserTag],\n )\n\n return (\n <>\n <DialogBase\n open={show}\n onCancel={onClose}\n title=\"Find User or Team\"\n content={\n <UserSearchBox\n placeholder=\"Search for a user or team name\"\n onChange={onUserChange}\n typeFilter={TYPE_FILTER.ALL}\n autoFocus={true}\n />\n }\n sx={{\n '.MuiDialog-paperFullWidth': {\n overflowY: 'visible',\n '.MuiDialogContent-root': { overflowY: 'visible' },\n },\n }}\n />\n </>\n )\n}\n"],"mappings":";;;;;;AAWA,SAAgB,EAAiB,EAC/B,SACA,YACA,oBACwB;
|
|
1
|
+
{"version":3,"file":"UserMentionModal.js","names":[],"sources":["../../../src/components/Markdown/UserMentionModal.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { DialogBase } from '../DialogBase'\nimport { TYPE_FILTER, UserGroupHeader } from '@sage-bionetworks/synapse-types'\nimport UserSearchBox from '../UserSearchBox/UserSearchBox'\n\nexport type UserMentionModalProps = {\n show: boolean\n onClose: () => void\n handleUserTag: (user: string) => void\n}\n\nexport function UserMentionModal({\n show,\n onClose,\n handleUserTag,\n}: UserMentionModalProps) {\n const onUserChange = useCallback(\n (selected: string | null, header: UserGroupHeader | null) => {\n if (selected && header) {\n handleUserTag(header.userName)\n }\n onClose()\n },\n [onClose, handleUserTag],\n )\n\n return (\n <>\n <DialogBase\n open={show}\n onCancel={onClose}\n title=\"Find User or Team\"\n content={\n <UserSearchBox\n placeholder=\"Search for a user or team name\"\n onChange={onUserChange}\n typeFilter={TYPE_FILTER.ALL}\n autoFocus={true}\n />\n }\n sx={{\n '.MuiDialog-paperFullWidth': {\n overflowY: 'visible',\n '.MuiDialogContent-root': { overflowY: 'visible' },\n },\n }}\n />\n </>\n )\n}\n"],"mappings":";;;;;;AAWA,SAAgB,EAAiB,EAC/B,SACA,YACA,oBACwB;CAWxB,OACE,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;EACE,MAAM;EACN,UAAU;EACV,OAAM;EACN,SACE,kBAAC,GAAD;GACE,aAAY;GACZ,UAnBW,GAClB,GAAyB,MAAmC;IAI3D,AAHI,KAAY,KACd,EAAc,EAAO,QAAQ,GAE/B,EAAQ;GACV,GACA,CAAC,GAAS,CAAa,CAYL;GACV,YAAY,EAAY;GACxB,WAAW;EACZ,CAAA;EAEH,IAAI,EACF,6BAA6B;GAC3B,WAAW;GACX,0BAA0B,EAAE,WAAW,UAAU;EACnD,EACF;CACD,CAAA,EACD,CAAA;AAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bookmarks.js","names":[],"sources":["../../../../src/components/Markdown/widget/Bookmarks.tsx"],"sourcesContent":["import { Component, Fragment } from 'react'\n\nexport type BookmarksProps = {\n footnotes: string\n}\n\nclass Bookmarks extends Component<BookmarksProps, never> {\n constructor(props: BookmarksProps) {\n super(props)\n this.renderBookmarks = this.renderBookmarks.bind(this)\n }\n\n /**\n * Returns bookmarks\n *\n * @returns JSX for the embedded bookmarks in the markdown passed in as a prop\n * @memberof Bookmarks\n */\n public renderBookmarks() {\n const copyFootnotes: string = String(this.props.footnotes)\n\n // find all the links embedded in the markdown below\n const regex = /Synapse widget><\\/span>(.*)</g\n let matchedGroup: RegExpExecArray | null\n const output: string[] = []\n // below we use regex.exec to find the find matched group containing the citation source\n while ((matchedGroup = regex.exec(copyFootnotes))) {\n output.push(matchedGroup[1])\n }\n\n // return all the links formatted accordingly\n return output.map((el, index) => {\n const isBeforeLastElement = index < output.length - 1\n return (\n <Fragment key={index}>\n <button className=\"SRC-markdown-bookmark\" id={`bookmark${index}`}>\n [{index + 1}]\n </button>\n <span dangerouslySetInnerHTML={{ __html: el }} />\n {isBeforeLastElement && <br />}\n </Fragment>\n )\n })\n }\n\n public render() {\n return (\n <>\n <hr />\n {this.renderBookmarks()}\n </>\n )\n }\n}\n\nexport default Bookmarks\n"],"mappings":";;;AAMA,IAAM,IAAN,cAAwB,EAAiC;CACvD,YAAY,GAAuB;
|
|
1
|
+
{"version":3,"file":"Bookmarks.js","names":[],"sources":["../../../../src/components/Markdown/widget/Bookmarks.tsx"],"sourcesContent":["import { Component, Fragment } from 'react'\n\nexport type BookmarksProps = {\n footnotes: string\n}\n\nclass Bookmarks extends Component<BookmarksProps, never> {\n constructor(props: BookmarksProps) {\n super(props)\n this.renderBookmarks = this.renderBookmarks.bind(this)\n }\n\n /**\n * Returns bookmarks\n *\n * @returns JSX for the embedded bookmarks in the markdown passed in as a prop\n * @memberof Bookmarks\n */\n public renderBookmarks() {\n const copyFootnotes: string = String(this.props.footnotes)\n\n // find all the links embedded in the markdown below\n const regex = /Synapse widget><\\/span>(.*)</g\n let matchedGroup: RegExpExecArray | null\n const output: string[] = []\n // below we use regex.exec to find the find matched group containing the citation source\n while ((matchedGroup = regex.exec(copyFootnotes))) {\n output.push(matchedGroup[1])\n }\n\n // return all the links formatted accordingly\n return output.map((el, index) => {\n const isBeforeLastElement = index < output.length - 1\n return (\n <Fragment key={index}>\n <button className=\"SRC-markdown-bookmark\" id={`bookmark${index}`}>\n [{index + 1}]\n </button>\n <span dangerouslySetInnerHTML={{ __html: el }} />\n {isBeforeLastElement && <br />}\n </Fragment>\n )\n })\n }\n\n public render() {\n return (\n <>\n <hr />\n {this.renderBookmarks()}\n </>\n )\n }\n}\n\nexport default Bookmarks\n"],"mappings":";;;AAMA,IAAM,IAAN,cAAwB,EAAiC;CACvD,YAAY,GAAuB;EAEjC,AADA,MAAM,CAAK,GACX,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI;CACvD;CAQA,kBAAyB;EACvB,IAAM,IAAwB,OAAO,KAAK,MAAM,SAAS,GAGnD,IAAQ,oCACV,GACE,IAAmB,CAAC;EAE1B,OAAQ,IAAe,EAAM,KAAK,CAAa,IAC7C,EAAO,KAAK,EAAa,EAAE;EAI7B,OAAO,EAAO,KAAK,GAAI,MAAU;GAC/B,IAAM,IAAsB,IAAQ,EAAO,SAAS;GACpD,OACE,kBAAC,GAAD,EAAA,UAAA;IACE,kBAAC,UAAD;KAAQ,WAAU;KAAwB,IAAI,WAAW;eAAzD;MAAkE;MAC9D,IAAQ;MAAE;KACN;;IACR,kBAAC,QAAD,EAAM,yBAAyB,EAAE,QAAQ,EAAG,EAAI,CAAA;IAC/C,KAAuB,kBAAC,MAAD,CAAK,CAAA;GACrB,EAAA,GANK,CAML;EAEd,CAAC;CACH;CAEA,SAAgB;EACd,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,MAAD,CAAK,CAAA,GACJ,KAAK,gBAAgB,CACtB,EAAA,CAAA;CAEN;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownButton.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownButton.tsx"],"sourcesContent":["import WideButton from '@/components/styled/WideButton'\nimport { ButtonProps } from '@mui/material'\nimport { Link as RouterLink, useInRouterContext } from 'react-router'\n\nexport type ButtonLinkWidgetParams = {\n align?: string\n highlight?: string\n url?: string\n text?: string\n}\n\nexport default function MarkdownButton(\n widgetParamsMapped: ButtonLinkWidgetParams,\n) {\n let buttonClasses = ''\n const { align = '', highlight: _highlight = '' } = widgetParamsMapped\n const highlight = _highlight === 'true'\n const alignLowerCase = align.toLowerCase()\n if (alignLowerCase === 'left') {\n buttonClasses += 'floatleft '\n }\n if (alignLowerCase === 'right') {\n buttonClasses += 'floatright '\n }\n const buttonIsCenterAligned = alignLowerCase === 'center'\n const buttonColor = highlight ? 'secondary' : 'neutral'\n const isExternalLink =\n widgetParamsMapped.url?.startsWith('http://') ||\n widgetParamsMapped.url?.startsWith('https://')\n const inRouterContext = useInRouterContext()\n\n let linkProps: Partial<ButtonProps> & { target?: string; to?: string } = {}\n\n if (isExternalLink) {\n linkProps = {\n href: widgetParamsMapped.url,\n target: '_blank',\n rel: 'noopener noreferrer',\n component: 'a',\n }\n } else if (inRouterContext) {\n // For internal links, if we are in a react-router context, we want to use the RouterLink\n linkProps = {\n to: widgetParamsMapped.url,\n component: RouterLink,\n }\n } else {\n linkProps = {\n href: widgetParamsMapped.url,\n component: 'a',\n }\n }\n\n const button = (\n <WideButton\n className={buttonClasses}\n variant=\"contained\"\n color={buttonColor}\n {...linkProps}\n sx={{\n '&:hover': {\n backgroundColor: highlight ? undefined : 'secondary.main',\n color: 'white',\n },\n ...(!buttonIsCenterAligned &&\n widgetParamsMapped.url && {\n margin: '20px 20px 20px 0px',\n }),\n }}\n >\n {widgetParamsMapped.text}\n </WideButton>\n )\n\n return buttonIsCenterAligned ? (\n <span style={{ display: 'block', textAlign: 'center' }}>{button}</span>\n ) : (\n <span>{button}</span>\n )\n}\n"],"mappings":";;;;AAWA,SAAwB,EACtB,GACA;CACA,IAAI,IAAgB,IACd,EAAE,WAAQ,IAAI,WAAW,IAAa,OAAO,GAC7C,IAAY,MAAe,QAC3B,IAAiB,EAAM,
|
|
1
|
+
{"version":3,"file":"MarkdownButton.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownButton.tsx"],"sourcesContent":["import WideButton from '@/components/styled/WideButton'\nimport { ButtonProps } from '@mui/material'\nimport { Link as RouterLink, useInRouterContext } from 'react-router'\n\nexport type ButtonLinkWidgetParams = {\n align?: string\n highlight?: string\n url?: string\n text?: string\n}\n\nexport default function MarkdownButton(\n widgetParamsMapped: ButtonLinkWidgetParams,\n) {\n let buttonClasses = ''\n const { align = '', highlight: _highlight = '' } = widgetParamsMapped\n const highlight = _highlight === 'true'\n const alignLowerCase = align.toLowerCase()\n if (alignLowerCase === 'left') {\n buttonClasses += 'floatleft '\n }\n if (alignLowerCase === 'right') {\n buttonClasses += 'floatright '\n }\n const buttonIsCenterAligned = alignLowerCase === 'center'\n const buttonColor = highlight ? 'secondary' : 'neutral'\n const isExternalLink =\n widgetParamsMapped.url?.startsWith('http://') ||\n widgetParamsMapped.url?.startsWith('https://')\n const inRouterContext = useInRouterContext()\n\n let linkProps: Partial<ButtonProps> & { target?: string; to?: string } = {}\n\n if (isExternalLink) {\n linkProps = {\n href: widgetParamsMapped.url,\n target: '_blank',\n rel: 'noopener noreferrer',\n component: 'a',\n }\n } else if (inRouterContext) {\n // For internal links, if we are in a react-router context, we want to use the RouterLink\n linkProps = {\n to: widgetParamsMapped.url,\n component: RouterLink,\n }\n } else {\n linkProps = {\n href: widgetParamsMapped.url,\n component: 'a',\n }\n }\n\n const button = (\n <WideButton\n className={buttonClasses}\n variant=\"contained\"\n color={buttonColor}\n {...linkProps}\n sx={{\n '&:hover': {\n backgroundColor: highlight ? undefined : 'secondary.main',\n color: 'white',\n },\n ...(!buttonIsCenterAligned &&\n widgetParamsMapped.url && {\n margin: '20px 20px 20px 0px',\n }),\n }}\n >\n {widgetParamsMapped.text}\n </WideButton>\n )\n\n return buttonIsCenterAligned ? (\n <span style={{ display: 'block', textAlign: 'center' }}>{button}</span>\n ) : (\n <span>{button}</span>\n )\n}\n"],"mappings":";;;;AAWA,SAAwB,EACtB,GACA;CACA,IAAI,IAAgB,IACd,EAAE,WAAQ,IAAI,WAAW,IAAa,OAAO,GAC7C,IAAY,MAAe,QAC3B,IAAiB,EAAM,YAAY;CAIzC,AAHI,MAAmB,WACrB,KAAiB,eAEf,MAAmB,YACrB,KAAiB;CAEnB,IAAM,IAAwB,MAAmB,UAC3C,IAAc,IAAY,cAAc,WACxC,IACJ,EAAmB,KAAK,WAAW,SAAS,KAC5C,EAAmB,KAAK,WAAW,UAAU,GACzC,IAAkB,EAAmB,GAEvC,IAAqE,CAAC;CAE1E,AAcE,IAdE,IACU;EACV,MAAM,EAAmB;EACzB,QAAQ;EACR,KAAK;EACL,WAAW;CACb,IACS,IAEG;EACV,IAAI,EAAmB;EACvB,WAAW;CACb,IAEY;EACV,MAAM,EAAmB;EACzB,WAAW;CACb;CAGF,IAAM,IACJ,kBAAC,GAAD;EACE,WAAW;EACX,SAAQ;EACR,OAAO;EACP,GAAI;EACJ,IAAI;GACF,WAAW;IACT,iBAAiB,IAAY,KAAA,IAAY;IACzC,OAAO;GACT;GACA,GAAI,CAAC,KACH,EAAmB,OAAO,EACxB,QAAQ,qBACV;EACJ;YAEC,EAAmB;CACV,CAAA;CAGd,OAAO,IACL,kBAAC,QAAD;EAAM,OAAO;GAAE,SAAS;GAAS,WAAW;EAAS;YAAI;CAAa,CAAA,IAEtE,kBAAC,QAAD,EAAA,UAAO,EAAa,CAAA;AAExB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownEntityPreview.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownEntityPreview.tsx"],"sourcesContent":["import { parseSynId } from '@/utils/functions/RegularExpressions'\nimport EntityPreview from '../../FilePreview/EntityPreview'\n\nexport type MarkdownEntityPreviewProps = {\n /** A Synapse Entity ID that may optionally contain a \"dot\" version, e.g. syn123 or syn123.2 */\n entityId: string\n /** An optional Entity version number. */\n versionNumber?: string\n}\n\nexport default function MarkdownEntityPreview(\n props: MarkdownEntityPreviewProps,\n) {\n const parsedReference = parseSynId(props.entityId)\n if (parsedReference == null) {\n throw new Error(`${props.entityId} is not a valid Synapse ID`)\n }\n const parsedVersionNumber = parseInt(props.versionNumber ?? '')\n\n const entityId = parsedReference.targetId\n const versionNumber = Number.isNaN(parsedVersionNumber)\n ? parsedReference.targetVersionNumber\n : parsedVersionNumber\n\n return <EntityPreview entityId={entityId} versionNumber={versionNumber} />\n}\n"],"mappings":";;;;AAUA,SAAwB,EACtB,GACA;CACA,IAAM,IAAkB,EAAW,EAAM,
|
|
1
|
+
{"version":3,"file":"MarkdownEntityPreview.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownEntityPreview.tsx"],"sourcesContent":["import { parseSynId } from '@/utils/functions/RegularExpressions'\nimport EntityPreview from '../../FilePreview/EntityPreview'\n\nexport type MarkdownEntityPreviewProps = {\n /** A Synapse Entity ID that may optionally contain a \"dot\" version, e.g. syn123 or syn123.2 */\n entityId: string\n /** An optional Entity version number. */\n versionNumber?: string\n}\n\nexport default function MarkdownEntityPreview(\n props: MarkdownEntityPreviewProps,\n) {\n const parsedReference = parseSynId(props.entityId)\n if (parsedReference == null) {\n throw new Error(`${props.entityId} is not a valid Synapse ID`)\n }\n const parsedVersionNumber = parseInt(props.versionNumber ?? '')\n\n const entityId = parsedReference.targetId\n const versionNumber = Number.isNaN(parsedVersionNumber)\n ? parsedReference.targetVersionNumber\n : parsedVersionNumber\n\n return <EntityPreview entityId={entityId} versionNumber={versionNumber} />\n}\n"],"mappings":";;;;AAUA,SAAwB,EACtB,GACA;CACA,IAAM,IAAkB,EAAW,EAAM,QAAQ;CACjD,IAAI,KAAmB,MACrB,MAAU,MAAM,GAAG,EAAM,SAAS,2BAA2B;CAE/D,IAAM,IAAsB,SAAS,EAAM,iBAAiB,EAAE,GAExD,IAAW,EAAgB;CAKjC,OAAO,kBAAC,GAAD;EAAyB;EAAyB,eAJnC,OAAO,MAAM,CAAmB,IAClD,EAAgB,sBAChB;CAEqE,CAAA;AAC3E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownIDUReport.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownIDUReport.tsx"],"sourcesContent":["import IDUReport from '../../IDUReport/IDUReport'\n\nexport type MarkdownIDUReportProps = {\n accessRestrictionId: string\n}\n\nexport default function MarkdownIDUReport(props: MarkdownIDUReportProps) {\n const { accessRestrictionId } = props\n return <IDUReport accessRequirementId={accessRestrictionId} />\n}\n"],"mappings":";;;AAMA,SAAwB,EAAkB,GAA+B;CACvE,IAAM,EAAE,2BAAwB;
|
|
1
|
+
{"version":3,"file":"MarkdownIDUReport.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownIDUReport.tsx"],"sourcesContent":["import IDUReport from '../../IDUReport/IDUReport'\n\nexport type MarkdownIDUReportProps = {\n accessRestrictionId: string\n}\n\nexport default function MarkdownIDUReport(props: MarkdownIDUReportProps) {\n const { accessRestrictionId } = props\n return <IDUReport accessRequirementId={accessRestrictionId} />\n}\n"],"mappings":";;;AAMA,SAAwB,EAAkB,GAA+B;CACvE,IAAM,EAAE,2BAAwB;CAChC,OAAO,kBAAC,GAAD,EAAW,qBAAqB,EAAsB,CAAA;AAC/D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownProvenanceGraph.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownProvenanceGraph.tsx"],"sourcesContent":["import { Reference } from '@sage-bionetworks/synapse-types'\nimport ProvenanceGraph from '../../ProvenanceGraph/ProvenanceGraph'\n\nexport type MarkdownProvenanceGraphProps = {\n entityList: string // comma delimited entity references of the form <synapse_ID>/version/<version_number>. The /version/<version_number> is optional\n displayHeightPx: string\n // depth: string, // traverse the given depth, not currently supported in ProvenanceGraph\n // showExpand: string // option to make graph not expandable, not currently supported in ProvenanceGraph\n}\n\nexport default function MarkdownProvenanceGraph(\n props: MarkdownProvenanceGraphProps,\n) {\n const { entityList, displayHeightPx } = props\n // parse entityList\n const refs = entityList.split(',').map(v => {\n const entityAndVersion = v.split('/version/')\n const ref: Reference = {\n targetId: entityAndVersion[0],\n targetVersionNumber:\n entityAndVersion.length > 1 ? parseInt(entityAndVersion[1]) : undefined,\n }\n return ref\n })\n const containerHeight = displayHeightPx ? `${displayHeightPx}px` : undefined\n return <ProvenanceGraph entityRefs={refs} containerHeight={containerHeight} />\n}\n"],"mappings":";;;AAUA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,eAAY,uBAAoB;
|
|
1
|
+
{"version":3,"file":"MarkdownProvenanceGraph.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownProvenanceGraph.tsx"],"sourcesContent":["import { Reference } from '@sage-bionetworks/synapse-types'\nimport ProvenanceGraph from '../../ProvenanceGraph/ProvenanceGraph'\n\nexport type MarkdownProvenanceGraphProps = {\n entityList: string // comma delimited entity references of the form <synapse_ID>/version/<version_number>. The /version/<version_number> is optional\n displayHeightPx: string\n // depth: string, // traverse the given depth, not currently supported in ProvenanceGraph\n // showExpand: string // option to make graph not expandable, not currently supported in ProvenanceGraph\n}\n\nexport default function MarkdownProvenanceGraph(\n props: MarkdownProvenanceGraphProps,\n) {\n const { entityList, displayHeightPx } = props\n // parse entityList\n const refs = entityList.split(',').map(v => {\n const entityAndVersion = v.split('/version/')\n const ref: Reference = {\n targetId: entityAndVersion[0],\n targetVersionNumber:\n entityAndVersion.length > 1 ? parseInt(entityAndVersion[1]) : undefined,\n }\n return ref\n })\n const containerHeight = displayHeightPx ? `${displayHeightPx}px` : undefined\n return <ProvenanceGraph entityRefs={refs} containerHeight={containerHeight} />\n}\n"],"mappings":";;;AAUA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,eAAY,uBAAoB;CAYxC,OAAO,kBAAC,GAAD;EAAiB,YAVX,EAAW,MAAM,GAAG,EAAE,KAAI,MAAK;GAC1C,IAAM,IAAmB,EAAE,MAAM,WAAW;GAM5C,OAAO;IAJL,UAAU,EAAiB;IAC3B,qBACE,EAAiB,SAAS,IAAI,SAAS,EAAiB,EAAE,IAAI,KAAA;GAE3D;EACT,CAEoC;EAAuB,iBADnC,IAAkB,GAAG,EAAgB,MAAM,KAAA;CACU,CAAA;AAC/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownSynapseImage.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownSynapseImage.tsx"],"sourcesContent":["import SynapseImage, { SynapseImageProps } from '../../widgets/SynapseImage'\nimport { useWikiContext } from '../SynapseWikiContext'\n\nexport type ImageWidgetParams = Omit<\n SynapseImageProps,\n 'params' | 'fileResults'\n> &\n SynapseImageProps['params']\n\nexport default function MarkdownSynapseImage(\n widgetParamsMapped: ImageWidgetParams,\n) {\n const { wikiId, wikiPage, fileHandles } = useWikiContext()\n if (widgetParamsMapped.fileName) {\n if (!fileHandles) {\n // ensure files are loaded\n return <></>\n }\n // if file name is attached then the fileHandle ID is located\n // in this wiki's file attachment list\n return (\n <SynapseImage\n params={widgetParamsMapped}\n fileName={widgetParamsMapped.fileName}\n wikiId={wikiId || wikiPage?.id}\n fileResults={fileHandles.list}\n />\n )\n }\n if (widgetParamsMapped.synapseId) {\n // otherwise this image's fileHandle ID is not located\n // in the file attachment list and will be loaded first\n return (\n <SynapseImage\n params={widgetParamsMapped}\n synapseId={widgetParamsMapped.synapseId}\n version={widgetParamsMapped.version}\n />\n )\n }\n return <></>\n}\n"],"mappings":";;;;AASA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,WAAQ,aAAU,mBAAgB,
|
|
1
|
+
{"version":3,"file":"MarkdownSynapseImage.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownSynapseImage.tsx"],"sourcesContent":["import SynapseImage, { SynapseImageProps } from '../../widgets/SynapseImage'\nimport { useWikiContext } from '../SynapseWikiContext'\n\nexport type ImageWidgetParams = Omit<\n SynapseImageProps,\n 'params' | 'fileResults'\n> &\n SynapseImageProps['params']\n\nexport default function MarkdownSynapseImage(\n widgetParamsMapped: ImageWidgetParams,\n) {\n const { wikiId, wikiPage, fileHandles } = useWikiContext()\n if (widgetParamsMapped.fileName) {\n if (!fileHandles) {\n // ensure files are loaded\n return <></>\n }\n // if file name is attached then the fileHandle ID is located\n // in this wiki's file attachment list\n return (\n <SynapseImage\n params={widgetParamsMapped}\n fileName={widgetParamsMapped.fileName}\n wikiId={wikiId || wikiPage?.id}\n fileResults={fileHandles.list}\n />\n )\n }\n if (widgetParamsMapped.synapseId) {\n // otherwise this image's fileHandle ID is not located\n // in the file attachment list and will be loaded first\n return (\n <SynapseImage\n params={widgetParamsMapped}\n synapseId={widgetParamsMapped.synapseId}\n version={widgetParamsMapped.version}\n />\n )\n }\n return <></>\n}\n"],"mappings":";;;;AASA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,WAAQ,aAAU,mBAAgB,EAAe;CA4BzD,OA3BI,EAAmB,WAChB,IAOH,kBAAC,GAAD;EACE,QAAQ;EACR,UAAU,EAAmB;EAC7B,QAAQ,KAAU,GAAU;EAC5B,aAAa,EAAY;CAC1B,CAAA,IAVM,kBAAA,GAAA,CAAI,CAAA,IAaX,EAAmB,YAInB,kBAAC,GAAD;EACE,QAAQ;EACR,WAAW,EAAmB;EAC9B,SAAS,EAAmB;CAC7B,CAAA,IAGE,kBAAA,GAAA,CAAI,CAAA;AACb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownSynapsePlot.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownSynapsePlot.tsx"],"sourcesContent":["import React from 'react'\nimport SynapsePlot from '../../Plot/SynapsePlot'\nimport { AxisType, PlotType } from 'plotly.js-basic-dist'\n\nexport type MarkdownSynapsePlotProps = {\n query: string //sql string\n title?: string //plot title\n xtitle?: string // x-axis title\n ytitle?: string // y-axis title\n type: string // Plotly PlotType\n xaxistype?: string // Plotly AxisType\n showlegend?: string // sets the legend visibility ('true' | 'false')\n horizontal?: string // sets the if a bar chart should be horizontal or vertical ('true' | 'false')\n barmode?: string // Plotly barmode ('stack' | 'group' | 'overlay' | 'relative')\n displayModebar?: string // sets the modebar visibility ('true' | 'false')\n}\n\nconst toBoolean = (v?: string, fallbackValue?: boolean) => {\n return v ? v.toLowerCase() == 'true' : (fallbackValue ?? false)\n}\n\nexport const MarkdownSynapsePlot = (\n props: MarkdownSynapsePlotProps,\n): React.ReactNode => {\n const {\n query,\n title,\n xtitle,\n ytitle,\n type,\n xaxistype,\n showlegend,\n barmode,\n horizontal,\n displayModebar,\n } = props\n const plotlyShowLegend = toBoolean(showlegend, true)\n const plotlyIsHorizontal = toBoolean(horizontal, false)\n const plotlyDisplayModebar = toBoolean(displayModebar, false)\n const plotlyBarMode = barmode\n ? (barmode.toLowerCase() as 'stack' | 'group' | 'overlay' | 'relative')\n : undefined\n const plotlyType = type.toLowerCase() as PlotType\n\n let plotlyXAxisType: AxisType | undefined = undefined\n if (xaxistype) {\n plotlyXAxisType = xaxistype.toLowerCase() as AxisType\n }\n\n return (\n <SynapsePlot\n synapsePlotWidgetParams={{\n query,\n xtitle,\n ytitle,\n type: plotlyType,\n barmode: plotlyBarMode,\n displayModeBar: plotlyDisplayModebar,\n horizontal: plotlyIsHorizontal,\n showlegend: plotlyShowLegend,\n title: title,\n xaxistype: plotlyXAxisType,\n }}\n />\n )\n}\n\nexport default MarkdownSynapsePlot\n"],"mappings":";;;;AAiBA,IAAM,KAAa,GAAY,MACtB,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"MarkdownSynapsePlot.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownSynapsePlot.tsx"],"sourcesContent":["import React from 'react'\nimport SynapsePlot from '../../Plot/SynapsePlot'\nimport { AxisType, PlotType } from 'plotly.js-basic-dist'\n\nexport type MarkdownSynapsePlotProps = {\n query: string //sql string\n title?: string //plot title\n xtitle?: string // x-axis title\n ytitle?: string // y-axis title\n type: string // Plotly PlotType\n xaxistype?: string // Plotly AxisType\n showlegend?: string // sets the legend visibility ('true' | 'false')\n horizontal?: string // sets the if a bar chart should be horizontal or vertical ('true' | 'false')\n barmode?: string // Plotly barmode ('stack' | 'group' | 'overlay' | 'relative')\n displayModebar?: string // sets the modebar visibility ('true' | 'false')\n}\n\nconst toBoolean = (v?: string, fallbackValue?: boolean) => {\n return v ? v.toLowerCase() == 'true' : (fallbackValue ?? false)\n}\n\nexport const MarkdownSynapsePlot = (\n props: MarkdownSynapsePlotProps,\n): React.ReactNode => {\n const {\n query,\n title,\n xtitle,\n ytitle,\n type,\n xaxistype,\n showlegend,\n barmode,\n horizontal,\n displayModebar,\n } = props\n const plotlyShowLegend = toBoolean(showlegend, true)\n const plotlyIsHorizontal = toBoolean(horizontal, false)\n const plotlyDisplayModebar = toBoolean(displayModebar, false)\n const plotlyBarMode = barmode\n ? (barmode.toLowerCase() as 'stack' | 'group' | 'overlay' | 'relative')\n : undefined\n const plotlyType = type.toLowerCase() as PlotType\n\n let plotlyXAxisType: AxisType | undefined = undefined\n if (xaxistype) {\n plotlyXAxisType = xaxistype.toLowerCase() as AxisType\n }\n\n return (\n <SynapsePlot\n synapsePlotWidgetParams={{\n query,\n xtitle,\n ytitle,\n type: plotlyType,\n barmode: plotlyBarMode,\n displayModeBar: plotlyDisplayModebar,\n horizontal: plotlyIsHorizontal,\n showlegend: plotlyShowLegend,\n title: title,\n xaxistype: plotlyXAxisType,\n }}\n />\n )\n}\n\nexport default MarkdownSynapsePlot\n"],"mappings":";;;;AAiBA,IAAM,KAAa,GAAY,MACtB,IAAI,EAAE,YAAY,KAAK,SAAU,KAAiB,IAG9C,KACX,MACoB;CACpB,IAAM,EACJ,UACA,UACA,WACA,WACA,SACA,cACA,eACA,YACA,eACA,sBACE,GACE,IAAmB,EAAU,GAAY,EAAI,GAC7C,IAAqB,EAAU,GAAY,EAAK,GAChD,IAAuB,EAAU,GAAgB,EAAK,GACtD,IAAgB,IACjB,EAAQ,YAAY,IACrB,KAAA,GACE,IAAa,EAAK,YAAY,GAEhC;CAKJ,OAJI,MACF,IAAkB,EAAU,YAAY,IAIxC,kBAAC,GAAD,EACE,yBAAyB;EACvB;EACA;EACA;EACA,MAAM;EACN,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,YAAY;EACL;EACP,WAAW;CACb,EACD,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownSynapseTable.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownSynapseTable.tsx"],"sourcesContent":["import QueryWrapperPlotNav from '../../QueryWrapperPlotNav/QueryWrapperPlotNav'\nimport StandaloneQueryWrapper from '../../StandaloneQueryWrapper/StandaloneQueryWrapper'\n\nexport type MarkdownSynapseTableProps = {\n query: string\n showquery: string\n tableonly: string\n}\n\nexport default function MarkdownSynapseTable(props: MarkdownSynapseTableProps) {\n const { query, showquery, tableonly } = props\n const showQuery = showquery === 'true'\n const tableOnly = tableonly === 'true'\n const name = 'Items'\n if (tableOnly) {\n return <StandaloneQueryWrapper sql={query} name={name} />\n }\n\n return (\n <QueryWrapperPlotNav\n sql={query}\n hideSqlEditorControl={!showQuery}\n name={name}\n defaultShowPlots={false}\n tableConfiguration={{}}\n />\n )\n}\n"],"mappings":";;;;AASA,SAAwB,EAAqB,GAAkC;CAC7E,IAAM,EAAE,UAAO,cAAW,iBAAc,GAClC,IAAY,MAAc,QAC1B,IAAY,MAAc,QAC1B,IAAO;
|
|
1
|
+
{"version":3,"file":"MarkdownSynapseTable.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownSynapseTable.tsx"],"sourcesContent":["import QueryWrapperPlotNav from '../../QueryWrapperPlotNav/QueryWrapperPlotNav'\nimport StandaloneQueryWrapper from '../../StandaloneQueryWrapper/StandaloneQueryWrapper'\n\nexport type MarkdownSynapseTableProps = {\n query: string\n showquery: string\n tableonly: string\n}\n\nexport default function MarkdownSynapseTable(props: MarkdownSynapseTableProps) {\n const { query, showquery, tableonly } = props\n const showQuery = showquery === 'true'\n const tableOnly = tableonly === 'true'\n const name = 'Items'\n if (tableOnly) {\n return <StandaloneQueryWrapper sql={query} name={name} />\n }\n\n return (\n <QueryWrapperPlotNav\n sql={query}\n hideSqlEditorControl={!showQuery}\n name={name}\n defaultShowPlots={false}\n tableConfiguration={{}}\n />\n )\n}\n"],"mappings":";;;;AASA,SAAwB,EAAqB,GAAkC;CAC7E,IAAM,EAAE,UAAO,cAAW,iBAAc,GAClC,IAAY,MAAc,QAC1B,IAAY,MAAc,QAC1B,IAAO;CAKb,OAJI,IACK,kBAAC,GAAD;EAAwB,KAAK;EAAa;CAAO,CAAA,IAIxD,kBAAC,GAAD;EACE,KAAK;EACL,sBAAsB,CAAC;EACjB;EACN,kBAAkB;EAClB,oBAAoB,CAAC;CACtB,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownTableOfContents.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownTableOfContents.tsx"],"sourcesContent":["import { stripHTML } from '../MarkdownUtils'\n\nconst TOC_CLASS = {\n 1: 'toc-indent1',\n 2: 'toc-indent2',\n 3: 'toc-indent3',\n 4: 'toc-indent4',\n 5: 'toc-indent5',\n 6: 'toc-indent6',\n}\n\ntype MarkdownTableOfContentsProps = {\n originalMarkup: string\n}\n\nexport default function MarkdownTableOfContents(\n props: MarkdownTableOfContentsProps,\n) {\n const { originalMarkup } = props\n const elements: any[] = []\n const TOC_HEADER_REGEX_WITH_ID =\n /<h([1-6]) id=\"(.*)\" .*toc=\"true\">(.*)<\\/h[1-6]>/gm\n let text = ''\n originalMarkup.replace(TOC_HEADER_REGEX_WITH_ID, (p1, p2, p3, p4) => {\n const headingText = stripHTML(p4)\n text += headingText\n elements.push(\n <div key={headingText}>\n <a\n role=\"link\"\n className={`link ${TOC_CLASS[Number(p2) as keyof typeof TOC_CLASS]}`}\n data-anchor={p3}\n >\n {headingText}\n </a>\n </div>,\n )\n return ''\n })\n return <div key={text}>{elements}</div>\n}\n"],"mappings":";;;AAEA,IAAM,IAAY;CAChB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;
|
|
1
|
+
{"version":3,"file":"MarkdownTableOfContents.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownTableOfContents.tsx"],"sourcesContent":["import { stripHTML } from '../MarkdownUtils'\n\nconst TOC_CLASS = {\n 1: 'toc-indent1',\n 2: 'toc-indent2',\n 3: 'toc-indent3',\n 4: 'toc-indent4',\n 5: 'toc-indent5',\n 6: 'toc-indent6',\n}\n\ntype MarkdownTableOfContentsProps = {\n originalMarkup: string\n}\n\nexport default function MarkdownTableOfContents(\n props: MarkdownTableOfContentsProps,\n) {\n const { originalMarkup } = props\n const elements: any[] = []\n const TOC_HEADER_REGEX_WITH_ID =\n /<h([1-6]) id=\"(.*)\" .*toc=\"true\">(.*)<\\/h[1-6]>/gm\n let text = ''\n originalMarkup.replace(TOC_HEADER_REGEX_WITH_ID, (p1, p2, p3, p4) => {\n const headingText = stripHTML(p4)\n text += headingText\n elements.push(\n <div key={headingText}>\n <a\n role=\"link\"\n className={`link ${TOC_CLASS[Number(p2) as keyof typeof TOC_CLASS]}`}\n data-anchor={p3}\n >\n {headingText}\n </a>\n </div>,\n )\n return ''\n })\n return <div key={text}>{elements}</div>\n}\n"],"mappings":";;;AAEA,IAAM,IAAY;CAChB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACL;AAMA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,sBAAmB,GACrB,IAAkB,CAAC,GACnB,IACJ,qDACE,IAAO;CAiBX,OAhBA,EAAe,QAAQ,IAA2B,GAAI,GAAI,GAAI,MAAO;EACnE,IAAM,IAAc,EAAU,CAAE;EAahC,OAZA,KAAQ,GACR,EAAS,KACP,kBAAC,OAAD,EAAA,UACE,kBAAC,KAAD;GACE,MAAK;GACL,WAAW,QAAQ,EAAU,OAAO,CAAE;GACtC,eAAa;aAEZ;EACA,CAAA,EACA,GARK,CAQL,CACP,GACO;CACT,CAAC,GACM,kBAAC,OAAD,EAAA,UAAiB,EAAc,GAArB,CAAqB;AACxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownUserOrTeamBadge.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownUserOrTeamBadge.tsx"],"sourcesContent":["import { useGetUserGroupHeaderWithAlias } from '@/synapse-queries'\nimport UserOrTeamBadge from '../../UserOrTeamBadge/UserOrTeamBadge'\n\nexport type MarkdownUserOrTeamBadgeProps = {\n alias: string\n}\n\nexport default function MarkdownUserOrTeamBadge(\n props: MarkdownUserOrTeamBadgeProps,\n) {\n const { alias } = props\n const { data: userGroupHeader } = useGetUserGroupHeaderWithAlias([alias])\n\n return userGroupHeader ? (\n <UserOrTeamBadge principalId={userGroupHeader[0].ownerId} />\n ) : (\n <></>\n )\n}\n"],"mappings":";;;;;AAOA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,aAAU,GACZ,EAAE,MAAM,MAAoB,EAA+B,CAAC,
|
|
1
|
+
{"version":3,"file":"MarkdownUserOrTeamBadge.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownUserOrTeamBadge.tsx"],"sourcesContent":["import { useGetUserGroupHeaderWithAlias } from '@/synapse-queries'\nimport UserOrTeamBadge from '../../UserOrTeamBadge/UserOrTeamBadge'\n\nexport type MarkdownUserOrTeamBadgeProps = {\n alias: string\n}\n\nexport default function MarkdownUserOrTeamBadge(\n props: MarkdownUserOrTeamBadgeProps,\n) {\n const { alias } = props\n const { data: userGroupHeader } = useGetUserGroupHeaderWithAlias([alias])\n\n return userGroupHeader ? (\n <UserOrTeamBadge principalId={userGroupHeader[0].ownerId} />\n ) : (\n <></>\n )\n}\n"],"mappings":";;;;;AAOA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,aAAU,GACZ,EAAE,MAAM,MAAoB,EAA+B,CAAC,CAAK,CAAC;CAExE,OAAO,IACL,kBAAC,GAAD,EAAiB,aAAa,EAAgB,GAAG,QAAU,CAAA,IAE3D,kBAAA,GAAA,CAAI,CAAA;AAER"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownVideo.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownVideo.tsx"],"sourcesContent":["import SynapseVideo, { SynapseVideoProps } from '../../widgets/SynapseVideo'\n\nexport type MarkdownVideoProps = SynapseVideoProps['params']\n\nexport default function MarkdownVideo(props: MarkdownVideoProps) {\n return <SynapseVideo params={props} />\n}\n"],"mappings":";;;AAIA,SAAwB,EAAc,GAA2B;
|
|
1
|
+
{"version":3,"file":"MarkdownVideo.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownVideo.tsx"],"sourcesContent":["import SynapseVideo, { SynapseVideoProps } from '../../widgets/SynapseVideo'\n\nexport type MarkdownVideoProps = SynapseVideoProps['params']\n\nexport default function MarkdownVideo(props: MarkdownVideoProps) {\n return <SynapseVideo params={props} />\n}\n"],"mappings":";;;AAIA,SAAwB,EAAc,GAA2B;CAC/D,OAAO,kBAAC,GAAD,EAAc,QAAQ,EAAQ,CAAA;AACvC"}
|