UNPKG

@jbrowse/plugin-wiggle

Version:

JBrowse 2 wiggle adapters, tracks, etc.

37 lines (36 loc) 1.35 kB
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, }; } }