@jbrowse/plugin-linear-genome-view 1.6.5 → 1.6.8

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 (30) hide show
  1. package/dist/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.d.ts +1 -1
  2. package/dist/LinearBareDisplay/configSchema.d.ts +1 -1
  3. package/dist/LinearBareDisplay/model.d.ts +7 -7
  4. package/dist/LinearBasicDisplay/configSchema.d.ts +1 -1
  5. package/dist/LinearBasicDisplay/model.d.ts +7 -7
  6. package/dist/LinearGenomeView/components/OverviewScaleBar.d.ts +6 -6
  7. package/dist/LinearGenomeView/components/TrackContainer.d.ts +1 -1
  8. package/dist/index.d.ts +22 -22
  9. package/dist/plugin-linear-genome-view.cjs.development.js +157 -242
  10. package/dist/plugin-linear-genome-view.cjs.development.js.map +1 -1
  11. package/dist/plugin-linear-genome-view.cjs.production.min.js +1 -1
  12. package/dist/plugin-linear-genome-view.cjs.production.min.js.map +1 -1
  13. package/dist/plugin-linear-genome-view.esm.js +158 -243
  14. package/dist/plugin-linear-genome-view.esm.js.map +1 -1
  15. package/package.json +2 -2
  16. package/src/BaseLinearDisplay/components/BaseLinearDisplay.tsx +10 -13
  17. package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +6 -1
  18. package/src/LinearBasicDisplay/components/SetMaxHeight.tsx +21 -12
  19. package/src/LinearBasicDisplay/model.ts +1 -1
  20. package/src/LinearGenomeView/components/HelpDialog.tsx +14 -1
  21. package/src/LinearGenomeView/components/LinearGenomeViewSvg.tsx +1 -13
  22. package/src/LinearGenomeView/components/OverviewScaleBar.tsx +7 -3
  23. package/src/LinearGenomeView/components/TrackContainer.tsx +34 -30
  24. package/src/LinearGenomeView/components/TracksContainer.tsx +0 -1
  25. package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.js.snap +32 -61
  26. package/src/LinearGenomeView/index.test.ts +44 -42
  27. package/src/LinearGenomeView/index.tsx +55 -131
  28. package/src/LinearGenomeView/volvoxDisplayedRegions.json +16 -0
  29. package/dist/LinearGenomeView/components/ReturnToImportFormDialog.d.ts +0 -9
  30. package/src/LinearGenomeView/components/ReturnToImportFormDialog.tsx +0 -83
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-linear-genome-view",
3
- "version": "1.6.5",
3
+ "version": "1.6.8",
4
4
  "description": "JBrowse 2 linear genome view",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -61,5 +61,5 @@
61
61
  "publishConfig": {
62
62
  "access": "public"
63
63
  },
64
- "gitHead": "ab41f017840ffef09f5d60b008281cedaa5abe26"
64
+ "gitHead": "585e522096651ef4afb188366bb46d723439dc1b"
65
65
  }
@@ -1,8 +1,8 @@
1
1
  import React, { useState, useRef, useMemo } from 'react'
2
+ import { observer } from 'mobx-react'
2
3
  import { Portal, alpha, useTheme, makeStyles } from '@material-ui/core'
3
4
  import { getConf } from '@jbrowse/core/configuration'
4
5
  import { Menu } from '@jbrowse/core/ui'
5
- import { observer } from 'mobx-react'
6
6
  import { usePopper } from 'react-popper'
7
7
 
8
8
  // locals
