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.
Files changed (170) hide show
  1. package/bundle/index.js +282 -111
  2. package/dist/colorSchemes.js +1 -1
  3. package/dist/colorSchemes.js.map +1 -1
  4. package/dist/components/Checkbox2.js.map +1 -1
  5. package/dist/components/Loading.js +5 -6
  6. package/dist/components/Loading.js.map +1 -1
  7. package/dist/components/MSAView.js +3 -4
  8. package/dist/components/MSAView.js.map +1 -1
  9. package/dist/components/ResizeHandles.js.map +1 -1
  10. package/dist/components/SequenceTextArea.js +1 -2
  11. package/dist/components/SequenceTextArea.js.map +1 -1
  12. package/dist/components/TextTrack.d.ts +1 -1
  13. package/dist/components/TextTrack.js +1 -1
  14. package/dist/components/TextTrack.js.map +1 -1
  15. package/dist/components/Track.js +4 -5
  16. package/dist/components/Track.js.map +1 -1
  17. package/dist/components/VerticalScrollbar.js +1 -1
  18. package/dist/components/VerticalScrollbar.js.map +1 -1
  19. package/dist/components/dialogs/AboutDialog.js +4 -4
  20. package/dist/components/dialogs/AboutDialog.js.map +1 -1
  21. package/dist/components/dialogs/AddTrackDialog.js +1 -1
  22. package/dist/components/dialogs/AddTrackDialog.js.map +1 -1
  23. package/dist/components/dialogs/DomainDialog.js +1 -2
  24. package/dist/components/dialogs/DomainDialog.js.map +1 -1
  25. package/dist/components/dialogs/ExportSVGDialog.js +1 -1
  26. package/dist/components/dialogs/ExportSVGDialog.js.map +1 -1
  27. package/dist/components/dialogs/FeatureDialog.js +1 -1
  28. package/dist/components/dialogs/FeatureDialog.js.map +1 -1
  29. package/dist/components/dialogs/InterProScanDialog.js +3 -3
  30. package/dist/components/dialogs/InterProScanDialog.js.map +1 -1
  31. package/dist/components/dialogs/MetadataDialog.js +3 -2
  32. package/dist/components/dialogs/MetadataDialog.js.map +1 -1
  33. package/dist/components/dialogs/SettingsDialog.js +29 -29
  34. package/dist/components/dialogs/SettingsDialog.js.map +1 -1
  35. package/dist/components/dialogs/TrackInfoDialog.js +2 -2
  36. package/dist/components/dialogs/TrackInfoDialog.js.map +1 -1
  37. package/dist/components/dialogs/TracklistDialog.js +1 -1
  38. package/dist/components/dialogs/TracklistDialog.js.map +1 -1
  39. package/dist/components/dialogs/UserProvidedDomainsDialog.js +3 -3
  40. package/dist/components/dialogs/UserProvidedDomainsDialog.js.map +1 -1
  41. package/dist/components/header/Header.js +5 -7
  42. package/dist/components/header/Header.js.map +1 -1
  43. package/dist/components/header/HeaderInfoArea.js.map +1 -1
  44. package/dist/components/header/HeaderMenu.js +3 -4
  45. package/dist/components/header/HeaderMenu.js.map +1 -1
  46. package/dist/components/header/HeaderMenuExtra.js +8 -9
  47. package/dist/components/header/HeaderMenuExtra.js.map +1 -1
  48. package/dist/components/header/HeaderStatusArea.js +1 -1
  49. package/dist/components/header/HeaderStatusArea.js.map +1 -1
  50. package/dist/components/header/MultiAlignmentSelector.js +1 -1
  51. package/dist/components/header/MultiAlignmentSelector.js.map +1 -1
  52. package/dist/components/header/ZoomControls.js +11 -5
  53. package/dist/components/header/ZoomControls.js.map +1 -1
  54. package/dist/components/import/ImportForm.js +19 -15
  55. package/dist/components/import/ImportForm.js.map +1 -1
  56. package/dist/components/import/ImportFormExamples.js +2 -2
  57. package/dist/components/import/ImportFormExamples.js.map +1 -1
  58. package/dist/components/import/util.d.ts +1 -1
  59. package/dist/components/minimap/Minimap.js.map +1 -1
  60. package/dist/components/minimap/MinimapSVG.js.map +1 -1
  61. package/dist/components/msa/Loading.js +1 -1
  62. package/dist/components/msa/Loading.js.map +1 -1
  63. package/dist/components/msa/MSACanvas.js +2 -2
  64. package/dist/components/msa/MSACanvas.js.map +1 -1
  65. package/dist/components/msa/MSACanvasBlock.js +2 -3
  66. package/dist/components/msa/MSACanvasBlock.js.map +1 -1
  67. package/dist/components/msa/MSAMouseoverCanvas.js +1 -1
  68. package/dist/components/msa/MSAMouseoverCanvas.js.map +1 -1
  69. package/dist/components/msa/MSAPanel.js +0 -1
  70. package/dist/components/msa/MSAPanel.js.map +1 -1
  71. package/dist/components/msa/renderBoxFeatureCanvasBlock.js.map +1 -1
  72. package/dist/components/msa/renderMSABlock.d.ts +1 -1
  73. package/dist/components/msa/renderMSABlock.js +9 -3
  74. package/dist/components/msa/renderMSABlock.js.map +1 -1
  75. package/dist/components/tree/TreeBranchMenu.js.map +1 -1
  76. package/dist/components/tree/TreeCanvas.js +1 -2
  77. package/dist/components/tree/TreeCanvas.js.map +1 -1
  78. package/dist/components/tree/TreeCanvasBlock.js +4 -5
  79. package/dist/components/tree/TreeCanvasBlock.js.map +1 -1
  80. package/dist/components/tree/TreeNodeMenu.js +5 -1
  81. package/dist/components/tree/TreeNodeMenu.js.map +1 -1
  82. package/dist/components/tree/TreePanel.js.map +1 -1
  83. package/dist/components/tree/TreeRuler.js.map +1 -1
  84. package/dist/components/tree/dialogs/TreeNodeInfoDialog.js +2 -1
  85. package/dist/components/tree/dialogs/TreeNodeInfoDialog.js.map +1 -1
  86. package/dist/components/tree/renderTreeCanvas.d.ts +2 -2
  87. package/dist/components/tree/renderTreeCanvas.js +5 -5
  88. package/dist/components/tree/renderTreeCanvas.js.map +1 -1
  89. package/dist/index.d.ts +1 -1
  90. package/dist/index.js.map +1 -1
  91. package/dist/launchInterProScan.js.map +1 -1
  92. package/dist/model/DialogQueue.js.map +1 -1
  93. package/dist/model/treeModel.d.ts +1 -1
  94. package/dist/model/treeModel.js +1 -1
  95. package/dist/model/treeModel.js.map +1 -1
  96. package/dist/model.d.ts +30 -34
  97. package/dist/model.js +71 -40
  98. package/dist/model.js.map +1 -1
  99. package/dist/parsers/ClustalMSA.js.map +1 -1
  100. package/dist/parsers/EmfMSA.js.map +1 -1
  101. package/dist/parsers/StockholmMSA.js.map +1 -1
  102. package/dist/renderToSvg.d.ts +1 -1
  103. package/dist/renderToSvg.js +5 -6
  104. package/dist/renderToSvg.js.map +1 -1
  105. package/dist/rowCoordinateCalculations.test.js.map +1 -1
  106. package/dist/util.d.ts +1 -1
  107. package/dist/util.js +1 -1
  108. package/dist/util.js.map +1 -1
  109. package/dist/version.d.ts +1 -1
  110. package/dist/version.js +1 -1
  111. package/package.json +4 -5
  112. package/src/colorSchemes.ts +2 -1
  113. package/src/components/Checkbox2.tsx +1 -0
  114. package/src/components/Loading.tsx +7 -6
  115. package/src/components/MSAView.tsx +6 -5
  116. package/src/components/ResizeHandles.tsx +1 -1
  117. package/src/components/SequenceTextArea.tsx +2 -2
  118. package/src/components/TextTrack.tsx +5 -3
  119. package/src/components/Track.tsx +5 -5
  120. package/src/components/VerticalScrollbar.tsx +5 -2
  121. package/src/components/dialogs/AboutDialog.tsx +6 -7
  122. package/src/components/dialogs/AddTrackDialog.tsx +7 -5
  123. package/src/components/dialogs/DomainDialog.tsx +3 -2
  124. package/src/components/dialogs/ExportSVGDialog.tsx +7 -5
  125. package/src/components/dialogs/FeatureDialog.tsx +4 -3
  126. package/src/components/dialogs/InterProScanDialog.tsx +6 -5
  127. package/src/components/dialogs/MetadataDialog.tsx +6 -7
  128. package/src/components/dialogs/SettingsDialog.tsx +24 -22
  129. package/src/components/dialogs/TrackInfoDialog.tsx +3 -2
  130. package/src/components/dialogs/TracklistDialog.tsx +4 -4
  131. package/src/components/dialogs/UserProvidedDomainsDialog.tsx +7 -6
  132. package/src/components/header/Header.tsx +8 -11
  133. package/src/components/header/HeaderInfoArea.tsx +1 -1
  134. package/src/components/header/HeaderMenu.tsx +4 -6
  135. package/src/components/header/HeaderMenuExtra.tsx +9 -11
  136. package/src/components/header/HeaderStatusArea.tsx +2 -2
  137. package/src/components/header/MultiAlignmentSelector.tsx +2 -2
  138. package/src/components/header/ZoomControls.tsx +13 -6
  139. package/src/components/import/ImportForm.tsx +31 -24
  140. package/src/components/import/ImportFormExamples.tsx +5 -4
  141. package/src/components/import/util.ts +1 -1
  142. package/src/components/minimap/Minimap.tsx +2 -0
  143. package/src/components/minimap/MinimapSVG.tsx +2 -0
  144. package/src/components/msa/Loading.tsx +2 -1
  145. package/src/components/msa/MSACanvas.tsx +5 -4
  146. package/src/components/msa/MSACanvasBlock.tsx +5 -4
  147. package/src/components/msa/MSAMouseoverCanvas.tsx +4 -3
  148. package/src/components/msa/MSAPanel.tsx +2 -1
  149. package/src/components/msa/renderBoxFeatureCanvasBlock.ts +1 -3
  150. package/src/components/msa/renderMSABlock.ts +11 -10
  151. package/src/components/tree/TreeBranchMenu.tsx +1 -1
  152. package/src/components/tree/TreeCanvas.tsx +4 -4
  153. package/src/components/tree/TreeCanvasBlock.tsx +7 -7
  154. package/src/components/tree/TreeNodeMenu.tsx +10 -1
  155. package/src/components/tree/TreePanel.tsx +3 -1
  156. package/src/components/tree/TreeRuler.tsx +1 -1
  157. package/src/components/tree/dialogs/TreeNodeInfoDialog.tsx +5 -6
  158. package/src/components/tree/renderTreeCanvas.ts +7 -9
  159. package/src/index.ts +1 -1
  160. package/src/launchInterProScan.ts +2 -0
  161. package/src/model/DialogQueue.ts +2 -1
  162. package/src/model/treeModel.ts +1 -1
  163. package/src/model.ts +89 -58
  164. package/src/parsers/ClustalMSA.ts +1 -0
  165. package/src/parsers/EmfMSA.ts +1 -0
  166. package/src/parsers/StockholmMSA.ts +1 -1
  167. package/src/renderToSvg.tsx +7 -9
  168. package/src/rowCoordinateCalculations.test.ts +1 -0
  169. package/src/util.ts +4 -3
  170. package/src/version.ts +1 -1
