higlass 1.11.10 → 1.12.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.
- package/README.md +19 -10
- package/app/scripts/{AddTrackDialog.js → AddTrackDialog.jsx} +27 -26
- package/app/scripts/{AddTrackPositionMenu.js → AddTrackPositionMenu.jsx} +18 -15
- package/app/scripts/{Autocomplete.js → Autocomplete.jsx} +1 -0
- package/app/scripts/{Button.js → Button.jsx} +7 -6
- package/app/scripts/CenterTiledPlot.jsx +7 -0
- package/app/scripts/{CenterTrack.js → CenterTrack.jsx} +42 -41
- package/app/scripts/ChromosomeGrid.js +8 -16
- package/app/scripts/CloseTrackMenu.jsx +27 -0
- package/app/scripts/CombinedTrack.js +16 -1
- package/app/scripts/{ConfigTrackMenu.js → ConfigTrackMenu.jsx} +12 -12
- package/app/scripts/{ConfigViewMenu.js → ConfigViewMenu.jsx} +35 -36
- package/app/scripts/{ConfigureSeriesMenu.js → ConfigureSeriesMenu.jsx} +2 -2
- package/app/scripts/{ContextMenuContainer.js → ContextMenuContainer.jsx} +5 -7
- package/app/scripts/ContextMenuItem.jsx +37 -0
- package/app/scripts/Cross.jsx +9 -0
- package/app/scripts/CustomTrackDialog.jsx +38 -0
- package/app/scripts/DataFetcher.js +6 -6
- package/app/scripts/{Dialog.js → Dialog.jsx} +40 -31
- package/app/scripts/{DragListeningDiv.js → DragListeningDiv.jsx} +10 -12
- package/app/scripts/{DraggableDiv.js → DraggableDiv.jsx} +25 -24
- package/app/scripts/{ExportLinkDialog.js → ExportLinkDialog.jsx} +2 -2
- package/app/scripts/{FixedTrack.js → FixedTrack.jsx} +0 -0
- package/app/scripts/{GalleryTracks.js → GalleryTracks.jsx} +10 -9
- package/app/scripts/{GenomePositionSearchBox.js → GenomePositionSearchBox.jsx} +14 -16
- package/app/scripts/{HeatmapOptions.js → HeatmapOptions.jsx} +0 -0
- package/app/scripts/HeatmapTiledPixiTrack.js +18 -30
- package/app/scripts/{HiGlassComponent.js → HiGlassComponent.jsx} +206 -85
- package/app/scripts/{HiGlassTrackComponent.js → HiGlassTrackComponent.jsx} +0 -0
- package/app/scripts/HorizontalChromosomeLabels.js +3 -6
- package/app/scripts/HorizontalHeatmapTrack.js +2 -6
- package/app/scripts/{HorizontalItem.js → HorizontalItem.jsx} +0 -0
- package/app/scripts/HorizontalRule.js +2 -0
- package/app/scripts/{HorizontalTiledPlot.js → HorizontalTiledPlot.jsx} +20 -19
- package/app/scripts/{HorizontalTrack.js → HorizontalTrack.jsx} +0 -0
- package/app/scripts/LeftTrackModifier.js +8 -0
- package/app/scripts/{ListWrapper.js → ListWrapper.jsx} +0 -0
- package/app/scripts/{Modal.js → Modal.jsx} +14 -9
- package/app/scripts/{MoveableTrack.js → MoveableTrack.jsx} +0 -0
- package/app/scripts/{NestedContextMenu.js → NestedContextMenu.jsx} +6 -7
- package/app/scripts/OSMTilesTrack.js +2 -6
- package/app/scripts/OverlayTrack.js +2 -0
- package/app/scripts/{PlotTypeChooser.js → PlotTypeChooser.jsx} +0 -0
- package/app/scripts/{PopupMenu.js → PopupMenu.jsx} +1 -1
- package/app/scripts/SearchField.js +5 -3
- package/app/scripts/{SeriesListItems.js → SeriesListItems.jsx} +6 -6
- package/app/scripts/{SeriesListMenu.js → SeriesListMenu.jsx} +29 -32
- package/app/scripts/{SeriesListSubmenuMixin.js → SeriesListSubmenuMixin.jsx} +0 -0
- package/app/scripts/{SketchInlinePicker.js → SketchInlinePicker.jsx} +0 -0
- package/app/scripts/{SortableList.js → SortableList.jsx} +0 -0
- package/app/scripts/Tiled1DPixiTrack.js +2 -5
- package/app/scripts/TiledPixiTrack.js +3 -1
- package/app/scripts/{TiledPlot.js → TiledPlot.jsx} +45 -17
- package/app/scripts/{TilesetFinder.js → TilesetFinder.jsx} +7 -7
- package/app/scripts/Track.js +17 -1
- package/app/scripts/{TrackArea.js → TrackArea.jsx} +0 -0
- package/app/scripts/{TrackControl.js → TrackControl.jsx} +44 -50
- package/app/scripts/{TrackRenderer.js → TrackRenderer.jsx} +44 -38
- package/app/scripts/{VerticalItem.js → VerticalItem.jsx} +0 -0
- package/app/scripts/VerticalRule.js +1 -0
- package/app/scripts/{VerticalTiledPlot.js → VerticalTiledPlot.jsx} +27 -18
- package/app/scripts/{VerticalTrack.js → VerticalTrack.jsx} +0 -0
- package/app/scripts/{ViewConfigEditor.js → ViewConfigEditor.jsx} +66 -58
- package/app/scripts/{ViewContextMenu.js → ViewContextMenu.jsx} +13 -13
- package/app/scripts/{ViewHeader.js → ViewHeader.jsx} +24 -23
- package/app/scripts/ViewportTracker2D.js +1 -2
- package/app/scripts/ViewportTrackerHorizontal.js +1 -2
- package/app/scripts/ViewportTrackerVertical.js +1 -2
- package/app/scripts/api.js +17 -10
- package/app/scripts/configs/available-for-plugins.js +4 -3
- package/app/scripts/configs/index.js +1 -47
- package/app/scripts/configs/positions-by-datatype.js +2 -0
- package/app/scripts/configs/primitives.js +47 -0
- package/app/scripts/configs/tracks-info.js +2 -2
- package/app/scripts/d3-context-menu.js +1 -0
- package/app/scripts/data-fetchers/get-data-fetcher.js +7 -2
- package/app/scripts/{hglib.js → hglib.jsx} +1 -1
- package/app/scripts/hocs/{with-modal.js → with-modal.jsx} +0 -0
- package/app/scripts/hocs/{with-pub-sub.js → with-pub-sub.jsx} +0 -0
- package/app/scripts/hocs/{with-theme.js → with-theme.jsx} +0 -0
- package/app/scripts/{icons.js → icons.jsx} +22 -12
- package/app/scripts/mixwith.js +2 -0
- package/app/scripts/services/tile-proxy.js +1 -5
- package/app/scripts/utils/abs-to-chr.js +1 -1
- package/app/scripts/utils/dec-to-hex-str.js +1 -1
- package/app/scripts/utils/dict-items.js +0 -1
- package/app/scripts/utils/dict-keys.js +0 -1
- package/app/scripts/utils/dict-values.js +0 -1
- package/app/scripts/utils/index.js +1 -0
- package/app/scripts/utils/range-query-2d.js +4 -1
- package/app/scripts/utils/selected-items-to-size.js +2 -3
- package/app/scripts/utils/{test-helpers.js → test-helpers.jsx} +32 -10
- package/app/scripts/utils/timeout.js +4 -1
- package/app/scripts/utils/value-to-color.js +14 -17
- package/app/scripts/worker.js +8 -4
- package/app/styles/GenomePositionSearchBox.module.scss +13 -15
- package/app/styles/HiGlass.scss +5 -5
- package/app/styles/TilesetFinder.css +94 -74
- package/app/styles/TrackControl.module.scss +17 -20
- package/app/styles/TrackOptions.css +23 -24
- package/app/styles/ViewHeader.module.scss +18 -18
- package/dist/hglib.css +1724 -0
- package/dist/hglib.js +83032 -0
- package/dist/hglib.min.js +382 -0
- package/dist/index.html +251 -250
- package/package.json +57 -117
- package/CHANGELOG.md +0 -1411
- package/app/index.html +0 -273
- package/app/scripts/CenterTiledPlot.js +0 -5
- package/app/scripts/CloseTrackMenu.js +0 -25
- package/app/scripts/ContextMenuItem.js +0 -35
- package/app/scripts/Cross.js +0 -7
- package/app/scripts/factories/index.js +0 -1
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { drag } from 'd3-drag';
|
|
2
|
-
import {
|
|
3
|
+
import { pointer, select } from 'd3-selection';
|
|
3
4
|
import PropTypes from 'prop-types';
|
|
4
5
|
import React from 'react';
|
|
6
|
+
import clsx from 'clsx';
|
|
5
7
|
|
|
6
8
|
import withTheme from './hocs/with-theme';
|
|
7
9
|
import { THEME_DARK } from './configs';
|
|
8
10
|
|
|
9
|
-
import '../styles/DraggableDiv.module.scss';
|
|
11
|
+
import classes from '../styles/DraggableDiv.module.scss';
|
|
10
12
|
|
|
11
13
|
class DraggableDiv extends React.Component {
|
|
12
14
|
constructor(props) {
|
|
@@ -76,8 +78,8 @@ class DraggableDiv extends React.Component {
|
|
|
76
78
|
|
|
77
79
|
/* ---------------------------- Custom Methods ---------------------------- */
|
|
78
80
|
|
|
79
|
-
dragBottomFunc() {
|
|
80
|
-
const ms =
|
|
81
|
+
dragBottomFunc(event) {
|
|
82
|
+
const ms = pointer(event, this.domBody);
|
|
81
83
|
|
|
82
84
|
let newHeight = this.dragStartHeight + (ms[1] - this.dragStartMousePos[1]);
|
|
83
85
|
newHeight = newHeight > this.minHeight ? newHeight : this.minHeight;
|
|
@@ -88,8 +90,8 @@ class DraggableDiv extends React.Component {
|
|
|
88
90
|
this.sizeChanged();
|
|
89
91
|
}
|
|
90
92
|
|
|
91
|
-
dragLeftFunc() {
|
|
92
|
-
const ms =
|
|
93
|
+
dragLeftFunc(event) {
|
|
94
|
+
const ms = pointer(event, this.domBody);
|
|
93
95
|
|
|
94
96
|
let newWidth = this.dragStartWidth - (ms[0] - this.dragStartMousePos[0]);
|
|
95
97
|
newWidth = newWidth > this.minWidth ? newWidth : this.minWidth;
|
|
@@ -109,8 +111,8 @@ class DraggableDiv extends React.Component {
|
|
|
109
111
|
this.sizeChanged();
|
|
110
112
|
}
|
|
111
113
|
|
|
112
|
-
dragTopFunc() {
|
|
113
|
-
const ms =
|
|
114
|
+
dragTopFunc(event) {
|
|
115
|
+
const ms = pointer(event, this.domBody);
|
|
114
116
|
|
|
115
117
|
let newHeight = this.dragStartHeight - (ms[1] - this.dragStartMousePos[1]);
|
|
116
118
|
newHeight = newHeight > this.minHeight ? newHeight : this.minHeight;
|
|
@@ -130,8 +132,8 @@ class DraggableDiv extends React.Component {
|
|
|
130
132
|
this.sizeChanged();
|
|
131
133
|
}
|
|
132
134
|
|
|
133
|
-
dragRightFunc() {
|
|
134
|
-
const ms =
|
|
135
|
+
dragRightFunc(event) {
|
|
136
|
+
const ms = pointer(event, this.domBody);
|
|
135
137
|
|
|
136
138
|
let newWidth = this.dragStartWidth + (ms[0] - this.dragStartMousePos[0]);
|
|
137
139
|
newWidth = newWidth > this.minWidth ? newWidth : this.minWidth;
|
|
@@ -144,8 +146,8 @@ class DraggableDiv extends React.Component {
|
|
|
144
146
|
this.sizeChanged();
|
|
145
147
|
}
|
|
146
148
|
|
|
147
|
-
dragBottomLeftFunc() {
|
|
148
|
-
const ms =
|
|
149
|
+
dragBottomLeftFunc(event) {
|
|
150
|
+
const ms = pointer(event, this.domBody);
|
|
149
151
|
|
|
150
152
|
let newHeight = this.dragStartHeight + (ms[1] - this.dragStartMousePos[1]);
|
|
151
153
|
newHeight = newHeight > this.minHeight ? newHeight : this.minHeight;
|
|
@@ -169,8 +171,8 @@ class DraggableDiv extends React.Component {
|
|
|
169
171
|
this.sizeChanged();
|
|
170
172
|
}
|
|
171
173
|
|
|
172
|
-
dragBottomRightFunc() {
|
|
173
|
-
const ms =
|
|
174
|
+
dragBottomRightFunc(event) {
|
|
175
|
+
const ms = pointer(event, this.domBody);
|
|
174
176
|
|
|
175
177
|
let newWidth = this.dragStartWidth + (ms[0] - this.dragStartMousePos[0]);
|
|
176
178
|
newWidth = newWidth > this.minWidth ? newWidth : this.minWidth;
|
|
@@ -187,8 +189,8 @@ class DraggableDiv extends React.Component {
|
|
|
187
189
|
this.sizeChanged();
|
|
188
190
|
}
|
|
189
191
|
|
|
190
|
-
dragTopRightFunc() {
|
|
191
|
-
const ms =
|
|
192
|
+
dragTopRightFunc(event) {
|
|
193
|
+
const ms = pointer(event, this.domBody);
|
|
192
194
|
|
|
193
195
|
let newHeight = this.dragStartHeight - (ms[1] - this.dragStartMousePos[1]);
|
|
194
196
|
newHeight = newHeight > this.minHeight ? newHeight : this.minHeight;
|
|
@@ -212,8 +214,8 @@ class DraggableDiv extends React.Component {
|
|
|
212
214
|
this.sizeChanged();
|
|
213
215
|
}
|
|
214
216
|
|
|
215
|
-
dragTopLeftFunc() {
|
|
216
|
-
const ms =
|
|
217
|
+
dragTopLeftFunc(event) {
|
|
218
|
+
const ms = pointer(event, this.domBody);
|
|
217
219
|
|
|
218
220
|
let newWidth = this.dragStartWidth - (ms[0] - this.dragStartMousePos[0]);
|
|
219
221
|
newWidth = newWidth > this.minWidth ? newWidth : this.minWidth;
|
|
@@ -245,8 +247,8 @@ class DraggableDiv extends React.Component {
|
|
|
245
247
|
this.sizeChanged();
|
|
246
248
|
}
|
|
247
249
|
|
|
248
|
-
dragStart() {
|
|
249
|
-
this.dragStartMousePos =
|
|
250
|
+
dragStart(event) {
|
|
251
|
+
this.dragStartMousePos = pointer(event, this.domBody);
|
|
250
252
|
|
|
251
253
|
this.dragStartWidth = this.state.width;
|
|
252
254
|
this.dragStartHeight = this.state.height;
|
|
@@ -310,13 +312,13 @@ class DraggableDiv extends React.Component {
|
|
|
310
312
|
ref={(c) => {
|
|
311
313
|
this[`${x}Handle`] = c;
|
|
312
314
|
}}
|
|
315
|
+
className={classes[`${x}-draggable-handle`]}
|
|
313
316
|
style={styles[x]}
|
|
314
|
-
styleName={`${x}-draggable-handle`}
|
|
315
317
|
title="Resize track"
|
|
316
318
|
>
|
|
317
319
|
<div
|
|
320
|
+
className={classes[`${x}-draggable-handle-grabber`]}
|
|
318
321
|
style={{ borderColor: dragColor }}
|
|
319
|
-
styleName={`${x}-draggable-handle-grabber`}
|
|
320
322
|
/>
|
|
321
323
|
</div>
|
|
322
324
|
));
|
|
@@ -326,9 +328,8 @@ class DraggableDiv extends React.Component {
|
|
|
326
328
|
ref={(c) => {
|
|
327
329
|
this.divContainer = c;
|
|
328
330
|
}}
|
|
329
|
-
className={this.props.className}
|
|
331
|
+
className={clsx(this.props.className, classes['draggable-div'])}
|
|
330
332
|
style={divStyle}
|
|
331
|
-
styleName="draggable-div"
|
|
332
333
|
>
|
|
333
334
|
{resizeHandles}
|
|
334
335
|
</div>
|
|
@@ -4,7 +4,7 @@ import PropTypes from 'prop-types';
|
|
|
4
4
|
import Button from './Button';
|
|
5
5
|
import Dialog from './Dialog';
|
|
6
6
|
|
|
7
|
-
import '../styles/ExportLinkDialog.module.scss';
|
|
7
|
+
import classes from '../styles/ExportLinkDialog.module.scss';
|
|
8
8
|
|
|
9
9
|
class ExportLinkDialog extends React.Component {
|
|
10
10
|
render() {
|
|
@@ -15,7 +15,7 @@ class ExportLinkDialog extends React.Component {
|
|
|
15
15
|
onOkay={this.props.onDone}
|
|
16
16
|
title="Share view link"
|
|
17
17
|
>
|
|
18
|
-
<div
|
|
18
|
+
<div className={classes['export-link-dialog-wrapper']}>
|
|
19
19
|
<input
|
|
20
20
|
ref={(element) => {
|
|
21
21
|
if (!element) return;
|
|
File without changes
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import PropTypes from 'prop-types';
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import clsx from 'clsx';
|
|
3
4
|
|
|
4
5
|
import TrackControl from './TrackControl';
|
|
5
6
|
|
|
@@ -29,11 +30,12 @@ class GalleryTracks extends React.Component {
|
|
|
29
30
|
|
|
30
31
|
render() {
|
|
31
32
|
return (
|
|
32
|
-
<div className=
|
|
33
|
+
<div className={clsx('gallery-tracks', styles['gallery-tracks'])}>
|
|
33
34
|
{this.props.tracks &&
|
|
34
35
|
this.props.tracks.map((track, index) => (
|
|
35
36
|
<div
|
|
36
37
|
key={track.uid || index}
|
|
38
|
+
className={styles['gallery-track']}
|
|
37
39
|
onMouseLeave={this.mouseLeaveHandler.bind(this)}
|
|
38
40
|
style={{
|
|
39
41
|
top: track.height * index,
|
|
@@ -41,9 +43,9 @@ class GalleryTracks extends React.Component {
|
|
|
41
43
|
bottom: track.height * index,
|
|
42
44
|
left: track.height * index,
|
|
43
45
|
}}
|
|
44
|
-
styleName="styles.gallery-track"
|
|
45
46
|
>
|
|
46
47
|
<div
|
|
48
|
+
className={styles['gallery-sub-track']}
|
|
47
49
|
onMouseEnter={this.mouseEnterHandler.bind(this)}
|
|
48
50
|
style={{
|
|
49
51
|
top: 0,
|
|
@@ -51,9 +53,9 @@ class GalleryTracks extends React.Component {
|
|
|
51
53
|
left: 0,
|
|
52
54
|
height: track.height,
|
|
53
55
|
}}
|
|
54
|
-
styleName="styles.gallery-sub-track"
|
|
55
56
|
/>
|
|
56
57
|
<div
|
|
58
|
+
className={styles['gallery-sub-track']}
|
|
57
59
|
onMouseEnter={this.mouseEnterHandler.bind(this)}
|
|
58
60
|
style={{
|
|
59
61
|
top: 0,
|
|
@@ -61,9 +63,9 @@ class GalleryTracks extends React.Component {
|
|
|
61
63
|
bottom: 0,
|
|
62
64
|
width: track.height,
|
|
63
65
|
}}
|
|
64
|
-
styleName="styles.gallery-sub-track"
|
|
65
66
|
/>
|
|
66
67
|
<div
|
|
68
|
+
className={styles['gallery-sub-track']}
|
|
67
69
|
onMouseEnter={this.mouseEnterHandler.bind(this)}
|
|
68
70
|
style={{
|
|
69
71
|
right: 0,
|
|
@@ -71,9 +73,9 @@ class GalleryTracks extends React.Component {
|
|
|
71
73
|
left: 0,
|
|
72
74
|
height: track.height,
|
|
73
75
|
}}
|
|
74
|
-
styleName="styles.gallery-sub-track"
|
|
75
76
|
/>
|
|
76
77
|
<div
|
|
78
|
+
className={styles['gallery-sub-track']}
|
|
77
79
|
onMouseEnter={this.mouseEnterHandler.bind(this)}
|
|
78
80
|
style={{
|
|
79
81
|
top: 0,
|
|
@@ -81,9 +83,9 @@ class GalleryTracks extends React.Component {
|
|
|
81
83
|
left: 0,
|
|
82
84
|
width: track.height,
|
|
83
85
|
}}
|
|
84
|
-
styleName="styles.gallery-sub-track"
|
|
85
86
|
/>
|
|
86
87
|
<div
|
|
88
|
+
className={styles['gallery-invisible-track']}
|
|
87
89
|
onMouseLeave={this.mouseLeaveHandler.bind(this)}
|
|
88
90
|
style={{
|
|
89
91
|
top: track.height,
|
|
@@ -91,7 +93,6 @@ class GalleryTracks extends React.Component {
|
|
|
91
93
|
bottom: track.height,
|
|
92
94
|
left: track.height,
|
|
93
95
|
}}
|
|
94
|
-
styleName="styles.gallery-invisible-track"
|
|
95
96
|
/>
|
|
96
97
|
{this.props.editable && (
|
|
97
98
|
<TrackControl
|
|
@@ -115,10 +116,10 @@ class GalleryTracks extends React.Component {
|
|
|
115
116
|
}
|
|
116
117
|
|
|
117
118
|
GalleryTracks.propTypes = {
|
|
118
|
-
editable: PropTypes.bool
|
|
119
|
+
editable: PropTypes.bool,
|
|
119
120
|
onCloseTrackMenuOpened: PropTypes.func.isRequired,
|
|
120
121
|
onConfigTrackMenuOpened: PropTypes.func.isRequired,
|
|
121
|
-
tracks: PropTypes.array
|
|
122
|
+
tracks: PropTypes.array,
|
|
122
123
|
};
|
|
123
124
|
|
|
124
125
|
export default GalleryTracks;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { select } from 'd3-selection';
|
|
2
3
|
import React from 'react';
|
|
3
4
|
import slugid from 'slugid';
|
|
4
5
|
import PropTypes from 'prop-types';
|
|
6
|
+
import clsx from 'clsx';
|
|
5
7
|
|
|
6
8
|
import Autocomplete from './Autocomplete';
|
|
7
9
|
import ChromosomeInfo from './ChromosomeInfo';
|
|
@@ -476,7 +478,7 @@ class GenomePositionSearchBox extends React.Component {
|
|
|
476
478
|
);
|
|
477
479
|
}
|
|
478
480
|
|
|
479
|
-
autocompleteKeyPress() {
|
|
481
|
+
autocompleteKeyPress(event) {
|
|
480
482
|
const ENTER_KEY_CODE = 13;
|
|
481
483
|
|
|
482
484
|
if (event.keyCode === ENTER_KEY_CODE) {
|
|
@@ -600,9 +602,8 @@ class GenomePositionSearchBox extends React.Component {
|
|
|
600
602
|
}
|
|
601
603
|
}
|
|
602
604
|
|
|
603
|
-
const geneSymbol =
|
|
604
|
-
genePositions
|
|
605
|
-
);
|
|
605
|
+
const geneSymbol =
|
|
606
|
+
this.replaceGenesWithLoadedPositions(genePositions);
|
|
606
607
|
|
|
607
608
|
finished(geneSymbol);
|
|
608
609
|
}
|
|
@@ -737,11 +738,11 @@ class GenomePositionSearchBox extends React.Component {
|
|
|
737
738
|
return (
|
|
738
739
|
<PopupMenu>
|
|
739
740
|
<div
|
|
741
|
+
className={styles['genome-position-search-bar-suggestions']}
|
|
740
742
|
style={{
|
|
741
743
|
left: this.menuPosition.left,
|
|
742
744
|
top: this.menuPosition.top,
|
|
743
745
|
}}
|
|
744
|
-
styleName="styles.genome-position-search-bar-suggestions"
|
|
745
746
|
>
|
|
746
747
|
{items}
|
|
747
748
|
</div>
|
|
@@ -770,20 +771,17 @@ class GenomePositionSearchBox extends React.Component {
|
|
|
770
771
|
</option>
|
|
771
772
|
));
|
|
772
773
|
|
|
773
|
-
let className = this.state.isFocused
|
|
774
|
-
? 'styles.genome-position-search-focus'
|
|
775
|
-
: 'styles.genome-position-search';
|
|
776
|
-
|
|
777
|
-
if (this.props.theme === THEME_DARK) {
|
|
778
|
-
className += ' styles.genome-position-search-dark';
|
|
779
|
-
}
|
|
780
|
-
|
|
781
774
|
return (
|
|
782
775
|
<div
|
|
783
776
|
ref={(c) => {
|
|
784
777
|
this.gpsbForm = c;
|
|
785
778
|
}}
|
|
786
|
-
|
|
779
|
+
className={clsx({
|
|
780
|
+
[styles['genome-position-search-focus']]: this.state.isFocused,
|
|
781
|
+
[styles['genome-position-search']]: !this.state.isFocused,
|
|
782
|
+
[styles['genome-position-search-dark']]:
|
|
783
|
+
this.props.theme === THEME_DARK,
|
|
784
|
+
})}
|
|
787
785
|
>
|
|
788
786
|
{!this.props.hideAvailableAssemblies && (
|
|
789
787
|
<select
|
|
@@ -857,7 +855,7 @@ GenomePositionSearchBox.propTypes = {
|
|
|
857
855
|
chromInfoServer: PropTypes.string,
|
|
858
856
|
hideAvailableAssemblies: PropTypes.bool,
|
|
859
857
|
isFocused: PropTypes.bool,
|
|
860
|
-
pubSub: PropTypes.
|
|
858
|
+
pubSub: PropTypes.object,
|
|
861
859
|
onFocus: PropTypes.func,
|
|
862
860
|
onGeneSearch: PropTypes.func,
|
|
863
861
|
onSelectedAssemblyChanged: PropTypes.func,
|
|
File without changes
|
|
@@ -2,7 +2,7 @@ import ndarray from 'ndarray';
|
|
|
2
2
|
import { brushY } from 'd3-brush';
|
|
3
3
|
import { format } from 'd3-format';
|
|
4
4
|
import { scaleLinear } from 'd3-scale';
|
|
5
|
-
import { select
|
|
5
|
+
import { select } from 'd3-selection';
|
|
6
6
|
import slugid from 'slugid';
|
|
7
7
|
import {
|
|
8
8
|
colorToRgba,
|
|
@@ -262,12 +262,8 @@ class HeatmapTiledPixiTrack extends TiledPixiTrack {
|
|
|
262
262
|
* @return {Object} Object holding the absolute x, y, width, and height.
|
|
263
263
|
*/
|
|
264
264
|
getAbsTileDim(zoomLevel, tilePos, mirrored) {
|
|
265
|
-
const {
|
|
266
|
-
|
|
267
|
-
tileY,
|
|
268
|
-
tileWidth,
|
|
269
|
-
tileHeight,
|
|
270
|
-
} = this.getTilePosAndDimensions(zoomLevel, tilePos);
|
|
265
|
+
const { tileX, tileY, tileWidth, tileHeight } =
|
|
266
|
+
this.getTilePosAndDimensions(zoomLevel, tilePos);
|
|
271
267
|
|
|
272
268
|
const dim = {};
|
|
273
269
|
|
|
@@ -512,7 +508,7 @@ class HeatmapTiledPixiTrack extends TiledPixiTrack {
|
|
|
512
508
|
this.brushing = true;
|
|
513
509
|
}
|
|
514
510
|
|
|
515
|
-
brushMoved() {
|
|
511
|
+
brushMoved(event) {
|
|
516
512
|
if (!event.selection) {
|
|
517
513
|
return;
|
|
518
514
|
}
|
|
@@ -1024,16 +1020,12 @@ class HeatmapTiledPixiTrack extends TiledPixiTrack {
|
|
|
1024
1020
|
|
|
1025
1021
|
// get the tile's position and width (in data coordinates)
|
|
1026
1022
|
// if it's mirrored then we have to switch the position indeces
|
|
1027
|
-
const {
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
tile.tileData.zoomLevel,
|
|
1034
|
-
tilePos,
|
|
1035
|
-
this.binsPerTile(),
|
|
1036
|
-
);
|
|
1023
|
+
const { tileX, tileY, tileWidth, tileHeight } =
|
|
1024
|
+
this.getTilePosAndDimensions(
|
|
1025
|
+
tile.tileData.zoomLevel,
|
|
1026
|
+
tilePos,
|
|
1027
|
+
this.binsPerTile(),
|
|
1028
|
+
);
|
|
1037
1029
|
|
|
1038
1030
|
// calculate the tile's position in bins
|
|
1039
1031
|
const tileXStartBin = Math.floor(tileX / tileRes);
|
|
@@ -1253,8 +1245,8 @@ class HeatmapTiledPixiTrack extends TiledPixiTrack {
|
|
|
1253
1245
|
{
|
|
1254
1246
|
selectedRows: this.options.selectRows,
|
|
1255
1247
|
selectedRowsAggregationMode: this.options.selectRowsAggregationMode,
|
|
1256
|
-
selectedRowsAggregationWithRelativeHeight:
|
|
1257
|
-
.selectRowsAggregationWithRelativeHeight,
|
|
1248
|
+
selectedRowsAggregationWithRelativeHeight:
|
|
1249
|
+
this.options.selectRowsAggregationWithRelativeHeight,
|
|
1258
1250
|
selectedRowsAggregationMethod: this.options.selectRowsAggregationMethod,
|
|
1259
1251
|
},
|
|
1260
1252
|
);
|
|
@@ -1391,16 +1383,12 @@ class HeatmapTiledPixiTrack extends TiledPixiTrack {
|
|
|
1391
1383
|
? [tile.tileData.tilePos[1], tile.tileData.tilePos[0]]
|
|
1392
1384
|
: tile.tileData.tilePos;
|
|
1393
1385
|
|
|
1394
|
-
const {
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
tile.tileData.zoomLevel,
|
|
1401
|
-
tilePos,
|
|
1402
|
-
this.binsPerTile(),
|
|
1403
|
-
);
|
|
1386
|
+
const { tileX, tileY, tileWidth, tileHeight } =
|
|
1387
|
+
this.getTilePosAndDimensions(
|
|
1388
|
+
tile.tileData.zoomLevel,
|
|
1389
|
+
tilePos,
|
|
1390
|
+
this.binsPerTile(),
|
|
1391
|
+
);
|
|
1404
1392
|
|
|
1405
1393
|
const tileXScale = scaleLinear()
|
|
1406
1394
|
.domain([0, this.binsPerTile()])
|