@@ -31,7 +31,7 @@ const useStyles = makeStyles(theme => ({
31
31
  color: theme.palette.common.white,
32
32
  fontFamily: theme.typography.fontFamily,
33
33
  padding: '4px 8px',
34
- fontSize: theme.typography.pxToRem(10),
34
+ fontSize: theme.typography.pxToRem(12),
35
35
  lineHeight: `${round(14 / 10)}em`,
36
36
  maxWidth: 300,
37
37
  wordWrap: 'break-word',
@@ -56,7 +56,6 @@ const Tooltip = observer(
56
56
  const classes = useStyles()
57
57
  const { featureUnderMouse } = model
58
58
  const [width, setWidth] = useState(0)
59
-
60
59
  const [popperElt, setPopperElt] = useState<HTMLDivElement | null>(null)
61
60
 
62
61
  // must be memoized a la https://github.com/popperjs/react-popper/issues/391
@@ -111,7 +110,7 @@ const BaseLinearDisplay = observer(
111
110
  const classes = useStyles()
112
111
  const theme = useTheme()
113
112
  const ref = useRef<HTMLDivElement>(null)
114
- const [clientRect, setClientRect] = useState<ClientRect>()
113
+ const [clientRect, setClientRect] = useState<DOMRect>()
115
114
  const [offsetMouseCoord, setOffsetMouseCoord] = useState<Coord>([0, 0])
116
115
  const [clientMouseCoord, setClientMouseCoord] = useState<Coord>([0, 0])
117
116
  const [contextCoord, setContextCoord] = useState<Coord>()
@@ -139,17 +138,15 @@ const BaseLinearDisplay = observer(
139
138
  }
140
139
  }}
141
140
  onMouseMove={event => {
142
- if (ref.current) {
143
- const rect = ref.current.getBoundingClientRect()
144
- setOffsetMouseCoord([
145
- event.clientX - rect.left,
146
- event.clientY - rect.top,
147
- ])
148
- setClientMouseCoord([event.clientX, event.clientY])
149
- setClientRect(rect)
141
+ if (!ref.current) {
142
+ return
150
143
  }
144
+ const rect = ref.current.getBoundingClientRect()
145
+ const { left, top } = rect
146
+ setOffsetMouseCoord([event.clientX - left, event.clientY - top])
147
+ setClientMouseCoord([event.clientX, event.clientY])
148
+ setClientRect(rect)
151
149
  }}
152
- role="presentation"
153
150
  >
154
151
  {DisplayMessageComponent ? (
155
152
  <DisplayMessageComponent model={model} />
@@ -426,7 +426,12 @@ export const BaseLinearDisplay = types
426
426
  const aborter = new AbortController()
427
427
  const view = getContainingView(self) as LGV
428
428
 
429
- if (!view.initialized) {
429
+ // extra check for contentBlocks.length
430
+ // https://github.com/GMOD/jbrowse-components/issues/2694
431
+ if (
432
+ !view.initialized ||
433
+ !view.staticBlocks.contentBlocks.length
434
+ ) {
430
435
  return
431
436
  }
432
437
 
@@ -3,6 +3,7 @@ import { observer } from 'mobx-react'
3
3
  import {
4
4
  Button,
5
5
  Dialog,
6
+ DialogActions,
6
7
  DialogContent,
7
8
  DialogTitle,
8
9
  IconButton,
@@ -57,21 +58,22 @@ function SetMaxHeightDlg(props: {
57
58
  <CloseIcon />
58
59
  </IconButton>
59
60
  </DialogTitle>
60
- <DialogContent>
61
- <div className={classes.root}>
62
- <Typography>Set max height for the track</Typography>
63
- <TextField
64
- value={max}
65
- onChange={event => {
66
- setMax(event.target.value)
67
- }}
68
- placeholder="Enter max score"
69
- />
61
+ <DialogContent className={classes.root}>
62
+ <Typography>
63
+ Set max height for the track. For example, you can increase this if
64
+ the layout says "Max height reached"
65
+ </Typography>
66
+ <TextField
67
+ value={max}
68
+ onChange={event => setMax(event.target.value)}
69
+ placeholder="Enter max score"
70
+ />
71
+ <DialogActions>
70
72
  <Button
71
73
  variant="contained"
72
74
  color="primary"
73
75
  type="submit"
74
- style={{ marginLeft: 20 }}
76
+ autoFocus
75
77
  onClick={() => {
76
78
  model.setMaxHeight(
77
79
  max !== '' && !Number.isNaN(+max) ? +max : undefined,
@@ -81,7 +83,14 @@ function SetMaxHeightDlg(props: {
81
83
  >
82
84
  Submit
83
85
  </Button>
84
- </div>
86
+ <Button
87
+ variant="contained"
88
+ color="secondary"
89
+ onClick={() => handleClose()}
90
+ >
91
+ Cancel
92
+ </Button>
93
+ </DialogActions>
85
94
  </DialogContent>
86
95
  </Dialog>
87
96
  )
@@ -139,7 +139,7 @@ const stateModelFactory = (configSchema: AnyConfigurationSchemaType) =>
139
139
  {
140
140
  label: 'Set max height',
141
141
  onClick: () => {
142
- getSession(self).queueDialog((doneCallback: Function) => [
142
+ getSession(self).queueDialog(doneCallback => [
143
143
  SetMaxHeightDlg,
144
144
  { model: self, handleClose: doneCallback },
145
145
  ])
@@ -53,7 +53,9 @@ export default function HelpDialog({
53
53
  <li>
54
54
  Jump to a specific region by typing the region into the location box
55
55
  as: <code>ref:start..end</code> or <code>ref:start-end</code>.
56
- Commas are allowed in the start and end coordinates.
56
+ Commas are allowed in the start and end coordinates. A
57
+ space-separated list of locstrings can be used to open up multiple
58
+ chromosomes at a time
57
59
  </li>
58
60
  </ul>
59
61
  <h3>Example Searches</h3>
@@ -68,6 +70,17 @@ export default function HelpDialog({
68
70
  <code>chr4:79,500,000..80,000,000</code> - jumps the region on
69
71
  chromosome 4 between 79.5Mb and 80Mb.
70
72
  </li>
73
+ <li>
74
+ <code>chr1:1-100 chr2:1-100</code> - create a split view of
75
+ chr1:1-100 and chr2:1-100
76
+ </li>
77
+ <li>
78
+ <code>chr1 chr2 chr3</code> - open up multiple chromosomes at once
79
+ </li>
80
+ <li>
81
+ <code>chr1:1-100[rev] chr2:1-100</code> - open up the first region
82
+ in the horizontally flipped orientation
83
+ </li>
71
84
  </ul>
72
85
  </DialogContent>
73
86
  <Divider />
@@ -3,7 +3,7 @@ import { renderToStaticMarkup } from 'react-dom/server'
3
3
  import { when } from 'mobx'
4
4
  import { getParent } from 'mobx-state-tree'
5
5
  import { getConf, readConfObject } from '@jbrowse/core/configuration'
6
- import { getSession } from '@jbrowse/core/util'
6
+ import { getSession, getBpDisplayStr } from '@jbrowse/core/util'
7
7
  import { AnyConfigurationModel } from '@jbrowse/core/configuration/configurationSchema'
8
8
  import Base1DView from '@jbrowse/core/util/Base1DViewModel'
9
9
 
@@ -18,18 +18,6 @@ import { Polygon, Cytobands } from './OverviewScaleBar'
18
18
 
19
19
  type LGV = LinearGenomeViewModel
20
20
 
21
- function getBpDisplayStr(totalBp: number) {
22
- let displayBp
23
- if (Math.floor(totalBp / 1000000) > 0) {
24
- displayBp = `${parseFloat((totalBp / 1000000).toPrecision(3))}Mbp`
25
- } else if (Math.floor(totalBp / 1000) > 0) {
26
- displayBp = `${parseFloat((totalBp / 1000).toPrecision(3))}Kbp`
27
- } else {
28
- displayBp = `${Math.floor(totalBp)}bp`
29
- }
30
- return displayBp
31
- }
32
-
33
21
  function ScaleBar({ model, fontSize }: { model: LGV; fontSize: number }) {
34
22
  const {
35
23
  offsetPx,
@@ -181,7 +181,7 @@ const Cytobands = observer(
181
181
  assembly?: Assembly
182
182
  block: ContentBlock
183
183
  }) => {
184
- const { offsetPx } = block
184
+ const { offsetPx, reversed } = block
185
185
  const cytobands = assembly?.cytobands
186
186
  ?.map(f => ({
187
187
  refName: assembly.getCanonicalRefName(f.get('refName')),
@@ -205,6 +205,10 @@ const Cytobands = observer(
205
205
  ]
206
206
  })
207
207
 
208
+ const arr = cytobands || []
209
+ const lcap = reversed ? arr.length - 1 : 0
210
+ const rcap = reversed ? 0 : arr.length - 1
211
+
208
212
  let firstCent = true
209
213
  return cytobands ? (
210
214
  <g transform={`translate(-${offsetPx})`}>
@@ -238,7 +242,7 @@ const Cytobands = observer(
238
242
  )
239
243
  }
240
244
 
241
- if (index === 0) {
245
+ if (lcap === index) {
242
246
  return (
243
247
  <path
244
248
  key={key}
@@ -252,7 +256,7 @@ const Cytobands = observer(
252
256
  fill={colorMap[type]}
253
257
  />
254
258
  )
255
- } else if (index === cytobands.length - 1) {
259
+ } else if (rcap === index) {
256
260
  return (
257
261
  <path
258
262
  key={key}
@@ -4,7 +4,7 @@ import { isAlive } from 'mobx-state-tree'
4
4
  import { BaseTrackModel } from '@jbrowse/core/pluggableElementTypes/models'
5
5
  import { getConf } from '@jbrowse/core/configuration'
6
6
  import { ResizeHandle } from '@jbrowse/core/ui'
7
- import { useDebouncedCallback, getContainingView } from '@jbrowse/core/util'
7
+ import { useDebouncedCallback } from '@jbrowse/core/util'
8
8
  import clsx from 'clsx'
9
9
  import Paper from '@material-ui/core/Paper'
10
10
  import { makeStyles } from '@material-ui/core/styles'
@@ -13,7 +13,7 @@ import { LinearGenomeViewModel, RESIZE_HANDLE_HEIGHT } from '..'
13
13
  import TrackLabel from './TrackLabel'
14
14
 
15
15
  const useStyles = makeStyles(theme => ({
16
- root: {},
16
+ root: { marginTop: 2 },
17
17
  resizeHandle: {
18
18
  height: RESIZE_HANDLE_HEIGHT,
19
19
  boxSizing: 'border-box',
@@ -29,6 +29,12 @@ const useStyles = makeStyles(theme => ({
29
29
  zIndex: 3,
30
30
  borderRadius: theme.shape.borderRadius,
31
31
  },
32
+ trackLabel: {
33
+ zIndex: 3,
34
+ },
35
+
36
+ // aligns with block bounderies. check for example the breakpoint split view
37
+ // demo to see if features align if wanting to change things
32
38
  renderingComponentContainer: {
33
39
  position: 'absolute',
34
40
  // -1 offset because of the 1px border of the Paper
@@ -36,10 +42,6 @@ const useStyles = makeStyles(theme => ({
36
42
  height: '100%',
37
43
  width: '100%',
38
44
  },
39
- trackLabel: {
40
- zIndex: 3,
41
- margin: theme.spacing(1),
42
- },
43
45
  trackLabelInline: {
44
46
  position: 'relative',
45
47
  display: 'inline-block',
@@ -54,22 +56,38 @@ const useStyles = makeStyles(theme => ({
54
56
  position: 'relative',
55
57
  background: 'none',
56
58
  zIndex: 2,
57
- boxSizing: 'content-box',
58
59
  },
59
60
  }))
60
61
 
61
62
  type LGV = LinearGenomeViewModel
62
63
 
63
- function TrackContainer(props: {
64
+ const TrackContainerLabel = observer(
65
+ ({ model, view }: { model: BaseTrackModel; view: LGV }) => {
66
+ const classes = useStyles()
67
+ const labelStyle =
68
+ view.trackLabels === 'overlapping'
69
+ ? classes.trackLabelOverlap
70
+ : classes.trackLabelInline
71
+ return view.trackLabels !== 'hidden' ? (
72
+ <TrackLabel
73
+ track={model}
74
+ className={clsx(classes.trackLabel, labelStyle)}
75
+ />
76
+ ) : null
77
+ },
78
+ )
79
+
80
+ function TrackContainer({
81
+ model,
82
+ track,
83
+ }: {
64
84
  model: LinearGenomeViewModel
65
85
  track: BaseTrackModel
66
86
  }) {
67
87
  const classes = useStyles()
68
- const { model, track } = props
69
88
  const display = track.displays[0]
70
89
  const { horizontalScroll, draggingTrackId, moveTrack } = model
71
90
  const { height } = display
72
- const view = getContainingView(display) as LGV
73
91
  const trackId = getConf(track, 'trackId')
74
92
  const ref = useRef(null)
75
93
 
@@ -95,21 +113,9 @@ function TrackContainer(props: {
95
113
  const dimmed = draggingTrackId !== undefined && draggingTrackId !== display.id
96
114
 
97
115
  return (
98
- <div className={classes.root}>
99
- {view.trackLabels !== 'hidden' ? (
100
- <TrackLabel
101
- track={track}
102
- className={clsx(
103
- classes.trackLabel,
104
- view.trackLabels === 'overlapping'
105
- ? classes.trackLabelOverlap
106
- : classes.trackLabelInline,
107
- )}
108
- />
109
- ) : null}
110
-
111
- <Paper
112
- variant="outlined"
116
+ <Paper className={classes.root} variant="outlined">
117
+ <TrackContainerLabel model={track} view={model} />
118
+ <div
113
119
  className={classes.trackRenderingContainer}
114
120
  style={{ height }}
115
121
  onScroll={event => {
@@ -117,7 +123,7 @@ function TrackContainer(props: {
117
123
  display.setScrollTop(target.scrollTop)
118
124
  }}
119
125
  onDragEnter={debouncedOnDragEnter}
120
- data-testid={`trackRenderingContainer-${view.id}-${trackId}`}
126
+ data-testid={`trackRenderingContainer-${model.id}-${trackId}`}
121
127
  role="presentation"
122
128
  >
123
129
  <div
@@ -127,7 +133,6 @@ function TrackContainer(props: {
127
133
  >
128
134
  <RenderingComponent
129
135
  model={display}
130
- blockState={{}}
131
136
  onHorizontalScroll={horizontalScroll}
132
137
  />
133
138
  </div>
@@ -140,11 +145,10 @@ function TrackContainer(props: {
140
145
  top: display.height - 20,
141
146
  }}
142
147
  >
143
- {' '}
144
148
  <DisplayBlurb model={display} />
145
149
  </div>
146
150
  ) : null}
147
- </Paper>
151
+ </div>
148
152
  <div
149
153
  className={classes.overlay}
150
154
  style={{
@@ -157,7 +161,7 @@ function TrackContainer(props: {
157
161
  onDrag={display.resizeHeight}
158
162
  className={classes.resizeHandle}
159
163
  />
160
- </div>
164
+ </Paper>
161
165
  )
162
166
  }
163
167
 
@@ -185,7 +185,6 @@ function TracksContainer({
185
185
  />
186
186
  }
187
187
  />
188
- <div className={classes.spacer} />
189
188
  {children}
190
189
  </div>
191
190
  )
@@ -449,10 +449,7 @@ exports[`<LinearGenomeView /> renders one track, one region 1`] = `
449
449
  </div>
450
450
  </div>
451
451
  <div
452
- class="makeStyles-spacer"
453
- />
454
- <div
455
- class="makeStyles-root"
452
+ class="MuiPaper-root makeStyles-root MuiPaper-outlined MuiPaper-rounded"
456
453
  >
457
454
  <div
458
455
  class="MuiPaper-root makeStyles-trackLabel makeStyles-trackLabelOverlap makeStyles-root MuiPaper-elevation1 MuiPaper-rounded"
@@ -530,7 +527,7 @@ exports[`<LinearGenomeView /> renders one track, one region 1`] = `
530
527
  </button>
531
528
  </div>
532
529
  <div
533
- class="MuiPaper-root makeStyles-trackRenderingContainer MuiPaper-outlined MuiPaper-rounded"
530
+ class="makeStyles-trackRenderingContainer"
534
531
  data-testid="trackRenderingContainer-lgv-testConfig"
535
532
  role="presentation"
536
533
  style="height: 100px;"
@@ -542,7 +539,6 @@ exports[`<LinearGenomeView /> renders one track, one region 1`] = `
542
539
  <div
543
540
  class="makeStyles-display"
544
541
  data-testid="display-testConfig-LinearBareDisplay"
545
- role="presentation"
546
542
  >
547
543
  <div
548
544
  class="makeStyles-linearBlocks"
@@ -770,7 +766,7 @@ exports[`<LinearGenomeView /> renders two tracks, two regions 1`] = `
770
766
  class="MuiAutocomplete-root"
771
767
  data-testid="autocomplete"
772
768
  role="combobox"
773
- style="width: 255.22500000000002px;"
769
+ style="width: 255.27500000000003px;"
774
770
  >
775
771
  <div
776
772
  class="MuiFormControl-root MuiTextField-root makeStyles-headerRefName MuiFormControl-fullWidth"
@@ -790,7 +786,7 @@ exports[`<LinearGenomeView /> renders two tracks, two regions 1`] = `
790
786
  placeholder="Search for location"
791
787
  spellcheck="false"
792
788
  type="text"
793
- value="ctgA:1..100;ctgB:1,001..1,698"
789
+ value="ctgA:1..100 ctgB:1,001..1,698"
794
790
  />
795
791
  <div
796
792
  class="MuiInputAdornment-root MuiInputAdornment-positionEnd"
@@ -1343,10 +1339,7 @@ exports[`<LinearGenomeView /> renders two tracks, two regions 1`] = `
1343
1339
  </div>
1344
1340
  </div>
1345
1341
  <div
1346
- class="makeStyles-spacer"
1347
- />
1348
- <div
1349
- class="makeStyles-root"
1342
+ class="MuiPaper-root makeStyles-root MuiPaper-outlined MuiPaper-rounded"
1350
1343
  >
1351
1344
  <div
1352
1345
  class="MuiPaper-root makeStyles-trackLabel makeStyles-trackLabelOverlap makeStyles-root MuiPaper-elevation1 MuiPaper-rounded"
@@ -1424,7 +1417,7 @@ exports[`<LinearGenomeView /> renders two tracks, two regions 1`] = `
1424
1417
  </button>
1425
1418
  </div>
1426
1419
  <div
1427
- class="MuiPaper-root makeStyles-trackRenderingContainer MuiPaper-outlined MuiPaper-rounded"
1420
+ class="makeStyles-trackRenderingContainer"
1428
1421
  data-testid="trackRenderingContainer-lgv-testConfig"
1429
1422
  role="presentation"
1430
1423
  style="height: 100px;"
@@ -1436,7 +1429,6 @@ exports[`<LinearGenomeView /> renders two tracks, two regions 1`] = `
1436
1429
  <div
1437
1430
  class="makeStyles-display"
1438
1431
  data-testid="display-testConfig-LinearBareDisplay"
1439
- role="presentation"
1440
1432
  >
1441
1433
  <div
1442
1434
  class="makeStyles-linearBlocks"
@@ -1451,17 +1443,12 @@ exports[`<LinearGenomeView /> renders two tracks, two regions 1`] = `
1451
1443
  class="makeStyles-contentBlock"
1452
1444
  style="width: 100px;"
1453
1445
  >
1454
- <div
1455
- style="position: relative;"
1456
- >
1457
- <svg
1458
- class="SvgFeatureRendering"
1459
- data-testid="svgfeatures"
1460
- height="100"
1461
- style="display: block;"
1462
- width="100"
1463
- />
1464
- </div>
1446
+ <svg
1447
+ class="SvgFeatureRendering"
1448
+ data-testid="svgfeatures"
1449
+ height="100"
1450
+ width="100"
1451
+ />
1465
1452
  </div>
1466
1453
  <div
1467
1454
  class="makeStyles-interRegionPaddingBlock"
@@ -1471,17 +1458,12 @@ exports[`<LinearGenomeView /> renders two tracks, two regions 1`] = `
1471
1458
  class="makeStyles-contentBlock"
1472
1459
  style="width: 1000px;"
1473
1460
  >
1474
- <div
1475
- style="position: relative;"
1476
- >
1477
- <svg
1478
- class="SvgFeatureRendering"
1479
- data-testid="svgfeatures"
1480
- height="100"
1481
- style="display: block;"
1482
- width="1000"
1483
- />
1484
- </div>
1461
+ <svg
1462
+ class="SvgFeatureRendering"
1463
+ data-testid="svgfeatures"
1464
+ height="100"
1465
+ width="1000"
1466
+ />
1485
1467
  </div>
1486
1468
  <div
1487
1469
  class="makeStyles-boundaryPaddingBlock"
@@ -1502,7 +1484,7 @@ exports[`<LinearGenomeView /> renders two tracks, two regions 1`] = `
1502
1484
  />
1503
1485
  </div>
1504
1486
  <div
1505
- class="makeStyles-root"
1487
+ class="MuiPaper-root makeStyles-root MuiPaper-outlined MuiPaper-rounded"
1506
1488
  >
1507
1489
  <div
1508
1490
  class="MuiPaper-root makeStyles-trackLabel makeStyles-trackLabelOverlap makeStyles-root MuiPaper-elevation1 MuiPaper-rounded"
@@ -1580,7 +1562,7 @@ exports[`<LinearGenomeView /> renders two tracks, two regions 1`] = `
1580
1562
  </button>
1581
1563
  </div>
1582
1564
  <div
1583
- class="MuiPaper-root makeStyles-trackRenderingContainer MuiPaper-outlined MuiPaper-rounded"
1565
+ class="makeStyles-trackRenderingContainer"
1584
1566
  data-testid="trackRenderingContainer-lgv-testConfig2"
1585
1567
  role="presentation"
1586
1568
  style="height: 100px;"
@@ -1592,7 +1574,6 @@ exports[`<LinearGenomeView /> renders two tracks, two regions 1`] = `
1592
1574
  <div
1593
1575
  class="makeStyles-display"
1594
1576
  data-testid="display-testConfig2-LinearBareDisplay"
1595
- role="presentation"
1596
1577
  >
1597
1578
  <div
1598
1579
  class="makeStyles-linearBlocks"
@@ -1607,17 +1588,12 @@ exports[`<LinearGenomeView /> renders two tracks, two regions 1`] = `
1607
1588
  class="makeStyles-contentBlock"
1608
1589
  style="width: 100px;"
1609
1590
  >
1610
- <div
1611
- style="position: relative;"
1612
- >
1613
- <svg
1614
- class="SvgFeatureRendering"
1615
- data-testid="svgfeatures"
1616
- height="100"
1617
- style="display: block;"
1618
- width="100"
1619
- />
1620
- </div>
1591
+ <svg
1592
+ class="SvgFeatureRendering"
1593
+ data-testid="svgfeatures"
1594
+ height="100"
1595
+ width="100"
1596
+ />
1621
1597
  </div>
1622
1598
  <div
1623
1599
  class="makeStyles-interRegionPaddingBlock"
@@ -1627,17 +1603,12 @@ exports[`<LinearGenomeView /> renders two tracks, two regions 1`] = `
1627
1603
  class="makeStyles-contentBlock"
1628
1604
  style="width: 1000px;"
1629
1605
  >
1630
- <div
1631
- style="position: relative;"
1632
- >
1633
- <svg
1634
- class="SvgFeatureRendering"
1635
- data-testid="svgfeatures"
1636
- height="100"
1637
- style="display: block;"
1638
- width="1000"
1639
- />
1640
- </div>
1606
+ <svg
1607
+ class="SvgFeatureRendering"
1608
+ data-testid="svgfeatures"
1609
+ height="100"
1610
+ width="1000"
1611
+ />
1641
1612
  </div>
1642
1613
  <div
1643
1614
  class="makeStyles-boundaryPaddingBlock"