@@ -1,13 +1,13 @@
1
- import React, { useState, useRef, useEffect, lazy } from 'react'
2
- import normalizeWheel from 'normalize-wheel'
3
- import { observer } from 'mobx-react'
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
- import type { MsaViewModel } from '../model'
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, Typography, Link } from '@mui/material'
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/jbrowse-plugin-msaview">
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
- TextField,
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
- FormControlLabel,
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
- // locals
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
- import { observer } from 'mobx-react'
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
- // locals
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
- import { Dialog } from '@jbrowse/core/ui'
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
- import { observer } from 'mobx-react'
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 as number)
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>Allowed gappyness ({100 - allowedGappyness}%)</Typography>
179
+ <Typography>Hide columns w/ &gt;{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 as number)
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 as number)
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 as number)
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
- import copy from 'copy-to-clipboard'
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
- import { observer } from 'mobx-react'
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 { getSession } from '@jbrowse/core/util'
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
- // icons
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,9 +1,9 @@
1
1
  import React from 'react'
2
+
2
3
  import { Typography } from '@mui/material'
3
4
  import { observer } from 'mobx-react'
4
5
  import { makeStyles } from 'tss-react/mui'
5
6
 
6
- // locals
7
7
  import type { MsaViewModel } from '../../model'
8
8
 
9
9
  const useStyles = makeStyles()({
@@ -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
- // icons
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
- // icons
6
- import MoreVert from '@mui/icons-material/Menu'
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 Search from '@mui/icons-material/Search'
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 Assignment from '@mui/icons-material/Assignment'
14
- import List from '@mui/icons-material/List'
15
- import FolderOpen from '@mui/icons-material/FolderOpen'
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
- import { observer } from 'mobx-react'
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,