import * as React from 'react'; import annotationStyles from './../styles/annotation.module.scss'; import classNames from 'classnames'; import tooltipStyles from './styles/mutationAssessorTooltip.module.scss'; import { DefaultTooltip } from 'cbioportal-frontend-commons'; import { MutationAssessor as MutationAssessorData } from 'genome-nexus-ts-api-client'; import mutationAssessorColumn from './styles/mutationAssessorColumn.module.scss'; export interface IMutationAssessorProps { mutationAssessor: MutationAssessorData | undefined; } export function hideArrow(tooltipEl: any) { const arrowEl = tooltipEl.querySelector('.rc-tooltip-arrow'); arrowEl.style.display = 'none'; } export default class MutationAssessor extends React.Component< IMutationAssessorProps, {} > { static MUTATION_ASSESSOR_URL: string = 'http://mutationassessor.org/r3/'; constructor(props: IMutationAssessorProps) { super(props); this.tooltipContent = this.tooltipContent.bind(this); } public static download( mutationAssessorData: MutationAssessorData | undefined ): string { if (mutationAssessorData) { return `impact: ${mutationAssessorData.functionalImpact}, score: ${mutationAssessorData.functionalImpactScore}`; } else { return 'NA'; } } public render() { let maContent: JSX.Element = ( ); if ( this.props.mutationAssessor && this.props.mutationAssessor.functionalImpact !== null ) { const maData = this.props.mutationAssessor; maContent = ( ); const arrowContent =
; maContent = ( {maContent} ); } return maContent; } private tooltipContent() { if (this.props.mutationAssessor) { const maData = this.props.mutationAssessor; const impact = maData.functionalImpact ? (
{(maData.functionalImpactScore || maData.functionalImpactScore === 0) && ( )}
Source MutationAssessor
Impact {maData.functionalImpact}
Score {maData.functionalImpactScore.toFixed( 2 )}
) : null; return impact; } } }