@jbrowse/plugin-linear-genome-view
Version:
JBrowse 2 linear genome view
33 lines (32 loc) • 1.99 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = SVGTracks;
const jsx_runtime_1 = require("react/jsx-runtime");
const util_1 = require("@jbrowse/core/util");
const tracks_1 = require("@jbrowse/core/util/tracks");
const SVGRegionSeparators_1 = __importDefault(require("./SVGRegionSeparators"));
const SVGTrackLabel_1 = __importDefault(require("./SVGTrackLabel"));
function SVGTracks({ displayResults, model, textHeight, fontSize, trackLabels = 'offset', trackLabelOffset = 0, }) {
const session = (0, util_1.getSession)(model);
const textOffset = trackLabels === 'offset' ? textHeight : 0;
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: displayResults.reduce(({ prevOffset, reactElements }, { track, result }) => {
const conf = track.configuration;
const trackName = (0, tracks_1.getTrackName)(conf, session);
const display = track.displays[0];
const x = Math.max(-model.offsetPx, 0);
const currOffset = prevOffset + display.height + textOffset;
return {
prevOffset: currOffset,
reactElements: [
...reactElements,
(0, jsx_runtime_1.jsxs)("g", { transform: `translate(0 ${prevOffset})`, children: [(0, jsx_runtime_1.jsxs)("g", { transform: `translate(${trackLabelOffset} ${textOffset})`, children: [(0, jsx_runtime_1.jsx)(SVGRegionSeparators_1.default, { model: model, height: display.height }), result] }), (0, jsx_runtime_1.jsx)(SVGTrackLabel_1.default, { trackName: trackName, fontSize: fontSize, trackLabels: trackLabels, trackLabelOffset: trackLabelOffset, x: x })] }, conf.trackId),
],
};
}, {
prevOffset: 0,
reactElements: [],
}).reactElements }));
}