@jbrowse/plugin-linear-genome-view
Version:
JBrowse 2 linear genome view
38 lines (37 loc) • 1.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const jsx_runtime_1 = require("react/jsx-runtime");
const util_1 = require("@jbrowse/core/util");
const material_1 = require("@mui/material");
const mobx_react_1 = require("mobx-react");
const mui_1 = require("tss-react/mui");
const consts_1 = require("../consts");
const util_2 = require("../util");
const useStyles = (0, mui_1.makeStyles)()({
scalebarLabel: {
height: consts_1.HEADER_OVERVIEW_HEIGHT,
position: 'absolute',
display: 'flex',
justifyContent: 'center',
pointerEvents: 'none',
},
});
const OverviewScalebarTickLabels = (0, mobx_react_1.observer)(function ({ block, scale, overview, model, }) {
const { classes } = useStyles();
const { start, end, reversed, refName, assemblyName } = block;
const { majorPitch } = (0, util_2.chooseGridPitch)(scale, 120, 15);
const { assemblyManager } = (0, util_1.getSession)(model);
const assembly = assemblyManager.get(assemblyName);
const refNameColor = assembly === null || assembly === void 0 ? void 0 : assembly.getRefNameColor(refName);
const tickLabels = [];
for (let i = 0; i < Math.floor((end - start) / majorPitch); i++) {
const offsetLabel = (i + 1) * majorPitch;
tickLabels.push(reversed ? end - offsetLabel : start + offsetLabel);
}
return tickLabels.map((tickLabel, labelIdx) => ((0, jsx_runtime_1.jsx)(material_1.Typography, { className: classes.scalebarLabel, variant: "body2", style: {
left: ((labelIdx + 1) * majorPitch) / scale,
pointerEvents: 'none',
color: refNameColor,
}, children: (0, util_1.getTickDisplayStr)(tickLabel, overview.bpPerPx) }, `${JSON.stringify(block)}-${tickLabel}-${labelIdx}`)));
});
exports.default = OverviewScalebarTickLabels;