@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,14 +1,12 @@
1
+ import React from 'react'
1
2
  import {
2
3
  ContentBlock,
3
4
  ElidedBlock,
4
5
  InterRegionPaddingBlock,
5
6
  } from '@jbrowse/core/util/blockTypes'
6
- import { makeStyles } from '@material-ui/core/styles'
7
- import clsx from 'clsx'
7
+ import { makeStyles } from 'tss-react/mui'
8
8
  import { observer } from 'mobx-react'
9
- import { Instance } from 'mobx-state-tree'
10
- import React from 'react'
11
- import { LinearGenomeViewStateModel } from '..'
9
+ import { LinearGenomeViewModel } from '..'
12
10
  import {
13
11
  ContentBlock as ContentBlockComponent,
14
12
  ElidedBlock as ElidedBlockComponent,
@@ -17,9 +15,9 @@ import {
17
15
 
18
16
  import { makeTicks } from '../util'
19
17
 
20
- type LGV = Instance<LinearGenomeViewStateModel>
18
+ type LGV = LinearGenomeViewModel
21
19
 
22
- const useStyles = makeStyles(theme => ({
20
+ const useStyles = makeStyles()(theme => ({
23
21
  verticalGuidesZoomContainer: {
24
22
  position: 'absolute',
25
23
  height: '100%',
@@ -40,14 +38,14 @@ const useStyles = makeStyles(theme => ({
40
38
  width: 1,
41
39
  },
42
40
  majorTick: {
43
- background: theme.palette.text.hint,
41
+ background: theme.palette.text.secondary,
44
42
  },
45
43
  minorTick: {
46
44
  background: theme.palette.divider,
47
45
  },
48
46
  }))
49
47
  const RenderedVerticalGuides = observer(({ model }: { model: LGV }) => {
50
- const classes = useStyles()
48
+ const { classes, cx } = useStyles()
51
49
  return (
52
50
  <>
53
51
  {model.staticBlocks.map((block, index) => {
@@ -63,7 +61,7 @@ const RenderedVerticalGuides = observer(({ model }: { model: LGV }) => {
63
61
  return (
64
62
  <div
65
63
  key={tick.base}
66
- className={clsx(
64
+ className={cx(
67
65
  classes.tick,
68
66
  tick.type === 'major' || tick.type === 'labeledMajor'
69
67
  ? classes.majorTick
@@ -94,7 +92,7 @@ const RenderedVerticalGuides = observer(({ model }: { model: LGV }) => {
94
92
  )
95
93
  })
96
94
  function VerticalGuides({ model }: { model: LGV }) {
97
- const classes = useStyles()
95
+ const { classes } = useStyles()
98
96
  // find the block that needs pinning to the left side for context
99
97
  const offsetLeft = model.staticBlocks.offsetPx - model.offsetPx
100
98
  return (
@@ -1,19 +1,13 @@
1
1
  import React from 'react'
2
2
  import { observer } from 'mobx-react'
3
- import {
4
- Button,
5
- FormGroup,
6
- Typography,
7
- makeStyles,
8
- alpha,
9
- } from '@material-ui/core'
3
+ import { Button, FormGroup, Typography, alpha } from '@mui/material'
4
+ import { makeStyles } from 'tss-react/mui'
10
5
  import { getBpDisplayStr } from '@jbrowse/core/util'
11
- import SearchBox from './SearchBox'
12
6
 
13
7
  // icons
14
8
  import { TrackSelector as TrackSelectorIcon } from '@jbrowse/core/ui/Icons'
15
- import ArrowForwardIcon from '@material-ui/icons/ArrowForward'
16
- import ArrowBackIcon from '@material-ui/icons/ArrowBack'
9
+ import ArrowForwardIcon from '@mui/icons-material/ArrowForward'
10
+ import ArrowBackIcon from '@mui/icons-material/ArrowBack'
17
11
 
18
12
  // locals
19
13
  import {
@@ -24,9 +18,10 @@ import {
24
18
  } from '..'
25
19
  import OverviewScaleBar from './OverviewScaleBar'
26
20
  import ZoomControls from './ZoomControls'
21
+ import SearchBox from './SearchBox'
27
22
 
28
23
  type LGV = LinearGenomeViewModel
29
- const useStyles = makeStyles(theme => ({
24
+ const useStyles = makeStyles()(theme => ({
30
25
  headerBar: {
31
26
  height: HEADER_BAR_HEIGHT,
32
27
  display: 'flex',
@@ -60,7 +55,7 @@ const useStyles = makeStyles(theme => ({
60
55
  }))
61
56
 
62
57
  const HeaderButtons = observer(({ model }: { model: LGV }) => {
63
- const classes = useStyles()
58
+ const { classes } = useStyles()
64
59
  return (
65
60
  <Button
66
61
  onClick={model.activateTrackSelector}
@@ -75,7 +70,7 @@ const HeaderButtons = observer(({ model }: { model: LGV }) => {
75
70
  })
76
71
 
77
72
  function PanControls({ model }: { model: LGV }) {
78
- const classes = useStyles()
73
+ const { classes } = useStyles()
79
74
  return (
80
75
  <>
81
76
  <Button
@@ -97,7 +92,7 @@ function PanControls({ model }: { model: LGV }) {
97
92
  }
98
93
 
99
94
  const RegionWidth = observer(({ model }: { model: LGV }) => {
100
- const classes = useStyles()
95
+ const { classes } = useStyles()
101
96
  const { coarseTotalBp } = model
102
97
  return (
103
98
  <Typography variant="body2" color="textSecondary" className={classes.bp}>
@@ -107,7 +102,7 @@ const RegionWidth = observer(({ model }: { model: LGV }) => {
107
102
  })
108
103
 
109
104
  const Controls = ({ model }: { model: LGV }) => {
110
- const classes = useStyles()
105
+ const { classes } = useStyles()
111
106
  return (
112
107
  <div className={classes.headerBar}>
113
108
  <HeaderButtons model={model} />
@@ -7,11 +7,11 @@ import {
7
7
  DialogTitle,
8
8
  Divider,
9
9
  IconButton,
10
- makeStyles,
11
- } from '@material-ui/core'
12
- import CloseIcon from '@material-ui/icons/Close'
10
+ } from '@mui/material'
11
+ import { makeStyles } from 'tss-react/mui'
12
+ import CloseIcon from '@mui/icons-material/Close'
13
13
 
14
- export const useStyles = makeStyles(theme => ({
14
+ const useStyles = makeStyles()(theme => ({
15
15
  closeButton: {
16
16
  position: 'absolute',
17
17
  right: theme.spacing(1),
@@ -25,7 +25,7 @@ export default function HelpDialog({
25
25
  }: {
26
26
  handleClose: () => void
27
27
  }) {
28
- const classes = useStyles()
28
+ const { classes } = useStyles()
29
29
  return (
30
30
  <Dialog open maxWidth="xl" onClose={handleClose}>
31
31
  <DialogTitle>
@@ -1,17 +1,11 @@
1
1
  import React, { useState, lazy } from 'react'
2
+ import { makeStyles } from 'tss-react/mui'
2
3
  import { observer } from 'mobx-react'
3
4
  import { getSession } from '@jbrowse/core/util'
4
- import {
5
- Button,
6
- CircularProgress,
7
- Container,
8
- Grid,
9
- makeStyles,
10
- } from '@material-ui/core'
11
- import ErrorMessage from '@jbrowse/core/ui/ErrorMessage'
5
+ import { Button, CircularProgress, Container, Grid } from '@mui/material'
6
+ import { ErrorMessage, AssemblySelector } from '@jbrowse/core/ui'
12
7
  import BaseResult from '@jbrowse/core/TextSearch/BaseResults'
13
- import AssemblySelector from '@jbrowse/core/ui/AssemblySelector'
14
- import CloseIcon from '@material-ui/icons/Close'
8
+ import CloseIcon from '@mui/icons-material/Close'
15
9
 
16
10
  // locals
17
11
  import RefNameAutocomplete from './RefNameAutocomplete'
@@ -19,7 +13,7 @@ import { fetchResults } from './util'
19
13
  import { LinearGenomeViewModel, WIDGET_HEIGHT } from '..'
20
14
  const SearchResultsDialog = lazy(() => import('./SearchResultsDialog'))
21
15
 
22
- const useStyles = makeStyles(theme => ({
16
+ const useStyles = makeStyles()(theme => ({
23
17
  importFormContainer: {
24
18
  padding: theme.spacing(2),
25
19
  },
@@ -34,7 +28,7 @@ const useStyles = makeStyles(theme => ({
34
28
  type LGV = LinearGenomeViewModel
35
29
 
36
30
  const ImportForm = observer(({ model }: { model: LGV }) => {
37
- const classes = useStyles()
31
+ const { classes } = useStyles()
38
32
  const session = getSession(model)
39
33
  const { assemblyNames, assemblyManager, textSearchManager } = session
40
34
  const { rankSearchResults, isSearchDialogDisplayed, error } = model
@@ -35,11 +35,12 @@ describe('<LinearGenomeView />', () => {
35
35
  model.setWidth(800)
36
36
  const { findByText } = render(<LinearGenomeView model={model} />)
37
37
  expect(model.displayedRegions.length).toEqual(0)
38
- fireEvent.click(await findByText('Open'))
39
- await waitFor(() => {
40
- expect(model.displayedRegions.length).toEqual(1)
41
- })
42
- })
38
+ const elt = await findByText('Open')
39
+ await waitFor(() => expect(elt.getAttribute('disabled')).toBe(null))
40
+ fireEvent.click(elt)
41
+ await waitFor(() => expect(model.displayedRegions.length).toEqual(1), 15000)
42
+ }, 15000)
43
+
43
44
  it('renders one track, one region', async () => {
44
45
  const session = createTestSession()
45
46
  session.addAssemblyConf(assemblyConf)
@@ -75,13 +76,22 @@ describe('<LinearGenomeView />', () => {
75
76
  })
76
77
  const model = session.views[0]
77
78
  model.setWidth(800)
78
- const { container, findByText } = render(<LinearGenomeView model={model} />)
79
+ const { container, getByPlaceholderText, findByText } = render(
80
+ <LinearGenomeView model={model} />,
81
+ )
79
82
  await findByText('Foo Track')
80
83
  // test needs to wait until it's updated to display 100 bp in the header to
81
84
  // make snapshot pass
82
85
  await findByText('100bp')
86
+
87
+ await waitFor(() => {
88
+ expect(getByPlaceholderText('Search for location').value).toEqual(
89
+ 'ctgA:1..100',
90
+ )
91
+ })
83
92
  expect(container.firstChild).toMatchSnapshot()
84
93
  })
94
+
85
95
  it('renders two tracks, two regions', async () => {
86
96
  const session = createTestSession()
87
97
  session.addAssemblyConf(assemblyConf)
@@ -1,5 +1,6 @@
1
1
  import React from 'react'
2
- import { Button, Paper, Typography, makeStyles } from '@material-ui/core'
2
+ import { Button, Paper, Typography } from '@mui/material'
3
+ import { makeStyles } from 'tss-react/mui'
3
4
  import { TrackSelector as TrackSelectorIcon } from '@jbrowse/core/ui/Icons'
4
5
  import { observer } from 'mobx-react'
5
6
 
@@ -15,7 +16,7 @@ import SearchResultsDialog from './SearchResultsDialog'
15
16
 
16
17
  type LGV = LinearGenomeViewModel
17
18
 
18
- const useStyles = makeStyles(theme => ({
19
+ const useStyles = makeStyles()(theme => ({
19
20
  note: {
20
21
  textAlign: 'center',
21
22
  paddingTop: theme.spacing(1),
@@ -45,7 +46,7 @@ const useStyles = makeStyles(theme => ({
45
46
 
46
47
  const LinearGenomeView = observer(({ model }: { model: LGV }) => {
47
48
  const { tracks, error, hideHeader, initialized, hasDisplayedRegions } = model
48
- const classes = useStyles()
49
+ const { classes } = useStyles()
49
50
 
50
51
  if (!initialized && !error) {
51
52
  return (
@@ -63,17 +64,13 @@ const LinearGenomeView = observer(({ model }: { model: LGV }) => {
63
64
  {model.seqDialogDisplayed ? (
64
65
  <SequenceDialog
65
66
  model={model}
66
- handleClose={() => {
67
- model.setSequenceDialogOpen(false)
68
- }}
67
+ handleClose={() => model.setSequenceDialogOpen(false)}
69
68
  />
70
69
  ) : null}
71
70
  {model.isSearchDialogDisplayed ? (
72
71
  <SearchResultsDialog
73
72
  model={model}
74
- handleClose={() => {
75
- model.setSearchResults(undefined, undefined)
76
- }}
73
+ handleClose={() => model.setSearchResults(undefined, undefined)}
77
74
  />
78
75
  ) : null}
79
76
  {!hideHeader ? (
@@ -1,10 +1,9 @@
1
1
  import React, { useState } from 'react'
2
2
  import { observer } from 'mobx-react'
3
- import IconButton from '@material-ui/core/IconButton'
4
- import ZoomIn from '@material-ui/icons/ZoomIn'
5
- import ZoomOut from '@material-ui/icons/ZoomOut'
6
- import ArrowDown from '@material-ui/icons/KeyboardArrowDown'
7
- import Paper from '@material-ui/core/Paper'
3
+ import { IconButton, Paper } from '@mui/material'
4
+ import ZoomIn from '@mui/icons-material/ZoomIn'
5
+ import ZoomOut from '@mui/icons-material/ZoomOut'
6
+ import ArrowDown from '@mui/icons-material/KeyboardArrowDown'
8
7
  import Menu from '@jbrowse/core/ui/Menu'
9
8
  import { LinearGenomeViewModel } from '..'
10
9
 
@@ -14,38 +13,30 @@ const MiniControls = observer((props: { model: LinearGenomeViewModel }) => {
14
13
  const [anchorEl, setAnchorEl] = useState<HTMLElement>()
15
14
 
16
15
  return (
17
- <>
18
- <Paper style={{ background: '#aaa7' }}>
19
- <IconButton
20
- color="secondary"
21
- onClick={event => {
22
- setAnchorEl(event.currentTarget)
23
- }}
24
- >
25
- <ArrowDown />
26
- </IconButton>
16
+ <Paper style={{ background: '#aaa7' }}>
17
+ <IconButton
18
+ color="secondary"
19
+ onClick={event => setAnchorEl(event.currentTarget)}
20
+ >
21
+ <ArrowDown fontSize="small" />
22
+ </IconButton>
27
23
 
28
- <IconButton
29
- data-testid="zoom_out"
30
- onClick={() => {
31
- model.zoom(bpPerPx * 2)
32
- }}
33
- disabled={bpPerPx >= maxBpPerPx - 0.0001 || scaleFactor !== 1}
34
- color="secondary"
35
- >
36
- <ZoomOut />
37
- </IconButton>
38
- <IconButton
39
- data-testid="zoom_in"
40
- onClick={() => {
41
- model.zoom(model.bpPerPx / 2)
42
- }}
43
- disabled={bpPerPx <= minBpPerPx + 0.0001 || scaleFactor !== 1}
44
- color="secondary"
45
- >
46
- <ZoomIn />
47
- </IconButton>
48
- </Paper>
24
+ <IconButton
25
+ data-testid="zoom_out"
26
+ onClick={() => model.zoom(bpPerPx * 2)}
27
+ disabled={bpPerPx >= maxBpPerPx - 0.0001 || scaleFactor !== 1}
28
+ color="secondary"
29
+ >
30
+ <ZoomOut fontSize="small" />
31
+ </IconButton>
32
+ <IconButton
33
+ data-testid="zoom_in"
34
+ onClick={() => model.zoom(model.bpPerPx / 2)}
35
+ disabled={bpPerPx <= minBpPerPx + 0.0001 || scaleFactor !== 1}
36
+ color="secondary"
37
+ >
38
+ <ZoomIn fontSize="small" />
39
+ </IconButton>
49
40
  <Menu
50
41
  anchorEl={anchorEl}
51
42
  open={Boolean(anchorEl)}
@@ -53,12 +44,10 @@ const MiniControls = observer((props: { model: LinearGenomeViewModel }) => {
53
44
  callback()
54
45
  setAnchorEl(undefined)
55
46
  }}
56
- onClose={() => {
57
- setAnchorEl(undefined)
58
- }}
47
+ onClose={() => setAnchorEl(undefined)}
59
48
  menuItems={model.menuItems()}
60
49
  />
61
- </>
50
+ </Paper>
62
51
  )
63
52
  })
64
53
 
@@ -1,11 +1,6 @@
1
1
  import React, { useRef, useEffect, useState } from 'react'
2
- import {
3
- Popover,
4
- Tooltip,
5
- Typography,
6
- makeStyles,
7
- alpha,
8
- } from '@material-ui/core'
2
+ import { Popover, Tooltip, Typography, alpha } from '@mui/material'
3
+ import { makeStyles } from 'tss-react/mui'
9
4
  import { getSession, stringify } from '@jbrowse/core/util'
10
5
  import { observer, PropTypes as MobxPropTypes } from 'mobx-react'
11
6
  import ReactPropTypes from 'prop-types'
@@ -14,7 +9,8 @@ import { LinearGenomeViewModel, HEADER_OVERVIEW_HEIGHT } from '..'
14
9
 
15
10
  type LGV = LinearGenomeViewModel
16
11
 
17
- const useStyles = makeStyles(theme => {
12
+ const useStyles = makeStyles()(theme => {
13
+ // @ts-ignore
18
14
  const { tertiary, primary } = theme.palette
19
15
  const background = tertiary
20
16
  ? alpha(tertiary.main, 0.7)
@@ -66,7 +62,7 @@ const HoverTooltip = observer(
66
62
  guideX: number
67
63
  overview: Base1DViewModel
68
64
  }) => {
69
- const classes = useStyles()
65
+ const { classes } = useStyles()
70
66
  const { cytobandOffset } = model
71
67
  const { assemblyManager } = getSession(model)
72
68
 
@@ -111,8 +107,8 @@ function OverviewRubberBand({
111
107
  const [currentX, setCurrentX] = useState<number>()
112
108
  const [guideX, setGuideX] = useState<number>()
113
109
  const controlsRef = useRef<HTMLDivElement>(null)
114
- const rubberBandRef = useRef(null)
115
- const classes = useStyles()
110
+ const rubberBandRef = useRef<HTMLDivElement>(null)
111
+ const { classes } = useStyles()
116
112
  const mouseDragging = startX !== undefined
117
113
 
118
114
  useEffect(() => {
@@ -125,30 +121,25 @@ function OverviewRubberBand({
125
121
  }
126
122
 
127
123
  function globalMouseUp() {
128
- if (
129
- controlsRef.current &&
130
- startX !== undefined &&
131
- currentX !== undefined
132
- ) {
124
+ // click and drag
125
+ if (startX !== undefined && currentX !== undefined) {
133
126
  if (Math.abs(currentX - startX) > 3) {
134
- model.zoomToDisplayedRegions(
127
+ model.moveTo(
135
128
  overview.pxToBp(startX - cytobandOffset),
136
129
  overview.pxToBp(currentX - cytobandOffset),
137
130
  )
138
131
  }
139
132
  }
140
- /* handling clicking and centering at a specific Bp */
141
- if (
142
- controlsRef.current &&
143
- startX !== undefined &&
144
- currentX === undefined
145
- ) {
146
- const clickedAt = overview.pxToBp(startX - cytobandOffset)
147
- model.centerAt(
148
- Math.round(clickedAt.coord),
149
- clickedAt.refName,
150
- clickedAt.index,
151
- )
133
+
134
+ // just a click
135
+ if (startX !== undefined && currentX === undefined) {
136
+ const click = overview.pxToBp(startX - cytobandOffset)
137
+ if (!click.refName) {
138
+ getSession(model).notify('unknown position clicked')
139
+ console.error('unknown position clicked', click)
140
+ } else {
141
+ model.centerAt(Math.round(click.coord), click.refName, click.index)
142
+ }
152
143
  }
153
144
  setStartX(undefined)
154
145
  setCurrentX(undefined)
@@ -1,8 +1,8 @@
1
1
  import React from 'react'
2
- import { Typography, makeStyles, useTheme, alpha } from '@material-ui/core'
2
+ import { Typography, useTheme, alpha } from '@mui/material'
3
+ import { makeStyles } from 'tss-react/mui'
3
4
  import { observer } from 'mobx-react'
4
5
  import { Instance } from 'mobx-state-tree'
5
- import clsx from 'clsx'
6
6
 
7
7
  import Base1DView, { Base1DViewModel } from '@jbrowse/core/util/Base1DViewModel'
8
8
  import { getSession, getTickDisplayStr } from '@jbrowse/core/util'
@@ -20,59 +20,57 @@ import OverviewRubberBand from './OverviewRubberBand'
20
20
 
21
21
  const wholeSeqSpacer = 2
22
22
 
23
- const useStyles = makeStyles(theme => {
24
- return {
25
- scaleBar: {
26
- height: HEADER_OVERVIEW_HEIGHT,
27
- },
28
- scaleBarBorder: {
29
- border: '1px solid',
30
- },
31
- scaleBarContig: {
32
- backgroundColor: theme.palette.background.default,
33
- position: 'absolute',
34
- top: 0,
35
- height: HEADER_OVERVIEW_HEIGHT,
36
- },
37
- scaleBarContigForward: {
38
- backgroundImage: `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 9'%3E%3Cpath d='M-.1 0L6 4.5L-.1 9' fill='none' stroke='%23ddd'/%3E%3C/svg%3E")`,
39
- backgroundRepeat: 'repeat',
40
- },
41
- scaleBarContigReverse: {
42
- backgroundImage: `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 9'%3E%3Cpath d='M6 0L0 4.5L6 9' fill='none' stroke='%23ddd'/%3E%3C/svg%3E")`,
43
- backgroundRepeat: 'repeat',
44
- },
45
-
46
- scaleBarRefName: {
47
- position: 'absolute',
48
- fontWeight: 'bold',
49
- pointerEvents: 'none',
50
- zIndex: 100,
51
- },
52
- scaleBarLabel: {
53
- height: HEADER_OVERVIEW_HEIGHT,
54
- position: 'absolute',
55
- display: 'flex',
56
- justifyContent: 'center',
57
- pointerEvents: 'none',
58
- },
59
- scaleBarVisibleRegion: {
60
- position: 'absolute',
61
- height: HEADER_OVERVIEW_HEIGHT,
62
- pointerEvents: 'none',
63
- zIndex: 100,
64
- border: '1px solid',
65
- },
66
- overview: {
67
- height: HEADER_BAR_HEIGHT,
68
- position: 'relative',
69
- },
70
- overviewSvg: {
71
- width: '100%',
72
- position: 'absolute',
73
- },
74
- }
75
- })
23
+ const useStyles = makeStyles()(theme => ({
24
+ scaleBar: {
25
+ height: HEADER_OVERVIEW_HEIGHT,
26
+ },
27
+ scaleBarBorder: {
28
+ border: '1px solid',
29
+ },
30
+ scaleBarContig: {
31
+ backgroundColor: theme.palette.background.default,
32
+ position: 'absolute',
33
+ top: 0,
34
+ height: HEADER_OVERVIEW_HEIGHT,
35
+ },
36
+ scaleBarContigForward: {
37
+ backgroundImage: `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 9'%3E%3Cpath d='M-.1 0L6 4.5L-.1 9' fill='none' stroke='%23ddd'/%3E%3C/svg%3E")`,
38
+ backgroundRepeat: 'repeat',
39
+ },
40
+ scaleBarContigReverse: {
41
+ backgroundImage: `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 9'%3E%3Cpath d='M6 0L0 4.5L6 9' fill='none' stroke='%23ddd'/%3E%3C/svg%3E")`,
42
+ backgroundRepeat: 'repeat',
43
+ },
44
+
45
+ scaleBarRefName: {
46
+ position: 'absolute',
47
+ fontWeight: 'bold',
48
+ pointerEvents: 'none',
49
+ zIndex: 100,
50
+ },
51
+ scaleBarLabel: {
52
+ height: HEADER_OVERVIEW_HEIGHT,
53
+ position: 'absolute',
54
+ display: 'flex',
55
+ justifyContent: 'center',
56
+ pointerEvents: 'none',
57
+ },
58
+ scaleBarVisibleRegion: {
59
+ position: 'absolute',
60
+ height: HEADER_OVERVIEW_HEIGHT,
61
+ pointerEvents: 'none',
62
+ zIndex: 100,
63
+ border: '1px solid',
64
+ },
65
+ overview: {
66
+ height: HEADER_BAR_HEIGHT,
67
+ position: 'relative',
68
+ },
69
+ overviewSvg: {
70
+ width: '100%',
71
+ position: 'absolute',
72
+ },
73
+ }))
76
74
 
77
75
  const Polygon = observer(
78
76
  ({
@@ -89,6 +87,8 @@ const Polygon = observer(
89
87
  const { interRegionPaddingWidth, offsetPx, dynamicBlocks, cytobandOffset } =
90
88
  model
91
89
  const { contentBlocks, totalWidthPxWithoutBorders } = dynamicBlocks
90
+
91
+ // @ts-ignore
92
92
  const { tertiary, primary } = theme.palette
93
93
  const polygonColor = tertiary ? tertiary.light : primary.light
94
94
 
@@ -305,7 +305,7 @@ const OverviewBox = observer(
305
305
  block: ContentBlock
306
306
  overview: Base1DViewModel
307
307
  }) => {
308
- const classes = useStyles()
308
+ const { classes, cx } = useStyles()
309
309
  const { cytobandOffset, bpPerPx, showCytobands } = model
310
310
  const { start, end, reversed, refName, assemblyName } = block
311
311
  const { majorPitch } = chooseGridPitch(scale, 120, 15)
@@ -335,7 +335,7 @@ const OverviewBox = observer(
335
335
  {refName}
336
336
  </Typography>
337
337
  <div
338
- className={clsx(
338
+ className={cx(
339
339
  classes.scaleBarContig,
340
340
  canDisplayCytobands
341
341
  ? undefined
@@ -392,11 +392,13 @@ const ScaleBar = observer(
392
392
  overview: Base1DViewModel
393
393
  scale: number
394
394
  }) => {
395
- const classes = useStyles()
395
+ const { classes } = useStyles()
396
396
  const theme = useTheme()
397
397
  const { dynamicBlocks, showCytobands, cytobandOffset } = model
398
398
  const visibleRegions = dynamicBlocks.contentBlocks
399
399
  const overviewVisibleRegions = overview.dynamicBlocks
400
+
401
+ // @ts-ignore
400
402
  const { tertiary, primary } = theme.palette
401
403
  const scaleBarColor = tertiary ? tertiary.light : primary.light
402
404
 
@@ -467,7 +469,7 @@ function OverviewScaleBar({
467
469
  model: LGV
468
470
  children: React.ReactNode
469
471
  }) {
470
- const classes = useStyles()
472
+ const { classes } = useStyles()
471
473
  const { totalBp, width, cytobandOffset, displayedRegions } = model
472
474
 
473
475
  const overview = Base1DView.create({