create-lwc-plugin
Version:
Wizard-like CLI tool for scaffolding a new plugin for Lightweight Charts™
42 lines (38 loc) • 1.11 kB
text/typescript
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);
}
});
}
}