@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
31 lines (30 loc) • 937 B
TypeScript
export type RectTuple = [number, number, number, number];
export interface SerializedLayout {
rectangles: Record<string, RectTuple>;
totalHeight: number;
containsNoTransferables?: true;
maxHeightReached: boolean;
}
export interface Rectangle<T> {
id: string;
l: number;
r: number;
top: number | null;
h: number;
originalHeight: number;
data?: T;
}
export interface BaseLayout<T> {
addRect(id: string, left: number, right: number, height: number, data?: unknown): number | null;
collides(rect: Rectangle<T>, top: number): boolean;
addRectToBitmap(rect: Rectangle<T>, data: unknown): void;
getRectangles(): Map<string, RectTuple>;
discardRange(left: number, right: number): void;
serializeRegion(region: {
start: number;
end: number;
}): SerializedLayout;
getTotalHeight(): number;
maxHeightReached: boolean;
toJSON(): SerializedLayout;
}