import * as React from 'react'; import { DefaultTooltip } from 'cbioportal-frontend-commons'; import SampleManager from 'pages/patientView/SampleManager'; import { ClonalValue } from './ClonalColumnFormatter'; export const stripePattern = ( ); export enum ClonalColor { LIMEGREEN = 'limegreen', DIMGREY = 'dimgrey', LIGHTGREY = 'lightgrey', STRIPED = 'url(#stripePattern)', WHITE = 'white', BLACK = 'black', } export function getClonalCircleColor(clonalValue: string): ClonalColor { switch (clonalValue) { case ClonalValue.CLONAL: return ClonalColor.BLACK; case ClonalValue.SUBCLONAL: return ClonalColor.STRIPED; case ClonalValue.INDETERMINATE: return ClonalColor.LIGHTGREY; // Indeterminate/NA falls under this case default: return ClonalColor.DIMGREY; } } export function getOptionalPattern(clonalValue: string) { return clonalValue === ClonalValue.SUBCLONAL ? stripePattern : null; } function getClonalStrokeColor(clonalValue: string): ClonalColor { switch (clonalValue) { case ClonalValue.CLONAL: return ClonalColor.BLACK; case ClonalValue.SUBCLONAL: return ClonalColor.BLACK; case ClonalValue.INDETERMINATE: return ClonalColor.LIGHTGREY; // Indeterminate/NA falls under this case default: return ClonalColor.DIMGREY; } } export const ClonalElementTooltip: React.FunctionComponent<{ sampleId: string; clonalValue: string; ccfExpectedCopies: string; sampleManager?: SampleManager | null; }> = props => { const firstColumnStyle = { width: 40, display: 'inline-block', }; return (
{props.sampleManager ? (
{props.sampleManager.getComponentForSample( props.sampleId, 1, '' )}
) : null}
Clonal {props.clonalValue !== ClonalValue.NA ? props.clonalValue.toLowerCase() : props.clonalValue}
CCF {props.ccfExpectedCopies}
); }; const ClonalCircle: React.FunctionComponent<{ clonalValue: string; }> = props => { return ( {getOptionalPattern(props.clonalValue)} ); }; const ClonalElement: React.FunctionComponent<{ sampleId: string; clonalValue: string; //clonal, subclonal, NA ccfExpectedCopies: string; sampleManager?: SampleManager | null; }> = props => { if (props.clonalValue === ClonalValue.NA) { return ( ); } else { return ( } placement="left" > ); } }; export default ClonalElement;