@jbrowse/plugin-wiggle
Version:
JBrowse 2 wiggle adapters, tracks, etc.
43 lines (42 loc) • 1.62 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const FeatureRendererType_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType"));
const util_1 = require("@jbrowse/core/util");
class WiggleBaseRenderer extends FeatureRendererType_1.default {
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 (0, util_1.updateStatus)('Rendering plot', statusCallback, () => (0, util_1.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,
};
}
}
exports.default = WiggleBaseRenderer;