UNPKG

@jbrowse/plugin-wiggle

Version:

JBrowse 2 wiggle adapters, tracks, etc.

23 lines (22 loc) 1.25 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { useTheme } from '@mui/material'; import { observer } from 'mobx-react'; const YScaleBar = observer(function YScaleBar({ model, orientation, }) { const { ticks } = model; const theme = useTheme(); if (!ticks) { return null; } const { range, values, position } = ticks; const bg = theme.palette.background.default; const fg = theme.palette.text.primary; const isLeft = orientation === 'left'; const k = isLeft ? -1 : 1; const range0 = range[0] + 0.5; const range1 = range[1] + 0.5; return (_jsxs("g", { fill: "none", fontSize: 10, fontFamily: "sans-serif", textAnchor: isLeft ? 'end' : 'start', strokeWidth: 1, children: [_jsx("path", { stroke: fg, d: `M${k * 6},${range0}H0.5V${range1}H${k * 6}` }), values.map((v, idx) => { const pos = position(v); return (_jsxs("g", { transform: `translate(0,${Number.isFinite(pos) ? pos : 0})`, children: [_jsx("line", { stroke: fg, x2: k * 6, y1: 0.5, y2: 0.5 }), _jsx("text", { stroke: bg, strokeWidth: 2.5, paintOrder: "stroke", fill: fg, dy: "0.32em", x: k * 9, y: 0.5, children: v })] }, idx)); })] })); }); export default YScaleBar;