@jbrowse/plugin-linear-genome-view 1.7.11 → 2.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 (272) hide show
  1. package/dist/BaseLinearDisplay/components/BaseLinearDisplay.js +119 -139
  2. package/dist/BaseLinearDisplay/components/BaseLinearDisplay.js.map +1 -0
  3. package/dist/BaseLinearDisplay/components/Block.js +53 -74
  4. package/dist/BaseLinearDisplay/components/Block.js.map +1 -0
  5. package/dist/BaseLinearDisplay/components/LinearBlocks.d.ts +11 -1
  6. package/dist/BaseLinearDisplay/components/LinearBlocks.js +64 -103
  7. package/dist/BaseLinearDisplay/components/LinearBlocks.js.map +1 -0
  8. package/dist/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js +146 -175
  9. package/dist/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js.map +1 -0
  10. package/dist/BaseLinearDisplay/components/Tooltip.js +109 -116
  11. package/dist/BaseLinearDisplay/components/Tooltip.js.map +1 -0
  12. package/dist/BaseLinearDisplay/index.js +13 -40
  13. package/dist/BaseLinearDisplay/index.js.map +1 -0
  14. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +19 -14
  15. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js +605 -684
  16. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js.map +1 -0
  17. package/dist/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.js +15 -22
  18. package/dist/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.js.map +1 -0
  19. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.d.ts +7 -8
  20. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js +266 -312
  21. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +1 -0
  22. package/dist/LinearBareDisplay/configSchema.js +11 -17
  23. package/dist/LinearBareDisplay/configSchema.js.map +1 -0
  24. package/dist/LinearBareDisplay/index.js +7 -20
  25. package/dist/LinearBareDisplay/index.js.map +1 -0
  26. package/dist/LinearBareDisplay/model.d.ts +15 -13
  27. package/dist/LinearBareDisplay/model.js +36 -42
  28. package/dist/LinearBareDisplay/model.js.map +1 -0
  29. package/dist/LinearBasicDisplay/components/SetMaxHeight.d.ts +1 -1
  30. package/dist/LinearBasicDisplay/components/SetMaxHeight.js +76 -85
  31. package/dist/LinearBasicDisplay/components/SetMaxHeight.js.map +1 -0
  32. package/dist/LinearBasicDisplay/configSchema.js +15 -23
  33. package/dist/LinearBasicDisplay/configSchema.js.map +1 -0
  34. package/dist/LinearBasicDisplay/index.js +10 -22
  35. package/dist/LinearBasicDisplay/index.js.map +1 -0
  36. package/dist/LinearBasicDisplay/model.d.ts +20 -14
  37. package/dist/LinearBasicDisplay/model.js +180 -159
  38. package/dist/LinearBasicDisplay/model.js.map +1 -0
  39. package/dist/LinearGenomeView/components/CenterLine.d.ts +2 -8
  40. package/dist/LinearGenomeView/components/CenterLine.js +60 -74
  41. package/dist/LinearGenomeView/components/CenterLine.js.map +1 -0
  42. package/dist/LinearGenomeView/components/ExportSvgDialog.js +141 -141
  43. package/dist/LinearGenomeView/components/ExportSvgDialog.js.map +1 -0
  44. package/dist/LinearGenomeView/components/Gridlines.d.ts +8 -0
  45. package/dist/LinearGenomeView/components/Gridlines.js +78 -0
  46. package/dist/LinearGenomeView/components/Gridlines.js.map +1 -0
  47. package/dist/LinearGenomeView/components/Header.d.ts +1 -0
  48. package/dist/LinearGenomeView/components/Header.js +70 -125
  49. package/dist/LinearGenomeView/components/Header.js.map +1 -0
  50. package/dist/LinearGenomeView/components/HelpDialog.d.ts +0 -1
  51. package/dist/LinearGenomeView/components/HelpDialog.js +62 -44
  52. package/dist/LinearGenomeView/components/HelpDialog.js.map +1 -0
  53. package/dist/LinearGenomeView/components/ImportForm.d.ts +1 -0
  54. package/dist/LinearGenomeView/components/ImportForm.js +222 -289
  55. package/dist/LinearGenomeView/components/ImportForm.js.map +1 -0
  56. package/dist/LinearGenomeView/components/LinearGenomeView.js +60 -124
  57. package/dist/LinearGenomeView/components/LinearGenomeView.js.map +1 -0
  58. package/dist/LinearGenomeView/components/LinearGenomeViewSvg.js +198 -337
  59. package/dist/LinearGenomeView/components/LinearGenomeViewSvg.js.map +1 -0
  60. package/dist/LinearGenomeView/components/MiniControls.js +64 -78
  61. package/dist/LinearGenomeView/components/MiniControls.js.map +1 -0
  62. package/dist/LinearGenomeView/components/OverviewRubberBand.js +229 -293
  63. package/dist/LinearGenomeView/components/OverviewRubberBand.js.map +1 -0
  64. package/dist/LinearGenomeView/components/OverviewScaleBar.d.ts +3 -3
  65. package/dist/LinearGenomeView/components/OverviewScaleBar.js +275 -370
  66. package/dist/LinearGenomeView/components/OverviewScaleBar.js.map +1 -0
  67. package/dist/LinearGenomeView/components/RefNameAutocomplete.d.ts +1 -1
  68. package/dist/LinearGenomeView/components/RefNameAutocomplete.js +237 -324
  69. package/dist/LinearGenomeView/components/RefNameAutocomplete.js.map +1 -0
  70. package/dist/LinearGenomeView/components/RubberBand.js +228 -296
  71. package/dist/LinearGenomeView/components/RubberBand.js.map +1 -0
  72. package/dist/LinearGenomeView/components/Ruler.js +45 -90
  73. package/dist/LinearGenomeView/components/Ruler.js.map +1 -0
  74. package/dist/LinearGenomeView/components/ScaleBar.d.ts +8 -403
  75. package/dist/LinearGenomeView/components/ScaleBar.js +121 -172
  76. package/dist/LinearGenomeView/components/ScaleBar.js.map +1 -0
  77. package/dist/LinearGenomeView/components/SearchBox.js +155 -166
  78. package/dist/LinearGenomeView/components/SearchBox.js.map +1 -0
  79. package/dist/LinearGenomeView/components/SearchResultsDialog.d.ts +0 -1
  80. package/dist/LinearGenomeView/components/SearchResultsDialog.js +105 -149
  81. package/dist/LinearGenomeView/components/SearchResultsDialog.js.map +1 -0
  82. package/dist/LinearGenomeView/components/SequenceDialog.js +219 -272
  83. package/dist/LinearGenomeView/components/SequenceDialog.js.map +1 -0
  84. package/dist/LinearGenomeView/components/TrackContainer.d.ts +2 -1
  85. package/dist/LinearGenomeView/components/TrackContainer.js +113 -158
  86. package/dist/LinearGenomeView/components/TrackContainer.js.map +1 -0
  87. package/dist/LinearGenomeView/components/TrackLabel.d.ts +6 -42
  88. package/dist/LinearGenomeView/components/TrackLabel.js +113 -133
  89. package/dist/LinearGenomeView/components/TrackLabel.js.map +1 -0
  90. package/dist/LinearGenomeView/components/TracksContainer.d.ts +1 -1
  91. package/dist/LinearGenomeView/components/TracksContainer.js +172 -199
  92. package/dist/LinearGenomeView/components/TracksContainer.js.map +1 -0
  93. package/dist/LinearGenomeView/components/ZoomControls.js +72 -87
  94. package/dist/LinearGenomeView/components/ZoomControls.js.map +1 -0
  95. package/dist/LinearGenomeView/components/util.js +94 -71
  96. package/dist/LinearGenomeView/components/util.js.map +1 -0
  97. package/dist/LinearGenomeView/index.d.ts +64 -77
  98. package/dist/LinearGenomeView/index.js +1035 -1412
  99. package/dist/LinearGenomeView/index.js.map +1 -0
  100. package/dist/LinearGenomeView/util.js +76 -83
  101. package/dist/LinearGenomeView/util.js.map +1 -0
  102. package/dist/index.d.ts +98 -48
  103. package/dist/index.js +225 -295
  104. package/dist/index.js.map +1 -0
  105. package/esm/BaseLinearDisplay/components/BaseLinearDisplay.d.ts +9 -0
  106. package/esm/BaseLinearDisplay/components/BaseLinearDisplay.js +68 -0
  107. package/esm/BaseLinearDisplay/components/BaseLinearDisplay.js.map +1 -0
  108. package/esm/BaseLinearDisplay/components/Block.d.ts +15 -0
  109. package/esm/BaseLinearDisplay/components/Block.js +46 -0
  110. package/esm/BaseLinearDisplay/components/Block.js.map +1 -0
  111. package/esm/BaseLinearDisplay/components/LinearBlocks.d.ts +22 -0
  112. package/esm/BaseLinearDisplay/components/LinearBlocks.js +62 -0
  113. package/esm/BaseLinearDisplay/components/LinearBlocks.js.map +1 -0
  114. package/esm/BaseLinearDisplay/components/ServerSideRenderedBlockContent.d.ts +4 -0
  115. package/esm/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js +114 -0
  116. package/esm/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js.map +1 -0
  117. package/esm/BaseLinearDisplay/components/Tooltip.d.ts +8 -0
  118. package/esm/BaseLinearDisplay/components/Tooltip.js +64 -0
  119. package/esm/BaseLinearDisplay/components/Tooltip.js.map +1 -0
  120. package/esm/BaseLinearDisplay/index.d.ts +5 -0
  121. package/esm/BaseLinearDisplay/index.js +4 -0
  122. package/esm/BaseLinearDisplay/index.js.map +1 -0
  123. package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +232 -0
  124. package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js +541 -0
  125. package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js.map +1 -0
  126. package/esm/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.d.ts +1 -0
  127. package/esm/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.js +14 -0
  128. package/esm/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.js.map +1 -0
  129. package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.d.ts +96 -0
  130. package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js +225 -0
  131. package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +1 -0
  132. package/esm/LinearBareDisplay/configSchema.d.ts +2 -0
  133. package/esm/LinearBareDisplay/configSchema.js +9 -0
  134. package/esm/LinearBareDisplay/configSchema.js.map +1 -0
  135. package/esm/LinearBareDisplay/index.d.ts +2 -0
  136. package/esm/LinearBareDisplay/index.js +3 -0
  137. package/esm/LinearBareDisplay/index.js.map +1 -0
  138. package/esm/LinearBareDisplay/model.d.ts +194 -0
  139. package/esm/LinearBareDisplay/model.js +28 -0
  140. package/esm/LinearBareDisplay/model.js.map +1 -0
  141. package/esm/LinearBasicDisplay/components/SetMaxHeight.d.ts +10 -0
  142. package/esm/LinearBasicDisplay/components/SetMaxHeight.js +40 -0
  143. package/esm/LinearBasicDisplay/components/SetMaxHeight.js.map +1 -0
  144. package/esm/LinearBasicDisplay/configSchema.d.ts +2 -0
  145. package/esm/LinearBasicDisplay/configSchema.js +14 -0
  146. package/esm/LinearBasicDisplay/configSchema.js.map +1 -0
  147. package/esm/LinearBasicDisplay/index.d.ts +2 -0
  148. package/esm/LinearBasicDisplay/index.js +3 -0
  149. package/esm/LinearBasicDisplay/index.js.map +1 -0
  150. package/esm/LinearBasicDisplay/model.d.ts +218 -0
  151. package/esm/LinearBasicDisplay/model.js +127 -0
  152. package/esm/LinearBasicDisplay/model.js.map +1 -0
  153. package/esm/LinearGenomeView/components/CenterLine.d.ts +8 -0
  154. package/esm/LinearGenomeView/components/CenterLine.js +40 -0
  155. package/esm/LinearGenomeView/components/CenterLine.js.map +1 -0
  156. package/esm/LinearGenomeView/components/ExportSvgDialog.d.ts +6 -0
  157. package/esm/LinearGenomeView/components/ExportSvgDialog.js +52 -0
  158. package/esm/LinearGenomeView/components/ExportSvgDialog.js.map +1 -0
  159. package/esm/LinearGenomeView/components/Gridlines.d.ts +8 -0
  160. package/esm/LinearGenomeView/components/Gridlines.js +71 -0
  161. package/esm/LinearGenomeView/components/Gridlines.js.map +1 -0
  162. package/esm/LinearGenomeView/components/Header.d.ts +7 -0
  163. package/esm/LinearGenomeView/components/Header.js +81 -0
  164. package/esm/LinearGenomeView/components/Header.js.map +1 -0
  165. package/esm/LinearGenomeView/components/HelpDialog.d.ts +4 -0
  166. package/esm/LinearGenomeView/components/HelpDialog.js +58 -0
  167. package/esm/LinearGenomeView/components/HelpDialog.js.map +1 -0
  168. package/esm/LinearGenomeView/components/ImportForm.d.ts +7 -0
  169. package/esm/LinearGenomeView/components/ImportForm.js +141 -0
  170. package/esm/LinearGenomeView/components/ImportForm.js.map +1 -0
  171. package/esm/LinearGenomeView/components/LinearGenomeView.d.ts +7 -0
  172. package/esm/LinearGenomeView/components/LinearGenomeView.js +63 -0
  173. package/esm/LinearGenomeView/components/LinearGenomeView.js.map +1 -0
  174. package/esm/LinearGenomeView/components/LinearGenomeViewSvg.d.ts +4 -0
  175. package/esm/LinearGenomeView/components/LinearGenomeViewSvg.js +132 -0
  176. package/esm/LinearGenomeView/components/LinearGenomeViewSvg.js.map +1 -0
  177. package/esm/LinearGenomeView/components/MiniControls.d.ts +6 -0
  178. package/esm/LinearGenomeView/components/MiniControls.js +25 -0
  179. package/esm/LinearGenomeView/components/MiniControls.js.map +1 -0
  180. package/esm/LinearGenomeView/components/OverviewRubberBand.d.ts +22 -0
  181. package/esm/LinearGenomeView/components/OverviewRubberBand.js +197 -0
  182. package/esm/LinearGenomeView/components/OverviewRubberBand.js.map +1 -0
  183. package/esm/LinearGenomeView/components/OverviewScaleBar.d.ts +148 -0
  184. package/esm/LinearGenomeView/components/OverviewScaleBar.js +287 -0
  185. package/esm/LinearGenomeView/components/OverviewScaleBar.js.map +1 -0
  186. package/esm/LinearGenomeView/components/RefNameAutocomplete.d.ts +22 -0
  187. package/esm/LinearGenomeView/components/RefNameAutocomplete.js +136 -0
  188. package/esm/LinearGenomeView/components/RefNameAutocomplete.js.map +1 -0
  189. package/esm/LinearGenomeView/components/RubberBand.d.ts +9 -0
  190. package/esm/LinearGenomeView/components/RubberBand.js +197 -0
  191. package/esm/LinearGenomeView/components/RubberBand.js.map +1 -0
  192. package/esm/LinearGenomeView/components/Ruler.d.ts +27 -0
  193. package/esm/LinearGenomeView/components/Ruler.js +50 -0
  194. package/esm/LinearGenomeView/components/Ruler.js.map +1 -0
  195. package/esm/LinearGenomeView/components/ScaleBar.d.ts +10 -0
  196. package/esm/LinearGenomeView/components/ScaleBar.js +112 -0
  197. package/esm/LinearGenomeView/components/ScaleBar.js.map +1 -0
  198. package/esm/LinearGenomeView/components/SearchBox.d.ts +8 -0
  199. package/esm/LinearGenomeView/components/SearchBox.js +94 -0
  200. package/esm/LinearGenomeView/components/SearchBox.js.map +1 -0
  201. package/esm/LinearGenomeView/components/SearchResultsDialog.d.ts +7 -0
  202. package/esm/LinearGenomeView/components/SearchResultsDialog.js +107 -0
  203. package/esm/LinearGenomeView/components/SearchResultsDialog.js.map +1 -0
  204. package/esm/LinearGenomeView/components/SequenceDialog.d.ts +8 -0
  205. package/esm/LinearGenomeView/components/SequenceDialog.js +147 -0
  206. package/esm/LinearGenomeView/components/SequenceDialog.js.map +1 -0
  207. package/esm/LinearGenomeView/components/TrackContainer.d.ts +10 -0
  208. package/esm/LinearGenomeView/components/TrackContainer.js +104 -0
  209. package/esm/LinearGenomeView/components/TrackContainer.js.map +1 -0
  210. package/esm/LinearGenomeView/components/TrackLabel.d.ts +8 -0
  211. package/esm/LinearGenomeView/components/TrackLabel.js +88 -0
  212. package/esm/LinearGenomeView/components/TrackLabel.js.map +1 -0
  213. package/{dist/LinearGenomeView/components/VerticalGuides.d.ts → esm/LinearGenomeView/components/TracksContainer.d.ts} +4 -3
  214. package/esm/LinearGenomeView/components/TracksContainer.js +142 -0
  215. package/esm/LinearGenomeView/components/TracksContainer.js.map +1 -0
  216. package/esm/LinearGenomeView/components/ZoomControls.d.ts +7 -0
  217. package/esm/LinearGenomeView/components/ZoomControls.js +32 -0
  218. package/esm/LinearGenomeView/components/ZoomControls.js.map +1 -0
  219. package/esm/LinearGenomeView/components/util.d.ts +14 -0
  220. package/esm/LinearGenomeView/components/util.js +17 -0
  221. package/esm/LinearGenomeView/components/util.js.map +1 -0
  222. package/esm/LinearGenomeView/index.d.ts +275 -0
  223. package/esm/LinearGenomeView/index.js +978 -0
  224. package/esm/LinearGenomeView/index.js.map +1 -0
  225. package/esm/LinearGenomeView/util.d.ts +14 -0
  226. package/esm/LinearGenomeView/util.js +62 -0
  227. package/esm/LinearGenomeView/util.js.map +1 -0
  228. package/esm/index.d.ts +615 -0
  229. package/esm/index.js +127 -0
  230. package/esm/index.js.map +1 -0
  231. package/package.json +22 -15
  232. package/src/BaseLinearDisplay/components/BaseLinearDisplay.tsx +4 -4
  233. package/src/BaseLinearDisplay/components/Block.tsx +5 -5
  234. package/src/BaseLinearDisplay/components/LinearBlocks.tsx +4 -4
  235. package/src/BaseLinearDisplay/components/ServerSideRenderedBlockContent.tsx +9 -9
  236. package/src/BaseLinearDisplay/components/Tooltip.tsx +14 -4
  237. package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +6 -4
  238. package/src/BaseLinearDisplay/models/serverSideRenderedBlock.ts +1 -1
  239. package/src/LinearBasicDisplay/components/SetMaxHeight.tsx +10 -7
  240. package/src/LinearBasicDisplay/model.ts +19 -11
  241. package/src/LinearGenomeView/components/CenterLine.tsx +6 -11
  242. package/src/LinearGenomeView/components/ExportSvgDialog.tsx +5 -5
  243. package/src/LinearGenomeView/components/{VerticalGuides.tsx → Gridlines.tsx} +9 -11
  244. package/src/LinearGenomeView/components/Header.tsx +10 -15
  245. package/src/LinearGenomeView/components/HelpDialog.tsx +5 -5
  246. package/src/LinearGenomeView/components/ImportForm.tsx +6 -12
  247. package/src/LinearGenomeView/components/LinearGenomeView.test.js +16 -6
  248. package/src/LinearGenomeView/components/LinearGenomeView.tsx +6 -9
  249. package/src/LinearGenomeView/components/MiniControls.tsx +29 -40
  250. package/src/LinearGenomeView/components/OverviewRubberBand.tsx +20 -29
  251. package/src/LinearGenomeView/components/OverviewScaleBar.tsx +61 -59
  252. package/src/LinearGenomeView/components/RefNameAutocomplete.tsx +13 -44
  253. package/src/LinearGenomeView/components/RubberBand.tsx +12 -18
  254. package/src/LinearGenomeView/components/Ruler.tsx +5 -11
  255. package/src/LinearGenomeView/components/ScaleBar.tsx +23 -27
  256. package/src/LinearGenomeView/components/SearchBox.tsx +4 -3
  257. package/src/LinearGenomeView/components/SearchResultsDialog.tsx +7 -6
  258. package/src/LinearGenomeView/components/SequenceDialog.tsx +10 -10
  259. package/src/LinearGenomeView/components/TrackContainer.tsx +29 -39
  260. package/src/LinearGenomeView/components/TrackLabel.tsx +76 -79
  261. package/src/LinearGenomeView/components/TracksContainer.tsx +10 -15
  262. package/src/LinearGenomeView/components/ZoomControls.tsx +12 -13
  263. package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.js.snap +500 -550
  264. package/src/LinearGenomeView/index.test.ts +15 -36
  265. package/src/LinearGenomeView/index.tsx +390 -564
  266. package/src/index.ts +1 -1
  267. package/dist/LinearBareDisplay/index.test.js +0 -33
  268. package/dist/LinearGenomeView/components/LinearGenomeView.test.js +0 -234
  269. package/dist/LinearGenomeView/components/ScaleBar.test.js +0 -180
  270. package/dist/LinearGenomeView/components/VerticalGuides.js +0 -116
  271. package/dist/LinearGenomeView/index.test.js +0 -1187
  272. package/dist/LinearGenomeView/util.test.js +0 -78
