@jbrowse/plugin-linear-genome-view
Version:
JBrowse 2 linear genome view
64 lines (63 loc) • 3.49 kB
JavaScript
import Plugin from '@jbrowse/core/Plugin';
import { ConfigurationSchema } from '@jbrowse/core/configuration';
import { isAbstractMenuManager } from '@jbrowse/core/util';
import { types } from '@jbrowse/mobx-state-tree';
import LineStyleIcon from '@mui/icons-material/LineStyle';
import { BaseLinearDisplay, BaseLinearDisplayComponent, baseLinearDisplayConfigSchema, } from "./BaseLinearDisplay/index.js";
import BasicTrackF from "./BasicTrack/index.js";
import FeatureTrackF from "./FeatureTrack/index.js";
import LaunchLinearGenomeViewF from "./LaunchLinearGenomeView/index.js";
import LinearBareDisplayF from "./LinearBareDisplay/index.js";
import LinearBasicDisplayF from "./LinearBasicDisplay/index.js";
import ZoomControls from "./LinearGenomeView/components/HeaderZoomControls.js";
import LinearGenomeViewF, { LinearGenomeView, SearchBox, } from "./LinearGenomeView/index.js";
export default class LinearGenomeViewPlugin extends Plugin {
name = 'LinearGenomeViewPlugin';
exports = {
BaseLinearDisplayComponent,
BaseLinearDisplay,
baseLinearDisplayConfigSchema,
SearchBox,
ZoomControls,
LinearGenomeView,
};
configurationSchema = ConfigurationSchema('LinearGenomeViewConfigSchema', {
trackLabels: {
type: 'string',
defaultValue: 'overlapping',
model: types.enumeration('trackLabelOptions', [
'offset',
'overlapping',
'hidden',
]),
},
});
install(pluginManager) {
FeatureTrackF(pluginManager);
BasicTrackF(pluginManager);
LinearBasicDisplayF(pluginManager);
LinearGenomeViewF(pluginManager);
LinearBareDisplayF(pluginManager);
LaunchLinearGenomeViewF(pluginManager);
}
configure(pluginManager) {
if (isAbstractMenuManager(pluginManager.rootModel)) {
pluginManager.rootModel.appendToSubMenu(['Add'], {
label: 'Linear genome view',
icon: LineStyleIcon,
onClick: (session) => {
session.addView('LinearGenomeView', {});
},
});
}
}
}
export { configSchemaFactory as linearBareDisplayConfigSchemaFactory, stateModelFactory as linearBareDisplayStateModelFactory, } from "./LinearBareDisplay/index.js";
export { BaseLinearDisplay, BaseLinearDisplayComponent, BlockMsg, FeatureDensityMixin, FloatingLegend, NonBlockCanvasDisplayComponent, NonBlockCanvasDisplayMixin, SVGLegend, TooLargeMessage, TrackHeightMixin, baseLinearDisplayConfigSchema, calculateSvgLegendWidth, createSubfeatureLabelMetadata, drawCanvasImageData, } from "./BaseLinearDisplay/index.js";
export { HighlightBand, RefNameAutocomplete, SearchBox, } from "./LinearGenomeView/index.js";
export { fetchResults } from "./searchUtils.js";
export { SVGGridlines, SVGRuler, SVGTracks, renderToSvg, } from "./LinearGenomeView/svgcomponents/SVGLinearGenomeView.js";
export { totalHeight } from "./LinearGenomeView/svgcomponents/util.js";
export { configSchema as linearBasicDisplayConfigSchemaFactory, modelFactory as linearBasicDisplayModelFactory, } from "./LinearBasicDisplay/index.js";
export { configSchema as linearFeatureDisplayConfigSchemaFactory, modelFactory as linearFeatureDisplayModelFactory, } from "./LinearFeatureDisplay/index.js";
export { default as LinearBasicDisplayComponent } from "./LinearBasicDisplay/components/LinearBasicDisplayComponent.js";