UNPKG

@jbrowse/plugin-linear-genome-view

Version:

JBrowse 2 linear genome view

50 lines (49 loc) 2.73 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("react"); const configuration_1 = require("@jbrowse/core/configuration"); const ui_1 = require("@jbrowse/core/ui"); const util_1 = require("@jbrowse/core/util"); const tracks_1 = require("@jbrowse/core/util/tracks"); const Close_1 = __importDefault(require("@mui/icons-material/Close")); const material_1 = require("@mui/material"); const mobx_react_1 = require("mobx-react"); const mui_1 = require("tss-react/mui"); const TrackLabelDragHandle_1 = __importDefault(require("./TrackLabelDragHandle")); const TrackLabelMenu_1 = __importDefault(require("./TrackLabelMenu")); const useStyles = (0, mui_1.makeStyles)()(theme => ({ root: { zIndex: 200, background: (0, material_1.alpha)(theme.palette.background.paper, 0.8), '&:hover': { background: theme.palette.background.paper, }, }, trackName: { fontSize: '0.8rem', }, iconButton: { padding: theme.spacing(1), }, })); const TrackLabel = (0, mobx_react_1.observer)((0, react_1.forwardRef)(function TrackLabel2({ track, className }, ref) { const { classes, cx } = useStyles(); const view = (0, util_1.getContainingView)(track); const session = (0, util_1.getSession)(track); const trackConf = track.configuration; const { minimized } = track; const trackId = (0, configuration_1.getConf)(track, 'trackId'); const trackName = (0, tracks_1.getTrackName)(trackConf, session); return ((0, jsx_runtime_1.jsxs)(material_1.Paper, { ref: ref, className: cx(className, classes.root), onClick: event => { event.stopPropagation(); }, children: [(0, jsx_runtime_1.jsx)(TrackLabelDragHandle_1.default, { track: track, trackId: trackId, view: view }), (0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: () => view.hideTrack(trackId), className: classes.iconButton, title: "close this track", children: (0, jsx_runtime_1.jsx)(Close_1.default, { fontSize: "small" }) }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "body1", component: "span", className: classes.trackName, onMouseDown: event => { event.stopPropagation(); }, children: (0, jsx_runtime_1.jsx)(ui_1.SanitizedHTML, { html: [trackName, minimized ? '(minimized)' : ''] .filter(f => !!f) .join(' ') }) }), (0, jsx_runtime_1.jsx)(TrackLabelMenu_1.default, { track: track })] })); })); exports.default = TrackLabel;