UNPKG

@jbrowse/core

Version:

JBrowse 2 core libraries used by plugins

51 lines (50 loc) 3.79 kB
"use strict"; 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;