yumechi-no-kuni/packages/frontend/src/scripts/chart-vline.ts

24 lines
597 B
TypeScript
Raw Normal View History

2023-01-02 23:08:52 -06:00
import { Plugin } from 'chart.js';
export const chartVLine = (vLineColor: string) => ({
id: 'vLine',
beforeDraw(chart, args, options) {
if (chart.tooltip?._active?.length) {
const ctx = chart.ctx;
2023-01-01 21:01:06 -06:00
const xs = chart.tooltip._active.map(a => a.element.x);
const x = xs.reduce((a, b) => a + b, 0) / xs.length;
const topY = chart.scales.y.top;
const bottomY = chart.scales.y.bottom;
ctx.save();
ctx.beginPath();
ctx.moveTo(x, bottomY);
ctx.lineTo(x, topY);
ctx.lineWidth = 1;
ctx.strokeStyle = vLineColor;
ctx.stroke();
ctx.restore();
}
},
2023-01-02 23:08:52 -06:00
}) as Plugin;