diff --git a/packages/client/src/scripts/chart-vline.ts b/packages/client/src/scripts/chart-vline.ts new file mode 100644 index 0000000000..f321443834 --- /dev/null +++ b/packages/client/src/scripts/chart-vline.ts @@ -0,0 +1,23 @@ +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; + 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(); + } + }, +}) as Plugin;