import * as React from 'react';
import { DefaultTooltip } from 'cbioportal-frontend-commons';
import SampleManager from 'pages/patientView/SampleManager';
import {
ClonalColor,
getClonalCircleColor,
getOptionalPattern,
stripePattern,
} from 'shared/components/mutationTable/column/clonal/ClonalElement';
import { ClonalValue } from 'shared/components/mutationTable/column/clonal/ClonalColumnFormatter';
export const maxBarHeight = 12;
const barWidth = 5;
const barSpacing = 3;
export const indexToBarLeft = (n: number) => n * (barWidth + barSpacing);
function getSVGWidth(numberOfSamples: number) {
return numberOfSamples * barWidth + (numberOfSamples - 1) * barSpacing;
}
export const CancerCellFractionElementTooltip: React.FunctionComponent<{
sampleIds: string[];
sampleToCCFValue: { [key: string]: string };
sampleManager?: SampleManager | null;
}> = props => {
const sampleOrder = props.sampleManager
? props.sampleManager.getSampleIdsInOrder()
: [];
const orderedSamplesWithValues = sampleOrder.filter(
(sampleId, index, array) => {
return props.sampleToCCFValue[sampleId];
}
);
const tooltipLines = orderedSamplesWithValues.map(
(sampleId, index, array) => (
{props.sampleManager
? props.sampleManager.getComponentForSample(sampleId, 1, '')
: null}{' '}
{props.sampleToCCFValue[sampleId]}
)
);
return {tooltipLines};
};
const CancerCellFractionBar: React.FunctionComponent<{
ccfValue: string;
clonalValue: string;
color: any;
barX: number;
}> = props => {
const barHeight =
(isNaN(+props.ccfValue) ? 0 : +props.ccfValue) * maxBarHeight;
const barY = maxBarHeight - barHeight;
return (
);
};
const CancerCellFractionBarGraph: React.FunctionComponent<{
sampleIds: string[];
sampleToClonalValue: { [key: string]: string };
sampleToCCFValue: { [key: string]: string };
sampleManager?: SampleManager | null;
}> = props => {
const sampleOrder = props.sampleManager
? props.sampleManager.getSampleIdsInOrder()
: [];
const barX = sampleOrder.reduce((map, sampleId: string, i: number) => {
map[sampleId] = indexToBarLeft(i);
return map;
}, {} as { [s: string]: number });
return (
);
};
const CancerCellFractionElement: React.FunctionComponent<{
sampleIds: string[];
sampleToClonalValue: { [key: string]: string };
sampleToCCFValue: { [key: string]: string };
sampleManager?: SampleManager | null;
}> = props => {
if (props.sampleManager) {
return (
}
>
{}
);
} else {
return {props.sampleToCCFValue[props.sampleIds[0]]};
}
};
export default CancerCellFractionElement;