@jbrowse/plugin-wiggle
Version:
JBrowse 2 wiggle adapters, tracks, etc.
37 lines (36 loc) • 1.35 kB
JavaScript
import FeatureRendererType from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType';
import { renderToAbstractCanvas, updateStatus } from '@jbrowse/core/util';
export default class WiggleBaseRenderer extends FeatureRendererType {
constructor() {
super(...arguments);
this.supportsSVG = true;
}
async render(renderProps) {
const features = await this.getFeatures(renderProps);
const { inverted, height, regions, bpPerPx, statusCallback = () => { }, } = renderProps;
const region = regions[0];
const width = (region.end - region.start) / bpPerPx;
const { reducedFeatures, ...rest } = await updateStatus('Rendering plot', statusCallback, () => renderToAbstractCanvas(width, height, renderProps, ctx => this.draw(ctx, {
...renderProps,
features,
inverted,
})));
const results = await super.render({
...renderProps,
...rest,
features,
height,
width,
});
return {
...results,
...rest,
features: reducedFeatures
? new Map(reducedFeatures.map(r => [r.id(), r]))
: results.features,
height,
width,
containsNoTransferables: true,
};
}
}