@@ -1,15 +1,16 @@
1
1
  import React from 'react'
2
- import { getConf, readConfObject } from '@jbrowse/core/configuration'
2
+ import { observer } from 'mobx-react'
3
+ import { Instance } from 'mobx-state-tree'
4
+ import {
5
+ AnyConfigurationModel,
6
+ getConf,
7
+ readConfObject,
8
+ } from '@jbrowse/core/configuration'
3
9
  import CascadingMenu from '@jbrowse/core/ui/CascadingMenu'
4
10
  import { getSession, getContainingView } from '@jbrowse/core/util'
5
11
  import { BaseTrackModel } from '@jbrowse/core/pluggableElementTypes/models'
6
- import {
7
- IconButton,
8
- Paper,
9
- Typography,
10
- alpha,
11
- makeStyles,
12
- } from '@material-ui/core'
12
+ import { IconButton, Paper, Typography, alpha } from '@mui/material'
13
+ import { makeStyles } from 'tss-react/mui'
13
14
 
14
15
  import {
15
16
  bindTrigger,
@@ -17,18 +18,14 @@ import {
17
18
  usePopupState,
18
19
  } from 'material-ui-popup-state/hooks'
19
20
 
20
- import clsx from 'clsx'
21
- import { observer } from 'mobx-react'
22
- import { Instance } from 'mobx-state-tree'
23
-
24
21
  // icons
25
- import MoreVertIcon from '@material-ui/icons/MoreVert'
26
- import DragIcon from '@material-ui/icons/DragIndicator'
27
- import CloseIcon from '@material-ui/icons/Close'
22
+ import MoreVertIcon from '@mui/icons-material/MoreVert'
23
+ import DragIcon from '@mui/icons-material/DragIndicator'
24
+ import CloseIcon from '@mui/icons-material/Close'
28
25
 
29
26
  import { LinearGenomeViewStateModel } from '..'
30
27
 
31
- const useStyles = makeStyles(theme => ({
28
+ const useStyles = makeStyles()(theme => ({
32
29
  root: {
33
30
  background: alpha(theme.palette.background.paper, 0.8),
34
31
  '&:hover': {
@@ -60,16 +57,35 @@ const useStyles = makeStyles(theme => ({
60
57
 
61
58
  type LGV = Instance<LinearGenomeViewStateModel>
62
59
 
63
- const TrackLabel = React.forwardRef(
64
- (
65
- { track, className }: { track: BaseTrackModel; className?: string },
66
- ref,
67
- ) => {
68
- const classes = useStyles()
60
+ interface Props {
61
+ track: BaseTrackModel
62
+ className?: string
63
+ }
64
+
65
+ function getTrackName(
66
+ track: BaseTrackModel,
67
+ session: { assemblies: AnyConfigurationModel[] },
68
+ ) {
69
+ const trackName = getConf(track, 'name')
70
+ if (getConf(track, 'type') === 'ReferenceSequenceTrack') {
71
+ const asm = session.assemblies.find(a => a.sequence === track.configuration)
72
+ return (
73
+ trackName ||
74
+ (asm
75
+ ? `Reference Sequence (${readConfObject(asm, 'name')})`
76
+ : 'Reference Sequence')
77
+ )
78
+ }
79
+ return trackName
80
+ }
81
+ const TrackLabel = React.forwardRef<HTMLDivElement, Props>(
82
+ ({ track, className }, ref) => {
83
+ const { classes, cx } = useStyles()
69
84
  const view = getContainingView(track) as LGV
70
85
  const session = getSession(track)
71
86
  const trackConf = track.configuration
72
87
  const trackId = getConf(track, 'trackId')
88
+ const trackName = getTrackName(track, session)
73
89
 
74
90
  const popupState = usePopupState({
75
91
  popupId: 'trackLabelMenu',
@@ -77,80 +93,61 @@ const TrackLabel = React.forwardRef(
77
93
  })
78
94
 
79
95
  const onDragStart = (event: React.DragEvent<HTMLSpanElement>) => {
80
- const target = event.target as HTMLElement
96
+ const target = event.currentTarget
81
97
  if (target.parentNode) {
82
- event.dataTransfer.setDragImage(
83
- target.parentNode as HTMLElement,
84
- 20,
85
- 20,
86
- )
98
+ const parent = target.parentNode as HTMLElement
99
+ event.dataTransfer.setDragImage(parent, 20, 20)
87
100
  view.setDraggingTrackId(track.id)
88
101
  }
89
102
  }
90
103
 
91
- const onDragEnd = () => {
92
- view.setDraggingTrackId(undefined)
93
- }
94
-
95
- let trackName = getConf(track, 'name')
96
- if (getConf(track, 'type') === 'ReferenceSequenceTrack') {
97
- const r = session.assemblies.find(a => a.sequence === trackConf)
98
- trackName =
99
- trackName ||
100
- (r
101
- ? `Reference Sequence (${readConfObject(r, 'name')})`
102
- : 'Reference Sequence')
103
- }
104
-
105
104
  const items = [
106
105
  ...(session.getTrackActionMenuItems?.(trackConf) || []),
107
106
  ...track.trackMenuItems(),
108
107
  ].sort((a, b) => (b.priority || 0) - (a.priority || 0))
109
108
 
110
109
  return (
111
- <>
112
- <Paper ref={ref} className={clsx(className, classes.root)}>
113
- <span
114
- draggable
115
- className={classes.dragHandle}
116
- onDragStart={onDragStart}
117
- onDragEnd={onDragEnd}
118
- data-testid={`dragHandle-${view.id}-${trackId}`}
119
- >
120
- <DragIcon className={classes.dragHandleIcon} />
121
- </span>
122
- <IconButton
123
- onClick={() => view.hideTrack(trackId)}
124
- className={classes.iconButton}
125
- title="close this track"
126
- color="secondary"
127
- >
128
- <CloseIcon />
129
- </IconButton>
130
- <Typography
131
- variant="body1"
132
- component="span"
133
- className={classes.trackName}
134
- >
135
- {trackName}
136
- </Typography>
137
- <IconButton
138
- {...bindTrigger(popupState)}
139
- className={classes.iconButton}
140
- color="secondary"
141
- data-testid="track_menu_icon"
142
- disabled={!items.length}
143
- >
144
- <MoreVertIcon />
145
- </IconButton>
146
- </Paper>
110
+ <Paper ref={ref} className={cx(className, classes.root)}>
111
+ <span
112
+ draggable
113
+ className={classes.dragHandle}
114
+ onDragStart={onDragStart}
115
+ onDragEnd={() => view.setDraggingTrackId(undefined)}
116
+ data-testid={`dragHandle-${view.id}-${trackId}`}
117
+ >
118
+ <DragIcon className={classes.dragHandleIcon} fontSize="small" />
119
+ </span>
120
+ <IconButton
121
+ onClick={() => view.hideTrack(trackId)}
122
+ className={classes.iconButton}
123
+ title="close this track"
124
+ color="secondary"
125
+ >
126
+ <CloseIcon fontSize="small" />
127
+ </IconButton>
128
+ <Typography
129
+ variant="body1"
130
+ component="span"
131
+ className={classes.trackName}
132
+ >
133
+ {trackName}
134
+ </Typography>
135
+ <IconButton
136
+ {...bindTrigger(popupState)}
137
+ className={classes.iconButton}
138
+ color="secondary"
139
+ data-testid="track_menu_icon"
140
+ disabled={!items.length}
141
+ >
142
+ <MoreVertIcon fontSize="small" />
143
+ </IconButton>
147
144
  <CascadingMenu
148
145
  {...bindPopover(popupState)}
149
146
  onMenuItemClick={(_: unknown, callback: Function) => callback()}
150
147
  menuItems={items}
151
148
  popupState={popupState}
152
149
  />
153
- </>
150
+ </Paper>
154
151
  )
155
152
  },
156
153
  )
@@ -1,30 +1,25 @@
1
- import { makeStyles } from '@material-ui/core/styles'
1
+ import React, { useEffect, useRef, useState } from 'react'
2
+ import { makeStyles } from 'tss-react/mui'
2
3
  import { observer } from 'mobx-react'
3
4
  import { Instance } from 'mobx-state-tree'
4
- import React, { useEffect, useRef, useState } from 'react'
5
5
  import normalizeWheel from 'normalize-wheel'
6
6
 
7
- import {
8
- LinearGenomeViewStateModel,
9
- RESIZE_HANDLE_HEIGHT,
10
- SCALE_BAR_HEIGHT,
11
- } from '..'
7
+ import { LinearGenomeViewStateModel, SCALE_BAR_HEIGHT } from '..'
12
8
  import RubberBand from './RubberBand'
13
9
  import ScaleBar from './ScaleBar'
14
- import VerticalGuides from './VerticalGuides'
10
+ import Gridlines from './Gridlines'
15
11
  import CenterLine from './CenterLine'
16
12
 
17
- const useStyles = makeStyles(theme => ({
13
+ const useStyles = makeStyles()({
18
14
  tracksContainer: {
19
15
  position: 'relative',
20
- borderRadius: theme.shape.borderRadius,
21
16
  overflow: 'hidden',
22
17
  },
23
18
  spacer: {
24
19
  position: 'relative',
25
- height: RESIZE_HANDLE_HEIGHT,
20
+ height: 3,
26
21
  },
27
- }))
22
+ })
28
23
 
29
24
  type LGV = Instance<LinearGenomeViewStateModel>
30
25
  type Timer = ReturnType<typeof setTimeout>
@@ -36,7 +31,7 @@ function TracksContainer({
36
31
  children: React.ReactNode
37
32
  model: LGV
38
33
  }) {
39
- const classes = useStyles()
34
+ const { classes } = useStyles()
40
35
  // refs are to store these variables to avoid repeated rerenders associated
41
36
  // with useState/setState
42
37
  const delta = useRef(0)
@@ -167,13 +162,13 @@ function TracksContainer({
167
162
  return (
168
163
  <div
169
164
  ref={ref}
170
- role="presentation"
165
+ data-testid="trackContainer"
171
166
  className={classes.tracksContainer}
172
167
  onMouseDown={mouseDown}
173
168
  onMouseUp={mouseUp}
174
169
  onMouseLeave={mouseLeave}
175
170
  >
176
- <VerticalGuides model={model} />
171
+ {model.showGridlines ? <Gridlines model={model} /> : null}
177
172
  {model.showCenterLine ? <CenterLine model={model} /> : null}
178
173
 
179
174
  <RubberBand
@@ -1,13 +1,12 @@
1
1
  import React, { useState, useEffect } from 'react'
2
2
  import { observer } from 'mobx-react'
3
- import IconButton from '@material-ui/core/IconButton'
4
- import Slider from '@material-ui/core/Slider'
5
- import { makeStyles } from '@material-ui/core/styles'
6
- import ZoomIn from '@material-ui/icons/ZoomIn'
7
- import ZoomOut from '@material-ui/icons/ZoomOut'
3
+ import { Slider, IconButton } from '@mui/material'
4
+ import { makeStyles } from 'tss-react/mui'
5
+ import ZoomIn from '@mui/icons-material/ZoomIn'
6
+ import ZoomOut from '@mui/icons-material/ZoomOut'
8
7
  import { LinearGenomeViewModel } from '..'
9
8
 
10
- const useStyles = makeStyles({
9
+ const useStyles = makeStyles()({
11
10
  container: {
12
11
  display: 'flex',
13
12
  flexDirection: 'row',
@@ -19,26 +18,27 @@ const useStyles = makeStyles({
19
18
  })
20
19
 
21
20
  function ZoomControls({ model }: { model: LinearGenomeViewModel }) {
22
- const classes = useStyles()
21
+ const { classes } = useStyles()
23
22
  const { maxBpPerPx, minBpPerPx, bpPerPx, scaleFactor } = model
24
23
  const [value, setValue] = useState(-Math.log2(bpPerPx) * 100)
25
24
  useEffect(() => {
26
25
  setValue(-Math.log2(bpPerPx) * 100)
27
26
  }, [setValue, bpPerPx])
27
+
28
28
  return (
29
29
  <div className={classes.container}>
30
30
  <IconButton
31
31
  data-testid="zoom_out"
32
- onClick={() => {
33
- model.zoom(bpPerPx * 2)
34
- }}
32
+ onClick={() => model.zoom(bpPerPx * 2)}
35
33
  disabled={bpPerPx >= maxBpPerPx - 0.0001 || scaleFactor !== 1}
36
34
  color="secondary"
35
+ size="large"
37
36
  >
38
37
  <ZoomOut />
39
38
  </IconButton>
40
39
 
41
40
  <Slider
41
+ size="small"
42
42
  className={classes.slider}
43
43
  value={value}
44
44
  min={-Math.log2(maxBpPerPx) * 100}
@@ -49,11 +49,10 @@ function ZoomControls({ model }: { model: LinearGenomeViewModel }) {
49
49
  />
50
50
  <IconButton
51
51
  data-testid="zoom_in"
52
- onClick={() => {
53
- model.zoom(model.bpPerPx / 2)
54
- }}
52
+ onClick={() => model.zoom(model.bpPerPx / 2)}
55
53
  disabled={bpPerPx <= minBpPerPx + 0.0001 || scaleFactor !== 1}
56
54
  color="secondary"
55
+ size="large"
57
56
  >
58
57
  <ZoomIn />
59
58
  </IconButton>