import { CanvasRenderingTarget2D } from 'fancy-canvas'; import { IPrimitivePaneRenderer } from 'lightweight-charts'; import { positionsBox } from './helpers/dimensions/positions'; export class _CLASSNAME_AxisPaneRenderer implements IPrimitivePaneRenderer { _p1: number | null; _p2: number | null; _fillColor: string; _vertical: boolean = false; constructor( p1: number | null, p2: number | null, fillColor: string, vertical: boolean ) { this._p1 = p1; this._p2 = p2; this._fillColor = fillColor; this._vertical = vertical; } draw(target: CanvasRenderingTarget2D) { target.useBitmapCoordinateSpace(scope => { if (this._p1 === null || this._p2 === null) return; const ctx = scope.context; ctx.globalAlpha = 0.5; const positions = positionsBox( this._p1, this._p2, this._vertical ? scope.verticalPixelRatio : scope.horizontalPixelRatio ); ctx.fillStyle = this._fillColor; if (this._vertical) { ctx.fillRect(0, positions.position, 15, positions.length); } else { ctx.fillRect(positions.position, 0, positions.length, 15); } }); } }