@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
51 lines (50 loc) • 3.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const ui_1 = require("@jbrowse/core/ui");
const material_1 = require("@mui/material");
const mobx_react_1 = require("mobx-react");
const mui_1 = require("tss-react/mui");
const useStyles = (0, mui_1.makeStyles)()(theme => ({
formElt: {
margin: theme.spacing(3),
width: 400,
},
dialogContent: {
width: '80em',
},
root: {
padding: 4,
},
}));
function TextField2(props) {
return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(material_1.TextField, { ...props }) }));
}
function FormControl2({ children }) {
return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(material_1.FormControl, { children: children }) }));
}
const SequenceFeatureSettingsDialog = (0, mobx_react_1.observer)(function ({ handleClose, model, }) {
const { classes } = useStyles();
const { upperCaseCDS } = model;
const [intronBp, setIntronBp] = (0, react_1.useState)(`${model.intronBp}`);
const [upDownBp, setUpDownBp] = (0, react_1.useState)(`${model.upDownBp}`);
const intronBpValid = !Number.isNaN(+intronBp);
const upDownBpValid = !Number.isNaN(+upDownBp);
return ((0, jsx_runtime_1.jsxs)(ui_1.Dialog, { maxWidth: "xl", open: true, onClose: () => {
handleClose();
}, title: "Feature sequence settings", children: [(0, jsx_runtime_1.jsxs)(material_1.DialogContent, { className: classes.dialogContent, children: [(0, jsx_runtime_1.jsx)(TextField2, { label: "Number of intronic bases around splice site to display", className: classes.formElt, value: intronBp, helperText: !intronBpValid ? 'Not a number' : '', error: !intronBpValid, onChange: event => {
setIntronBp(event.target.value);
} }), (0, jsx_runtime_1.jsx)(TextField2, { label: "Number of bases up/down stream of feature to display", className: classes.formElt, value: upDownBp, helperText: !upDownBpValid ? 'Not a number' : '', error: !upDownBpValid, onChange: event => {
setUpDownBp(event.target.value);
} }), (0, jsx_runtime_1.jsxs)(FormControl2, { children: [(0, jsx_runtime_1.jsx)(material_1.FormLabel, { children: "Sequence capitalization" }), (0, jsx_runtime_1.jsxs)(material_1.RadioGroup, { value: upperCaseCDS ? 'cds' : 'unchanged', onChange: e => {
model.setUpperCaseCDS(e.target.value === 'cds');
}, children: [(0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { value: "cds", control: (0, jsx_runtime_1.jsx)(material_1.Radio, { className: classes.root, size: "small" }), label: "Capitalize CDS and lower case everything else" }), (0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { value: "unchanged", control: (0, jsx_runtime_1.jsx)(material_1.Radio, { className: classes.root, size: "small" }), label: "Capitalization from reference genome sequence" })] })] })] }), (0, jsx_runtime_1.jsxs)(material_1.DialogActions, { children: [(0, jsx_runtime_1.jsx)(material_1.Button, { onClick: () => {
model.setIntronBp(+intronBp);
model.setUpDownBp(+upDownBp);
handleClose();
}, disabled: !intronBpValid || !upDownBpValid, color: "primary", variant: "contained", children: "Submit" }), (0, jsx_runtime_1.jsx)(material_1.Button, { onClick: () => {
handleClose();
}, color: "secondary", autoFocus: true, variant: "contained", children: "Cancel" })] })] }));
});
exports.default = SequenceFeatureSettingsDialog;