@jbrowse/plugin-linear-genome-view
Version:
JBrowse 2 linear genome view
354 lines (353 loc) • 18.9 kB
TypeScript
import Plugin from '@jbrowse/core/Plugin';
import type PluginManager from '@jbrowse/core/PluginManager';
export default class LinearGenomeViewPlugin extends Plugin {
name: string;
exports: {
BaseLinearDisplayComponent: (props: {
model: import("./BaseLinearDisplay").BaseLinearDisplayModel;
children?: React.ReactNode;
}) => import("react/jsx-runtime").JSX.Element;
BaseLinearDisplay: import("mobx-state-tree").IModelType<{
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
type: import("mobx-state-tree").ISimpleType<string>;
rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
} & {
heightPreConfig: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
} & {
userBpPerPxLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
userByteSizeLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
} & {
blockState: import("mobx-state-tree").IMapType<import("mobx-state-tree").IModelType<{
key: import("mobx-state-tree").ISimpleType<string>;
region: import("mobx-state-tree").IType<import("@jbrowse/core/util").Region, import("@jbrowse/core/util").Region, import("@jbrowse/core/util").Region>;
reloadFlag: import("mobx-state-tree").IType<number | undefined, number, number>;
isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
}, {
stopToken: string | undefined;
filled: boolean;
reactElement: React.ReactElement | undefined;
features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
layout: any;
status: string;
error: unknown;
message: string | undefined;
maxHeightReached: boolean;
ReactComponent: ({ model, }: {
model: {
error?: unknown;
reload: () => void;
message: React.ReactNode;
filled?: boolean;
status?: string;
reactElement?: React.ReactElement;
};
}) => import("react/jsx-runtime").JSX.Element | undefined;
renderProps: any;
} & {
doReload(): void;
afterAttach(): void;
setStatus(message: string): void;
setLoading(newStopToken: string): void;
setMessage(messageText: string): void;
setRendered(props: import("./BaseLinearDisplay/models/serverSideRenderedBlock").RenderedProps | undefined): void;
setError(error: unknown): void;
reload(): void;
beforeDestroy(): void;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
configuration: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
maxFeatureScreenDensity: {
type: string;
description: string;
defaultValue: number;
};
fetchSizeLimit: {
type: string;
defaultValue: number;
description: string;
};
height: {
type: string;
defaultValue: number;
description: string;
};
mouseover: {
type: string;
description: string;
defaultValue: string;
contextVariable: string[];
};
jexlFilters: {
type: string;
description: string;
defaultValue: never[];
};
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "displayId">>;
}, {
rendererTypeName: string;
error: unknown;
message: string | undefined;
} & {
readonly RenderingComponent: React.FC<{
model: {
id: string;
type: string;
rpcDriverName: string | undefined;
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
rendererTypeName: string;
error: unknown;
message: string | undefined;
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
type: import("mobx-state-tree").ISimpleType<string>;
rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
}, {
rendererTypeName: string;
error: unknown;
message: string | undefined;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
onHorizontalScroll?: () => void;
blockState?: Record<string, any>;
}>;
readonly DisplayBlurb: React.FC<{
model: {
id: string;
type: string;
rpcDriverName: string | undefined;
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
rendererTypeName: string;
error: unknown;
message: string | undefined;
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
type: import("mobx-state-tree").ISimpleType<string>;
rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
}, {
rendererTypeName: string;
error: unknown;
message: string | undefined;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
}> | null;
readonly adapterConfig: any;
readonly parentTrack: any;
renderProps(): any;
readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
readonly DisplayMessageComponent: undefined | React.FC<any>;
trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
regionCannotBeRendered(): null;
} & {
setMessage(arg?: string): void;
setError(error?: unknown): void;
setRpcDriverName(rpcDriverName: string): void;
reload(): void;
} & {
scrollTop: number;
} & {
readonly height: number;
} & {
setScrollTop(scrollTop: number): void;
setHeight(displayHeight: number): number;
resizeHeight(distance: number): number;
} & {
featureDensityStatsP: undefined | Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats>;
featureDensityStats: undefined | import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats;
currStatsBpPerPx: number;
} & {
readonly currentBytesRequested: number;
readonly currentFeatureScreenDensity: number;
readonly maxFeatureScreenDensity: any;
readonly featureDensityStatsReady: boolean;
readonly maxAllowableBytes: number;
} & {
afterAttach(): void;
} & {
setCurrStatsBpPerPx(n: number): void;
setFeatureDensityStatsLimit(stats?: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats): void;
getFeatureDensityStats(): Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats>;
setFeatureDensityStatsP(arg: any): void;
setFeatureDensityStats(featureDensityStats?: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats): void;
clearFeatureDensityStats(): void;
} & {
readonly regionTooLarge: boolean;
readonly regionTooLargeReason: string;
} & {
readonly statsReadyAndRegionNotTooLarge: boolean;
regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
} & {
featureIdUnderMouse: undefined | string;
contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
} & {
readonly DisplayMessageComponent: undefined | React.FC<any>;
readonly blockType: "staticBlocks" | "dynamicBlocks";
readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
} & {
readonly renderDelay: number;
readonly TooltipComponent: import("@jbrowse/core/util").AnyReactComponentType;
readonly selectedFeatureId: string | undefined;
copyInfoToClipboard(feature: import("@jbrowse/core/util").Feature): void;
} & {
readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util").Feature>;
readonly featureUnderMouse: import("@jbrowse/core/util").Feature | undefined;
getFeatureOverlapping(blockKey: string, x: number, y: number): string | undefined;
getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
searchFeatureByID(id: string): [number, number, number, number] | undefined;
} & {
addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
deleteBlock(key: string): void;
selectFeature(feature: import("@jbrowse/core/util").Feature): void;
navToFeature(feature: import("@jbrowse/core/util").Feature): void;
clearFeatureSelection(): void;
setFeatureIdUnderMouse(feature?: string): void;
setContextMenuFeature(feature?: import("@jbrowse/core/util").Feature): void;
} & {
reload(): Promise<void>;
} & {
trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
renderProps(): any;
} & {
renderSvg(opts: import("./BaseLinearDisplay").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
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]>;
type: import("mobx-state-tree").ISimpleType<string>;
rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
} & {
heightPreConfig: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
} & {
userBpPerPxLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
userByteSizeLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
} & {
blockState: import("mobx-state-tree").IMapType<import("mobx-state-tree").IModelType<{
key: import("mobx-state-tree").ISimpleType<string>;
region: import("mobx-state-tree").IType<import("@jbrowse/core/util").Region, import("@jbrowse/core/util").Region, import("@jbrowse/core/util").Region>;
reloadFlag: import("mobx-state-tree").IType<number | undefined, number, number>;
isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
}, {
stopToken: string | undefined;
filled: boolean;
reactElement: React.ReactElement | undefined;
features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
layout: any;
status: string;
error: unknown;
message: string | undefined;
maxHeightReached: boolean;
ReactComponent: ({ model, }: {
model: {
error?: unknown;
reload: () => void;
message: React.ReactNode;
filled?: boolean;
status?: string;
reactElement?: React.ReactElement;
};
}) => import("react/jsx-runtime").JSX.Element | undefined;
renderProps: any;
} & {
doReload(): void;
afterAttach(): void;
setStatus(message: string): void;
setLoading(newStopToken: string): void;
setMessage(messageText: string): void;
setRendered(props: import("./BaseLinearDisplay/models/serverSideRenderedBlock").RenderedProps | undefined): void;
setError(error: unknown): void;
reload(): void;
beforeDestroy(): void;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
configuration: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
maxFeatureScreenDensity: {
type: string;
description: string;
defaultValue: number;
};
fetchSizeLimit: {
type: string;
defaultValue: number;
description: string;
};
height: {
type: string;
defaultValue: number;
description: string;
};
mouseover: {
type: string;
description: string;
defaultValue: string;
contextVariable: string[];
};
jexlFilters: {
type: string;
description: string;
defaultValue: never[];
};
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "displayId">>;
}>>, {
type: string;
id: string;
configuration: import("mobx-state-tree").ModelSnapshotType<Record<string, any>>;
rpcDriverName: string | undefined;
heightPreConfig: number | undefined;
userBpPerPxLimit: number | undefined;
userByteSizeLimit: number | undefined;
}>;
baseLinearDisplayConfigSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
maxFeatureScreenDensity: {
type: string;
description: string;
defaultValue: number;
};
fetchSizeLimit: {
type: string;
defaultValue: number;
description: string;
};
height: {
type: string;
defaultValue: number;
description: string;
};
mouseover: {
type: string;
description: string;
defaultValue: string;
contextVariable: string[];
};
jexlFilters: {
type: string;
description: string;
defaultValue: never[];
};
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "displayId">>;
SearchBox: ({ model, showHelp, }: {
showHelp?: boolean;
model: import("./LinearGenomeView").LinearGenomeViewModel;
}) => import("react/jsx-runtime").JSX.Element;
ZoomControls: ({ model, }: {
model: import("./LinearGenomeView").LinearGenomeViewModel;
}) => import("react/jsx-runtime").JSX.Element;
LinearGenomeView: ({ model, }: {
model: import("./LinearGenomeView").LinearGenomeViewModel;
}) => import("react/jsx-runtime").JSX.Element;
};
configurationSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
trackLabels: {
type: string;
defaultValue: string;
model: import("mobx-state-tree").ISimpleType<string>;
};
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
install(pluginManager: PluginManager): void;
configure(pluginManager: PluginManager): void;
}
export type { BaseLinearDisplayModel, BlockModel, ExportSvgDisplayOptions, } from './BaseLinearDisplay';
export { configSchemaFactory as linearBareDisplayConfigSchemaFactory, stateModelFactory as linearBareDisplayStateModelFactory, } from './LinearBareDisplay';
export { BaseLinearDisplay, BaseLinearDisplayComponent, BlockMsg, FeatureDensityMixin, TooLargeMessage, TrackHeightMixin, baseLinearDisplayConfigSchema, } from './BaseLinearDisplay';
export { type LinearGenomeViewModel, type LinearGenomeViewStateModel, RefNameAutocomplete, SearchBox, } from './LinearGenomeView';
export { SVGRuler, SVGTracks, renderToSvg, } from './LinearGenomeView/svgcomponents/SVGLinearGenomeView';
export { totalHeight } from './LinearGenomeView/svgcomponents/util';
export { configSchema as linearBasicDisplayConfigSchemaFactory, modelFactory as linearBasicDisplayModelFactory, } from './LinearBasicDisplay';