react-msaview 4.0.2 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/index.js +282 -111
- package/dist/colorSchemes.js +1 -1
- package/dist/colorSchemes.js.map +1 -1
- package/dist/components/Checkbox2.js.map +1 -1
- package/dist/components/Loading.js +5 -6
- package/dist/components/Loading.js.map +1 -1
- package/dist/components/MSAView.js +3 -4
- package/dist/components/MSAView.js.map +1 -1
- package/dist/components/ResizeHandles.js.map +1 -1
- package/dist/components/SequenceTextArea.js +1 -2
- package/dist/components/SequenceTextArea.js.map +1 -1
- package/dist/components/TextTrack.d.ts +1 -1
- package/dist/components/TextTrack.js +1 -1
- package/dist/components/TextTrack.js.map +1 -1
- package/dist/components/Track.js +4 -5
- package/dist/components/Track.js.map +1 -1
- package/dist/components/VerticalScrollbar.js +1 -1
- package/dist/components/VerticalScrollbar.js.map +1 -1
- package/dist/components/dialogs/AboutDialog.js +4 -4
- package/dist/components/dialogs/AboutDialog.js.map +1 -1
- package/dist/components/dialogs/AddTrackDialog.js +1 -1
- package/dist/components/dialogs/AddTrackDialog.js.map +1 -1
- package/dist/components/dialogs/DomainDialog.js +1 -2
- package/dist/components/dialogs/DomainDialog.js.map +1 -1
- package/dist/components/dialogs/ExportSVGDialog.js +1 -1
- package/dist/components/dialogs/ExportSVGDialog.js.map +1 -1
- package/dist/components/dialogs/FeatureDialog.js +1 -1
- package/dist/components/dialogs/FeatureDialog.js.map +1 -1
- package/dist/components/dialogs/InterProScanDialog.js +3 -3
- package/dist/components/dialogs/InterProScanDialog.js.map +1 -1
- package/dist/components/dialogs/MetadataDialog.js +3 -2
- package/dist/components/dialogs/MetadataDialog.js.map +1 -1
- package/dist/components/dialogs/SettingsDialog.js +29 -29
- package/dist/components/dialogs/SettingsDialog.js.map +1 -1
- package/dist/components/dialogs/TrackInfoDialog.js +2 -2
- package/dist/components/dialogs/TrackInfoDialog.js.map +1 -1
- package/dist/components/dialogs/TracklistDialog.js +1 -1
- package/dist/components/dialogs/TracklistDialog.js.map +1 -1
- package/dist/components/dialogs/UserProvidedDomainsDialog.js +3 -3
- package/dist/components/dialogs/UserProvidedDomainsDialog.js.map +1 -1
- package/dist/components/header/Header.js +5 -7
- package/dist/components/header/Header.js.map +1 -1
- package/dist/components/header/HeaderInfoArea.js.map +1 -1
- package/dist/components/header/HeaderMenu.js +3 -4
- package/dist/components/header/HeaderMenu.js.map +1 -1
- package/dist/components/header/HeaderMenuExtra.js +8 -9
- package/dist/components/header/HeaderMenuExtra.js.map +1 -1
- package/dist/components/header/HeaderStatusArea.js +1 -1
- package/dist/components/header/HeaderStatusArea.js.map +1 -1
- package/dist/components/header/MultiAlignmentSelector.js +1 -1
- package/dist/components/header/MultiAlignmentSelector.js.map +1 -1
- package/dist/components/header/ZoomControls.js +11 -5
- package/dist/components/header/ZoomControls.js.map +1 -1
- package/dist/components/import/ImportForm.js +19 -15
- package/dist/components/import/ImportForm.js.map +1 -1
- package/dist/components/import/ImportFormExamples.js +2 -2
- package/dist/components/import/ImportFormExamples.js.map +1 -1
- package/dist/components/import/util.d.ts +1 -1
- package/dist/components/minimap/Minimap.js.map +1 -1
- package/dist/components/minimap/MinimapSVG.js.map +1 -1
- package/dist/components/msa/Loading.js +1 -1
- package/dist/components/msa/Loading.js.map +1 -1
- package/dist/components/msa/MSACanvas.js +2 -2
- package/dist/components/msa/MSACanvas.js.map +1 -1
- package/dist/components/msa/MSACanvasBlock.js +2 -3
- package/dist/components/msa/MSACanvasBlock.js.map +1 -1
- package/dist/components/msa/MSAMouseoverCanvas.js +1 -1
- package/dist/components/msa/MSAMouseoverCanvas.js.map +1 -1
- package/dist/components/msa/MSAPanel.js +0 -1
- package/dist/components/msa/MSAPanel.js.map +1 -1
- package/dist/components/msa/renderBoxFeatureCanvasBlock.js.map +1 -1
- package/dist/components/msa/renderMSABlock.d.ts +1 -1
- package/dist/components/msa/renderMSABlock.js +9 -3
- package/dist/components/msa/renderMSABlock.js.map +1 -1
- package/dist/components/tree/TreeBranchMenu.js.map +1 -1
- package/dist/components/tree/TreeCanvas.js +1 -2
- package/dist/components/tree/TreeCanvas.js.map +1 -1
- package/dist/components/tree/TreeCanvasBlock.js +4 -5
- package/dist/components/tree/TreeCanvasBlock.js.map +1 -1
- package/dist/components/tree/TreeNodeMenu.js +5 -1
- package/dist/components/tree/TreeNodeMenu.js.map +1 -1
- package/dist/components/tree/TreePanel.js.map +1 -1
- package/dist/components/tree/TreeRuler.js.map +1 -1
- package/dist/components/tree/dialogs/TreeNodeInfoDialog.js +2 -1
- package/dist/components/tree/dialogs/TreeNodeInfoDialog.js.map +1 -1
- package/dist/components/tree/renderTreeCanvas.d.ts +2 -2
- package/dist/components/tree/renderTreeCanvas.js +5 -5
- package/dist/components/tree/renderTreeCanvas.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/launchInterProScan.js.map +1 -1
- package/dist/model/DialogQueue.js.map +1 -1
- package/dist/model/treeModel.d.ts +1 -1
- package/dist/model/treeModel.js +1 -1
- package/dist/model/treeModel.js.map +1 -1
- package/dist/model.d.ts +30 -34
- package/dist/model.js +71 -40
- package/dist/model.js.map +1 -1
- package/dist/parsers/ClustalMSA.js.map +1 -1
- package/dist/parsers/EmfMSA.js.map +1 -1
- package/dist/parsers/StockholmMSA.js.map +1 -1
- package/dist/renderToSvg.d.ts +1 -1
- package/dist/renderToSvg.js +5 -6
- package/dist/renderToSvg.js.map +1 -1
- package/dist/rowCoordinateCalculations.test.js.map +1 -1
- package/dist/util.d.ts +1 -1
- package/dist/util.js +1 -1
- package/dist/util.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -5
- package/src/colorSchemes.ts +2 -1
- package/src/components/Checkbox2.tsx +1 -0
- package/src/components/Loading.tsx +7 -6
- package/src/components/MSAView.tsx +6 -5
- package/src/components/ResizeHandles.tsx +1 -1
- package/src/components/SequenceTextArea.tsx +2 -2
- package/src/components/TextTrack.tsx +5 -3
- package/src/components/Track.tsx +5 -5
- package/src/components/VerticalScrollbar.tsx +5 -2
- package/src/components/dialogs/AboutDialog.tsx +6 -7
- package/src/components/dialogs/AddTrackDialog.tsx +7 -5
- package/src/components/dialogs/DomainDialog.tsx +3 -2
- package/src/components/dialogs/ExportSVGDialog.tsx +7 -5
- package/src/components/dialogs/FeatureDialog.tsx +4 -3
- package/src/components/dialogs/InterProScanDialog.tsx +6 -5
- package/src/components/dialogs/MetadataDialog.tsx +6 -7
- package/src/components/dialogs/SettingsDialog.tsx +24 -22
- package/src/components/dialogs/TrackInfoDialog.tsx +3 -2
- package/src/components/dialogs/TracklistDialog.tsx +4 -4
- package/src/components/dialogs/UserProvidedDomainsDialog.tsx +7 -6
- package/src/components/header/Header.tsx +8 -11
- package/src/components/header/HeaderInfoArea.tsx +1 -1
- package/src/components/header/HeaderMenu.tsx +4 -6
- package/src/components/header/HeaderMenuExtra.tsx +9 -11
- package/src/components/header/HeaderStatusArea.tsx +2 -2
- package/src/components/header/MultiAlignmentSelector.tsx +2 -2
- package/src/components/header/ZoomControls.tsx +13 -6
- package/src/components/import/ImportForm.tsx +31 -24
- package/src/components/import/ImportFormExamples.tsx +5 -4
- package/src/components/import/util.ts +1 -1
- package/src/components/minimap/Minimap.tsx +2 -0
- package/src/components/minimap/MinimapSVG.tsx +2 -0
- package/src/components/msa/Loading.tsx +2 -1
- package/src/components/msa/MSACanvas.tsx +5 -4
- package/src/components/msa/MSACanvasBlock.tsx +5 -4
- package/src/components/msa/MSAMouseoverCanvas.tsx +4 -3
- package/src/components/msa/MSAPanel.tsx +2 -1
- package/src/components/msa/renderBoxFeatureCanvasBlock.ts +1 -3
- package/src/components/msa/renderMSABlock.ts +11 -10
- package/src/components/tree/TreeBranchMenu.tsx +1 -1
- package/src/components/tree/TreeCanvas.tsx +4 -4
- package/src/components/tree/TreeCanvasBlock.tsx +7 -7
- package/src/components/tree/TreeNodeMenu.tsx +10 -1
- package/src/components/tree/TreePanel.tsx +3 -1
- package/src/components/tree/TreeRuler.tsx +1 -1
- package/src/components/tree/dialogs/TreeNodeInfoDialog.tsx +5 -6
- package/src/components/tree/renderTreeCanvas.ts +7 -9
- package/src/index.ts +1 -1
- package/src/launchInterProScan.ts +2 -0
- package/src/model/DialogQueue.ts +2 -1
- package/src/model/treeModel.ts +1 -1
- package/src/model.ts +89 -58
- package/src/parsers/ClustalMSA.ts +1 -0
- package/src/parsers/EmfMSA.ts +1 -0
- package/src/parsers/StockholmMSA.ts +1 -1
- package/src/renderToSvg.tsx +7 -9
- package/src/rowCoordinateCalculations.test.ts +1 -0
- package/src/util.ts +4 -3
- package/src/version.ts +1 -1
package/src/components/Track.tsx
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
|
|
3
|
-
import
|
|
1
|
+
import React, { lazy, useEffect, useRef, useState } from 'react'
|
|
2
|
+
|
|
3
|
+
import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown'
|
|
4
4
|
import { IconButton, Menu, MenuItem } from '@mui/material'
|
|
5
|
+
import { observer } from 'mobx-react'
|
|
6
|
+
import normalizeWheel from 'normalize-wheel'
|
|
5
7
|
import { makeStyles } from 'tss-react/mui'
|
|
6
8
|
|
|
7
9
|
// icons
|
|
8
|
-
import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown'
|
|
9
10
|
|
|
10
|
-
// locals
|
|
11
11
|
import type { MsaViewModel } from '../model'
|
|
12
12
|
|
|
13
13
|
// lazies
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { observer } from 'mobx-react'
|
|
2
1
|
import React, { useEffect, useRef, useState } from 'react'
|
|
3
|
-
|
|
2
|
+
|
|
3
|
+
import { observer } from 'mobx-react'
|
|
4
|
+
|
|
4
5
|
import { clamp } from '../util'
|
|
5
6
|
|
|
7
|
+
import type { MsaViewModel } from '../model'
|
|
8
|
+
|
|
6
9
|
const VerticalScrollbar = observer(({ model }: { model: MsaViewModel }) => {
|
|
7
10
|
const { msaAreaHeight, scrollY, totalHeight } = model
|
|
8
11
|
const [hovered, setHovered] = useState(false)
|
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
+
|
|
2
3
|
import { Dialog } from '@jbrowse/core/ui'
|
|
3
|
-
import { DialogContent,
|
|
4
|
+
import { DialogContent, Link, Typography } from '@mui/material'
|
|
5
|
+
|
|
4
6
|
import { version } from '../../version'
|
|
5
7
|
|
|
6
8
|
export default function AboutDialog({ onClose }: { onClose: () => void }) {
|
|
7
9
|
return (
|
|
8
10
|
<Dialog
|
|
11
|
+
open
|
|
12
|
+
title="About"
|
|
9
13
|
onClose={() => {
|
|
10
14
|
onClose()
|
|
11
15
|
}}
|
|
12
|
-
open
|
|
13
|
-
title="About this plugin"
|
|
14
16
|
>
|
|
15
17
|
<DialogContent>
|
|
16
18
|
<Typography>
|
|
17
19
|
MSAView {version} (
|
|
18
|
-
<Link href="https://github.com/gmod/
|
|
19
|
-
Github
|
|
20
|
-
</Link>
|
|
21
|
-
)
|
|
20
|
+
<Link href="https://github.com/gmod/react-msaview">Github</Link>)
|
|
22
21
|
</Typography>
|
|
23
22
|
|
|
24
23
|
<ul>
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import React, { useState } from 'react'
|
|
2
|
+
|
|
3
|
+
import { Dialog, FileSelector } from '@jbrowse/core/ui'
|
|
2
4
|
import {
|
|
3
|
-
DialogContent,
|
|
4
|
-
DialogActions,
|
|
5
5
|
Button,
|
|
6
|
-
|
|
6
|
+
DialogActions,
|
|
7
|
+
DialogContent,
|
|
7
8
|
MenuItem,
|
|
9
|
+
TextField,
|
|
8
10
|
Typography,
|
|
9
11
|
} from '@mui/material'
|
|
10
|
-
import { Dialog, FileSelector } from '@jbrowse/core/ui'
|
|
11
|
-
import type { FileLocation } from '@jbrowse/core/util/types'
|
|
12
12
|
import { observer } from 'mobx-react'
|
|
13
|
+
|
|
13
14
|
import type { MsaViewModel } from '../../model'
|
|
15
|
+
import type { FileLocation } from '@jbrowse/core/util/types'
|
|
14
16
|
|
|
15
17
|
const AddTrackDialog = observer(function ({
|
|
16
18
|
model,
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import React, { useState } from 'react'
|
|
2
|
+
|
|
2
3
|
import { Dialog } from '@jbrowse/core/ui'
|
|
3
4
|
import { Tab, Tabs } from '@mui/material'
|
|
4
5
|
|
|
5
|
-
// locals
|
|
6
6
|
import InterProScanPanel from './InterProScanDialog'
|
|
7
|
-
import UserProvidedResultPanel from './UserProvidedDomainsDialog'
|
|
8
7
|
import TabPanel from './TabPanel'
|
|
8
|
+
import UserProvidedResultPanel from './UserProvidedDomainsDialog'
|
|
9
|
+
|
|
9
10
|
import type { MsaViewModel } from '../../model'
|
|
10
11
|
|
|
11
12
|
export default function LaunchDomainViewDialog({
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
import React, { useState } from 'react'
|
|
2
|
+
|
|
2
3
|
import { Dialog, ErrorMessage } from '@jbrowse/core/ui'
|
|
3
4
|
import {
|
|
4
5
|
Button,
|
|
5
|
-
DialogContent,
|
|
6
6
|
DialogActions,
|
|
7
|
-
|
|
7
|
+
DialogContent,
|
|
8
8
|
FormControl,
|
|
9
|
+
FormControlLabel,
|
|
9
10
|
FormLabel,
|
|
10
|
-
RadioGroup,
|
|
11
11
|
Radio,
|
|
12
|
+
RadioGroup,
|
|
12
13
|
Typography,
|
|
13
14
|
useTheme,
|
|
14
15
|
} from '@mui/material'
|
|
15
|
-
|
|
16
|
-
import type { MsaViewModel } from '../../model'
|
|
16
|
+
|
|
17
17
|
import Checkbox2 from '../Checkbox2'
|
|
18
18
|
|
|
19
|
+
import type { MsaViewModel } from '../../model'
|
|
20
|
+
|
|
19
21
|
export default function ExportSVGDialog({
|
|
20
22
|
model,
|
|
21
23
|
onClose,
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
import { Dialog } from '@jbrowse/core/ui'
|
|
4
4
|
import { Button, DialogContent } from '@mui/material'
|
|
5
|
+
import { observer } from 'mobx-react'
|
|
5
6
|
|
|
6
|
-
// locals
|
|
7
|
-
import type { MsaViewModel } from '../../model'
|
|
8
7
|
import { getPalette } from '../../ggplotPalettes'
|
|
9
8
|
|
|
9
|
+
import type { MsaViewModel } from '../../model'
|
|
10
|
+
|
|
10
11
|
const Toggles = observer(function ({ model }: { model: MsaViewModel }) {
|
|
11
12
|
const { featureFilters } = model
|
|
12
13
|
return (
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import React, { useState } from 'react'
|
|
2
|
-
import { observer } from 'mobx-react'
|
|
3
|
-
import { Button, DialogActions, DialogContent, Typography } from '@mui/material'
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
import type { MsaViewModel } from '../../model'
|
|
3
|
+
import { Dialog } from '@jbrowse/core/ui'
|
|
7
4
|
import { getSession } from '@jbrowse/core/util'
|
|
5
|
+
import { Button, DialogActions, DialogContent, Typography } from '@mui/material'
|
|
6
|
+
import { observer } from 'mobx-react'
|
|
7
|
+
|
|
8
8
|
import { launchInterProScan } from '../../launchInterProScan'
|
|
9
|
-
|
|
9
|
+
|
|
10
|
+
import type { MsaViewModel } from '../../model'
|
|
10
11
|
|
|
11
12
|
const InterProScanDialog = observer(function ({
|
|
12
13
|
handleClose,
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
+
|
|
3
|
+
import Attributes from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/Attributes'
|
|
4
|
+
import BaseCard from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard'
|
|
5
|
+
import { Dialog } from '@jbrowse/core/ui'
|
|
2
6
|
import { DialogContent } from '@mui/material'
|
|
3
7
|
import { observer } from 'mobx-react'
|
|
4
|
-
import { Dialog } from '@jbrowse/core/ui'
|
|
5
|
-
import {
|
|
6
|
-
Attributes,
|
|
7
|
-
BaseCard,
|
|
8
|
-
} from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail'
|
|
9
8
|
|
|
10
|
-
// locals
|
|
11
|
-
import type { MsaViewModel } from '../../model'
|
|
12
9
|
import SequenceTextArea from '../SequenceTextArea'
|
|
13
10
|
|
|
11
|
+
import type { MsaViewModel } from '../../model'
|
|
12
|
+
|
|
14
13
|
const MetadataDialog = observer(function ({
|
|
15
14
|
model,
|
|
16
15
|
onClose,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
-
|
|
3
|
-
import { makeStyles } from 'tss-react/mui'
|
|
2
|
+
|
|
4
3
|
import { Dialog } from '@jbrowse/core/ui'
|
|
5
4
|
import {
|
|
6
5
|
Button,
|
|
@@ -11,11 +10,14 @@ import {
|
|
|
11
10
|
TextField,
|
|
12
11
|
Typography,
|
|
13
12
|
} from '@mui/material'
|
|
13
|
+
import { observer } from 'mobx-react'
|
|
14
|
+
import { makeStyles } from 'tss-react/mui'
|
|
14
15
|
|
|
15
|
-
import type { MsaViewModel } from '../../model'
|
|
16
16
|
import colorSchemes from '../../colorSchemes'
|
|
17
17
|
import Checkbox2 from '../Checkbox2'
|
|
18
18
|
|
|
19
|
+
import type { MsaViewModel } from '../../model'
|
|
20
|
+
|
|
19
21
|
const useStyles = makeStyles()(theme => ({
|
|
20
22
|
field: {
|
|
21
23
|
margin: theme.spacing(4),
|
|
@@ -59,50 +61,50 @@ const TreeSettings = observer(function TreeSettings({
|
|
|
59
61
|
<h1>Tree options</h1>
|
|
60
62
|
<Checkbox2
|
|
61
63
|
checked={showBranchLen}
|
|
64
|
+
label="Show branch length?"
|
|
62
65
|
onChange={() => {
|
|
63
66
|
model.setShowBranchLen(!showBranchLen)
|
|
64
67
|
}}
|
|
65
|
-
label="Show branch length?"
|
|
66
68
|
/>
|
|
67
69
|
|
|
68
70
|
<Checkbox2
|
|
69
71
|
checked={drawNodeBubbles}
|
|
72
|
+
label="Draw clickable bubbles on tree branches?"
|
|
70
73
|
onChange={() => {
|
|
71
74
|
model.setDrawNodeBubbles(!drawNodeBubbles)
|
|
72
75
|
}}
|
|
73
|
-
label="Draw clickable bubbles on tree branches?"
|
|
74
76
|
/>
|
|
75
77
|
<Checkbox2
|
|
76
78
|
checked={drawTree}
|
|
79
|
+
label="Show tree?"
|
|
77
80
|
onChange={() => {
|
|
78
81
|
model.setDrawTree(!drawTree)
|
|
79
82
|
}}
|
|
80
|
-
label="Show tree?"
|
|
81
83
|
/>
|
|
82
84
|
|
|
83
85
|
<Checkbox2
|
|
84
86
|
checked={labelsAlignRight}
|
|
87
|
+
label="Tree labels align right?"
|
|
85
88
|
onChange={() => {
|
|
86
89
|
model.setLabelsAlignRight(!labelsAlignRight)
|
|
87
90
|
}}
|
|
88
|
-
label="Tree labels align right?"
|
|
89
91
|
/>
|
|
90
92
|
|
|
91
93
|
<Checkbox2
|
|
92
94
|
checked={drawLabels}
|
|
95
|
+
label="Draw labels"
|
|
93
96
|
onChange={() => {
|
|
94
97
|
model.setDrawLabels(!drawLabels)
|
|
95
98
|
}}
|
|
96
|
-
label="Draw labels"
|
|
97
99
|
/>
|
|
98
100
|
{noTree ? null : (
|
|
99
101
|
<div>
|
|
100
102
|
<Checkbox2
|
|
101
103
|
checked={treeWidthMatchesArea}
|
|
104
|
+
label="Make tree width fit to tree area?"
|
|
102
105
|
onChange={() => {
|
|
103
106
|
model.setTreeWidthMatchesArea(!treeWidthMatchesArea)
|
|
104
107
|
}}
|
|
105
|
-
label="Make tree width fit to tree area?"
|
|
106
108
|
/>
|
|
107
109
|
{treeWidthMatchesArea ? null : (
|
|
108
110
|
<div className={classes.flex}>
|
|
@@ -113,7 +115,7 @@ const TreeSettings = observer(function TreeSettings({
|
|
|
113
115
|
max={600}
|
|
114
116
|
value={treeWidth}
|
|
115
117
|
onChange={(_, val) => {
|
|
116
|
-
model.setTreeWidth(val
|
|
118
|
+
model.setTreeWidth(val)
|
|
117
119
|
}}
|
|
118
120
|
/>
|
|
119
121
|
</div>
|
|
@@ -146,42 +148,42 @@ const MSASettings = observer(function MSASettings({
|
|
|
146
148
|
<h1>MSA options</h1>
|
|
147
149
|
<Checkbox2
|
|
148
150
|
checked={drawMsaLetters}
|
|
151
|
+
label="Draw letters"
|
|
149
152
|
onChange={() => {
|
|
150
153
|
model.setDrawMsaLetters(!drawMsaLetters)
|
|
151
154
|
}}
|
|
152
|
-
label="Draw letters"
|
|
153
155
|
/>
|
|
154
156
|
<Checkbox2
|
|
155
157
|
checked={bgColor}
|
|
158
|
+
label="Color background tiles of MSA?"
|
|
156
159
|
onChange={() => {
|
|
157
160
|
model.setBgColor(!bgColor)
|
|
158
161
|
}}
|
|
159
|
-
label="Color background tiles of MSA?"
|
|
160
162
|
/>
|
|
161
163
|
<Checkbox2
|
|
162
164
|
checked={contrastLettering}
|
|
165
|
+
label="Use contrast lettering"
|
|
163
166
|
onChange={() => {
|
|
164
167
|
model.setContrastLettering(!contrastLettering)
|
|
165
168
|
}}
|
|
166
|
-
label="Use contrast lettering"
|
|
167
169
|
/>
|
|
168
170
|
<Checkbox2
|
|
169
171
|
checked={hideGaps}
|
|
172
|
+
label="Enable hiding gappy columns?"
|
|
170
173
|
onChange={() => {
|
|
171
174
|
model.setHideGaps(!hideGaps)
|
|
172
175
|
}}
|
|
173
|
-
label={`Hide columns that are ${allowedGappyness}% gaps`}
|
|
174
176
|
/>
|
|
175
177
|
{hideGaps ? (
|
|
176
178
|
<div className={classes.flex}>
|
|
177
|
-
<Typography>
|
|
179
|
+
<Typography>Hide columns w/ >{allowedGappyness}% gaps</Typography>
|
|
178
180
|
<Slider
|
|
179
181
|
className={classes.field}
|
|
180
182
|
min={1}
|
|
181
183
|
max={100}
|
|
182
184
|
value={allowedGappyness}
|
|
183
185
|
onChange={(_, val) => {
|
|
184
|
-
model.setAllowedGappyness(val
|
|
186
|
+
model.setAllowedGappyness(val)
|
|
185
187
|
}}
|
|
186
188
|
/>
|
|
187
189
|
</div>
|
|
@@ -194,7 +196,7 @@ const MSASettings = observer(function MSASettings({
|
|
|
194
196
|
max={50}
|
|
195
197
|
value={colWidth}
|
|
196
198
|
onChange={(_, val) => {
|
|
197
|
-
model.setColWidth(val
|
|
199
|
+
model.setColWidth(val)
|
|
198
200
|
}}
|
|
199
201
|
/>
|
|
200
202
|
</div>
|
|
@@ -206,7 +208,7 @@ const MSASettings = observer(function MSASettings({
|
|
|
206
208
|
max={50}
|
|
207
209
|
value={rowHeight}
|
|
208
210
|
onChange={(_, val) => {
|
|
209
|
-
model.setRowHeight(val
|
|
211
|
+
model.setRowHeight(val)
|
|
210
212
|
}}
|
|
211
213
|
/>
|
|
212
214
|
</div>
|
|
@@ -240,21 +242,21 @@ const SettingsDialog = observer(function ({
|
|
|
240
242
|
return (
|
|
241
243
|
<Dialog
|
|
242
244
|
open
|
|
245
|
+
title="Settings"
|
|
246
|
+
maxWidth="xl"
|
|
243
247
|
onClose={() => {
|
|
244
248
|
onClose()
|
|
245
249
|
}}
|
|
246
|
-
title="Settings"
|
|
247
|
-
maxWidth="xl"
|
|
248
250
|
>
|
|
249
251
|
<DialogContent className={classes.minw}>
|
|
250
252
|
<SettingsContent model={model} />
|
|
251
253
|
<DialogActions>
|
|
252
254
|
<Button
|
|
255
|
+
variant="contained"
|
|
256
|
+
color="primary"
|
|
253
257
|
onClick={() => {
|
|
254
258
|
onClose()
|
|
255
259
|
}}
|
|
256
|
-
variant="contained"
|
|
257
|
-
color="primary"
|
|
258
260
|
>
|
|
259
261
|
Submit
|
|
260
262
|
</Button>
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import React, { useState } from 'react'
|
|
2
|
-
|
|
3
|
-
import { observer } from 'mobx-react'
|
|
2
|
+
|
|
4
3
|
import { Dialog } from '@jbrowse/core/ui'
|
|
5
4
|
import { Button, DialogActions, DialogContent } from '@mui/material'
|
|
5
|
+
import copy from 'copy-to-clipboard'
|
|
6
|
+
import { observer } from 'mobx-react'
|
|
6
7
|
import { makeStyles } from 'tss-react/mui'
|
|
7
8
|
|
|
8
9
|
const useStyles = makeStyles()(theme => ({
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
+
|
|
2
3
|
import { Dialog } from '@jbrowse/core/ui'
|
|
3
4
|
import {
|
|
5
|
+
Button,
|
|
6
|
+
Checkbox,
|
|
7
|
+
DialogActions,
|
|
4
8
|
DialogContent,
|
|
5
9
|
FormControlLabel,
|
|
6
10
|
FormGroup,
|
|
7
|
-
Checkbox,
|
|
8
|
-
DialogActions,
|
|
9
|
-
Button,
|
|
10
11
|
Typography,
|
|
11
12
|
} from '@mui/material'
|
|
12
13
|
import { observer } from 'mobx-react'
|
|
13
14
|
|
|
14
|
-
// locals
|
|
15
15
|
import type { MsaViewModel } from '../../model'
|
|
16
16
|
|
|
17
17
|
const TracklistDialog = observer(function ({
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
import React, { useState } from 'react'
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
import { Dialog } from '@jbrowse/core/ui'
|
|
4
|
+
import { getSession } from '@jbrowse/core/util'
|
|
3
5
|
import {
|
|
4
6
|
Button,
|
|
5
7
|
DialogActions,
|
|
6
8
|
DialogContent,
|
|
7
|
-
FormControlLabel,
|
|
8
9
|
FormControl,
|
|
10
|
+
FormControlLabel,
|
|
9
11
|
Radio,
|
|
10
12
|
RadioGroup,
|
|
11
13
|
TextField,
|
|
12
14
|
Typography,
|
|
13
15
|
} from '@mui/material'
|
|
14
|
-
import {
|
|
15
|
-
import { Dialog } from '@jbrowse/core/ui'
|
|
16
|
+
import { observer } from 'mobx-react'
|
|
16
17
|
|
|
17
|
-
// locals
|
|
18
|
-
import type { MsaViewModel } from '../../model'
|
|
19
18
|
import { jsonfetch } from '../../fetchUtils'
|
|
19
|
+
|
|
20
20
|
import type { InterProScanResponse } from '../../launchInterProScan'
|
|
21
|
+
import type { MsaViewModel } from '../../model'
|
|
21
22
|
|
|
22
23
|
const UserProvidedDomainsDialog = observer(function ({
|
|
23
24
|
handleClose,
|
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
import React, { lazy, useEffect } from 'react'
|
|
2
|
-
import { IconButton } from '@mui/material'
|
|
3
|
-
import { observer } from 'mobx-react'
|
|
4
|
-
import useMeasure from '@jbrowse/core/util/useMeasure'
|
|
5
|
-
|
|
6
|
-
// locals
|
|
7
|
-
import type { MsaViewModel } from '../../model'
|
|
8
2
|
|
|
9
|
-
|
|
3
|
+
import useMeasure from '@jbrowse/core/util/useMeasure'
|
|
10
4
|
import Help from '@mui/icons-material/Help'
|
|
5
|
+
import { IconButton } from '@mui/material'
|
|
6
|
+
import { observer } from 'mobx-react'
|
|
11
7
|
|
|
12
|
-
// locals
|
|
13
|
-
import ZoomControls from './ZoomControls'
|
|
14
|
-
import MultiAlignmentSelector from './MultiAlignmentSelector'
|
|
15
8
|
import HeaderInfoArea from './HeaderInfoArea'
|
|
16
|
-
import HeaderStatusArea from './HeaderStatusArea'
|
|
17
9
|
import HeaderMenuExtra from './HeaderMenuExtra'
|
|
10
|
+
import HeaderStatusArea from './HeaderStatusArea'
|
|
11
|
+
import MultiAlignmentSelector from './MultiAlignmentSelector'
|
|
12
|
+
import ZoomControls from './ZoomControls'
|
|
13
|
+
|
|
14
|
+
import type { MsaViewModel } from '../../model'
|
|
18
15
|
|
|
19
16
|
const AboutDialog = lazy(() => import('../dialogs/AboutDialog'))
|
|
20
17
|
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import React, { lazy } from 'react'
|
|
2
|
-
import { observer } from 'mobx-react'
|
|
3
|
-
import CascadingMenuButton from '@jbrowse/core/ui/CascadingMenuButton'
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
import FolderOpen from '@mui/icons-material/FolderOpen'
|
|
7
|
-
import Settings from '@mui/icons-material/Settings'
|
|
3
|
+
import CascadingMenuButton from '@jbrowse/core/ui/CascadingMenuButton'
|
|
8
4
|
import Assignment from '@mui/icons-material/Assignment'
|
|
5
|
+
import FolderOpen from '@mui/icons-material/FolderOpen'
|
|
9
6
|
import List from '@mui/icons-material/List'
|
|
10
7
|
import Menu from '@mui/icons-material/Menu'
|
|
8
|
+
import Settings from '@mui/icons-material/Settings'
|
|
9
|
+
import { observer } from 'mobx-react'
|
|
11
10
|
|
|
12
|
-
// locals
|
|
13
11
|
import type { MsaViewModel } from '../../model'
|
|
14
12
|
|
|
15
13
|
// lazies
|
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
import React, { lazy } from 'react'
|
|
2
|
-
import { observer } from 'mobx-react'
|
|
3
|
-
import CascadingMenuButton from '@jbrowse/core/ui/CascadingMenuButton'
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
import
|
|
7
|
-
import Sort from '@mui/icons-material/Sort'
|
|
8
|
-
import Visibility from '@mui/icons-material/Visibility'
|
|
3
|
+
import CascadingMenuButton from '@jbrowse/core/ui/CascadingMenuButton'
|
|
4
|
+
import Assignment from '@mui/icons-material/Assignment'
|
|
9
5
|
import FilterAlt from '@mui/icons-material/FilterAlt'
|
|
10
|
-
import
|
|
6
|
+
import FolderOpen from '@mui/icons-material/FolderOpen'
|
|
7
|
+
import List from '@mui/icons-material/List'
|
|
8
|
+
import MoreVert from '@mui/icons-material/Menu'
|
|
11
9
|
import PhotoCamera from '@mui/icons-material/PhotoCamera'
|
|
10
|
+
import Search from '@mui/icons-material/Search'
|
|
12
11
|
import Settings from '@mui/icons-material/Settings'
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
12
|
+
import Sort from '@mui/icons-material/Sort'
|
|
13
|
+
import Visibility from '@mui/icons-material/Visibility'
|
|
14
|
+
import { observer } from 'mobx-react'
|
|
16
15
|
|
|
17
|
-
// locals
|
|
18
16
|
import type { MsaViewModel } from '../../model'
|
|
19
17
|
|
|
20
18
|
// lazies
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
+
|
|
3
|
+
import { LoadingEllipses } from '@jbrowse/core/ui'
|
|
2
4
|
import { Typography } from '@mui/material'
|
|
3
5
|
import { observer } from 'mobx-react'
|
|
4
6
|
import { makeStyles } from 'tss-react/mui'
|
|
5
|
-
import { LoadingEllipses } from '@jbrowse/core/ui'
|
|
6
7
|
|
|
7
|
-
// locals
|
|
8
8
|
import type { MsaViewModel } from '../../model'
|
|
9
9
|
|
|
10
10
|
const useStyles = makeStyles()({
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
import { Select } from '@mui/material'
|
|
4
|
+
import { observer } from 'mobx-react'
|
|
4
5
|
|
|
5
|
-
// locals
|
|
6
6
|
import type { MsaViewModel } from '../../model'
|
|
7
7
|
|
|
8
8
|
const MultiAlignmentSelector = observer(function ({
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
+
|
|
3
|
+
import CascadingMenuButton from '@jbrowse/core/ui/CascadingMenuButton'
|
|
4
|
+
import MoreVert from '@mui/icons-material/MoreVert'
|
|
5
|
+
import RestartAlt from '@mui/icons-material/RestartAlt'
|
|
6
|
+
import ZoomIn from '@mui/icons-material/ZoomIn'
|
|
7
|
+
import ZoomOut from '@mui/icons-material/ZoomOut'
|
|
2
8
|
import { IconButton } from '@mui/material'
|
|
3
9
|
import { observer } from 'mobx-react'
|
|
4
|
-
import CascadingMenuButton from '@jbrowse/core/ui/CascadingMenuButton'
|
|
5
10
|
|
|
6
|
-
// locals
|
|
7
11
|
import { MsaViewModel } from '../../model'
|
|
8
12
|
|
|
9
13
|
// icons
|
|
10
|
-
import ZoomIn from '@mui/icons-material/ZoomIn'
|
|
11
|
-
import ZoomOut from '@mui/icons-material/ZoomOut'
|
|
12
|
-
import MoreVert from '@mui/icons-material/MoreVert'
|
|
13
|
-
import RestartAlt from '@mui/icons-material/RestartAlt'
|
|
14
14
|
|
|
15
15
|
const ZoomControls = observer(function ZoomControls({
|
|
16
16
|
model,
|
|
@@ -60,6 +60,13 @@ const ZoomControls = observer(function ZoomControls({
|
|
|
60
60
|
model.zoomOutVertical()
|
|
61
61
|
},
|
|
62
62
|
},
|
|
63
|
+
|
|
64
|
+
{
|
|
65
|
+
label: 'Show entire view',
|
|
66
|
+
onClick: () => {
|
|
67
|
+
model.showEntire()
|
|
68
|
+
},
|
|
69
|
+
},
|
|
63
70
|
{
|
|
64
71
|
label: 'Reset zoom to default',
|
|
65
72
|
icon: RestartAlt,
|