@jbrowse/plugin-linear-genome-view
Version:
JBrowse 2 linear genome view
42 lines (41 loc) • 1.79 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 consts_1 = require("../consts");
const OverviewScalebarPolygon = (0, mobx_react_1.observer)(function ({ model, overview, useOffset = true, }) {
const theme = (0, material_1.useTheme)();
const multiplier = Number(useOffset);
const { interRegionPaddingWidth, offsetPx, dynamicBlocks, cytobandOffset } = model;
const { contentBlocks, totalWidthPxWithoutBorders } = dynamicBlocks;
const polygonColor = theme.palette.tertiary.light;
if (!contentBlocks.length) {
return null;
}
const first = contentBlocks.at(0);
const last = contentBlocks.at(-1);
const topLeft = (overview.bpToPx({
...first,
coord: first.reversed ? first.end : first.start,
}) || 0) +
cytobandOffset * multiplier;
const topRight = (overview.bpToPx({
...last,
coord: last.reversed ? last.start : last.end,
}) || 0) +
cytobandOffset * multiplier;
const startPx = Math.max(0, -offsetPx);
const endPx = startPx +
totalWidthPxWithoutBorders +
(contentBlocks.length * interRegionPaddingWidth) / 2;
const points = [
[startPx, consts_1.HEADER_BAR_HEIGHT],
[endPx, consts_1.HEADER_BAR_HEIGHT],
[topRight, 0],
[topLeft, 0],
];
return ((0, jsx_runtime_1.jsx)("polygon", { points: points.toString(), ...(0, util_1.getFillProps)((0, material_1.alpha)(polygonColor, 0.3)), ...(0, util_1.getStrokeProps)((0, material_1.alpha)(polygonColor, 0.8)) }));
});
exports.default = OverviewScalebarPolygon;