synapse-react-client 4.0.1 → 4.0.3-b
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.js +1 -1
- package/dist/assets/icons/AwardScroll.d.ts +5 -0
- package/dist/assets/icons/AwardScroll.d.ts.map +1 -0
- package/dist/assets/icons/AwardScroll.js +78 -0
- package/dist/assets/icons/AwardScroll.js.map +1 -0
- package/dist/assets/icons/Baseline.d.ts +5 -0
- package/dist/assets/icons/Baseline.d.ts.map +1 -0
- package/dist/assets/icons/Baseline.js +43 -0
- package/dist/assets/icons/Baseline.js.map +1 -0
- package/dist/assets/icons/Challenge.svg +13 -0
- package/dist/assets/icons/Challenge.svg.js +7 -0
- package/dist/assets/icons/Challenge.svg.js.map +1 -0
- package/dist/assets/icons/ClappingHands.d.ts +5 -0
- package/dist/assets/icons/ClappingHands.d.ts.map +1 -0
- package/dist/assets/icons/ClappingHands.js +106 -0
- package/dist/assets/icons/ClappingHands.js.map +1 -0
- package/dist/assets/icons/DNA_Two.svg +0 -0
- package/dist/assets/icons/Data2.svg +0 -0
- package/dist/assets/icons/HandWithMoney.d.ts +5 -0
- package/dist/assets/icons/HandWithMoney.d.ts.map +1 -0
- package/dist/assets/icons/HandWithMoney.js +15 -0
- package/dist/assets/icons/HandWithMoney.js.map +1 -0
- package/dist/assets/icons/MultiFile.d.ts +5 -0
- package/dist/assets/icons/MultiFile.d.ts.map +1 -0
- package/dist/assets/icons/MultiFile.js +8 -0
- package/dist/assets/icons/MultiFile.js.map +1 -0
- package/dist/assets/icons/MultiFile.svg +4 -0
- package/dist/assets/icons/MultiFile.svg.js +7 -0
- package/dist/assets/icons/MultiFile.svg.js.map +1 -0
- package/dist/assets/icons/OpenBook.d.ts +5 -0
- package/dist/assets/icons/OpenBook.d.ts.map +1 -0
- package/dist/assets/icons/OpenBook.js +99 -0
- package/dist/assets/icons/OpenBook.js.map +1 -0
- package/dist/assets/icons/Podium.d.ts +5 -0
- package/dist/assets/icons/Podium.d.ts.map +1 -0
- package/dist/assets/icons/Podium.js +36 -0
- package/dist/assets/icons/Podium.js.map +1 -0
- package/dist/assets/icons/RosetteRibbon.d.ts +5 -0
- package/dist/assets/icons/RosetteRibbon.d.ts.map +1 -0
- package/dist/assets/icons/RosetteRibbon.js +36 -0
- package/dist/assets/icons/RosetteRibbon.js.map +1 -0
- package/dist/assets/icons/StarTrophy.d.ts +5 -0
- package/dist/assets/icons/StarTrophy.d.ts.map +1 -0
- package/dist/assets/icons/StarTrophy.js +99 -0
- package/dist/assets/icons/StarTrophy.js.map +1 -0
- package/dist/assets/icons/ThreeStars.d.ts +5 -0
- package/dist/assets/icons/ThreeStars.d.ts.map +1 -0
- package/dist/assets/icons/ThreeStars.js +71 -0
- package/dist/assets/icons/ThreeStars.js.map +1 -0
- package/dist/assets/icons/UnpackagableFile.d.ts +5 -0
- package/dist/assets/icons/UnpackagableFile.d.ts.map +1 -0
- package/dist/assets/icons/UnpackagableFile.js +8 -0
- package/dist/assets/icons/UnpackagableFile.js.map +1 -0
- package/dist/assets/icons/UnpackagableFile.svg +4 -0
- package/dist/assets/icons/UnpackagableFile.svg.js +7 -0
- package/dist/assets/icons/UnpackagableFile.svg.js.map +1 -0
- package/dist/assets/mui_components/PackagableFile.d.ts.map +1 -1
- package/dist/assets/mui_components/PackagableFile.js +5 -4
- package/dist/assets/mui_components/PackagableFile.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile.svg +3 -0
- package/dist/assets/mui_components/PackagableFile.svg.js +7 -0
- package/dist/assets/mui_components/PackagableFile.svg.js.map +1 -0
- package/dist/assets/themed_icons/index.d.ts +1 -2
- package/dist/assets/themed_icons/index.d.ts.map +1 -1
- package/dist/assets/themed_icons/index.js +8 -10
- package/dist/assets/themed_icons/index.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js +4 -4
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
- package/dist/components/AddToDownloadListV2.js +10 -10
- package/dist/components/AddToDownloadListV2.js.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.css +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.d.ts +1 -2
- package/dist/components/BasePortalCard/BasePortalCard.d.ts.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.js +21 -28
- package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.module.scss +7 -1
- package/dist/components/BasePortalCard/BasePortalCard.module.scss.js +11 -11
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.d.ts.map +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js +24 -24
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.d.ts +5 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.d.ts.map +1 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
- package/dist/components/CardContainerLogic/index.d.ts +1 -1
- package/dist/components/CardContainerLogic/index.d.ts.map +1 -1
- package/dist/components/CardDeck/TableQueryCardDeck.js +12 -9
- package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
- package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js +33 -33
- package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.js +5 -2
- package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
- package/dist/components/ComponentCollapse.d.ts +6 -10
- package/dist/components/ComponentCollapse.d.ts.map +1 -1
- package/dist/components/ComponentCollapse.js +31 -35
- package/dist/components/ComponentCollapse.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js +12 -9
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.js +8 -3
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +8 -3
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +8 -3
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
- package/dist/components/DirectDownload/DirectDownload.d.ts.map +1 -1
- package/dist/components/DirectDownload/DirectDownload.js +23 -23
- package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
- package/dist/components/DownloadCart/AvailableForDownloadTable.d.ts +6 -2
- package/dist/components/DownloadCart/AvailableForDownloadTable.d.ts.map +1 -1
- package/dist/components/DownloadCart/AvailableForDownloadTable.js +10 -8
- package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
- package/dist/components/DownloadCart/CreatePackageV2.css +1 -0
- package/dist/components/DownloadCart/CreatePackageV2.d.ts.map +1 -1
- package/dist/components/DownloadCart/CreatePackageV2.js +50 -46
- package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
- package/dist/components/DownloadCart/CreatePackageV2.module.scss +38 -0
- package/dist/components/DownloadCart/CreatePackageV2.module.scss.js +14 -0
- package/dist/components/DownloadCart/CreatePackageV2.module.scss.js.map +1 -0
- package/dist/components/DownloadCart/DownloadCartPage.css +1 -0
- package/dist/components/DownloadCart/DownloadCartPage.d.ts.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js +316 -186
- package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.module.scss +217 -0
- package/dist/components/DownloadCart/DownloadCartPage.module.scss.js +48 -0
- package/dist/components/DownloadCart/DownloadCartPage.module.scss.js.map +1 -0
- package/dist/components/DownloadCart/DownloadDetails.js +1 -1
- package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +33 -33
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListTable.d.ts +4 -1
- package/dist/components/DownloadCart/DownloadListTable.d.ts.map +1 -1
- package/dist/components/DownloadCart/DownloadListTable.js +156 -236
- package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
- package/dist/components/DownloadCart/ShowDownloadV2.js +5 -5
- package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemSkeleton.js +8 -3
- package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.d.ts +3 -0
- package/dist/components/EntityDownloadButton/EntityDownloadButton.d.ts.map +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js +113 -119
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js +3 -3
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +6 -2
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js +11 -8
- package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
- package/dist/components/FullWidthAlert/FullWidthAlert.d.ts +2 -2
- package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
- package/dist/components/GenericCard/GenericCard.d.ts +5 -5
- package/dist/components/GenericCard/GenericCard.d.ts.map +1 -1
- package/dist/components/GenericCard/GenericCard.js +117 -103
- package/dist/components/GenericCard/GenericCard.js.map +1 -1
- package/dist/components/GenericCard/LabelMaybeWithIcon.d.ts +10 -0
- package/dist/components/GenericCard/LabelMaybeWithIcon.d.ts.map +1 -0
- package/dist/components/GenericCard/LabelMaybeWithIcon.js +33 -0
- package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -0
- package/dist/components/GenericCard/SynapseCardLabel.d.ts +2 -1
- package/dist/components/GenericCard/SynapseCardLabel.d.ts.map +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js +86 -81
- package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.d.ts +7 -1
- package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js +239 -202
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/HeaderCard.js +17 -13
- package/dist/components/HeaderCard.js.map +1 -1
- package/dist/components/Icon/Icon.js +52 -52
- package/dist/components/Icon/Icon.js.map +1 -1
- package/dist/components/IconSvg/IconSvg.d.ts +1 -1
- package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
- package/dist/components/IconSvg/IconSvg.js +215 -171
- package/dist/components/IconSvg/IconSvg.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +1 -0
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +103 -102
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/StorybookComponentWrapper.js +6 -3
- package/dist/components/StorybookComponentWrapper.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.d.ts +7 -1
- package/dist/components/SynapseChat/SynapseChat.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.js +76 -67
- package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.d.ts +2 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js +83 -58
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.d.ts +1 -0
- package/dist/components/SynapseChat/SynapseChatMessage.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js +16 -15
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts +12 -0
- package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts.map +1 -0
- package/dist/components/SynapseChat/SynapsePortalChatDialog.js +30 -0
- package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -0
- package/dist/components/SynapseChat/extractMessageFromTraceEvent.d.ts.map +1 -1
- package/dist/components/SynapseChat/extractMessageFromTraceEvent.js +22 -16
- package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
- package/dist/components/SynapseChat/index.d.ts +2 -0
- package/dist/components/SynapseChat/index.d.ts.map +1 -1
- package/dist/components/SynapseChat/index.js +5 -3
- package/dist/components/SynapseChat/index.js.map +1 -1
- package/dist/components/SynapseChat/useChatState.d.ts +1 -1
- package/dist/components/SynapseChat/useChatState.d.ts.map +1 -1
- package/dist/components/SynapseChat/useChatState.js +10 -7
- package/dist/components/SynapseChat/useChatState.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.d.ts.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +30 -32
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.d.ts.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js +27 -30
- package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseSearchChips.d.ts.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseSearchChips.js +14 -17
- package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.d.ts.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +114 -115
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.d.ts.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js +39 -39
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js +18 -18
- package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.d.ts.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js +66 -64
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +13 -13
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js +9 -9
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
- package/dist/components/TextToComponentCollapse.d.ts +16 -0
- package/dist/components/TextToComponentCollapse.d.ts.map +1 -0
- package/dist/components/TextToComponentCollapse.js +29 -0
- package/dist/components/TextToComponentCollapse.js.map +1 -0
- package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js +8 -3
- package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUI.d.ts +1 -1
- package/dist/components/download_list/DownloadConfirmationUI.js +22 -22
- package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUtils.js +4 -4
- package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
- package/dist/components/index.js +85 -83
- package/dist/components/index.js.map +1 -1
- package/dist/components/row_renderers/ObservationCard.js +12 -11
- package/dist/components/row_renderers/ObservationCard.js.map +1 -1
- package/dist/components/row_renderers/utils/CardFooter.d.ts +1 -3
- package/dist/components/row_renderers/utils/CardFooter.d.ts.map +1 -1
- package/dist/components/row_renderers/utils/CardFooter.js +31 -45
- package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreview.js +8 -3
- package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js +8 -3
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
- package/dist/features/curator/GridPage/GridPage.js +8 -3
- package/dist/features/curator/GridPage/GridPage.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageTitle.js +8 -3
- package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
- package/dist/index.js +137 -135
- package/dist/index.js.map +1 -1
- package/dist/style/abstracts/_functions.scss +0 -0
- package/dist/style/abstracts/_mixins.scss +0 -0
- package/dist/style/abstracts/_variables.scss +0 -0
- package/dist/style/base/_base.scss +0 -0
- package/dist/style/base/_fonts.scss +0 -0
- package/dist/style/base/_helpers.scss +0 -0
- package/dist/style/components/_all.scss +0 -1
- package/dist/style/components/_cards.scss +22 -0
- package/dist/style/components/_download-list-v2.scss +1 -1
- package/dist/style/components/_query-wrapper-plot-nav.scss +13 -0
- package/dist/style/main.css +1 -1
- package/dist/style/main.scss +0 -0
- package/dist/style/vendors/_normalize.scss +0 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.d.ts.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
- package/dist/utils/context/FullContextProvider.js +9 -9
- package/dist/utils/context/FullContextProvider.js.map +1 -1
- package/dist/utils/context/SynapseContext.d.ts.map +1 -1
- package/dist/utils/context/SynapseContext.js +1 -0
- package/dist/utils/context/SynapseContext.js.map +1 -1
- package/dist/utils/functions/SqlFunctions.d.ts +4 -0
- package/dist/utils/functions/SqlFunctions.d.ts.map +1 -1
- package/dist/utils/functions/SqlFunctions.js +25 -23
- package/dist/utils/functions/SqlFunctions.js.map +1 -1
- package/package.json +25 -24
- package/dist/assets/themed_icons/Challenge.d.ts +0 -3
- package/dist/assets/themed_icons/Challenge.d.ts.map +0 -1
- package/dist/assets/themed_icons/Challenge.js +0 -25
- package/dist/assets/themed_icons/Challenge.js.map +0 -1
- package/dist/style/components/_download-cart-page.scss +0 -204
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericCard.js","sources":["../../../src/components/GenericCard/GenericCard.tsx"],"sourcesContent":["import { GenericCardTitle } from '@/components/GenericCard/GenericCardTitle'\nimport { CardLabel } from '@/components/row_renderers/utils/CardFooter'\nimport { Box, Stack } from '@mui/material'\nimport { FileHandleAssociation } from '@sage-bionetworks/synapse-types'\nimport React, { CSSProperties, forwardRef } from 'react'\nimport { ColumnIconConfigs, DescriptionConfig } from '../CardContainerLogic'\nimport HeaderCard, { HeaderCardVariant } from '../HeaderCard'\nimport { CardFooter } from '../row_renderers/utils'\nimport { FileHandleLink } from '../widgets/FileHandleLink'\nimport { CollapsibleDescription } from './CollapsibleDescription'\nimport { SustainabilityScorecardProps } from '../SustainabilityScorecard/SustainabilityScorecard'\nimport { SmartLink } from '../SmartLink/SmartLink'\n\n/** Resolved CTA link configuration with actual href values (as opposed to CTACardLink which uses column names) */\nexport type CTALinkConfig = {\n text: React.ReactNode\n href?: string\n target?: string\n}\n\nexport type GenericCardProps = {\n /** String representing the 'type' of object. This is displayed as a label on the card. */\n type: string\n /** The title displayed on the card. */\n title: string\n /** Optionally provide href/target if the title should be a link */\n titleLinkConfiguration?: {\n href: string\n target: string\n }\n /** Optionally provide configuration if the title should be a link to a Synapse FileHandle */\n titleAsFileHandleLinkConfiguration?: {\n /** The FileHandleAssociation used to get access to the file handle */\n fileHandleAssociation: FileHandleAssociation\n /** Whether a 'download' icon should be shown */\n showDownloadIcon: boolean\n }\n /** An optional subtitle to be displayed on the card */\n subtitle?: string\n /** An description to be displayed on the card */\n description: string\n /** An optional description subtitle to be displayed on the card */\n descriptionSubTitle?: string\n /** Configuration for altering the display of the description prop */\n descriptionConfig?: DescriptionConfig\n /** Optional slot for adding content to the top of the card */\n cardTopContent?: React.ReactNode\n /** Optional slot for adding action buttons to the top of the card */\n cardTopButtons?: React.ReactNode\n /** If true, a HeaderCard component will be rendered */\n isHeader?: boolean\n /** The variant of HeaderCard to render if `isHeader` is true */\n headerCardVariant?: HeaderCardVariant\n /** Set to true if the icon is an arbitrary image. The card styles will be updated to accommodate the image\n * @default false */\n useStylesForDisplayedImage?: boolean\n /**\n * The rendered icon on the card\n */\n icon: React.ReactNode\n /**\n * The card labels to be displayed in the footer of the card\n */\n labels?: CardLabel[]\n /**\n * The initial number of labels to display in the footer of the card\n */\n secondaryLabelLimit?: number\n /**\n * Options for displaying icons with the labels in the card footer\n */\n columnIconOptions?: ColumnIconConfigs\n /**\n * Optional configuration for displaying CTA button(s) on the card. Accepts a single config or an array.\n */\n ctaLinkConfig?: CTALinkConfig | CTALinkConfig[]\n /**\n * The rendered icon list on the card\n */\n renderedIconList?: React.ReactNode\n /**\n * Optional sustainability scorecard to be displayed on the header card\n */\n sustainabilityScorecard?: SustainabilityScorecardProps\n /**\n * Optional ReactNode to be rendered next to the card type\n */\n cardTypeAdornment?: React.ReactNode\n /**\n * Character count threshold for truncating description\n * @default 400\n */\n charCountCutoff?: number\n}\n\nconst EMPTY_CARD_LABEL_ARRAY: CardLabel[] = []\n\n/**\n * Generic portal card UI component with a predefined layout\n */\nexport const GenericCard = forwardRef(function GenericCard(\n props: GenericCardProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {\n icon,\n type,\n title,\n titleLinkConfiguration,\n titleAsFileHandleLinkConfiguration,\n subtitle,\n description,\n descriptionSubTitle = '',\n descriptionConfig,\n cardTopContent,\n cardTopButtons,\n isHeader = false,\n headerCardVariant,\n useStylesForDisplayedImage = false,\n labels = EMPTY_CARD_LABEL_ARRAY,\n secondaryLabelLimit,\n columnIconOptions,\n ctaLinkConfig,\n renderedIconList,\n sustainabilityScorecard,\n cardTypeAdornment,\n charCountCutoff,\n } = props\n\n const showFooter = labels.length > 0\n\n const style: CSSProperties = {\n // undefined, take default value from class\n marginTop: isHeader ? '0px' : undefined,\n marginBottom: isHeader ? '0px' : undefined,\n paddingBottom:\n showFooter || useStylesForDisplayedImage ? undefined : '15px',\n }\n\n if (isHeader) {\n return (\n <HeaderCard\n ref={ref}\n headerCardVariant={headerCardVariant}\n descriptionConfig={descriptionConfig}\n charCountCutoff={charCountCutoff}\n title={title}\n subTitle={subtitle}\n description={description}\n type={type}\n icon={icon}\n values={labels}\n href={titleLinkConfiguration?.href}\n target={titleLinkConfiguration?.target}\n ctaLinkConfig={ctaLinkConfig}\n isAlignToLeftNav={true}\n secondaryLabelLimit={secondaryLabelLimit}\n cardTopButtons={cardTopButtons}\n cardTopContent={cardTopContent}\n sustainabilityScorecard={sustainabilityScorecard}\n />\n )\n }\n\n return (\n <div style={style} ref={ref} className={'SRC-portalCard'}>\n <div className={'SRC-portalCardMain'}>\n {icon}\n <div className=\"SRC-cardContent\">\n {cardTopButtons && (\n <Box\n sx={{\n position: 'absolute',\n right: '24px',\n display: 'flex',\n float: 'right',\n flexDirection: 'row',\n gap: '10px',\n }}\n >\n {cardTopButtons}\n </Box>\n )}\n <Stack\n sx={{\n flexDirection: 'row',\n alignItems: 'center',\n gap: '10px',\n }}\n >\n <div className=\"SRC-type\">{type}</div>\n {cardTypeAdornment}\n </Stack>\n {renderedIconList}\n <div>\n <h3\n className=\"SRC-boldText SRC-blackText\"\n style={{ margin: 'none' }}\n >\n {!titleAsFileHandleLinkConfiguration && (\n <GenericCardTitle\n title={title}\n href={titleLinkConfiguration?.href}\n target={titleLinkConfiguration?.target}\n />\n )}\n {titleAsFileHandleLinkConfiguration && (\n <FileHandleLink\n fileHandleAssociation={\n titleAsFileHandleLinkConfiguration.fileHandleAssociation\n }\n showDownloadIcon={\n titleAsFileHandleLinkConfiguration.showDownloadIcon\n }\n displayValue={title}\n />\n )}\n </h3>\n </div>\n {subtitle && <div className=\"SRC-author\">{subtitle}</div>}\n <CollapsibleDescription\n description={description}\n descriptionSubTitle={descriptionSubTitle}\n descriptionConfig={descriptionConfig}\n />\n {ctaLinkConfig && (\n <Box sx={{ mt: '20px', display: 'flex', gap: 2, flexWrap: 'wrap' }}>\n {(Array.isArray(ctaLinkConfig)\n ? ctaLinkConfig\n : [ctaLinkConfig]\n ).map(\n (config, index) =>\n config.text &&\n config.href && (\n <SmartLink\n key={index}\n href={config.href}\n target={config.target}\n >\n {config.text}\n </SmartLink>\n ),\n )}\n </Box>\n )}\n </div>\n </div>\n {showFooter && (\n <CardFooter\n isHeader={false}\n secondaryLabelLimit={secondaryLabelLimit}\n values={labels}\n columnIconOptions={columnIconOptions}\n className={useStylesForDisplayedImage ? undefined : 'hasIcon'}\n cardTopContent={cardTopContent}\n />\n )}\n </div>\n )\n})\n\nexport default GenericCard\n"],"names":["EMPTY_CARD_LABEL_ARRAY","GenericCard","forwardRef","props","ref","icon","type","title","titleLinkConfiguration","titleAsFileHandleLinkConfiguration","subtitle","description","descriptionSubTitle","descriptionConfig","cardTopContent","cardTopButtons","isHeader","headerCardVariant","useStylesForDisplayedImage","labels","secondaryLabelLimit","columnIconOptions","ctaLinkConfig","renderedIconList","sustainabilityScorecard","cardTypeAdornment","charCountCutoff","showFooter","style","jsx","HeaderCard","jsxs","Box","Stack","GenericCardTitle","FileHandleLink","CollapsibleDescription","config","index","SmartLink","CardFooter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GenericCard.js","sources":["../../../src/components/GenericCard/GenericCard.tsx"],"sourcesContent":["import { GenericCardTitle } from '@/components/GenericCard/GenericCardTitle'\nimport { CardLabel } from '@/components/row_renderers/utils/CardFooter'\nimport { Box, Stack } from '@mui/material'\nimport { FileHandleAssociation } from '@sage-bionetworks/synapse-types'\nimport React, { CSSProperties, forwardRef } from 'react'\nimport { DescriptionConfig } from '../CardContainerLogic'\nimport HeaderCard, { HeaderCardVariant } from '../HeaderCard'\nimport { CardFooter } from '../row_renderers/utils'\nimport { SmartLink } from '../SmartLink/SmartLink'\nimport { SustainabilityScorecardProps } from '../SustainabilityScorecard/SustainabilityScorecard'\nimport { FileHandleLink } from '../widgets/FileHandleLink'\nimport { CollapsibleDescription } from './CollapsibleDescription'\n\n/** Resolved CTA link configuration with actual href values (as opposed to CTACardLink which uses column names) */\nexport type CTALinkConfig = {\n text: React.ReactNode\n href?: string\n target?: string\n}\n\nexport type GenericCardProps = {\n /** String representing the 'type' of object. This is displayed as a label on the card. */\n type: string\n /** The title displayed on the card. */\n title: string\n /** Optionally provide href/target if the title should be a link */\n titleLinkConfiguration?: {\n href: string\n target: string\n }\n /** Optionally provide configuration if the title should be a link to a Synapse FileHandle */\n titleAsFileHandleLinkConfiguration?: {\n /** The FileHandleAssociation used to get access to the file handle */\n fileHandleAssociation: FileHandleAssociation\n /** Whether a 'download' icon should be shown */\n showDownloadIcon: boolean\n }\n /** An optional subtitle to be displayed on the card */\n subtitle?: string\n /** An description to be displayed on the card */\n description: string\n /** An optional description subtitle to be displayed on the card */\n descriptionSubTitle?: string\n /** Configuration for altering the display of the description prop */\n descriptionConfig?: DescriptionConfig\n /** Optional slot for adding content to the top of the card */\n cardTopContent?: React.ReactNode\n /** Optional slot for adding action buttons to the top of the card */\n cardTopButtons?: React.ReactNode\n /** If true, a HeaderCard component will be rendered */\n isHeader?: boolean\n /** The variant of HeaderCard to render if `isHeader` is true */\n headerCardVariant?: HeaderCardVariant\n /** Set to true if the icon is an arbitrary image. The card styles will be updated to accommodate the image\n * @default false */\n useStylesForDisplayedImage?: boolean\n /**\n * The rendered icon on the card\n */\n icon: React.ReactNode\n /**\n * The card labels to be displayed in the footer of the card\n */\n labels?: CardLabel[]\n /**\n * The initial number of labels to display in the footer of the card\n */\n secondaryLabelLimit?: number\n /**\n * Optional configuration for displaying CTA button(s) on the card. Accepts a single config or an array.\n */\n ctaLinkConfig?: CTALinkConfig | CTALinkConfig[]\n /**\n * The rendered icon list on the card\n */\n renderedIconList?: React.ReactNode\n /**\n * Optional sustainability scorecard to be displayed on the header card\n */\n sustainabilityScorecard?: SustainabilityScorecardProps\n /**\n * Optional ReactNode to be rendered next to the card type\n */\n cardTypeAdornment?: React.ReactNode\n /**\n * Optional content to render to the right of the title/subtitle/description area.\n */\n titleAreaRightContent?: React.ReactNode\n /**\n * Character count threshold for truncating description\n * @default 400\n */\n charCountCutoff?: number\n}\n\nconst EMPTY_CARD_LABEL_ARRAY: CardLabel[] = []\n\n/**\n * Generic portal card UI component with a predefined layout\n */\nexport const GenericCard = forwardRef(function GenericCard(\n props: GenericCardProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {\n icon,\n type,\n title,\n titleLinkConfiguration,\n titleAsFileHandleLinkConfiguration,\n subtitle,\n description,\n descriptionSubTitle = '',\n descriptionConfig,\n cardTopContent,\n cardTopButtons,\n isHeader = false,\n headerCardVariant,\n useStylesForDisplayedImage = false,\n labels = EMPTY_CARD_LABEL_ARRAY,\n secondaryLabelLimit,\n ctaLinkConfig,\n renderedIconList,\n sustainabilityScorecard,\n cardTypeAdornment,\n titleAreaRightContent,\n charCountCutoff,\n } = props\n\n const showFooter = labels.length > 0\n\n const style: CSSProperties = {\n // undefined, take default value from class\n marginTop: isHeader ? '0px' : undefined,\n marginBottom: isHeader ? '0px' : undefined,\n paddingBottom:\n showFooter || useStylesForDisplayedImage ? undefined : '15px',\n }\n\n if (isHeader) {\n return (\n <HeaderCard\n ref={ref}\n headerCardVariant={headerCardVariant}\n descriptionConfig={descriptionConfig}\n charCountCutoff={charCountCutoff}\n title={title}\n subTitle={subtitle}\n description={description}\n type={type}\n icon={icon}\n values={labels}\n href={titleLinkConfiguration?.href}\n target={titleLinkConfiguration?.target}\n ctaLinkConfig={ctaLinkConfig}\n isAlignToLeftNav={true}\n secondaryLabelLimit={secondaryLabelLimit}\n cardTopButtons={cardTopButtons}\n cardTopContent={cardTopContent}\n sustainabilityScorecard={sustainabilityScorecard}\n />\n )\n }\n\n return (\n <div style={style} ref={ref} className={'SRC-portalCard'}>\n <div className={'SRC-portalCardMain'}>\n {icon}\n <div className=\"SRC-cardContent\">\n {cardTopButtons && (\n <Box\n sx={{\n position: 'absolute',\n right: '24px',\n display: 'flex',\n float: 'right',\n flexDirection: 'row',\n gap: '10px',\n }}\n >\n {cardTopButtons}\n </Box>\n )}\n <Stack\n sx={{\n flexDirection: 'row',\n alignItems: 'center',\n gap: '10px',\n }}\n >\n <div className=\"SRC-type\">{type}</div>\n {cardTypeAdornment}\n </Stack>\n {renderedIconList}\n <Box className=\"SRC-cardTitleArea\">\n <Box sx={{ flex: 1, minWidth: 0 }}>\n <div>\n <h3\n className=\"SRC-boldText SRC-blackText\"\n style={{ margin: 'none' }}\n >\n {!titleAsFileHandleLinkConfiguration && (\n <GenericCardTitle\n title={title}\n href={titleLinkConfiguration?.href}\n target={titleLinkConfiguration?.target}\n />\n )}\n {titleAsFileHandleLinkConfiguration && (\n <FileHandleLink\n fileHandleAssociation={\n titleAsFileHandleLinkConfiguration.fileHandleAssociation\n }\n showDownloadIcon={\n titleAsFileHandleLinkConfiguration.showDownloadIcon\n }\n displayValue={title}\n />\n )}\n </h3>\n </div>\n {subtitle && <div className=\"SRC-author\">{subtitle}</div>}\n <CollapsibleDescription\n description={description}\n descriptionSubTitle={descriptionSubTitle}\n descriptionConfig={descriptionConfig}\n />\n {ctaLinkConfig && (\n <Box\n sx={{ mt: '20px', display: 'flex', gap: 2, flexWrap: 'wrap' }}\n >\n {(Array.isArray(ctaLinkConfig)\n ? ctaLinkConfig\n : [ctaLinkConfig]\n ).map(\n (config, index) =>\n config.text &&\n config.href && (\n <SmartLink\n key={index}\n href={config.href}\n target={config.target}\n >\n {config.text}\n </SmartLink>\n ),\n )}\n </Box>\n )}\n </Box>\n {titleAreaRightContent && (\n <div className=\"SRC-cardTitleAreaDetails\">\n {titleAreaRightContent}\n </div>\n )}\n </Box>\n </div>\n </div>\n {showFooter && (\n <CardFooter\n isHeader={false}\n secondaryLabelLimit={secondaryLabelLimit}\n values={labels}\n className={useStylesForDisplayedImage ? undefined : 'hasIcon'}\n cardTopContent={cardTopContent}\n />\n )}\n </div>\n )\n})\n\nexport default GenericCard\n"],"names":["EMPTY_CARD_LABEL_ARRAY","GenericCard","forwardRef","props","ref","icon","type","title","titleLinkConfiguration","titleAsFileHandleLinkConfiguration","subtitle","description","descriptionSubTitle","descriptionConfig","cardTopContent","cardTopButtons","isHeader","headerCardVariant","useStylesForDisplayedImage","labels","secondaryLabelLimit","ctaLinkConfig","renderedIconList","sustainabilityScorecard","cardTypeAdornment","titleAreaRightContent","charCountCutoff","showFooter","style","jsx","HeaderCard","jsxs","Box","Stack","GenericCardTitle","FileHandleLink","CollapsibleDescription","config","index","SmartLink","CardFooter"],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ColumnIconConfigs } from '../CardContainerLogic';
|
|
3
|
+
type LabelMaybeWithIconProps = {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
value: string;
|
|
6
|
+
iconConfig: ColumnIconConfigs['columns'][string] | undefined;
|
|
7
|
+
};
|
|
8
|
+
export declare function LabelMaybeWithIcon({ children, value, iconConfig, }: LabelMaybeWithIconProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=LabelMaybeWithIcon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LabelMaybeWithIcon.d.ts","sourceRoot":"","sources":["../../../src/components/GenericCard/LabelMaybeWithIcon.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAGzD,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,EAAE,SAAS,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;CAC7D,CAAA;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,KAAK,EACL,UAAU,GACX,EAAE,uBAAuB,2CAqBzB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as n, Fragment as e, jsxs as a } from "react/jsx-runtime";
|
|
2
|
+
import { Box as l } from "@mui/material";
|
|
3
|
+
import m from "../IconSvg/IconSvg.js";
|
|
4
|
+
function g({
|
|
5
|
+
children: r,
|
|
6
|
+
value: i,
|
|
7
|
+
iconConfig: o
|
|
8
|
+
}) {
|
|
9
|
+
const t = o?.[i];
|
|
10
|
+
if (!t) return /* @__PURE__ */ n(e, { children: r });
|
|
11
|
+
const { containerSx: s, ...c } = t;
|
|
12
|
+
return /* @__PURE__ */ a(e, { children: [
|
|
13
|
+
/* @__PURE__ */ n(
|
|
14
|
+
l,
|
|
15
|
+
{
|
|
16
|
+
sx: {
|
|
17
|
+
display: "inline-flex",
|
|
18
|
+
alignItems: "center",
|
|
19
|
+
justifyContent: "center",
|
|
20
|
+
verticalAlign: "middle",
|
|
21
|
+
marginRight: "7px",
|
|
22
|
+
...s
|
|
23
|
+
},
|
|
24
|
+
children: /* @__PURE__ */ n(m, { wrap: !1, ...c })
|
|
25
|
+
}
|
|
26
|
+
),
|
|
27
|
+
r
|
|
28
|
+
] });
|
|
29
|
+
}
|
|
30
|
+
export {
|
|
31
|
+
g as LabelMaybeWithIcon
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=LabelMaybeWithIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LabelMaybeWithIcon.js","sources":["../../../src/components/GenericCard/LabelMaybeWithIcon.tsx"],"sourcesContent":["import { Box } from '@mui/material'\nimport { ReactNode } from 'react'\nimport { ColumnIconConfigs } from '../CardContainerLogic'\nimport IconSVG from '../IconSvg/IconSvg'\n\ntype LabelMaybeWithIconProps = {\n children: ReactNode\n value: string\n iconConfig: ColumnIconConfigs['columns'][string] | undefined\n}\n\nexport function LabelMaybeWithIcon({\n children,\n value,\n iconConfig,\n}: LabelMaybeWithIconProps) {\n const iconProps = iconConfig?.[value]\n if (!iconProps) return <>{children}</>\n const { containerSx, ...svgProps } = iconProps\n return (\n <>\n <Box\n sx={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n verticalAlign: 'middle',\n marginRight: '7px',\n ...containerSx,\n }}\n >\n <IconSVG wrap={false} {...svgProps} />\n </Box>\n {children}\n </>\n )\n}\n"],"names":["LabelMaybeWithIcon","children","value","iconConfig","iconProps","jsx","Fragment","containerSx","svgProps","jsxs","Box","IconSVG"],"mappings":";;;AAWO,SAASA,EAAmB;AAAA,EACjC,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,YAAAC;AACF,GAA4B;AAC1B,QAAMC,IAAYD,IAAaD,CAAK;AACpC,MAAI,CAACE,EAAW,QAAO,gBAAAC,EAAAC,GAAA,EAAG,UAAAL,EAAA,CAAS;AACnC,QAAM,EAAE,aAAAM,GAAa,GAAGC,EAAA,IAAaJ;AACrC,SACE,gBAAAK,EAAAH,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAD;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,IAAI;AAAA,UACF,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,gBAAgB;AAAA,UAChB,eAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAGH;AAAA,QAAA;AAAA,QAGL,UAAA,gBAAAF,EAACM,GAAA,EAAQ,MAAM,IAAQ,GAAGH,EAAA,CAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAErCP;AAAA,EAAA,GACH;AAEJ;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CardLink } from '@/components/CardContainer/CardLink';
|
|
2
2
|
import { ColumnModel, Row, SelectColumn } from '@sage-bionetworks/synapse-types';
|
|
3
|
-
import { ColumnSpecifiedLink, MarkdownLink } from '../CardContainerLogic';
|
|
3
|
+
import { ColumnIconConfigs, ColumnSpecifiedLink, MarkdownLink } from '../CardContainerLogic';
|
|
4
4
|
import { EntityImage, MapValueToReactComponentConfig } from '../CardContainerLogic/CardContainerLogic';
|
|
5
5
|
type SynapseCardLabelProps = {
|
|
6
6
|
value: string;
|
|
@@ -12,6 +12,7 @@ type SynapseCardLabelProps = {
|
|
|
12
12
|
className?: string;
|
|
13
13
|
rowData: Row['values'];
|
|
14
14
|
rowId?: string;
|
|
15
|
+
columnIconOptions?: ColumnIconConfigs;
|
|
15
16
|
};
|
|
16
17
|
export declare function SynapseCardLabel(props: SynapseCardLabelProps): import("react/jsx-runtime").JSX.Element;
|
|
17
18
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SynapseCardLabel.d.ts","sourceRoot":"","sources":["../../../src/components/GenericCard/SynapseCardLabel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"SynapseCardLabel.d.ts","sourceRoot":"","sources":["../../../src/components/GenericCard/SynapseCardLabel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAM9D,OAAO,EACL,WAAW,EAEX,GAAG,EACH,YAAY,EACb,MAAM,iCAAiC,CAAA;AAIxC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACb,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,WAAW,EACX,8BAA8B,EAC/B,MAAM,0CAA0C,CAAA;AASjD,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EACL,QAAQ,GACR,YAAY,GACZ,mBAAmB,GACnB,WAAW,GACX,8BAA8B,GAC9B,SAAS,CAAA;IACb,aAAa,EAAE,YAAY,EAAE,GAAG,SAAS,CAAA;IACzC,YAAY,EAAE,WAAW,EAAE,GAAG,SAAS,CAAA;IACvC,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CACtC,CAAA;AACD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,2CAoP5D"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { jsx as e, jsxs as
|
|
2
|
-
import { getValueOrMultiValue as
|
|
3
|
-
import { formatDate as
|
|
4
|
-
import { getColumnIndex as
|
|
1
|
+
import { jsx as e, jsxs as d, Fragment as k } from "react/jsx-runtime";
|
|
2
|
+
import { getValueOrMultiValue as P } from "./CardUtils.js";
|
|
3
|
+
import { formatDate as q } from "../../utils/functions/DateFormatter.js";
|
|
4
|
+
import { getColumnIndex as D } from "../../utils/functions/SqlFunctions.js";
|
|
5
5
|
import "../../utils/functions/EntityTypeUtils.js";
|
|
6
6
|
import "../../utils/SynapseConstants.js";
|
|
7
7
|
import "../../synapse-client/SynapseClient.js";
|
|
@@ -9,138 +9,143 @@ import "@sage-bionetworks/synapse-client/generated/models/ErrorResponseCode";
|
|
|
9
9
|
import "@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse";
|
|
10
10
|
import "@sage-bionetworks/synapse-client/util/SynapseClientError";
|
|
11
11
|
import "@sage-bionetworks/synapse-client/util/synapseClientFetch";
|
|
12
|
-
import { isEmpty as
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import {
|
|
18
|
-
import { EntityLink as
|
|
19
|
-
import { MarkdownSynapse as
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import
|
|
23
|
-
import {
|
|
24
|
-
|
|
12
|
+
import { isEmpty as z } from "lodash-es";
|
|
13
|
+
import { TargetEnum as b } from "../../utils/html/TargetEnum.js";
|
|
14
|
+
import { Tooltip as G } from "@mui/material";
|
|
15
|
+
import { ColumnTypeEnum as R } from "@sage-bionetworks/synapse-types";
|
|
16
|
+
import J from "dayjs";
|
|
17
|
+
import { Fragment as p } from "react";
|
|
18
|
+
import { EntityLink as K } from "../EntityLink.js";
|
|
19
|
+
import { MarkdownSynapse as M } from "../Markdown/MarkdownSynapse.js";
|
|
20
|
+
import { SmartLink as $ } from "../SmartLink/SmartLink.js";
|
|
21
|
+
import { UserBadge as W } from "../UserCard/UserBadge.js";
|
|
22
|
+
import { EntityColumnImage as S } from "../widgets/EntityColumnImage.js";
|
|
23
|
+
import { LabelMaybeWithIcon as V } from "./LabelMaybeWithIcon.js";
|
|
24
|
+
import O from "./Linkify.js";
|
|
25
|
+
function Le(j) {
|
|
25
26
|
const {
|
|
26
27
|
value: s,
|
|
27
|
-
columnName:
|
|
28
|
+
columnName: T,
|
|
28
29
|
labelLink: r,
|
|
29
|
-
selectColumns:
|
|
30
|
+
selectColumns: I,
|
|
30
31
|
columnModels: L,
|
|
31
|
-
isHeader:
|
|
32
|
-
className:
|
|
33
|
-
rowData:
|
|
34
|
-
rowId:
|
|
35
|
-
|
|
32
|
+
isHeader: F,
|
|
33
|
+
className: v,
|
|
34
|
+
rowData: E,
|
|
35
|
+
rowId: H,
|
|
36
|
+
columnIconOptions: _
|
|
37
|
+
} = j;
|
|
36
38
|
if (!s)
|
|
37
39
|
return /* @__PURE__ */ e("p", { children: s });
|
|
38
|
-
const { strList: t, str: i, selectColumn:
|
|
39
|
-
columnName:
|
|
40
|
+
const { strList: t, str: i, selectColumn: w } = P({
|
|
41
|
+
columnName: T,
|
|
40
42
|
value: s,
|
|
41
|
-
selectColumns:
|
|
43
|
+
selectColumns: I,
|
|
42
44
|
columnModels: L
|
|
43
|
-
}),
|
|
45
|
+
}), y = w?.columnType, x = _?.columns?.[T], f = ", ";
|
|
44
46
|
if (!i)
|
|
45
47
|
return /* @__PURE__ */ e("p", { children: i });
|
|
46
|
-
let c =
|
|
47
|
-
const
|
|
48
|
-
if (
|
|
49
|
-
return /* @__PURE__ */ e("p", { children: t.map((n,
|
|
50
|
-
/* @__PURE__ */ e(
|
|
51
|
-
|
|
48
|
+
let c = v;
|
|
49
|
+
const U = {};
|
|
50
|
+
if (F && (c = v?.concat(" ", "SRC-lightLink")), y === R.USERID_LIST && t)
|
|
51
|
+
return /* @__PURE__ */ e("p", { children: t.map((n, o) => /* @__PURE__ */ d(p, { children: [
|
|
52
|
+
/* @__PURE__ */ e(W, { userId: n, className: c }),
|
|
53
|
+
o < t.length - 1 && f
|
|
52
54
|
] }, n)) });
|
|
53
|
-
if (
|
|
54
|
-
return /* @__PURE__ */ e(
|
|
55
|
-
if (
|
|
56
|
-
return /* @__PURE__ */ e("p", { children:
|
|
55
|
+
if (y === R.USERID && i)
|
|
56
|
+
return /* @__PURE__ */ e(W, { userId: i, className: c });
|
|
57
|
+
if (y === R.DATE && i)
|
|
58
|
+
return /* @__PURE__ */ e("p", { children: q(J(Number(i))) });
|
|
57
59
|
if (!r)
|
|
58
|
-
return /* @__PURE__ */ e(
|
|
60
|
+
return t ? /* @__PURE__ */ e(k, { children: t.map((n, o) => /* @__PURE__ */ d(p, { children: [
|
|
61
|
+
/* @__PURE__ */ e(V, { value: n, iconConfig: x, children: /* @__PURE__ */ e(O, { text: n, className: c }) }),
|
|
62
|
+
o < t.length - 1 && f
|
|
63
|
+
] }, n)) }) : /* @__PURE__ */ e(V, { value: i, iconConfig: x, children: /* @__PURE__ */ e(O, { text: i, className: c }) });
|
|
59
64
|
if ("resolveEntityName" in r && r.resolveEntityName && i) {
|
|
60
|
-
const { baseURL: n, URLColumnName:
|
|
61
|
-
return /* @__PURE__ */ e(
|
|
65
|
+
const { baseURL: n, URLColumnName: o } = r, a = `/${n}?${o}=${i}`;
|
|
66
|
+
return /* @__PURE__ */ e(K, { entity: i, link: a, showIcon: !1 });
|
|
62
67
|
}
|
|
63
|
-
let
|
|
68
|
+
let l;
|
|
64
69
|
if ("isMapValueToReactNodeConfig" in r && r.isMapValueToReactNodeConfig) {
|
|
65
70
|
const { Component: n } = r;
|
|
66
|
-
|
|
71
|
+
l = /* @__PURE__ */ e(n, { value: t || i, selectColumn: w });
|
|
67
72
|
} else if ("isMarkdown" in r && r.isMarkdown)
|
|
68
|
-
t ?
|
|
69
|
-
/* @__PURE__ */ e(
|
|
70
|
-
|
|
71
|
-
] }, n)) }) :
|
|
73
|
+
t ? l = /* @__PURE__ */ e("p", { children: t.map((n, o) => /* @__PURE__ */ d(p, { children: [
|
|
74
|
+
/* @__PURE__ */ e(M, { renderInline: !0, markdown: n }, n),
|
|
75
|
+
o < t.length - 1 && f
|
|
76
|
+
] }, n)) }) : l = /* @__PURE__ */ e(M, { renderInline: !0, markdown: s });
|
|
72
77
|
else if ("isEntityImage" in r && r.isEntityImage)
|
|
73
|
-
t ?
|
|
74
|
-
/* @__PURE__ */ e(
|
|
75
|
-
|
|
76
|
-
] }, n)) }) :
|
|
78
|
+
t ? l = /* @__PURE__ */ e("p", { children: t.map((n, o) => /* @__PURE__ */ d(p, { children: [
|
|
79
|
+
/* @__PURE__ */ e(S, { entityId: n }),
|
|
80
|
+
o < t.length - 1 && f
|
|
81
|
+
] }, n)) }) : l = /* @__PURE__ */ e(S, { entityId: s });
|
|
77
82
|
else {
|
|
78
83
|
const n = t || i.split(",");
|
|
79
|
-
let
|
|
80
|
-
if ("target" in r && (
|
|
81
|
-
const a =
|
|
84
|
+
let o;
|
|
85
|
+
if ("target" in r && (o = r.target), "linkColumnName" in r) {
|
|
86
|
+
const a = D(
|
|
82
87
|
r.linkColumnName,
|
|
83
|
-
|
|
88
|
+
I,
|
|
84
89
|
L
|
|
85
90
|
);
|
|
86
91
|
if (a == null)
|
|
87
92
|
console.warn(
|
|
88
93
|
`Could not determine column index of ${r.linkColumnName}`
|
|
89
|
-
),
|
|
94
|
+
), l = /* @__PURE__ */ e(k, { children: s });
|
|
90
95
|
else {
|
|
91
|
-
const
|
|
92
|
-
|
|
96
|
+
const h = E[a];
|
|
97
|
+
z(h) ? l = /* @__PURE__ */ e(k, { children: s }) : l = /* @__PURE__ */ e("p", { children: n.map((m, g) => /* @__PURE__ */ d(p, { children: [
|
|
93
98
|
/* @__PURE__ */ e(
|
|
94
|
-
|
|
99
|
+
$,
|
|
95
100
|
{
|
|
96
|
-
href:
|
|
97
|
-
target:
|
|
101
|
+
href: h ?? "",
|
|
102
|
+
target: o ?? b.NEW_WINDOW,
|
|
98
103
|
className: c,
|
|
99
|
-
style:
|
|
104
|
+
style: U,
|
|
100
105
|
children: m
|
|
101
106
|
},
|
|
102
107
|
m
|
|
103
108
|
),
|
|
104
|
-
|
|
109
|
+
g < n.length - 1 && /* @__PURE__ */ e("span", { style: { marginRight: 4 }, children: ", " })
|
|
105
110
|
] }, m)) });
|
|
106
111
|
}
|
|
107
112
|
} else
|
|
108
|
-
|
|
109
|
-
const m = r,
|
|
110
|
-
let
|
|
113
|
+
l = /* @__PURE__ */ e("p", { children: n.map((a, h) => {
|
|
114
|
+
const m = r, g = m.overrideValueWithRowID ? H : a;
|
|
115
|
+
let N = "";
|
|
111
116
|
if ("baseURL" in m) {
|
|
112
|
-
const { baseURL:
|
|
113
|
-
|
|
117
|
+
const { baseURL: C, URLColumnName: u, wrapValueWithParens: A } = m, B = A ? `(${g})` : g;
|
|
118
|
+
N = `/${C}?${u}=${B}`;
|
|
114
119
|
} else if ("overrideLinkURLColumnName" in m) {
|
|
115
|
-
const
|
|
120
|
+
const C = D(
|
|
116
121
|
m.overrideLinkURLColumnName,
|
|
117
|
-
|
|
122
|
+
I,
|
|
118
123
|
L
|
|
119
124
|
);
|
|
120
|
-
if (
|
|
121
|
-
const
|
|
122
|
-
|
|
125
|
+
if (C) {
|
|
126
|
+
const u = E[C];
|
|
127
|
+
u && (m.overrideLinkURLColumnTransform ? N = m.overrideLinkURLColumnTransform(u) : N = u);
|
|
123
128
|
}
|
|
124
129
|
}
|
|
125
|
-
return /* @__PURE__ */ p
|
|
130
|
+
return /* @__PURE__ */ d(p, { children: [
|
|
126
131
|
/* @__PURE__ */ e(
|
|
127
|
-
|
|
132
|
+
$,
|
|
128
133
|
{
|
|
129
|
-
href:
|
|
134
|
+
href: N,
|
|
130
135
|
className: c,
|
|
131
|
-
style:
|
|
132
|
-
target:
|
|
136
|
+
style: U,
|
|
137
|
+
target: o ?? b.CURRENT_WINDOW,
|
|
133
138
|
children: a
|
|
134
139
|
},
|
|
135
140
|
a
|
|
136
141
|
),
|
|
137
|
-
|
|
142
|
+
h < n.length - 1 && /* @__PURE__ */ e("span", { style: { marginRight: 4 }, children: ", " })
|
|
138
143
|
] }, a);
|
|
139
144
|
}) });
|
|
140
145
|
}
|
|
141
|
-
return "tooltipText" in r && r.tooltipText ? /* @__PURE__ */ e(
|
|
146
|
+
return "tooltipText" in r && r.tooltipText ? /* @__PURE__ */ e(G, { title: r.tooltipText, enterNextDelay: 300, children: /* @__PURE__ */ e("span", { children: l }) }) : l;
|
|
142
147
|
}
|
|
143
148
|
export {
|
|
144
|
-
|
|
149
|
+
Le as SynapseCardLabel
|
|
145
150
|
};
|
|
146
151
|
//# sourceMappingURL=SynapseCardLabel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SynapseCardLabel.js","sources":["../../../src/components/GenericCard/SynapseCardLabel.tsx"],"sourcesContent":["import { CardLink } from '@/components/CardContainer/CardLink'\nimport { getValueOrMultiValue } from '@/components/GenericCard/CardUtils'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { getColumnIndex } from '@/utils/functions/index'\nimport { Tooltip } from '@mui/material'\nimport {\n ColumnModel,\n ColumnTypeEnum,\n Row,\n SelectColumn,\n} from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport { isEmpty } from 'lodash-es'\nimport { CSSProperties, Fragment, ReactNode } from 'react'\nimport { ColumnSpecifiedLink, MarkdownLink } from '../CardContainerLogic'\nimport { TargetEnum } from '@/utils/html/TargetEnum'\nimport {\n EntityImage,\n MapValueToReactComponentConfig,\n} from '../CardContainerLogic/CardContainerLogic'\nimport { EntityLink } from '../EntityLink'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\nimport { UserBadge } from '../UserCard/UserBadge'\nimport { EntityColumnImage } from '../widgets/EntityColumnImage'\nimport Linkify from './Linkify'\nimport { SmartLink } from '../SmartLink/SmartLink'\n\ntype SynapseCardLabelProps = {\n value: string\n columnName: string\n labelLink:\n | CardLink\n | MarkdownLink\n | ColumnSpecifiedLink\n | EntityImage\n | MapValueToReactComponentConfig\n | undefined\n selectColumns: SelectColumn[] | undefined\n columnModels: ColumnModel[] | undefined\n isHeader: boolean\n className?: string\n rowData: Row['values']\n rowId?: string\n}\nexport function SynapseCardLabel(props: SynapseCardLabelProps) {\n const {\n value,\n columnName,\n labelLink,\n selectColumns,\n columnModels,\n isHeader,\n className,\n rowData,\n rowId,\n } = props\n\n if (!value) {\n return <p>{value}</p>\n }\n const { strList, str, selectColumn } = getValueOrMultiValue({\n columnName,\n value,\n selectColumns,\n columnModels,\n })\n\n const columnModelType = selectColumn?.columnType\n\n if (!str) {\n // the array came back empty\n return <p>{str}</p>\n }\n\n let newClassName = className\n const style: CSSProperties = {}\n if (isHeader) {\n newClassName = className?.concat(' ', 'SRC-lightLink')\n }\n // PORTALS-1913: special rendering for user ID lists\n if (columnModelType === ColumnTypeEnum.USERID_LIST && strList) {\n return (\n <p>\n {strList.map((val: string, index: number) => {\n return (\n <Fragment key={val}>\n <UserBadge userId={val} className={newClassName} />\n {/* \\u00a0 is a nbsp; */}\n {index < strList.length - 1 && ',\\u00a0\\u00a0'}\n </Fragment>\n )\n })}\n </p>\n )\n }\n if (columnModelType === ColumnTypeEnum.USERID && str) {\n return <UserBadge userId={str} className={newClassName} />\n }\n\n // NFINT-906\n if (columnModelType === ColumnTypeEnum.DATE && str) {\n return <p>{formatDate(dayjs(Number(str)))}</p>\n }\n\n if (!labelLink) {\n return <Linkify text={str} className={newClassName} />\n }\n\n if ('resolveEntityName' in labelLink && labelLink.resolveEntityName && str) {\n const { baseURL, URLColumnName } = labelLink\n const href = `/${baseURL}?${URLColumnName}=${str}`\n return <EntityLink entity={str} link={href} showIcon={false} />\n }\n\n let labelContent: ReactNode\n\n if (\n 'isMapValueToReactNodeConfig' in labelLink &&\n labelLink.isMapValueToReactNodeConfig\n ) {\n const { Component } = labelLink\n labelContent = (\n <Component value={strList || str} selectColumn={selectColumn!} />\n )\n } else if ('isMarkdown' in labelLink && labelLink.isMarkdown) {\n if (strList) {\n labelContent = (\n <p>\n {strList.map((el, index) => {\n return (\n <Fragment key={el}>\n <MarkdownSynapse key={el} renderInline={true} markdown={el} />\n {/* \\u00a0 is a nbsp; */}\n {index < strList.length - 1 && ',\\u00a0\\u00a0'}\n </Fragment>\n )\n })}\n </p>\n )\n } else {\n labelContent = <MarkdownSynapse renderInline={true} markdown={value} />\n }\n } else if ('isEntityImage' in labelLink && labelLink.isEntityImage) {\n if (strList) {\n labelContent = (\n <p>\n {strList.map((el, index) => {\n return (\n <Fragment key={el}>\n <EntityColumnImage entityId={el} />\n\n {/* \\u00a0 is a nbsp; */}\n {index < strList.length - 1 && ',\\u00a0\\u00a0'}\n </Fragment>\n )\n })}\n </p>\n )\n } else {\n labelContent = <EntityColumnImage entityId={value} />\n }\n } else {\n const split = strList ? strList : str.split(',')\n let linkTarget: TargetEnum | undefined = undefined\n if ('target' in labelLink) {\n linkTarget = labelLink.target!\n }\n if ('linkColumnName' in labelLink) {\n const linkIndex = getColumnIndex(\n labelLink.linkColumnName,\n selectColumns,\n columnModels,\n )\n if (linkIndex == null) {\n console.warn(\n `Could not determine column index of ${labelLink.linkColumnName}`,\n )\n labelContent = <>{value}</>\n } else {\n const href = rowData[linkIndex]\n\n if (isEmpty(href)) {\n labelContent = <>{value}</>\n } else {\n labelContent = (\n <p>\n {split.map((el, index) => {\n return (\n <Fragment key={el}>\n <SmartLink\n href={href ?? ''}\n target={linkTarget ?? TargetEnum.NEW_WINDOW}\n key={el}\n className={newClassName}\n style={style}\n >\n {el}\n </SmartLink>\n {index < split.length - 1 && (\n <span style={{ marginRight: 4 }}>, </span>\n )}\n </Fragment>\n )\n })}\n </p>\n )\n }\n }\n } else {\n labelContent = (\n <p>\n {split.map((el, index) => {\n const cardLink = labelLink as CardLink\n const elOrRowId = cardLink.overrideValueWithRowID ? rowId : el\n let href = ''\n if ('baseURL' in cardLink) {\n const { baseURL, URLColumnName, wrapValueWithParens } = cardLink\n const value = wrapValueWithParens ? `(${elOrRowId})` : elOrRowId\n href = `/${baseURL}?${URLColumnName}=${value}`\n } else if ('overrideLinkURLColumnName' in cardLink) {\n const overrideHrefIndex = getColumnIndex(\n cardLink.overrideLinkURLColumnName,\n selectColumns,\n columnModels,\n )\n if (overrideHrefIndex) {\n const overrideHrefData = rowData[overrideHrefIndex]\n if (overrideHrefData) {\n if (cardLink.overrideLinkURLColumnTransform) {\n href =\n cardLink.overrideLinkURLColumnTransform(overrideHrefData)\n } else {\n href = overrideHrefData\n }\n }\n }\n }\n\n return (\n <Fragment key={el}>\n <SmartLink\n href={href}\n key={el}\n className={newClassName}\n style={style}\n target={linkTarget ?? TargetEnum.CURRENT_WINDOW}\n >\n {el}\n </SmartLink>\n {index < split.length - 1 && (\n <span style={{ marginRight: 4 }}>, </span>\n )}\n </Fragment>\n )\n })}\n </p>\n )\n }\n }\n\n if ('tooltipText' in labelLink && labelLink.tooltipText) {\n // wrap in a tooltip\n return (\n <Tooltip title={labelLink.tooltipText} enterNextDelay={300}>\n <span>{labelContent}</span>\n </Tooltip>\n )\n } else {\n return labelContent\n }\n}\n"],"names":["SynapseCardLabel","props","value","columnName","labelLink","selectColumns","columnModels","isHeader","className","rowData","rowId","jsx","strList","str","selectColumn","getValueOrMultiValue","columnModelType","newClassName","style","ColumnTypeEnum","val","index","jsxs","Fragment","UserBadge","formatDate","dayjs","Linkify","baseURL","URLColumnName","href","EntityLink","labelContent","Component","el","MarkdownSynapse","EntityColumnImage","split","linkTarget","linkIndex","getColumnIndex","isEmpty","SmartLink","TargetEnum","cardLink","elOrRowId","wrapValueWithParens","overrideHrefIndex","overrideHrefData","Tooltip"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SynapseCardLabel.js","sources":["../../../src/components/GenericCard/SynapseCardLabel.tsx"],"sourcesContent":["import { CardLink } from '@/components/CardContainer/CardLink'\nimport { getValueOrMultiValue } from '@/components/GenericCard/CardUtils'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { getColumnIndex } from '@/utils/functions/index'\nimport { TargetEnum } from '@/utils/html/TargetEnum'\nimport { Tooltip } from '@mui/material'\nimport {\n ColumnModel,\n ColumnTypeEnum,\n Row,\n SelectColumn,\n} from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport { isEmpty } from 'lodash-es'\nimport { CSSProperties, Fragment, ReactNode } from 'react'\nimport {\n ColumnIconConfigs,\n ColumnSpecifiedLink,\n MarkdownLink,\n} from '../CardContainerLogic'\nimport {\n EntityImage,\n MapValueToReactComponentConfig,\n} from '../CardContainerLogic/CardContainerLogic'\nimport { EntityLink } from '../EntityLink'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\nimport { SmartLink } from '../SmartLink/SmartLink'\nimport { UserBadge } from '../UserCard/UserBadge'\nimport { EntityColumnImage } from '../widgets/EntityColumnImage'\nimport { LabelMaybeWithIcon } from './LabelMaybeWithIcon'\nimport Linkify from './Linkify'\n\ntype SynapseCardLabelProps = {\n value: string\n columnName: string\n labelLink:\n | CardLink\n | MarkdownLink\n | ColumnSpecifiedLink\n | EntityImage\n | MapValueToReactComponentConfig\n | undefined\n selectColumns: SelectColumn[] | undefined\n columnModels: ColumnModel[] | undefined\n isHeader: boolean\n className?: string\n rowData: Row['values']\n rowId?: string\n columnIconOptions?: ColumnIconConfigs\n}\nexport function SynapseCardLabel(props: SynapseCardLabelProps) {\n const {\n value,\n columnName,\n labelLink,\n selectColumns,\n columnModels,\n isHeader,\n className,\n rowData,\n rowId,\n columnIconOptions,\n } = props\n\n if (!value) {\n return <p>{value}</p>\n }\n const { strList, str, selectColumn } = getValueOrMultiValue({\n columnName,\n value,\n selectColumns,\n columnModels,\n })\n\n const columnModelType = selectColumn?.columnType\n const iconConfig = columnIconOptions?.columns?.[columnName]\n // \\u00a0 is a nbsp;\n const separator = ',\\u00a0\\u00a0'\n\n if (!str) {\n // the array came back empty\n return <p>{str}</p>\n }\n\n let newClassName = className\n const style: CSSProperties = {}\n if (isHeader) {\n newClassName = className?.concat(' ', 'SRC-lightLink')\n }\n // PORTALS-1913: special rendering for user ID lists\n if (columnModelType === ColumnTypeEnum.USERID_LIST && strList) {\n return (\n <p>\n {strList.map((val: string, index: number) => {\n return (\n <Fragment key={val}>\n <UserBadge userId={val} className={newClassName} />\n {index < strList.length - 1 && separator}\n </Fragment>\n )\n })}\n </p>\n )\n }\n if (columnModelType === ColumnTypeEnum.USERID && str) {\n return <UserBadge userId={str} className={newClassName} />\n }\n\n // NFINT-906\n if (columnModelType === ColumnTypeEnum.DATE && str) {\n return <p>{formatDate(dayjs(Number(str)))}</p>\n }\n\n if (!labelLink) {\n if (strList) {\n return (\n <>\n {strList.map((el, index) => (\n <Fragment key={el}>\n <LabelMaybeWithIcon value={el} iconConfig={iconConfig}>\n <Linkify text={el} className={newClassName} />\n </LabelMaybeWithIcon>\n {index < strList.length - 1 && separator}\n </Fragment>\n ))}\n </>\n )\n }\n return (\n <LabelMaybeWithIcon value={str} iconConfig={iconConfig}>\n <Linkify text={str} className={newClassName} />\n </LabelMaybeWithIcon>\n )\n }\n\n if ('resolveEntityName' in labelLink && labelLink.resolveEntityName && str) {\n const { baseURL, URLColumnName } = labelLink\n const href = `/${baseURL}?${URLColumnName}=${str}`\n return <EntityLink entity={str} link={href} showIcon={false} />\n }\n\n let labelContent: ReactNode\n\n if (\n 'isMapValueToReactNodeConfig' in labelLink &&\n labelLink.isMapValueToReactNodeConfig\n ) {\n const { Component } = labelLink\n labelContent = (\n <Component value={strList || str} selectColumn={selectColumn!} />\n )\n } else if ('isMarkdown' in labelLink && labelLink.isMarkdown) {\n if (strList) {\n labelContent = (\n <p>\n {strList.map((el, index) => {\n return (\n <Fragment key={el}>\n <MarkdownSynapse key={el} renderInline={true} markdown={el} />\n {index < strList.length - 1 && separator}\n </Fragment>\n )\n })}\n </p>\n )\n } else {\n labelContent = <MarkdownSynapse renderInline={true} markdown={value} />\n }\n } else if ('isEntityImage' in labelLink && labelLink.isEntityImage) {\n if (strList) {\n labelContent = (\n <p>\n {strList.map((el, index) => {\n return (\n <Fragment key={el}>\n <EntityColumnImage entityId={el} />\n {index < strList.length - 1 && separator}\n </Fragment>\n )\n })}\n </p>\n )\n } else {\n labelContent = <EntityColumnImage entityId={value} />\n }\n } else {\n const split = strList ? strList : str.split(',')\n let linkTarget: TargetEnum | undefined = undefined\n if ('target' in labelLink) {\n linkTarget = labelLink.target!\n }\n if ('linkColumnName' in labelLink) {\n const linkIndex = getColumnIndex(\n labelLink.linkColumnName,\n selectColumns,\n columnModels,\n )\n if (linkIndex == null) {\n console.warn(\n `Could not determine column index of ${labelLink.linkColumnName}`,\n )\n labelContent = <>{value}</>\n } else {\n const href = rowData[linkIndex]\n\n if (isEmpty(href)) {\n labelContent = <>{value}</>\n } else {\n labelContent = (\n <p>\n {split.map((el, index) => {\n return (\n <Fragment key={el}>\n <SmartLink\n href={href ?? ''}\n target={linkTarget ?? TargetEnum.NEW_WINDOW}\n key={el}\n className={newClassName}\n style={style}\n >\n {el}\n </SmartLink>\n {index < split.length - 1 && (\n <span style={{ marginRight: 4 }}>, </span>\n )}\n </Fragment>\n )\n })}\n </p>\n )\n }\n }\n } else {\n labelContent = (\n <p>\n {split.map((el, index) => {\n const cardLink = labelLink as CardLink\n const elOrRowId = cardLink.overrideValueWithRowID ? rowId : el\n let href = ''\n if ('baseURL' in cardLink) {\n const { baseURL, URLColumnName, wrapValueWithParens } = cardLink\n const value = wrapValueWithParens ? `(${elOrRowId})` : elOrRowId\n href = `/${baseURL}?${URLColumnName}=${value}`\n } else if ('overrideLinkURLColumnName' in cardLink) {\n const overrideHrefIndex = getColumnIndex(\n cardLink.overrideLinkURLColumnName,\n selectColumns,\n columnModels,\n )\n if (overrideHrefIndex) {\n const overrideHrefData = rowData[overrideHrefIndex]\n if (overrideHrefData) {\n if (cardLink.overrideLinkURLColumnTransform) {\n href =\n cardLink.overrideLinkURLColumnTransform(overrideHrefData)\n } else {\n href = overrideHrefData\n }\n }\n }\n }\n\n return (\n <Fragment key={el}>\n <SmartLink\n href={href}\n key={el}\n className={newClassName}\n style={style}\n target={linkTarget ?? TargetEnum.CURRENT_WINDOW}\n >\n {el}\n </SmartLink>\n {index < split.length - 1 && (\n <span style={{ marginRight: 4 }}>, </span>\n )}\n </Fragment>\n )\n })}\n </p>\n )\n }\n }\n\n if ('tooltipText' in labelLink && labelLink.tooltipText) {\n // wrap in a tooltip\n return (\n <Tooltip title={labelLink.tooltipText} enterNextDelay={300}>\n <span>{labelContent}</span>\n </Tooltip>\n )\n } else {\n return labelContent\n }\n}\n"],"names":["SynapseCardLabel","props","value","columnName","labelLink","selectColumns","columnModels","isHeader","className","rowData","rowId","columnIconOptions","jsx","strList","str","selectColumn","getValueOrMultiValue","columnModelType","iconConfig","separator","newClassName","style","ColumnTypeEnum","val","index","jsxs","Fragment","UserBadge","formatDate","dayjs","el","LabelMaybeWithIcon","Linkify","baseURL","URLColumnName","href","EntityLink","labelContent","Component","MarkdownSynapse","EntityColumnImage","split","linkTarget","linkIndex","getColumnIndex","isEmpty","SmartLink","TargetEnum","cardLink","elOrRowId","wrapValueWithParens","overrideHrefIndex","overrideHrefData","Tooltip"],"mappings":"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"}
|
|
@@ -2,9 +2,9 @@ import { CommonCardProps } from '@/components/CardContainer/CardConfiguration';
|
|
|
2
2
|
import { ColumnModel, SelectColumn } from '@sage-bionetworks/synapse-types';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { HeaderCardVariant } from '../HeaderCard';
|
|
5
|
+
import { ShareThisPageProps } from '../ShareThisPage/ShareThisPage';
|
|
5
6
|
import { SustainabilityScorecardProps } from '../SustainabilityScorecard/SustainabilityScorecard';
|
|
6
7
|
import { PortalDOIConfiguration } from './PortalDOI/PortalDOIConfiguration';
|
|
7
|
-
import { ShareThisPageProps } from '../ShareThisPage/ShareThisPage';
|
|
8
8
|
type RowSynapseEntityConfig = {
|
|
9
9
|
/** Use the table rowId to resolve the Synapse entity ID. */
|
|
10
10
|
id: {
|
|
@@ -78,6 +78,12 @@ export type TableToGenericCardMapping = {
|
|
|
78
78
|
link?: string;
|
|
79
79
|
/** Column name of the STRING_LIST column that includes icon names that represent icons that should be displayed on the card */
|
|
80
80
|
dataTypeIconNames?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Ordered list of column names to display to the right of the title area.
|
|
83
|
+
* Each renders as "Display Name: Value" on its own line. Rows with empty values are skipped.
|
|
84
|
+
* The display name is derived from getColumnDisplayName (respects column aliases and unCamelCase).
|
|
85
|
+
*/
|
|
86
|
+
titleAreaDetails?: string[];
|
|
81
87
|
/** Configuration for resolving the Synapse entity ID/version represented by each card row.
|
|
82
88
|
* The ID and version sources must both reference either row-based values or column-based values.
|
|
83
89
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableRowGenericCard.d.ts","sourceRoot":"","sources":["../../../src/components/GenericCard/TableRowGenericCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAA;
|
|
1
|
+
{"version":3,"file":"TableRowGenericCard.d.ts","sourceRoot":"","sources":["../../../src/components/GenericCard/TableRowGenericCard.tsx"],"names":[],"mappings":"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"}
|