UNPKG

@jbrowse/plugin-linear-genome-view

Version:

JBrowse 2 linear genome view

33 lines (32 loc) 1.99 kB
"use strict"; 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 })); }