UNPKG

@jbrowse/plugin-linear-genome-view

Version:

JBrowse 2 linear genome view

27 lines (26 loc) 1.6 kB
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime"; import { getSession } from '@jbrowse/core/util'; import { getTrackName } from '@jbrowse/core/util/tracks'; import SVGRegionSeparators from './SVGRegionSeparators'; import SVGTrackLabel from './SVGTrackLabel'; export default function SVGTracks({ displayResults, model, textHeight, fontSize, trackLabels = 'offset', trackLabelOffset = 0, }) { const session = getSession(model); const textOffset = trackLabels === 'offset' ? textHeight : 0; return (_jsx(_Fragment, { children: displayResults.reduce(({ prevOffset, reactElements }, { track, result }) => { const conf = track.configuration; const trackName = 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, _jsxs("g", { transform: `translate(0 ${prevOffset})`, children: [_jsxs("g", { transform: `translate(${trackLabelOffset} ${textOffset})`, children: [_jsx(SVGRegionSeparators, { model: model, height: display.height }), result] }), _jsx(SVGTrackLabel, { trackName: trackName, fontSize: fontSize, trackLabels: trackLabels, trackLabelOffset: trackLabelOffset, x: x })] }, conf.trackId), ], }; }, { prevOffset: 0, reactElements: [], }).reactElements })); }