@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.
- package/dist/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.d.ts +1 -1
- package/dist/LinearBareDisplay/configSchema.d.ts +1 -1
- package/dist/LinearBareDisplay/model.d.ts +7 -7
- package/dist/LinearBasicDisplay/configSchema.d.ts +1 -1
- package/dist/LinearBasicDisplay/model.d.ts +7 -7
- package/dist/LinearGenomeView/components/OverviewScaleBar.d.ts +6 -6
- package/dist/LinearGenomeView/components/TrackContainer.d.ts +1 -1
- package/dist/index.d.ts +22 -22
- package/dist/plugin-linear-genome-view.cjs.development.js +157 -242
- package/dist/plugin-linear-genome-view.cjs.development.js.map +1 -1
- package/dist/plugin-linear-genome-view.cjs.production.min.js +1 -1
- package/dist/plugin-linear-genome-view.cjs.production.min.js.map +1 -1
- package/dist/plugin-linear-genome-view.esm.js +158 -243
- package/dist/plugin-linear-genome-view.esm.js.map +1 -1
- package/package.json +2 -2
- package/src/BaseLinearDisplay/components/BaseLinearDisplay.tsx +10 -13
- package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +6 -1
- package/src/LinearBasicDisplay/components/SetMaxHeight.tsx +21 -12
- package/src/LinearBasicDisplay/model.ts +1 -1
- package/src/LinearGenomeView/components/HelpDialog.tsx +14 -1
- package/src/LinearGenomeView/components/LinearGenomeViewSvg.tsx +1 -13
- package/src/LinearGenomeView/components/OverviewScaleBar.tsx +7 -3
- package/src/LinearGenomeView/components/TrackContainer.tsx +34 -30
- package/src/LinearGenomeView/components/TracksContainer.tsx +0 -1
- package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.js.snap +32 -61
- package/src/LinearGenomeView/index.test.ts +44 -42
- package/src/LinearGenomeView/index.tsx +55 -131
- package/src/LinearGenomeView/volvoxDisplayedRegions.json +16 -0
- package/dist/LinearGenomeView/components/ReturnToImportFormDialog.d.ts +0 -9
- 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.
|
|
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": "
|
|
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(
|
|
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<
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
<
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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 (
|
|
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 (
|
|
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
|
|
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
|
-
|
|
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
|
-
<
|
|
99
|
-
{view
|
|
100
|
-
|
|
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-${
|
|
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
|
-
</
|
|
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
|
-
</
|
|
164
|
+
</Paper>
|
|
161
165
|
)
|
|
162
166
|
}
|
|
163
167
|
|
|
@@ -449,10 +449,7 @@ exports[`<LinearGenomeView /> renders one track, one region 1`] = `
|
|
|
449
449
|
</div>
|
|
450
450
|
</div>
|
|
451
451
|
<div
|
|
452
|
-
class="makeStyles-
|
|
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="
|
|
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.
|
|
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
|
|
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-
|
|
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="
|
|
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
|
-
<
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
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
|
-
<
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
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="
|
|
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
|
-
<
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
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
|
-
<
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
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"
|