@jbrowse/plugin-linear-genome-view
Version:
JBrowse 2 linear genome view
50 lines (49 loc) • 2.73 kB
JavaScript
;
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;