@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
275 lines (274 loc) • 12.1 kB
TypeScript
import type React from 'react';
import type PluginManager from '../PluginManager';
import type { BaseBlock } from './blockTypes';
import type { Feature } from './simpleFeature';
import type { AssemblyManager, Region, TypeTestedByPredicate } from './types';
import type { Region as MUIRegion } from './types/mst';
import type { BaseOptions } from '../data_adapters/BaseAdapter';
import type { GenericFilehandle } from 'generic-filehandle2';
import type { IAnyStateTreeNode, IStateTreeNode, Instance } from 'mobx-state-tree';
export * from './types';
export * from './when';
export * from './range';
export * from './dedupe';
export * from './offscreenCanvasPonyfill';
export * from './offscreenCanvasUtils';
export declare function useDebounce<T>(value: T, delay: number): T;
export declare function useWidthSetter(view: {
setWidth: (arg: number) => void;
}, padding: string): React.RefObject<HTMLDivElement | null>;
export declare function useDebouncedCallback<T>(callback: (...args: T[]) => void, wait?: number): (...args: T[]) => void;
export declare function findParentThat(node: IAnyStateTreeNode, predicate: (thing: IAnyStateTreeNode) => boolean): IAnyStateTreeNode;
export declare function springAnimate(fromValue: number, toValue: number, setValue: (value: number) => void, onFinish?: () => void, precision?: number, tension?: number, friction?: number, clamp?: boolean): (() => void)[];
export declare function findParentThatIs<T extends (a: IAnyStateTreeNode) => boolean>(node: IAnyStateTreeNode, predicate: T): TypeTestedByPredicate<T>;
export declare function getSession(node: IAnyStateTreeNode): import("./types").AbstractSessionModel;
export declare function getContainingView(node: IAnyStateTreeNode): import("./types").AbstractViewModel;
export declare function getContainingTrack(node: IAnyStateTreeNode): import("./types").AbstractTrackModel;
export declare function getContainingDisplay(node: IAnyStateTreeNode): import("./types").AbstractDisplayModel;
export declare function assembleLocString(region: ParsedLocString): string;
export declare function assembleLocStringFast(region: ParsedLocString, cb?: (n: number) => string | number): string;
export interface ParsedLocString {
assemblyName?: string;
refName: string;
start?: number;
end?: number;
reversed?: boolean;
}
export declare function parseLocStringOneBased(locString: string, isValidRefName: (refName: string, assemblyName?: string) => boolean): ParsedLocString;
export declare function parseLocString(locString: string, isValidRefName: (refName: string, assemblyName?: string) => boolean): ParsedLocString;
export declare function compareLocs(locA: ParsedLocString, locB: ParsedLocString): number;
export declare function compareLocStrings(a: string, b: string, isValidRefName: (refName: string, assemblyName?: string) => boolean): number;
export declare function clamp(num: number, min: number, max: number): number;
export declare function bpToPx(bp: number, { reversed, end, start, }: {
start?: number;
end?: number;
reversed?: boolean;
}, bpPerPx: number): number;
export declare function radToDeg(radians: number): number;
export declare function degToRad(degrees: number): number;
export declare function polarToCartesian(rho: number, theta: number): [number, number];
export declare function cartesianToPolar(x: number, y: number): [number, number];
interface MinimalRegion {
start: number;
end: number;
reversed?: boolean;
}
export declare function featureSpanPx(feature: Feature, region: MinimalRegion, bpPerPx: number): readonly [number, number];
export declare function bpSpanPx(leftBp: number, rightBp: number, region: MinimalRegion, bpPerPx: number): readonly [number, number];
export declare function iterMap<T, U>(iter: Iterable<T>, func: (arg: T) => U, sizeHint?: number): U[];
export declare function findLastIndex<T>(array: T[], predicate: (value: T, index: number, obj: T[]) => boolean): number;
export declare function findLast<T>(array: T[], predicate: (value: T, index: number, obj: T[]) => boolean): T | undefined;
export declare function renameRegionIfNeeded(refNameMap: Record<string, string> | undefined, region: Region | Instance<typeof MUIRegion>): Region & {
originalRefName?: string;
};
export declare function renameRegionsIfNeeded<ARGTYPE extends {
assemblyName?: string;
regions?: Region[];
stopToken?: string;
adapterConfig: Record<string, unknown>;
sessionId: string;
statusCallback?: (arg: string) => void;
}>(assemblyManager: AssemblyManager, args: ARGTYPE): Promise<ARGTYPE & {
regions: (Region & {
originalRefName?: string;
})[];
}>;
export declare function minmax(a: number, b: number): readonly [number, number];
export declare function shorten(name: string, max?: number, short?: number): string;
export declare function shorten2(name: string, max?: number): string;
export declare function stringify({ refName, coord, assemblyName, oob, }: {
assemblyName?: string;
coord: number;
refName?: string;
oob?: boolean;
}, useAssemblyName?: boolean): string;
export declare const isElectron: boolean;
export declare const complementTable: Record<string, string>;
export declare function revcom(str: string): string;
export declare function reverse(str: string): string;
export declare function complement(str: string): string;
export declare const rIC: (((callback: IdleRequestCallback, options?: IdleRequestOptions) => number) & typeof requestIdleCallback) | ((cb: () => void) => void);
export declare function measureText(str: unknown, fontSize?: number): number;
export type Frame = 1 | 2 | 3 | -1 | -2 | -3;
export declare function getFrame(start: number, end: number, strand: 1 | -1, phase: 0 | 1 | 2): Frame;
export declare const defaultStarts: string[];
export declare const defaultStops: string[];
export declare const defaultCodonTable: {
TCA: string;
TCC: string;
TCG: string;
TCT: string;
TTC: string;
TTT: string;
TTA: string;
TTG: string;
TAC: string;
TAT: string;
TAA: string;
TAG: string;
TGC: string;
TGT: string;
TGA: string;
TGG: string;
CTA: string;
CTC: string;
CTG: string;
CTT: string;
CCA: string;
CCC: string;
CCG: string;
CCT: string;
CAC: string;
CAT: string;
CAA: string;
CAG: string;
CGA: string;
CGC: string;
CGG: string;
CGT: string;
ATA: string;
ATC: string;
ATT: string;
ATG: string;
ACA: string;
ACC: string;
ACG: string;
ACT: string;
AAC: string;
AAT: string;
AAA: string;
AAG: string;
AGC: string;
AGT: string;
AGA: string;
AGG: string;
GTA: string;
GTC: string;
GTG: string;
GTT: string;
GCA: string;
GCC: string;
GCG: string;
GCT: string;
GAC: string;
GAT: string;
GAA: string;
GAG: string;
GGA: string;
GGC: string;
GGG: string;
GGT: string;
};
export declare function generateCodonTable(table: any): Record<string, string>;
export declare function updateStatus<U>(msg: string, cb: (arg: string) => void, fn: () => U | Promise<U>): Promise<U>;
export declare function updateStatus2<U>(msg: string, cb: (arg: string) => void, stopToken: string | undefined, fn: () => U | Promise<U>): Promise<U>;
export declare function hashCode(str: string): number;
export declare function objectHash(obj: Record<string, any>): string;
interface VirtualOffset {
blockPosition: number;
}
interface Block {
minv: VirtualOffset;
maxv: VirtualOffset;
}
export declare function bytesForRegions(regions: Region[], index: {
blocksForRange: (ref: string, start: number, end: number) => Promise<Block[]>;
}): Promise<number>;
export interface ViewSnap {
bpPerPx: number;
interRegionPaddingWidth: number;
minimumBlockWidth: number;
width: number;
offsetPx: number;
staticBlocks: {
contentBlocks: BaseBlock[];
blocks: BaseBlock[];
};
displayedRegions: (IStateTreeNode & {
start: number;
end: number;
refName: string;
reversed?: boolean;
assemblyName: string;
})[];
}
export declare function isSupportedIndexingAdapter(type?: string): boolean;
export declare function getBpDisplayStr(total: number): string;
export declare function getProgressDisplayStr(current: number, total: number): string;
export declare function toLocale(n: number): string;
export declare function getTickDisplayStr(totalBp: number, bpPerPx: number): string;
export declare function getViewParams(model: IAnyStateTreeNode, exportSVG?: boolean): {
offsetPx: number;
offsetPx1: number;
start: number;
end: number;
};
export declare function getLayoutId({ sessionId, layoutId, }: {
sessionId: string;
layoutId: string;
}): string;
export declare function useLocalStorage<T>(key: string, initialValue: T): readonly [T, (value: T | ((val: T) => T)) => void];
export declare function getUriLink(value: {
uri: string;
baseUri?: string;
}): string;
export declare function getStr(obj: unknown): string;
export declare function coarseStripHTML(s: string): string;
export declare function linkify(s: string): string;
export declare function measureGridWidth(elements: unknown[], args?: {
minWidth?: number;
fontSize?: number;
maxWidth?: number;
padding?: number;
stripHTML?: boolean;
}): number;
export declare function getEnv(obj: any): {
pluginManager: PluginManager;
};
export declare function localStorageGetItem(item: string): string | null | undefined;
export declare function localStorageSetItem(str: string, item: string): void;
export declare function max(arr: Iterable<number>, init?: number): number;
export declare function min(arr: Iterable<number>, init?: number): number;
export declare function sum(arr: Iterable<number>): number;
export declare function avg(arr: number[]): number;
export declare function groupBy<T>(array: Iterable<T>, predicate: (v: T) => string): Record<string, T[]>;
export declare function notEmpty<T>(value: T | null | undefined): value is T;
export declare function mergeIntervals<T extends {
start: number;
end: number;
}>(intervals: T[], w?: number): T[];
export interface BasicFeature {
end: number;
start: number;
refName: string;
}
export declare function gatherOverlaps<T extends BasicFeature>(regions: T[], w?: number): T[];
export declare function stripAlpha(str: string): string;
export declare function getStrokeProps(str: string): {
strokeOpacity: number;
stroke: string;
} | {
strokeOpacity?: undefined;
stroke?: undefined;
};
export declare function getFillProps(str: string): {
fillOpacity: number;
fill: string;
} | {
fillOpacity?: undefined;
fill?: undefined;
};
export declare function renderToStaticMarkup(node: React.ReactElement): string;
export declare function isGzip(buf: Uint8Array): boolean;
export declare function fetchAndMaybeUnzip(loc: GenericFilehandle, opts?: BaseOptions): Promise<Uint8Array<ArrayBufferLike>>;
export declare function fetchAndMaybeUnzipText(loc: GenericFilehandle, opts?: BaseOptions): Promise<string>;
export declare function isObject(x: unknown): x is Record<string | symbol | number, unknown>;
export declare function localStorageGetNumber(key: string, defaultVal: number): number;
export declare function localStorageGetBoolean(key: string, defaultVal: boolean): boolean;
export declare function localStorageSetBoolean(key: string, value: boolean): void;
export declare function forEachWithStopTokenCheck<T>(iter: Iterable<T>, stopToken: string | undefined, arg: (arg: T, idx: number) => void, durationMs?: number): void;
export declare function testAdapter(fileName: string, regex: RegExp, adapterHint: string | undefined, expected: string): boolean;
export { type Feature, type SimpleFeatureSerialized, type SimpleFeatureSerializedNoId, default as SimpleFeature, isFeature, } from './simpleFeature';
export { blobToDataURL } from './blobToDataURL';
export { makeAbortableReaction } from './makeAbortableReaction';
export * from './aborting';