higlass 1.11.7 → 1.11.10

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.
@@ -15,6 +15,7 @@ const forceUpdate = (self) => {
15
15
  };
16
16
 
17
17
  const createApi = function api(context, pubSub) {
18
+ /** @type {import('./HiGlassComponent').default} */
18
19
  const self = context;
19
20
 
20
21
  let pubSubs = [];
@@ -112,10 +113,38 @@ const createApi = function api(context, pubSub) {
112
113
  },
113
114
 
114
115
  /**
115
- * Reload all of the tiles
116
+ * Reload all or specific tiles for viewId/trackId
117
+ *
118
+ * @param {array} target Should be an array of type
119
+ * ({ viewId: string, trackId: string } | string).
120
+ * If the array is just strings, it's interpreted
121
+ * as a list of views whose tracks to reload.
116
122
  */
117
- reload() {
118
- console.warn('Not implemented yet!');
123
+ reload(target) {
124
+ /** @type {{ viewId: string, trackId: string}[]} */
125
+ let tracks;
126
+ if (!target) {
127
+ tracks = self.iterateOverTracks();
128
+ } else {
129
+ tracks = target.flatMap((d) =>
130
+ typeof d === 'string' ? self.iterateOverTracksInView(d) : d,
131
+ );
132
+ }
133
+
134
+ for (const { viewId, trackId } of tracks) {
135
+ const selectedTrack = self.getTrackObject(viewId, trackId);
136
+ // iterate over childTracks if CombinedTrack
137
+ for (const track of selectedTrack.childTracks || [selectedTrack]) {
138
+ // reload tiles for tracks with tiles.
139
+ if (track.fetchedTiles) {
140
+ track.removeTiles(Object.keys(track.fetchedTiles));
141
+ track.fetching.clear();
142
+ track.refreshTiles();
143
+ }
144
+ // second argument forces re-render
145
+ track.rerender(track.options, true);
146
+ }
147
+ }
119
148
  },
120
149
 
121
150
  /**
@@ -473,13 +502,14 @@ const createApi = function api(context, pubSub) {
473
502
  *
474
503
  * @param {string} viewUid The identifier of the view to zoom
475
504
  * @param {string} geneName The name of gene symbol to search
505
+ * @param {string} padding The padding (base pairs) around a given gene for the navigation
476
506
  * @param {Number} animateTime The time to spend zooming to the specified location
477
507
  * @example
478
508
  * // Zoom to the location near 'MYC'
479
- * hgApi.zoomToGene('view1', 'MYC', 2000);
509
+ * hgApi.zoomToGene('view1', 'MYC', 100, 2000);
480
510
  */
481
- zoomToGene(viewUid, geneName, animateTime = 0) {
482
- self.zoomToGene(viewUid, geneName, animateTime);
511
+ zoomToGene(viewUid, geneName, padding = 0, animateTime = 0) {
512
+ self.zoomToGene(viewUid, geneName, padding, animateTime);
483
513
  },
484
514
 
485
515
  /**
@@ -647,6 +677,10 @@ const createApi = function api(context, pubSub) {
647
677
  /**
648
678
  * Return the track's javascript object. This is useful for subscribing to
649
679
  * data events (dataChanged)
680
+ *
681
+ * @param {string} viewId The id of the view containing the track
682
+ * @param {string} trackId The id of the track within the view
683
+ * @return {obj} The HiGlass track object for this track
650
684
  */
651
685
  getTrackObject(viewId, trackId) {
652
686
  let newViewId = viewId;
@@ -664,7 +698,7 @@ const createApi = function api(context, pubSub) {
664
698
  * Set or get an option.
665
699
  * @param {string} key The name of the option you want get or set
666
700
  * @param {*} value If not `undefined`, `key` will be set to `value`
667
- * @return {[type]} When `value` is `undefined` the current value of
701
+ * @return {obj} When `value` is `undefined` the current value of
668
702
  * `key` will be returned.
669
703
  */
670
704
  option(key, value) {
@@ -28,14 +28,20 @@ import * as configs from '.';
28
28
  import * as utils from '../utils';
29
29
 
30
30
  // Tracks
31
+ import Annotations1dTrack from '../Annotations1dTrack';
31
32
  import Annotations2dTrack from '../Annotations2dTrack';
32
33
  import ArrowheadDomainsTrack from '../ArrowheadDomainsTrack';
33
34
  import BarTrack from '../BarTrack';
34
35
  import BedLikeTrack from '../BedLikeTrack';
35
36
  import CNVIntervalTrack from '../CNVIntervalTrack';
37
+ import Chromosome2DAnnotations from '../Chromosome2DAnnotations';
38
+ import Chromosome2DLabels from '../Chromosome2DLabels';
39
+ import ChromosomeGrid from '../ChromosomeGrid';
36
40
  import CombinedTrack from '../CombinedTrack';
41
+ import CrossRule from '../CrossRule';
37
42
  import DivergentBarTrack from '../DivergentBarTrack';
38
43
  import HeatmapTiledPixiTrack from '../HeatmapTiledPixiTrack';
44
+ import Horizontal1dHeatmapTrack from '../Horizontal1dHeatmapTrack';
39
45
  import Horizontal2DDomainsTrack from '../Horizontal2DDomainsTrack';
40
46
  import HorizontalChromosomeLabels from '../HorizontalChromosomeLabels';
41
47
  import HorizontalGeneAnnotationsTrack from '../HorizontalGeneAnnotationsTrack';
@@ -43,6 +49,8 @@ import HorizontalHeatmapTrack from '../HorizontalHeatmapTrack';
43
49
  import HorizontalLine1DPixiTrack from '../HorizontalLine1DPixiTrack';
44
50
  import HorizontalMultivecTrack from '../HorizontalMultivecTrack';
45
51
  import HorizontalPoint1DPixiTrack from '../HorizontalPoint1DPixiTrack';
52
+ import HorizontalRule from '../HorizontalRule';
53
+ import HorizontalTiled1DPixiTrack from '../HorizontalTiled1DPixiTrack';
46
54
  import HorizontalTiledPlot from '../HorizontalTiledPlot';
47
55
  import HorizontalTrack from '../HorizontalTrack';
48
56
  import Id2DTiledPixiTrack from '../Id2DTiledPixiTrack';
@@ -51,8 +59,11 @@ import IdVertical1DTiledPixiTrack from '../IdVertical1DTiledPixiTrack';
51
59
  import LeftAxisTrack from '../LeftAxisTrack';
52
60
  import MapboxTilesTrack from '../MapboxTilesTrack';
53
61
  import MoveableTrack from '../MoveableTrack';
62
+ import OSMTileIdsTrack from '../OSMTileIdsTrack';
54
63
  import OSMTilesTrack from '../OSMTilesTrack';
64
+ import OverlayTrack from '../OverlayTrack';
55
65
  import PixiTrack from '../PixiTrack';
66
+ import RasterTilesTrack from '../RasterTilesTrack';
56
67
  import SVGTrack from '../SVGTrack';
57
68
  import SquareMarkersTrack from '../SquareMarkersTrack';
58
69
  import Tiled1DPixiTrack from '../Tiled1DPixiTrack';
@@ -60,8 +71,13 @@ import TiledPixiTrack from '../TiledPixiTrack';
60
71
  import TopAxisTrack from '../TopAxisTrack';
61
72
  import Track from '../Track';
62
73
  import ValueIntervalTrack from '../ValueIntervalTrack';
74
+ import VerticalRule from '../VerticalRule';
63
75
  import VerticalTiled1DPixiTrack from '../VerticalTiled1DPixiTrack';
64
76
  import VerticalTrack from '../VerticalTrack';
77
+ import ViewportTracker2D from '../ViewportTracker2D';
78
+ import ViewportTracker2DPixi from '../ViewportTracker2DPixi';
79
+ import ViewportTrackerHorizontal from '../ViewportTrackerHorizontal';
80
+ import ViewportTrackerVertical from '../ViewportTrackerVertical';
65
81
 
66
82
  // Factories
67
83
  import ContextMenuItem from '../ContextMenuItem';
@@ -75,6 +91,11 @@ import * as services from '../services';
75
91
  import ChromosomeInfo from '../ChromosomeInfo';
76
92
  import SearchField from '../SearchField';
77
93
 
94
+ // Data Fetchers
95
+ import GBKDataFetcher from '../data-fetchers/genbank-fetcher';
96
+ import LocalDataFetcher from '../data-fetchers/local-tile-fetcher';
97
+ import getDataFetcher from '../data-fetchers/get-data-fetcher';
98
+
78
99
  const libraries = {
79
100
  d3Array,
80
101
  d3Axis,
@@ -96,14 +117,20 @@ const libraries = {
96
117
  };
97
118
 
98
119
  const tracks = {
120
+ Annotations1dTrack,
99
121
  Annotations2dTrack,
100
122
  ArrowheadDomainsTrack,
101
123
  BarTrack,
102
124
  BedLikeTrack,
103
125
  CNVIntervalTrack,
126
+ Chromosome2DAnnotations,
127
+ Chromosome2DLabels,
128
+ ChromosomeGrid,
104
129
  CombinedTrack,
130
+ CrossRule,
105
131
  DivergentBarTrack,
106
132
  HeatmapTiledPixiTrack,
133
+ Horizontal1dHeatmapTrack,
107
134
  Horizontal2DDomainsTrack,
108
135
  HorizontalChromosomeLabels,
109
136
  HorizontalGeneAnnotationsTrack,
@@ -111,6 +138,8 @@ const tracks = {
111
138
  HorizontalLine1DPixiTrack,
112
139
  HorizontalMultivecTrack,
113
140
  HorizontalPoint1DPixiTrack,
141
+ HorizontalRule,
142
+ HorizontalTiled1DPixiTrack,
114
143
  HorizontalTiledPlot,
115
144
  HorizontalTrack,
116
145
  Id2DTiledPixiTrack,
@@ -119,8 +148,11 @@ const tracks = {
119
148
  LeftAxisTrack,
120
149
  MapboxTilesTrack,
121
150
  MoveableTrack,
151
+ OSMTileIdsTrack,
122
152
  OSMTilesTrack,
153
+ OverlayTrack,
123
154
  PixiTrack,
155
+ RasterTilesTrack,
124
156
  SVGTrack,
125
157
  SquareMarkersTrack,
126
158
  Tiled1DPixiTrack,
@@ -128,8 +160,13 @@ const tracks = {
128
160
  TopAxisTrack,
129
161
  Track,
130
162
  ValueIntervalTrack,
163
+ VerticalRule,
131
164
  VerticalTiled1DPixiTrack,
132
165
  VerticalTrack,
166
+ ViewportTracker2D,
167
+ ViewportTracker2DPixi,
168
+ ViewportTrackerHorizontal,
169
+ ViewportTrackerVertical,
133
170
  };
134
171
 
135
172
  const factories = {
@@ -143,10 +180,18 @@ const chromosomes = {
143
180
  SearchField,
144
181
  };
145
182
 
183
+ const dataFetchers = {
184
+ DataFetcher,
185
+ GBKDataFetcher,
186
+ LocalDataFetcher,
187
+ getDataFetcher,
188
+ };
189
+
146
190
  export default {
147
191
  chromosomes,
148
192
  libraries,
149
193
  tracks,
194
+ dataFetchers,
150
195
  factories,
151
196
  services,
152
197
  utils,
@@ -329,6 +329,10 @@ export const OPTIONS_INFO = {
329
329
  name: 'Fill color',
330
330
  inlineOptions: AVAILABLE_COLORS,
331
331
  },
332
+ rectangleDomainFillOpacity: {
333
+ name: 'Fill opacity',
334
+ inlineOptions: OPACITY_OPTIONS,
335
+ },
332
336
  rectangleDomainOpacity: {
333
337
  name: 'Opacity',
334
338
  inlineOptions: OPACITY_OPTIONS,
@@ -950,6 +950,7 @@ export const TRACKS_INFO = [
950
950
  'trackBorderWidth',
951
951
  'trackBorderColor',
952
952
  'rectangleDomainFillColor',
953
+ 'rectangleDomainFillOpacity',
953
954
  'rectangleDomainStrokeColor',
954
955
  'rectangleDomainOpacity',
955
956
  'minSquareSize',
@@ -965,6 +966,7 @@ export const TRACKS_INFO = [
965
966
  trackBorderWidth: 0,
966
967
  trackBorderColor: 'black',
967
968
  rectangleDomainFillColor: 'grey',
969
+ rectangleDomainFillOpacity: 0.4,
968
970
  rectangleDomainStrokeColor: 'black',
969
971
  rectangleDomainOpacity: 0.6,
970
972
  minSquareSize: 'none',
@@ -1,4 +1,6 @@
1
+ import React from 'react';
1
2
  import { select } from 'd3-selection';
3
+ import '../styles/ViewHeader.module.scss';
2
4
 
3
5
  export const COG = {
4
6
  id: 'cog',
@@ -369,3 +371,18 @@ export const svgArrowheadDomainsIcon = parser.parseFromString(
369
371
  arrowHeadDomainsStr,
370
372
  'text/xml',
371
373
  ).documentElement;
374
+
375
+ export function SearchIcon({ theStyle }) {
376
+ return (
377
+ <svg
378
+ styleName={theStyle}
379
+ viewBox="0 0 12 13"
380
+ xmlns="http://www.w3.org/2000/svg"
381
+ >
382
+ <g fill="none" stroke="#6c6c6c" strokeWidth="2">
383
+ <path d="M11.29 11.71l-4-4" />
384
+ <circle cx="5" cy="5" r="4" />
385
+ </g>
386
+ </svg>
387
+ );
388
+ }
@@ -1,14 +1,19 @@
1
- import cwise from 'cwise';
2
-
3
1
  const ndarrayAssign = (target, source) => {
4
2
  const numSource = +source;
5
3
  const isScalar = !Number.isNaN(numSource);
6
4
 
7
5
  if (isScalar) {
8
- cwise({
9
- args: ['array', 'scalar'],
10
- body: 'function assigns(a, s) { a = s; }',
11
- })(target, numSource);
6
+ if (target.dimension === 1) {
7
+ for (let i = 0; i < target.shape[0]; ++i) {
8
+ target.set(i, numSource);
9
+ }
10
+ } else {
11
+ for (let i = 0; i < target.shape[0]; ++i) {
12
+ for (let j = 0; j < target.shape[1]; ++j) {
13
+ target.set(i, j, numSource);
14
+ }
15
+ }
16
+ }
12
17
  } else {
13
18
  const ty = target.shape[0];
14
19
  const tx = target.shape[1];
@@ -26,10 +31,17 @@ const ndarrayAssign = (target, source) => {
26
31
  return;
27
32
  }
28
33
 
29
- cwise({
30
- args: ['array', 'array'],
31
- body: 'function assign(a, b) { a = b; }',
32
- })(target, source);
34
+ if (target.dimension === 1) {
35
+ for (let i = 0; i < target.shape[0]; ++i) {
36
+ target.set(i, source.get(i));
37
+ }
38
+ } else {
39
+ for (let i = 0; i < target.shape[0]; ++i) {
40
+ for (let j = 0; j < target.shape[1]; ++j) {
41
+ target.set(i, j, source.get(i, j));
42
+ }
43
+ }
44
+ }
33
45
  }
34
46
  };
35
47
 
@@ -1,16 +1,22 @@
1
- import cwise from 'cwise';
2
-
3
1
  const ndarrayToList = (arr) => {
4
2
  const size = arr.shape.reduce((s, x) => s * x, 1);
5
3
  const list = new Array(size);
6
4
 
7
- cwise({
8
- args: ['array', 'scalar', 'scalar'],
9
- body: (a, l, i) => {
10
- l[i] = a; // eslint-disable-line
11
- i++; // eslint-disable-line
12
- },
13
- })(arr, list, 0);
5
+ if (arr.dimension === 1) {
6
+ let l = 0;
7
+ for (let i = 0; i < arr.shape[0]; ++i) {
8
+ list[l] = arr.get(i);
9
+ l++;
10
+ }
11
+ } else {
12
+ let l = 0;
13
+ for (let i = 0; i < arr.shape[0]; ++i) {
14
+ for (let j = 0; j < arr.shape[1]; ++j) {
15
+ list[l] = arr.get(i, j);
16
+ l++;
17
+ }
18
+ }
19
+ }
14
20
 
15
21
  return list;
16
22
  };
@@ -19,8 +19,7 @@ $unit: 24px;
19
19
  border: 0;
20
20
  border-radius: $unit / 8;
21
21
  background: $gray-lighter;
22
- transition: height $fast $ease,
23
- margin $fast $ease;
22
+ transition: height $fast $ease, margin $fast $ease;
24
23
  }
25
24
 
26
25
  .multitrack-header-dark {
@@ -123,14 +122,20 @@ $unit: 24px;
123
122
  width: $unit;
124
123
  height: 100%;
125
124
  padding: $unit / 4;
126
- transition: background $fast $ease,
127
- color $fast $ease;
125
+ transition: background $fast $ease, color $fast $ease;
126
+
127
+ g {
128
+ stroke: $gray;
129
+ }
128
130
 
129
131
  &:hover,
130
132
  &:active,
131
133
  &:focus {
132
134
  color: $white;
133
135
  background: $active;
136
+ g {
137
+ stroke: $white;
138
+ }
134
139
  }
135
140
 
136
141
  &:last-child {
@@ -145,7 +150,7 @@ $unit: 24px;
145
150
  }
146
151
 
147
152
  .multitrack-header-icon-squeazed {
148
- width: $unit / 1.2 5;
153
+ width: $unit / 1.2 5;
149
154
  padding-left: $unit / 8;
150
155
  padding-right: $unit / 8;
151
156
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "higlass",
3
- "version": "1.11.7",
3
+ "version": "1.11.10",
4
4
  "description": "HiGlass Hi-C / genomic / large data viewer",
5
5
  "author": "Peter Kerpedjiev <pkerpedjiev@gmail.com>",
6
6
  "main": "dist/hglib.js",
@@ -47,7 +47,6 @@
47
47
  "ajv": "^6.10.0",
48
48
  "box-intersect": "^1.0.1",
49
49
  "css-element-queries": "github:marcj/css-element-queries",
50
- "cwise": "^1.0.10",
51
50
  "d3-array": "^1.2.1",
52
51
  "d3-axis": "^1.0.4",
53
52
  "d3-brush": "github:flekschas/d3-brush",
@@ -71,7 +70,7 @@
71
70
  "path": "^0.12.7",
72
71
  "prismjs": "^1.16.0",
73
72
  "prop-types": "^15.6.0",
74
- "pub-sub-es": "^1.2.1",
73
+ "pub-sub-es": "^2.0.1",
75
74
  "react": "^16.6.3",
76
75
  "react-autocomplete": "github:tiemevanveen/react-autocomplete#fix-176",
77
76
  "react-bootstrap": "0.32.1",
@@ -1,38 +0,0 @@
1
- /* jshint esnext: true */
2
- import React from 'react';
3
- import PropTypes from 'prop-types';
4
- import { Collapse, ControlLabel, Panel } from 'react-bootstrap';
5
-
6
- const CollapsePanel = (props) => (
7
- <div>
8
- <ControlLabel>
9
- <a
10
- className={`collapse-toggle-icon ${props.collapsedClass(
11
- props.collapsed,
12
- )}`}
13
- onClick={() => props.toggleCollapse()}
14
- role="button"
15
- tabIndex={0}
16
- >
17
- {props.name}
18
- </a>
19
- </ControlLabel>
20
- <Collapse in={!props.collapsed}>
21
- <Panel>{props.children}</Panel>
22
- </Collapse>
23
- </div>
24
- );
25
-
26
- CollapsePanel.propTypes = {
27
- children: PropTypes.node.isRequired,
28
- collapsed: PropTypes.bool.isRequired,
29
- collapsedClass: PropTypes.func.isRequired,
30
- toggleCollapse: PropTypes.func.isRequired,
31
- name: PropTypes.string,
32
- };
33
-
34
- CollapsePanel.defaultProps = {
35
- name: 'Advanced Options',
36
- };
37
-
38
- export default CollapsePanel;
@@ -1,70 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import React from 'react';
3
- import { Collapse, Panel, Checkbox } from 'react-bootstrap';
4
-
5
- import CollapsePanel from './CollapsePanel';
6
- import TilesetFinder from './TilesetFinder';
7
-
8
- export class SeriesOptions extends React.Component {
9
- constructor(props) {
10
- super(props);
11
-
12
- this.state = {
13
- advancedVisible: true,
14
- };
15
- }
16
-
17
- handleNormalizeTilesetChanged() {}
18
-
19
- handleNormalizeCheckboxChanged(e) {
20
- this.setState({
21
- normalizeChecked: e.target.checked,
22
- });
23
- }
24
-
25
- toggleAdvancedVisible() {
26
- this.setState((prevState) => ({
27
- advancedVisible: !prevState.advancedVisible,
28
- }));
29
- }
30
-
31
- render() {
32
- // console.log('trackType:', this.props.trackType);
33
-
34
- return (
35
- <CollapsePanel
36
- collapsed={this.state.advancedVisible}
37
- toggleCollapse={this.toggleAdvancedVisible.bind(this)}
38
- >
39
- <Checkbox
40
- ref={(c) => {
41
- this.normalizeCheckbox = c;
42
- }}
43
- onChange={this.handleNormalizeCheckboxChanged.bind(this)}
44
- >
45
- Normalize By
46
- </Checkbox>
47
-
48
- <Collapse in={this.state.normalizeChecked}>
49
- <Panel>
50
- <TilesetFinder
51
- onTrackChosen={(value) =>
52
- this.props.onTrackChosen(value, this.props.position)
53
- }
54
- selectedTilesetChanged={this.handleNormalizeTilesetChanged.bind(
55
- this,
56
- )}
57
- />
58
- </Panel>
59
- </Collapse>
60
- </CollapsePanel>
61
- );
62
- }
63
- }
64
-
65
- SeriesOptions.propTypes = {
66
- onTrackChosen: PropTypes.func,
67
- position: PropTypes.string,
68
- };
69
-
70
- export default SeriesOptions;
package/dist/hglib.css DELETED
@@ -1 +0,0 @@
1
- .ContextMenu-module_context-menu-2OwvL{position:fixed;background-color:hsla(0,0%,100%,.95);border:1px solid rgba(0,0,0,.1);border-radius:3px;font-size:12px;cursor:default;padding:3px;-webkit-box-shadow:0 0 3px 0 rgba(0,0,0,.1),0 1px 5px 0 rgba(0,0,0,.05);box-shadow:0 0 3px 0 rgba(0,0,0,.1),0 1px 5px 0 rgba(0,0,0,.05)}.ContextMenu-module_context-menu-dark-2PO31{color:#ccc;background-color:rgba(68,68,68,.97)}.ContextMenu-module_context-menu-icon-I4kiw{display:inline-block;margin-right:3px;vertical-align:middle}.ContextMenu-module_context-menu-icon-I4kiw>svg{width:30px;height:20px}.ContextMenu-module_context-menu-item-1HeVv{padding:2px;white-space:nowrap;border-radius:2px;-webkit-transition:background .15s ease,color .15s ease;-o-transition:background .15s ease,color .15s ease;transition:background .15s ease,color .15s ease}.ContextMenu-module_context-menu-item-1HeVv:hover{background:#337ab7;color:#fff}.ContextMenu-module_context-menu-hr-3yapb{margin-top:5px;margin-bottom:5px;border:0;border-top:1px solid rgba(0,0,0,.1)}.ContextMenu-module_play-icon-R4pIO{width:12px;height:12px;position:absolute;right:5px}.ContextMenu-module_context-menu-span-8EUfZ{margin-right:20px;vertical-align:middle;display:inline-block;line-height:normal;white-space:nowrap}.ContextMenu-module_context-menu-thumbnail-2vHLD{margin-right:10px;border:1px solid #888}.ContextMenu-module_context-menu-thumbnail-inline-1iOcg{display:inline-block;margin-right:10px;vertical-align:middle}.TrackControl-module_track-control-2zDf3,.TrackControl-module_track-control-vertical-2McB_{position:absolute;z-index:1;display:-ms-flexbox;display:flex;background:hsla(0,0%,100%,.75);right:2px;top:2px;border-radius:2.5px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.05),0 0 3px 0 rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.05),0 0 3px 0 rgba(0,0,0,.1);opacity:0;-webkit-transition:opacity .15s ease,background .15s ease,-webkit-box-shadow .15s ease;transition:opacity .15s ease,background .15s ease,-webkit-box-shadow .15s ease;-o-transition:opacity .15s ease,background .15s ease,box-shadow .15s ease;transition:opacity .15s ease,background .15s ease,box-shadow .15s ease;transition:opacity .15s ease,background .15s ease,box-shadow .15s ease,-webkit-box-shadow .15s ease}.TrackControl-module_track-control-dark-fP2uZ,.TrackControl-module_track-control-dark-fP2uZ .TrackControl-module_track-control-active-2JD9i{background:rgba(40,40,40,.85)}.TrackControl-module_track-control-vertical-2McB_{-ms-flex-direction:column-reverse;flex-direction:column-reverse}.TrackControl-module_track-control-left-zHd9W{left:2px;right:auto}.TrackControl-module_track-control-active-2JD9i,.TrackControl-module_track-control-vertical-active-1QCKn{opacity:1;z-index:1}.TrackControl-module_track-control-active-2JD9i:hover,.TrackControl-module_track-control-vertical-active-1QCKn:hover{background:#fff;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1),0 0 3px 0 rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.1),0 0 3px 0 rgba(0,0,0,.2)}.TrackControl-module_track-control-dark-fP2uZ.TrackControl-module_track-control-active-2JD9i:hover{background:rgba(34,34,34,.95)}.TrackControl-module_track-control-padding-right-2p6Lp{right:80px}.TrackControl-module_track-control-button-2fdIb{width:20px;height:20px;padding:4px;cursor:pointer;opacity:.66;-webkit-transition:background .15s ease,color .15s ease,opacity .15s ease;-o-transition:background .15s ease,color .15s ease,opacity .15s ease;transition:background .15s ease,color .15s ease,opacity .15s ease}.TrackControl-module_track-control-button-2fdIb:hover{color:#fff;background:#337ab7;opacity:1}.TrackControl-module_track-control-button-2fdIb:first-child{border-radius:2.5px 0 0 2.5px}.TrackControl-module_track-control-button-2fdIb:last-child{border-radius:0 2.5px 2.5px 0}.TrackControl-module_track-control-dark-fP2uZ .TrackControl-module_track-control-button-2fdIb{color:#ccc}.TrackControl-module_track-control-dark-fP2uZ .TrackControl-module_track-control-button-2fdIb:hover{color:#fff;background:#337ab7;opacity:1}.TrackControl-module_track-control-button-vertical-1s22z:first-child{border-radius:0 0 2.5px 2.5px}.TrackControl-module_track-control-button-vertical-1s22z:last-child{border-radius:2.5px 2.5px 0 0}.CenterTrack-module_center-track-3ptRW{position:relative;background:transparent}.CenterTrack-module_center-track-container-2ELhp{position:absolute;z-index:1}.Track-module_track-range-selection-1yrDf{position:absolute;z-index:-1;opacity:0;-webkit-transition:opacity .15s ease;-o-transition:opacity .15s ease;transition:opacity .15s ease}.Track-module_track-range-selection-active-1oljJ{z-index:1;opacity:1}.Track-module_track-range-selection-group-inactive-YNRM4{display:none}.Track-module_track-range-selection-group-brush-selection-2VYDl{outline:2px solid rgba(0,0,0,.33);fill:#000;fill-opacity:.1}.DragListeningDiv-module_drag-listening-div-active-3wpRk{z-index:10;-webkit-box-shadow:inset 0 0 3px 0 red;box-shadow:inset 0 0 3px 0 red}.GalleryTracks-module_gallery-tracks-3tsUO{position:relative;top:0;left:0;width:100%;height:100%}.GalleryTracks-module_gallery-track-eGKoq{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;top:0;right:0;bottom:0;left:0}.GalleryTracks-module_gallery-invisible-track-1hMJp,.GalleryTracks-module_gallery-sub-track-z1HEh{position:absolute}.TiledPlot-module_tiled-plot-uFHiB{position:relative;-ms-flex:1 1;flex:1 1;overflow:hidden}.TiledPlot-module_horizontalList-1c1P8{display:-ms-flexbox;display:flex;width:600px;height:300px;white-space:nowrap}.TiledPlot-module_list-24zgV{width:400px;height:600px;overflow:hidden;-webkit-overflow-scrolling:touch}.TiledPlot-module_stylizedList-Mt4JL{position:relative;z-index:0;background-color:#f3f3f3;outline:none}.TiledPlot-module_stylizedItem-2bQBK{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%;background-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#333;font-weight:400}.TiledPlot-module_stylizedHelper-3IVEu{-webkit-box-shadow:0 5px 5px -5px rgba(0,0,0,.2),0 -5px 5px -5px rgba(0,0,0,.2);box-shadow:0 5px 5px -5px rgba(0,0,0,.2),0 -5px 5px -5px rgba(0,0,0,.2);background-color:hsla(0,0%,100%,.8);cursor:row-resize}.TiledPlot-module_stylizedHelper-3IVEu.TiledPlot-module_horizontalItem-2-ZjU{cursor:col-resize}.TiledPlot-module_horizontalItem-2-ZjU{display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.TiledPlot-module_resizable-track-2oLT9{width:100%;height:100%}path.TiledPlot-module_domain-qYw6K{stroke-width:0px}.TrackRenderer-module_track-renderer-3TM7n{position:relative}.TrackRenderer-module_track-renderer-element-2i16D,.TrackRenderer-module_track-renderer-events-3tVM2{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.TrackRenderer-module_track-renderer-events-3tVM2{z-index:1}.Button-module_button-3YXsQ{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;padding:.5em;color:#000;font-size:1em;line-height:1em;border:0;border-radius:2.5px;background:#fff;-webkit-box-shadow:0 0 0 1px #ccc;box-shadow:0 0 0 1px #ccc;-webkit-transition:background .15s ease,-webkit-transform .15s ease,-webkit-box-shadow .15s ease;transition:background .15s ease,-webkit-transform .15s ease,-webkit-box-shadow .15s ease;-o-transition:transform .15s ease,box-shadow .15s ease,background .15s ease;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;transition:transform .15s ease,box-shadow .15s ease,background .15s ease,-webkit-transform .15s ease,-webkit-box-shadow .15s ease;-webkit-appearance:none}.Button-module_button-3YXsQ:hover{background:#f2f2f2;-webkit-box-shadow:0 0 0 1px #ccc;box-shadow:0 0 0 1px #ccc}.Button-module_button-3YXsQ:focus{-webkit-box-shadow:0 0 0 2px #0089ff;box-shadow:0 0 0 2px #0089ff}.Button-module_button-3YXsQ:active{-webkit-transform:scale(.9);-ms-transform:scale(.9);transform:scale(.9)}.Button-module_button-3YXsQ:active,.Button-module_button-3YXsQ:focus,.Button-module_button-3YXsQ:hover{cursor:pointer;outline:none}.Button-module_button-shortcut-1zMAn{padding:.1em 5px;color:#999;font-size:.8em;-webkit-transition:color .15s ease;-o-transition:color .15s ease;transition:color .15s ease}.Cross-module_cross-3WYME{position:relative;width:1em;height:1em}.Cross-module_cross-3WYME:after,.Cross-module_cross-3WYME:before{content:"";display:block;position:absolute;top:50%;left:0;width:1em;height:1px;background:#000;-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center}.Cross-module_cross-3WYME:before{-webkit-transform:translateY(-50%) rotate(45deg);-ms-transform:translateY(-50%) rotate(45deg);transform:translateY(-50%) rotate(45deg)}.Cross-module_cross-3WYME:after{-webkit-transform:translateY(-50%) rotate(-45deg);-ms-transform:translateY(-50%) rotate(-45deg);transform:translateY(-50%) rotate(-45deg)}.Modal-module_modal-background-3vDy1{position:absolute;z-index:1000;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.666);-webkit-animation:Modal-module_fade-in-3Nm-O .2s ease 1;animation:Modal-module_fade-in-3Nm-O .2s ease 1;-webkit-transition:opacity .2s ease;-o-transition:opacity .2s ease;transition:opacity .2s ease}.Modal-module_modal-hide-3huBg{opacity:0}.Modal-module_modal-wrap-1HWNn{position:absolute;top:20px;right:20px;bottom:20px;left:20px}.Modal-module_modal-window-1XZAq{position:relative;width:100%;max-width:640px;max-height:100%;margin-left:auto;margin-right:auto;color:#000;border-radius:5px;background:#fff;-webkit-animation:Modal-module_fade-scale-in-11Dkx .2s ease 1;animation:Modal-module_fade-scale-in-11Dkx .2s ease 1}.Modal-module_modal-window-max-height-CZYCl{height:100%}.Modal-module_modal-content-2xb_x{padding:10px}@-webkit-keyframes Modal-module_fade-in-3Nm-O{0%{opacity:0}to{opacity:1}}@keyframes Modal-module_fade-in-3Nm-O{0%{opacity:0}to{opacity:1}}@-webkit-keyframes Modal-module_fade-scale-in-11Dkx{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes Modal-module_fade-scale-in-11Dkx{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.Dialog-module_dialog-header-2mk2M{position:relative;z-index:2;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;margin:0 -10px 10px;padding:0 10px 10px;border-bottom:1px solid #ccc}.Dialog-module_dialog-header-2mk2M h3{margin:0;padding:0;font-size:20px;line-height:1em}.Dialog-module_dialog-header-2mk2M button{font-size:10px}.Dialog-module_dialog-main-max-height-1EAb2{position:absolute;z-index:1;top:40px;right:0;bottom:50px;left:0;padding:10px;overflow:auto}.Dialog-module_dialog-footer-1BnEv,.Dialog-module_dialog-footer-max-height-KjDek{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;margin:10px -10px 0;padding:10px 10px 0;border-top:1px solid #ccc}.Dialog-module_dialog-footer-1BnEv button,.Dialog-module_dialog-footer-max-height-KjDek button{font-size:14px}.Dialog-module_dialog-footer-max-height-KjDek{position:absolute;z-index:2;left:10px;right:10px;bottom:10px}.tileset-finder-label{font-weight:700}.tileset-finder-search-box{margin-left:10px}.tileset-finder-search-bar{display:-ms-flexbox;display:flex;margin-left:5px;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}.tileset-finder-checkbox-tree{margin:5px;padding:3px;border:1px solid #aaa;border-radius:5px}.react-checkbox-tree{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;font-size:14px}.react-checkbox-tree>ol{-ms-flex:1 1 auto;flex:1 1 auto}.react-checkbox-tree ol{margin:0;padding-left:0;list-style-type:none}.react-checkbox-tree ol ol{padding-left:24px}.react-checkbox-tree button{line-height:normal;color:inherit}.react-checkbox-tree button:focus{outline:none}.react-checkbox-tree button:disabled{cursor:not-allowed}.react-checkbox-tree .rct-bare-label{cursor:default}.react-checkbox-tree label{margin-bottom:0;cursor:pointer;font-weight:400}.react-checkbox-tree label:hover{background:rgba(51,51,204,.1)}.react-checkbox-tree label:active{background:rgba(51,51,204,.15)}.react-checkbox-tree:not(.rct-native-display) input{display:none}.react-checkbox-tree.rct-native-display input{margin:0 5px}.react-checkbox-tree .rct-icon{font-family:FontAwesome;font-style:normal}.rct-disabled>.rct-text>label{opacity:.75;cursor:not-allowed}.rct-disabled>.rct-text>label:active,.rct-disabled>.rct-text>label:hover{background:transparent}.rct-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.rct-options{-ms-flex:0 0 auto;flex:0 0 auto;margin-left:.5rem;text-align:right}.rct-option{opacity:.75;border:0;background:none;cursor:pointer;padding:0 4px;font-size:18px}.rct-option:hover{opacity:1}.rct-option+.rct-option{margin-left:2px}.rct-checkbox,.rct-collapse,.rct-node-icon{padding:0 5px}.rct-checkbox *,.rct-collapse *,.rct-node-icon *{display:inline-block;margin:0;width:14px}.rct-collapse{border:0;background:none;line-height:normal;color:inherit;font-size:12px}.rct-collapse.rct-collapse-btn{cursor:pointer}.rct-collapse>.rct-icon-expand-close{opacity:.5}.rct-collapse>.rct-icon-expand-close:hover{opacity:1}.rct-native-display .rct-checkbox{display:none}.rct-node-clickable{cursor:pointer}.rct-node-clickable:hover{background:rgba(51,51,204,.1)}.rct-node-clickable:focus{outline:0;background:rgba(51,51,204,.2)}.rct-node-icon{color:#33c}.rct-title{padding:0 5px}.rct-icon-expand-close:before{content:"\f054"}.rct-icon-expand-open:before{content:"\f078"}.rct-icon-uncheck:before{content:"\f096"}.rct-icon-check:before{content:"\f046"}.rct-icon-half-check:before{opacity:.5;content:"\f046"}.rct-icon-leaf:before{content:"\f016"}.rct-icon-parent-open:before{content:"\f115"}.rct-icon-parent-close:before{content:"\f114"}.rct-icon-expand-all:before{content:"\f0fe"}.rct-icon-collapse-all:before{content:"\f146"}.plot-type-selected{background-color:rgba(0,0,255,.3)}.plot-type-container{overflow-y:scroll;padding:3px;max-height:15vh}.plot-type-container,.plot-type-container-empty{margin:5px;border:1px solid #aaa;border-radius:5px}.plot-type-container-empty{padding:3px 8px;background-color:#e8e8e8}.plot-type-item{cursor:pointer}.plot-type-item:not(.plot-type-selected):hover{background-color:rgba(51,51,204,.1)}.track-thumbnail{width:30px;height:20px;display:inline-block;margin-right:10;vertical-align:middle}.track-thumbnail>svg{width:20px;height:20px}.AddTrackDialog-module_collapse-toggle-icon-1Of5_:before{font-family:Glyphicons Halflings;content:"\E159";float:left;padding-right:3px}.AddTrackDialog-module_collapse-toggle-icon-1Of5_.AddTrackDialog-module_collapsed-1ifB1:before{content:"\E158"}.AddTrackDialog-module_modal-title-1Atka{font-family:Roboto;font-weight:700}.AddTrackDialog-module_modal-container-14d_4{position:relative}.AddTrackDialog-module_modal-container-14d_4 .AddTrackDialog-module_modal-backdrop-ZrVQg,.AddTrackDialog-module_modal-container-14d_4 .AddTrackDialog-module_modal-bZqLI{position:absolute}.AddTrackDialog-module_modal-dialog-3bKDk{position:relative;display:table;overflow-y:auto;overflow-x:auto;width:600px;min-width:300px;margin:auto}.DraggableDiv-module_bottom-right-handle-o7UYG,.DraggableDiv-module_top-right-handle-oUk0R{border-right:solid #000;border-top:solid #000}.DraggableDiv-module_bottom-left-handle-FO7d4,.DraggableDiv-module_top-left-handle-R5Zui{border-left:solid #000;border-top:solid #000}.DraggableDiv-module_bottom-draggable-handle-3olLp,.DraggableDiv-module_left-draggable-handle-2gpow,.DraggableDiv-module_right-draggable-handle-2Sriq,.DraggableDiv-module_top-draggable-handle-3W5bP{position:absolute;opacity:0;-webkit-transition:opacity .15s ease,-webkit-transform .15s ease;transition:opacity .15s ease,-webkit-transform .15s ease;-o-transition:transform .15s ease,opacity .15s ease;transition:transform .15s ease,opacity .15s ease;transition:transform .15s ease,opacity .15s ease,-webkit-transform .15s ease}.DraggableDiv-module_draggable-div-2eWml{background-color:transparent;-webkit-box-sizing:border-box;box-sizing:border-box}.DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_top-draggable-handle-grabber-2mVDE{width:10px;height:4px;border-top:1px solid #000;border-bottom:1px solid #000}.DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_top-draggable-handle-grabber-2mVDE{margin:4px 7px}.DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_right-draggable-handle-grabber-1mtC0{width:4px;height:10px;border-left:1px solid #000;border-right:1px solid #000}.DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_right-draggable-handle-grabber-1mtC0{margin:7px 4px}.DraggableDiv-module_draggable-div-2eWml:hover .DraggableDiv-module_bottom-draggable-handle-3olLp,.DraggableDiv-module_draggable-div-2eWml:hover .DraggableDiv-module_left-draggable-handle-2gpow,.DraggableDiv-module_draggable-div-2eWml:hover .DraggableDiv-module_right-draggable-handle-2Sriq,.DraggableDiv-module_draggable-div-2eWml:hover .DraggableDiv-module_top-draggable-handle-3W5bP{opacity:.5;background:hsla(0,0%,100%,.75);-webkit-box-shadow:0 0 3px 1px hsla(0,0%,100%,.75);box-shadow:0 0 3px 1px hsla(0,0%,100%,.75);border-radius:3px}.DraggableDiv-module_bottom-draggable-handle-3olLp:active,.DraggableDiv-module_bottom-draggable-handle-3olLp:hover,.DraggableDiv-module_left-draggable-handle-2gpow:active,.DraggableDiv-module_left-draggable-handle-2gpow:hover,.DraggableDiv-module_right-draggable-handle-2Sriq:active,.DraggableDiv-module_right-draggable-handle-2Sriq:hover,.DraggableDiv-module_top-draggable-handle-3W5bP:active,.DraggableDiv-module_top-draggable-handle-3W5bP:hover{opacity:1!important;-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.DraggableDiv-module_bottom-draggable-handle-3olLp:active .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_bottom-draggable-handle-3olLp:active .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_bottom-draggable-handle-3olLp:active .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.DraggableDiv-module_bottom-draggable-handle-3olLp:active .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.DraggableDiv-module_bottom-draggable-handle-3olLp:hover .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_bottom-draggable-handle-3olLp:hover .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_bottom-draggable-handle-3olLp:hover .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.DraggableDiv-module_bottom-draggable-handle-3olLp:hover .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.DraggableDiv-module_left-draggable-handle-2gpow:active .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_left-draggable-handle-2gpow:active .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_left-draggable-handle-2gpow:active .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.DraggableDiv-module_left-draggable-handle-2gpow:active .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.DraggableDiv-module_left-draggable-handle-2gpow:hover .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_left-draggable-handle-2gpow:hover .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_left-draggable-handle-2gpow:hover .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.DraggableDiv-module_left-draggable-handle-2gpow:hover .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.DraggableDiv-module_right-draggable-handle-2Sriq:active .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_right-draggable-handle-2Sriq:active .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_right-draggable-handle-2Sriq:active .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.DraggableDiv-module_right-draggable-handle-2Sriq:active .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.DraggableDiv-module_right-draggable-handle-2Sriq:hover .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_right-draggable-handle-2Sriq:hover .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_right-draggable-handle-2Sriq:hover .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.DraggableDiv-module_right-draggable-handle-2Sriq:hover .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.DraggableDiv-module_top-draggable-handle-3W5bP:active .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_top-draggable-handle-3W5bP:active .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_top-draggable-handle-3W5bP:active .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.DraggableDiv-module_top-draggable-handle-3W5bP:active .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.DraggableDiv-module_top-draggable-handle-3W5bP:hover .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_top-draggable-handle-3W5bP:hover .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_top-draggable-handle-3W5bP:hover .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.DraggableDiv-module_top-draggable-handle-3W5bP:hover .DraggableDiv-module_top-draggable-handle-grabber-2mVDE{-webkit-box-shadow:0 0 3px 1px #0089ff;box-shadow:0 0 3px 1px #0089ff;background:#0089ff}.DraggableDiv-module_bottom-draggable-handle-3olLp,.DraggableDiv-module_top-draggable-handle-3W5bP{height:12px;cursor:row-resize}.DraggableDiv-module_left-draggable-handle-2gpow,.DraggableDiv-module_right-draggable-handle-2Sriq{width:12px;cursor:col-resize}.HorizontalTiledPlot-module_horizontal-tiled-plot-3EK65,.VerticalTiledPlot-module_vertical-tiled-plot-R3sb7{position:relative}.GenomePositionSearchBox-module_genome-position-search-focus-23by2,.GenomePositionSearchBox-module_genome-position-search-SYccr{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:stretch;align-items:stretch;height:100%;margin-bottom:0;font-size:13.71429px;-webkit-transition:font-size .15s ease,-webkit-box-shadow .15s ease;transition:font-size .15s ease,-webkit-box-shadow .15s ease;-o-transition:box-shadow .15s ease,font-size .15s ease;transition:box-shadow .15s ease,font-size .15s ease;transition:box-shadow .15s ease,font-size .15s ease,-webkit-box-shadow .15s ease}.GenomePositionSearchBox-module_genome-position-search-focus-23by2{-webkit-box-shadow:0 0 0 1px #337ab7,0 0 3px 1px #337ab7;box-shadow:0 0 0 1px #337ab7,0 0 3px 1px #337ab7}.GenomePositionSearchBox-module_genome-position-search-bar-1_0ZU{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;padding:3px;color:#666;font-size:inherit;line-height:24px;border:0;border-radius:3px 0 0 3px;background:transparent}.GenomePositionSearchBox-module_genome-position-search-bar-1_0ZU:focus{outline:none;color:#000}.GenomePositionSearchBox-module_genome-position-search-dark-EML2e .GenomePositionSearchBox-module_genome-position-search-bar-1_0ZU:focus{color:#e5e5e5}.GenomePositionSearchBox-module_genome-position-search-bar-button-33SWJ,.GenomePositionSearchBox-module_genome-position-search-bar-button-focus-1IhAk{display:block;height:100%;padding:0 8px!important;color:#999;border:0!important;border-radius:0!important;background:transparent;-webkit-transition:background .15s ease,color .15s ease;-o-transition:background .15s ease,color .15s ease;transition:background .15s ease,color .15s ease}.GenomePositionSearchBox-module_genome-position-search-bar-button-33SWJ:active,.GenomePositionSearchBox-module_genome-position-search-bar-button-33SWJ:focus,.GenomePositionSearchBox-module_genome-position-search-bar-button-33SWJ:hover,.GenomePositionSearchBox-module_genome-position-search-bar-button-focus-1IhAk,.GenomePositionSearchBox-module_genome-position-search-bar-button-focus-1IhAk:active,.GenomePositionSearchBox-module_genome-position-search-bar-button-focus-1IhAk:focus,.GenomePositionSearchBox-module_genome-position-search-bar-button-focus-1IhAk:hover{color:#fff;background:#337ab7}.GenomePositionSearchBox-module_genome-position-search-bar-icon-14AEk,.GenomePositionSearchBox-module_genome-position-search-bar-icon-focus-1Ay7Z{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transition:color .15s ease;-o-transition:color .15s ease;transition:color .15s ease}.GenomePositionSearchBox-module_genome-position-search-bar-icon-14AEk:first-child,.GenomePositionSearchBox-module_genome-position-search-bar-icon-focus-1Ay7Z:first-child{margin-left:6px;margin-right:2px}.GenomePositionSearchBox-module_genome-position-search-bar-icon-14AEk span,.GenomePositionSearchBox-module_genome-position-search-bar-icon-focus-1Ay7Z span{display:block;margin-top:-2px}.GenomePositionSearchBox-module_genome-position-search-bar-icon-focus-1Ay7Z{color:#337ab7}.GenomePositionSearchBox-module_genome-position-search-bar-suggestions-SrIoU{position:fixed;border-radius:3px;-webkit-box-shadow:0 0 3px 0 rgba(0,0,0,.1),0 1px 5px 0 rgba(0,0,0,.05);box-shadow:0 0 3px 0 rgba(0,0,0,.1),0 1px 5px 0 rgba(0,0,0,.05);background-color:hsla(0,0%,100%,.95);border:1px solid rgba(0,0,0,.1);padding:2px 0;font-size:90%;overflow:auto;max-height:50%}.GenomePositionSearchBox-module_btn-2bTUd{display:inline-block;margin-bottom:0;font-size:13.71429px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.GenomePositionSearchBox-module_btn-sm-2Ltms{font-size:12px;line-height:1.5;border-radius:3px}.GenomePositionSearchBox-module_btn-default-2pap4{color:#666;background-color:#fff;border-color:#ccc}.GenomePositionSearchBox-module_btn-default-2pap4:hover{color:#000;background:#ccc}.GenomePositionSearchBox-module_btn-default-2pap4:active,.GenomePositionSearchBox-module_btn-default-2pap4:focus{color:#fff;border-color:#000;background:#000}.GenomePositionSearchBox-module_genome-position-search-SYccr .GenomePositionSearchBox-module_btn-2bTUd{border-radius:0 3px 3px 0}.ExportLinkDialog-module_export-link-dialog-wrapper-ldYlL{display:-ms-flexbox;display:flex}.ExportLinkDialog-module_export-link-dialog-wrapper-ldYlL input{-ms-flex-positive:1;flex-grow:1}.AddTrackPositionMenu-module_add-track-position-table-RHODc{border-collapse:collapse;margin:5px;color:#666}.AddTrackPositionMenu-module_add-track-position-table-dark-_B9fu{color:#ccc}.AddTrackPositionMenu-module_add-track-position-other-lIGbb{outline:none}.AddTrackPositionMenu-module_add-track-position-top-center-2Dw4e{min-width:80px;min-height:20px;text-align:center;outline:none;border-top:1px solid #999;border-left:1px solid #999;border-right:1px solid #999;border-radius:2px 2px 0 0}.AddTrackPositionMenu-module_add-track-position-top-center-2Dw4e:hover{color:#fff;background-color:#337ab7}.AddTrackPositionMenu-module_add-track-position-middle-left-2ycaN{min-width:40px;text-align:center;outline:none;border-top:1px solid #999;border-left:1px solid #999;border-bottom:1px solid #999;border-radius:2px 0 0 2px}.AddTrackPositionMenu-module_add-track-position-middle-left-2ycaN:hover{background-color:#337ab7;color:#fff}.AddTrackPositionMenu-module_add-track-position-middle-right-Qqjnn{min-width:40px;text-align:center;outline:none;border-top:1px solid #999;border-right:1px solid #999;border-bottom:1px solid #999;border-radius:0 2px 2px 0}.AddTrackPositionMenu-module_add-track-position-middle-right-Qqjnn:hover{background-color:#337ab7;color:#fff}.AddTrackPositionMenu-module_add-track-position-middle-middle-2YFZd{text-align:center;outline:none;border:1px solid #999}.AddTrackPositionMenu-module_add-track-position-middle-middle-2YFZd:hover{background-color:#337ab7;color:#fff}.AddTrackPositionMenu-module_add-track-position-bottom-middle-3ityE{min-height:20px;text-align:center;outline:none;border-left:1px solid #999;border-right:1px solid #999;border-bottom:1px solid #999;border-radius:0 0 2px 2px}.AddTrackPositionMenu-module_add-track-position-bottom-middle-3ityE:hover{background-color:#337ab7;color:#fff}.AddTrackPositionMenu-module_add-track-position-span-2hbwE{margin:5px}.ViewHeader-module_multitrack-header-3XnZx,.ViewHeader-module_multitrack-header-focus-3akkN,.ViewHeader-module_multitrack-header-squeazed-GHIVd{position:relative;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;height:24px;margin-top:4px;margin-bottom:4px;color:#999;font-size:12px;line-height:24px;vertical-align:middle;border:0;border-radius:3px;background:#e5e5e5;-webkit-transition:height .15s ease,margin .15s ease;-o-transition:height .15s ease,margin .15s ease;transition:height .15s ease,margin .15s ease}.ViewHeader-module_multitrack-header-dark-97tZt{background:#222}.ViewHeader-module_multitrack-header-focus-3akkN{height:32px;margin-top:0;margin-bottom:0}.ViewHeader-module_multitrack-header-id-3YURk{padding-left:3px}.ViewHeader-module_multitrack-header-id-3YURk:before{content:"ID:";font-weight:700;padding-right:5px}.ViewHeader-module_multitrack-header-left-Qj9Sm{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1}.ViewHeader-module_multitrack-header-grabber-3jrIz,.ViewHeader-module_multitrack-header-grabber-squeazed-dU45Z{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:24px;height:100%;cursor:move;border-radius:3px 0 0 3px;-webkit-transition:background .15s ease;-o-transition:background .15s ease;transition:background .15s ease}.ViewHeader-module_multitrack-header-grabber-3jrIz:hover,.ViewHeader-module_multitrack-header-grabber-squeazed-dU45Z:hover{background:#999}.ViewHeader-module_multitrack-header-grabber-3jrIz:hover div,.ViewHeader-module_multitrack-header-grabber-squeazed-dU45Z:hover div{background:#fff}.ViewHeader-module_multitrack-header-grabber-3jrIz div,.ViewHeader-module_multitrack-header-grabber-squeazed-dU45Z div{width:1px;height:50%;margin:1px;background:#999;-webkit-transition:background .15s ease;-o-transition:background .15s ease;transition:background .15s ease}.ViewHeader-module_multitrack-header-dark-97tZt .ViewHeader-module_multitrack-header-grabber-3jrIz div{background:#666}.ViewHeader-module_multitrack-header-grabber-squeazed-dU45Z{width:19.2px}.ViewHeader-module_multitrack-header-search-1X_3_{position:relative;-ms-flex-positive:1;flex-grow:1;height:100%;margin-right:12px}.ViewHeader-module_multitrack-header-search-1X_3_:after{position:absolute;top:3px;bottom:3px;right:-12px;display:block;content:"";width:1px;margin:0 6px;background:#ccc}.ViewHeader-module_multitrack-header-dark-97tZt .ViewHeader-module_multitrack-header-search-1X_3_:after{background:#666}.ViewHeader-module_multitrack-header-3XnZx>nav,.ViewHeader-module_multitrack-header-nav-list-2nvcu{display:-ms-flexbox;display:flex}.ViewHeader-module_multitrack-header-icon-16QKZ,.ViewHeader-module_multitrack-header-icon-squeazed-25lkF{width:24px;height:100%;padding:6px;-webkit-transition:background .15s ease,color .15s ease;-o-transition:background .15s ease,color .15s ease;transition:background .15s ease,color .15s ease}.ViewHeader-module_multitrack-header-icon-16QKZ:active,.ViewHeader-module_multitrack-header-icon-16QKZ:focus,.ViewHeader-module_multitrack-header-icon-16QKZ:hover,.ViewHeader-module_multitrack-header-icon-squeazed-25lkF:active,.ViewHeader-module_multitrack-header-icon-squeazed-25lkF:focus,.ViewHeader-module_multitrack-header-icon-squeazed-25lkF:hover{color:#fff;background:#337ab7}.ViewHeader-module_multitrack-header-icon-16QKZ:last-child,.ViewHeader-module_multitrack-header-icon-squeazed-25lkF:last-child{border-radius:0 3px 3px 0}.ViewHeader-module_mouse-tool-selection-1pg2m{color:#fff;border-radius:3px 0 0 3px;background:#337ab7}.ViewHeader-module_multitrack-header-icon-squeazed-25lkF{width:20px 5;padding-left:3px;padding-right:3px}.ViewConfigEditor-module_view-config-editor-header-2nTtX{margin:-10px -10px 0;padding:10px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;background:#f2f2f2}.ViewConfigEditor-module_view-config-editor-header-2nTtX button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;font-size:14px;background:#f2f2f2}.ViewConfigEditor-module_view-config-editor-header-2nTtX button:hover{background:#e5e5e5}.ViewConfigEditor-module_view-config-editor-header-2nTtX button:hover span{color:#666}.ViewConfigEditor-module_view-config-editor-2HAFN{position:absolute;top:50px;right:0;bottom:0;left:0;margin:1px 0 0;padding:0;overflow:auto;font-size:12.5px;height:calc(100% - 80px)}.ViewConfigEditor-module_view-config-log-1mYmL{position:absolute;right:0;bottom:0;left:0;margin:1px 0 0;padding:0;min-height:30px;background:#f2f2f2;-webkit-transition:height .15s ease;-o-transition:height .15s ease;transition:height .15s ease}.ViewConfigEditor-module_view-config-log-header-3EbEM{background:#f2f2f2;border-top:1px solid #ccc;border-bottom:1px solid #ccc;padding-left:10px;height:30px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;cursor:pointer;position:sticky;position:-webkit-sticky;top:0}.ViewConfigEditor-module_view-config-log-msg-2-CJZ{background:#f2f2f2;overflow:auto;height:calc(100% - 30px)}.ViewConfigEditor-module_view-config-log-msg-2-CJZ td,.ViewConfigEditor-module_view-config-log-msg-2-CJZ tr{outline:none;vertical-align:top}.ViewConfigEditor-module_view-config-log-msg-2-CJZ .ViewConfigEditor-module_title-3nLH_{font-weight:700;padding-left:8px;padding-top:8px;width:100px}.ViewConfigEditor-module_view-config-log-msg-2-CJZ .ViewConfigEditor-module_Warning-_sgiB{color:orange}.ViewConfigEditor-module_view-config-log-msg-2-CJZ .ViewConfigEditor-module_Success-nclFo{color:green}.ViewConfigEditor-module_view-config-log-msg-2-CJZ .ViewConfigEditor-module_Error-3enaC{color:red}.ViewConfigEditor-module_view-config-log-msg-2-CJZ pre{background:#fff;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.HiGlass-module_higlass-1NHR2{position:relative}.HiGlass-module_higlass-dark-theme-2visd{background:#000}.HiGlass-module_higlass-container-overflow-zNXnY,.HiGlass-module_higlass-scroll-container-overflow-2FS0w,.HiGlass-module_higlass-scroll-container-scroll-2lAU4{position:absolute;top:0;right:0;bottom:0;left:0}.HiGlass-module_higlass-scroll-container-overflow-2FS0w{overflow:hidden}.HiGlass-module_higlass-scroll-container-scroll-2lAU4{overflow-x:hidden;overflow-y:auto}.HiGlass-module_higlass-canvas-_mP9r{position:absolute;width:100%;height:100%}.HiGlass-module_higlass-drawing-surface-3aQQo{position:relative}.HiGlass-module_higlass-svg-JJZbf{position:absolute;width:100%;height:100%;left:0;top:0;pointer-events:none}.HiGlass-module_tiled-area-22H1L{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.HiGlass-module_track-mouseover-menu-1AoaP{position:fixed;z-index:1;margin:17px 0 0 9px;padding:0 .25rem;max-width:50vw;word-wrap:break-word;font-size:.8em;pointer-events:none;background:#fff;border-radius:.25rem;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1),0 0 3px 0 rgba(0,0,0,.075),0 0 7px 0 rgba(0,0,0,.05);box-shadow:0 0 0 1px rgba(0,0,0,.1),0 0 3px 0 rgba(0,0,0,.075),0 0 7px 0 rgba(0,0,0,.05)}.higlass .react-grid-layout{position:relative;-webkit-transition:height .2s ease;-o-transition:height .2s ease;transition:height .2s ease}.higlass .react-grid-item{-webkit-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease;-webkit-transition-property:left,top;-o-transition-property:left,top;transition-property:left,top}.higlass .react-grid-item.cssTransforms{-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;-o-transition-property:transform;transition-property:transform;transition-property:transform,-webkit-transform}.higlass .react-grid-item.resizing{z-index:1;will-change:width,height}.higlass .react-grid-item.react-draggable-dragging{-webkit-transition:none;-o-transition:none;transition:none;z-index:3;will-change:transform}.higlass .react-grid-item.react-grid-placeholder{background:red;opacity:.2;-webkit-transition-duration:.1s;-o-transition-duration:.1s;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.higlass .react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;bottom:0;right:0;cursor:se-resize}.higlass .react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.higlass .react-resizable{position:relative}.higlass .react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;-webkit-box-sizing:border-box;box-sizing:border-box;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgd2lkdGg9IjYiIGhlaWdodD0iNiI+PHBhdGggZD0iTTYgNkgwVjQuMmg0LjJWMEg2djZ6IiBvcGFjaXR5PSIuMzAyIi8+PC9zdmc+");background-position:100% 100%;padding:0 3px 3px 0}.higlass .react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.higlass .react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.higlass .react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.higlass .react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.higlass .react-resizable-handle-e,.higlass .react-resizable-handle-w{top:50%;margin-top:-10px;cursor:ew-resize}.higlass .react-resizable-handle-w{left:0;-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg)}.higlass .react-resizable-handle-e{right:0;-webkit-transform:rotate(315deg);-ms-transform:rotate(315deg);transform:rotate(315deg)}.higlass .react-resizable-handle-n,.higlass .react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.higlass .react-resizable-handle-n{top:0;-webkit-transform:rotate(225deg);-ms-transform:rotate(225deg);transform:rotate(225deg)}.higlass .react-resizable-handle-s{bottom:0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.higlass code[class*=language-],.higlass pre[class*=language-]{color:#393a34;font-family:Consolas,Bitstream Vera Sans Mono,Courier New,Courier,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;font-size:.95em;line-height:1.2em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}.higlass code[class*=language-]::-moz-selection,.higlass code[class*=language-] ::-moz-selection,.higlass pre[class*=language-]::-moz-selection,.higlass pre[class*=language-] ::-moz-selection{background:#b3d4fc}.higlass code[class*=language-]::selection,.higlass code[class*=language-] ::selection,.higlass pre[class*=language-]::selection,.higlass pre[class*=language-] ::selection{background:#b3d4fc}.higlass pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border:1px solid #ddd;background-color:#fff}.higlass :not(pre)>code[class*=language-]{padding:1px .2em;background:#f8f8f8;border:1px solid #ddd}.higlass .token.cdata,.higlass .token.comment,.higlass .token.doctype,.higlass .token.prolog{color:#998;font-style:italic}.higlass .token.namespace{opacity:.7}.higlass .token.attr-value,.higlass .token.string{color:#e3116c}.higlass .token.operator,.higlass .token.punctuation{color:#393a34}.higlass .token.boolean,.higlass .token.constant,.higlass .token.entity,.higlass .token.inserted,.higlass .token.number,.higlass .token.property,.higlass .token.regex,.higlass .token.symbol,.higlass .token.url,.higlass .token.variable{color:#36acaa}.higlass .language-autohotkey .token.selector,.higlass .token.atrule,.higlass .token.attr-name,.higlass .token.keyword{color:#00a4db}.higlass .language-autohotkey .token.tag,.higlass .token.deleted,.higlass .token.function{color:#9a050f}.higlass .language-autohotkey .token.keyword,.higlass .token.selector,.higlass .token.tag{color:#00009f}.higlass .token.bold,.higlass .token.function,.higlass .token.important{font-weight:700}.higlass .token.italic{font-style:italic}.higlass *{-webkit-box-sizing:border-box;box-sizing:border-box}.higlass .react-resizable-handle{z-index:1}table.table-track-options{border-collapse:collapse;margin-left:auto;margin-right:auto}td.td-track-options{border:1px solid #fff;outline:none;padding:3px;position:relative;font-family:Roboto,sans-serif;font-size:14px;color:#666}.cell-label{position:absolute;left:0;top:0;margin-left:5px;color:#777}.modal-dialog{position:relative;display:table;overflow-y:auto;overflow-x:auto;width:auto;min-width:300px;margin:auto}