UNPKG

seqviz-plus

Version:
60 lines (59 loc) 1.76 kB
import * as React from "react"; import { InputRefFunc } from "../SelectionHandler"; import { Annotation, CutSite, Highlight, NameRange, Range, SeqType, Size } from "../elements"; export interface LinearProps { annotations: Annotation[]; bpColors?: { [key: number | string]: string; }; bpsPerBlock: number; charWidth: number; compSeq: string; cutSites: CutSite[]; elementHeight: number; handleMouseEvent: React.MouseEventHandler; highlights: Highlight[]; inputRef: InputRefFunc; lineHeight: number; onUnmount: (id: string) => void; search: NameRange[]; viewer: string; seq: string; seqFontSize: number; seqType: SeqType; colorized: boolean; showComplement: boolean; showIndex: boolean; size: Size; translations: Range[]; zoom: { linear: number; }; } /** * A linear sequence viewer. * * Comprised of SeqBlock(s), which are themselves comprised of: * text (seq) * Index (axis) * Annotations * Finds * Translations * Selections */ export default class Linear extends React.Component<LinearProps> { /** * Deep equality comparison */ shouldComponentUpdate: (nextProps: LinearProps) => boolean; /** * given all the information needed to render all the seqblocks (ie, sequence, compSeq * list of annotations), cut up all that information into an array. * Each element in that array pertaining to one SeqBlock * * For example, if each seqblock has 2 bps, and the seq is "ATGCAG", this should first * make an array of ["AT", "GC", "AG"], and then pass "AT" to the first SeqBlock, "GC" to * the second seqBlock, and "AG" to the third seqBlock. */ render(): 0 | JSX.Element; }