@jbrowse/plugin-linear-genome-view
Version:
JBrowse 2 linear genome view
269 lines (268 loc) • 13.1 kB
TypeScript
import type React from 'react';
import type { BpOffset, ExportSvgOptions, HighlightType, InitState, NavLocation } from './types';
import type PluginManager from '@jbrowse/core/PluginManager';
import type BaseResult from '@jbrowse/core/TextSearch/BaseResults';
import type { Assembly } from '@jbrowse/core/assemblyManager/assembly';
import type { MenuItem } from '@jbrowse/core/ui';
import type { ParsedLocString } from '@jbrowse/core/util';
import type { BaseBlock, BlockSet } from '@jbrowse/core/util/blockTypes';
import type { Region } from '@jbrowse/core/util/types';
import type { Instance } from 'mobx-state-tree';
export declare function stateModelFactory(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
displayName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
minimized: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
} & {
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
type: import("mobx-state-tree").IType<string | undefined, string, string>;
offsetPx: import("mobx-state-tree").IType<number | undefined, number, number>;
bpPerPx: import("mobx-state-tree").IType<number | undefined, number, number>;
displayedRegions: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<Region[], Region[], Region[]>, [undefined]>;
tracks: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyType>;
hideHeader: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
hideHeaderOverview: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
hideNoTracksActive: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
trackSelectorType: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
showCenterLine: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
showCytobandsSetting: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
trackLabels: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
showGridlines: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
highlight: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<HighlightType, HighlightType, HighlightType>>, [undefined]>;
colorByCDS: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
showTrackOutlines: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
init: import("mobx-state-tree").IType<InitState | undefined, InitState | undefined, InitState | undefined>;
}, {
width: number;
} & {
menuItems(): MenuItem[];
} & {
setDisplayName(name: string): void;
setWidth(newWidth: number): void;
setMinimized(flag: boolean): void;
} & {
volatileWidth: number | undefined;
minimumBlockWidth: number;
draggingTrackId: undefined | string;
volatileError: unknown;
afterDisplayedRegionsSetCallbacks: (() => void)[];
scaleFactor: number;
trackRefs: Record<string, HTMLDivElement>;
coarseDynamicBlocks: BaseBlock[];
coarseTotalBp: number;
leftOffset: undefined | BpOffset;
rightOffset: undefined | BpOffset;
} & {
readonly pinnedTracks: any[];
readonly unpinnedTracks: any[];
readonly trackLabelsSetting: any;
readonly width: number;
readonly interRegionPaddingWidth: number;
readonly assemblyNames: string[];
readonly assemblyDisplayNames: string[];
readonly isTopLevelView: boolean;
readonly stickyViewHeaders: boolean;
readonly rubberbandTop: number;
readonly pinnedTracksTop: number;
} & {
scaleBarDisplayPrefix(): string | undefined;
MiniControlsComponent(): React.FC<any>;
HeaderComponent(): React.FC<any>;
readonly assembliesNotFound: string | undefined;
readonly assemblyErrors: string;
readonly assembliesInitialized: boolean;
readonly initialized: boolean;
readonly hasDisplayedRegions: boolean;
readonly scaleBarHeight: number;
readonly headerHeight: number;
readonly trackHeights: number;
readonly trackHeightsWithResizeHandles: number;
readonly height: number;
readonly totalBp: number;
readonly maxBpPerPx: number;
readonly minBpPerPx: number;
readonly error: unknown;
readonly maxOffset: number;
readonly minOffset: number;
readonly displayedRegionsTotalPx: number;
renderProps(): any;
searchScope(assemblyName: string): {
assemblyName: string;
includeAggregateIndexes: boolean;
tracks: import("mobx-state-tree").IMSTArray<import("mobx-state-tree").IAnyType> & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyType>>;
};
getTrack(id: string): any;
rankSearchResults(results: BaseResult[]): BaseResult[];
rewriteOnClicks(trackType: string, viewMenuActions: MenuItem[]): void;
readonly trackTypeActions: Map<string, MenuItem[]>;
} & {
setShowTrackOutlines(arg: boolean): void;
setColorByCDS(flag: boolean): void;
setShowCytobands(flag: boolean): void;
setWidth(newWidth: number): void;
setError(error: unknown): void;
setHideHeader(b: boolean): void;
setHideHeaderOverview(b: boolean): void;
setHideNoTracksActive(b: boolean): void;
setShowGridlines(b: boolean): void;
addToHighlights(highlight: HighlightType): void;
setHighlight(highlight?: HighlightType[]): void;
removeHighlight(highlight: HighlightType): void;
scrollTo(offsetPx: number): number;
zoomTo(bpPerPx: number, offset?: number, centerAtOffset?: boolean): number;
setOffsets(left?: BpOffset, right?: BpOffset): void;
setSearchResults(searchResults: BaseResult[], searchQuery: string, assemblyName?: string): void;
setNewView(bpPerPx: number, offsetPx: number): void;
horizontallyFlip(): void;
showTrack(trackId: string, initialSnapshot?: {}, displayInitialSnapshot?: {}): any;
hideTrack(trackId: string): number;
} & {
moveTrackDown(id: string): void;
moveTrackUp(id: string): void;
moveTrackToTop(id: string): void;
moveTrackToBottom(id: string): void;
moveTrack(movingId: string, targetId: string): void;
toggleTrack(trackId: string): boolean;
setTrackLabels(setting: "overlapping" | "offset" | "hidden"): void;
setShowCenterLine(b: boolean): void;
setDisplayedRegions(regions: Region[]): void;
activateTrackSelector(): import("@jbrowse/core/util").Widget;
getSelectedRegions(leftOffset?: BpOffset, rightOffset?: BpOffset): {
start: number;
end: number;
type: string;
regionNumber?: number;
reversed?: boolean;
refName: string;
assemblyName: string;
key: string;
offsetPx: number;
widthPx: number;
variant?: string;
isLeftEndOfDisplayedRegion?: boolean;
}[];
afterDisplayedRegionsSet(cb: () => void): void;
horizontalScroll(distance: number): number;
center(): void;
showAllRegions(): void;
showAllRegionsInAssembly(assemblyName?: string): void;
setDraggingTrackId(idx?: string): void;
setScaleFactor(factor: number): void;
clearView(): void;
setInit(arg?: InitState): void;
exportSvg(opts?: ExportSvgOptions): Promise<void>;
} & {
slide: (viewWidths: number) => void;
} & {
zoom: (targetBpPerPx: number) => void;
} & {
readonly canShowCytobands: boolean;
readonly showCytobands: boolean;
readonly anyCytobandsExist: boolean;
readonly cytobandOffset: number;
} & {
menuItems(): MenuItem[];
} & {
readonly staticBlocks: BlockSet;
readonly dynamicBlocks: BlockSet;
readonly roundedDynamicBlocks: BaseBlock[];
readonly visibleLocStrings: string;
readonly coarseVisibleLocStrings: string;
} & {
setCoarseDynamicBlocks(blocks: BlockSet): void;
} & {
moveTo(start?: BpOffset, end?: BpOffset): void;
navToLocString(input: string, optAssemblyName?: string, grow?: number): Promise<void>;
navToSearchString({ input, assembly, }: {
input: string;
assembly: Assembly;
}): Promise<void>;
navToLocation(parsedLocString: ParsedLocString, assemblyName?: string, grow?: number): Promise<void>;
navToLocations(regions: ParsedLocString[], assemblyName?: string, grow?: number): Promise<void>;
navTo(query: NavLocation): void;
navToMultiple(locations: NavLocation[]): void;
} & {
rubberBandMenuItems(): MenuItem[];
bpToPx({ refName, coord, regionNumber, }: {
refName: string;
coord: number;
regionNumber?: number;
}): {
index: number;
offsetPx: number;
} | undefined;
centerAt(coord: number, refName: string, regionNumber?: number): void;
pxToBp(px: number): {
coord: number;
index: number;
refName: string;
oob: boolean;
assemblyName: string;
offset: number;
start: number;
end: number;
reversed?: boolean;
};
readonly centerLineInfo: {
coord: number;
index: number;
refName: string;
oob: boolean;
assemblyName: string;
offset: number;
start: number;
end: number;
reversed?: boolean;
} | undefined;
} & {
afterCreate(): void;
afterAttach(): void;
}, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
displayName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
minimized: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
} & {
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
type: import("mobx-state-tree").IType<string | undefined, string, string>;
offsetPx: import("mobx-state-tree").IType<number | undefined, number, number>;
bpPerPx: import("mobx-state-tree").IType<number | undefined, number, number>;
displayedRegions: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<Region[], Region[], Region[]>, [undefined]>;
tracks: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyType>;
hideHeader: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
hideHeaderOverview: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
hideNoTracksActive: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
trackSelectorType: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
showCenterLine: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
showCytobandsSetting: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
trackLabels: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
showGridlines: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
highlight: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<HighlightType, HighlightType, HighlightType>>, [undefined]>;
colorByCDS: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
showTrackOutlines: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
init: import("mobx-state-tree").IType<InitState | undefined, InitState | undefined, InitState | undefined>;
}>>, {
type: string;
id: string;
displayName: string | undefined;
tracks: any[];
minimized: boolean;
offsetPx: number;
bpPerPx: number;
displayedRegions: Region[];
hideHeader: boolean;
hideHeaderOverview: boolean;
hideNoTracksActive: boolean;
trackSelectorType: string;
showCenterLine: boolean;
showCytobandsSetting: boolean;
trackLabels: string;
showGridlines: boolean;
highlight: HighlightType[];
colorByCDS: boolean;
showTrackOutlines: boolean;
}>;
export type LinearGenomeViewStateModel = ReturnType<typeof stateModelFactory>;
export type LinearGenomeViewModel = Instance<LinearGenomeViewStateModel>;
export { default as LinearGenomeView, default as ReactComponent, } from './components/LinearGenomeView';
export { default as RefNameAutocomplete } from './components/RefNameAutocomplete';
export { default as SearchBox } from './components/SearchBox';
export { renderToSvg } from './svgcomponents/SVGLinearGenomeView';