@jbrowse/plugin-linear-genome-view
Version:
JBrowse 2 linear genome view
302 lines (301 loc) • 17.9 kB
TypeScript
import type React from 'react';
import type { BpOffset, ExportSvgOptions, HighlightType, InitState, NavLocation, VolatileGuide } from './types.ts';
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 '@jbrowse/mobx-state-tree';
export declare function stateModelFactory(pluginManager: PluginManager): import("@jbrowse/mobx-state-tree").IModelType<{
id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
displayName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
minimized: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
} & {
id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
type: import("@jbrowse/mobx-state-tree").IType<string | undefined, string, string>;
offsetPx: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
bpPerPx: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
displayedRegions: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IType<Region[], Region[], Region[]>, [undefined]>;
tracks: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyType>;
hideHeader: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
hideHeaderOverview: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
hideNoTracksActive: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
trackSelectorType: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
showCenterLine: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
showCytobandsSetting: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
trackLabels: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
showGridlines: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
highlight: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IType<HighlightType, HighlightType, HighlightType>>, [undefined]>;
highlightsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
labelsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
colorByCDS: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
showTrackOutlines: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
init: import("@jbrowse/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;
lastTrackDragY: undefined | number;
volatileError: unknown;
scaleFactor: number;
targetBpPerPx: number | undefined;
trackRefs: Record<string, HTMLDivElement>;
coarseDynamicBlocks: BaseBlock[];
coarseTotalBp: number;
leftOffset: undefined | BpOffset;
rightOffset: undefined | BpOffset;
isScalebarRefNameMenuOpen: boolean;
scalebarRefNameClickPending: boolean;
volatileGuides: VolatileGuide[];
} & {
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 loadingMessage: "Loading" | undefined;
readonly hasSomethingToShow: boolean;
readonly showLoading: boolean;
readonly showImportForm: boolean;
readonly scalebarHeight: number;
readonly headerHeight: number;
readonly trackHeights: number;
readonly trackHeightsWithResizeHandles: number;
readonly height: number;
readonly totalBp: number;
getNonElidedRegionCount(bpPerPx: number): number;
getInterRegionPaddingPx(bpPerPx: number): 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("@jbrowse/mobx-state-tree").IMSTArray<import("@jbrowse/mobx-state-tree").IAnyType> & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyType>>;
};
readonly trackMap: Map<any, any>;
getTrack(id: string): any;
rankSearchResults(results: BaseResult[]): BaseResult[];
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;
setIsScalebarRefNameMenuOpen(isOpen: boolean): void;
setScalebarRefNameClickPending(pending: boolean): 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;
updateHighlight(old: HighlightType, updates: Partial<HighlightType>): void;
setHighlightsVisible(arg: boolean): void;
setLabelsVisible(arg: boolean): void;
setVolatileGuides(guides: VolatileGuide[]): 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): 0 | 1;
} & {
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): void;
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): {
assemblyName: string;
refName: string;
start: number;
end: number;
}[];
horizontalScroll(distance: number): number;
showAllRegions(): void;
showAllRegionsInAssembly(assemblyName?: string): void;
setDraggingTrackId(idx?: string): void;
setLastTrackDragY(y: number): void;
setScaleFactor(factor: number): void;
setTargetBpPerPx(target: number | undefined): 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;
readonly coarseTotalBpDisplayStr: string;
readonly effectiveBpPerPx: number;
readonly effectiveTotalBp: number;
readonly effectiveTotalBpDisplayStr: 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, grow?: number): void;
navToMultiple(locations: NavLocation[], grow?: number): void;
} & {
rubberBandMenuItems(): MenuItem[];
bpToPx({ refName, coord, regionNumber, }: {
refName: string;
coord: number;
regionNumber?: number;
}): {
index: number;
offsetPx: number;
} | undefined;
getHighlightCoords(region: {
assemblyName?: string;
refName: string;
start: number;
end: number;
}): {
width: number;
left: 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;
readonly visibleRegions: BaseBlock[];
} & {
rubberbandClickMenuItems(clickOffset: BpOffset): MenuItem[];
} & {
afterCreate(): void;
afterAttach(): void;
}, import("@jbrowse/mobx-state-tree").ModelCreationType<import("@jbrowse/mobx-state-tree/dist/internal").ExtractCFromProps<{
id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
displayName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
minimized: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
} & {
id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
type: import("@jbrowse/mobx-state-tree").IType<string | undefined, string, string>;
offsetPx: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
bpPerPx: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
displayedRegions: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IType<Region[], Region[], Region[]>, [undefined]>;
tracks: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyType>;
hideHeader: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
hideHeaderOverview: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
hideNoTracksActive: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
trackSelectorType: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
showCenterLine: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
showCytobandsSetting: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
trackLabels: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
showGridlines: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
highlight: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IType<HighlightType, HighlightType, HighlightType>>, [undefined]>;
highlightsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
labelsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
colorByCDS: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
showTrackOutlines: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
init: import("@jbrowse/mobx-state-tree").IType<InitState | undefined, InitState | undefined, InitState | undefined>;
}>>, import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
displayName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
minimized: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
} & {
id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
type: import("@jbrowse/mobx-state-tree").IType<string | undefined, string, string>;
offsetPx: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
bpPerPx: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
displayedRegions: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IType<Region[], Region[], Region[]>, [undefined]>;
tracks: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyType>;
hideHeader: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
hideHeaderOverview: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
hideNoTracksActive: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
trackSelectorType: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
showCenterLine: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
showCytobandsSetting: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
trackLabels: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
showGridlines: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
highlight: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IType<HighlightType, HighlightType, HighlightType>>, [undefined]>;
highlightsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
labelsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
colorByCDS: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
showTrackOutlines: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
init: import("@jbrowse/mobx-state-tree").IType<InitState | undefined, InitState | undefined, InitState | undefined>;
}>>;
export type LinearGenomeViewStateModel = ReturnType<typeof stateModelFactory>;
export type LinearGenomeViewModel = Instance<LinearGenomeViewStateModel>;
export { default as LinearGenomeView, default as ReactComponent, } from './components/LinearGenomeView.tsx';
export { default as RefNameAutocomplete } from './components/RefNameAutocomplete/index.tsx';
export { default as SearchBox } from './components/SearchBox.tsx';
export { renderToSvg } from './svgcomponents/SVGLinearGenomeView.tsx';