@jbrowse/plugin-wiggle
Version:
JBrowse 2 wiggle adapters, tracks, etc.
23 lines (22 loc) • 1.25 kB
JavaScript
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;