genoverse 4.0.9 → 4.1.0-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/.github/workflows/test.yml +1 -1
  2. package/dist/171.genoverse.js +2 -0
  3. package/dist/171.genoverse.js.map +1 -0
  4. package/dist/2463b90d9a316e4e5294.woff2 +0 -0
  5. package/dist/2582b0e4bcf85eceead0.ttf +0 -0
  6. package/dist/298.genoverse.js +2 -0
  7. package/dist/298.genoverse.js.map +1 -0
  8. package/dist/{394.css → 347.css} +1 -1
  9. package/dist/{394.css.map → 347.css.map} +1 -1
  10. package/dist/347.genoverse.js +2 -0
  11. package/dist/347.genoverse.js.map +1 -0
  12. package/dist/{949.css → 407.css} +27 -27
  13. package/dist/{952.css.map → 407.css.map} +1 -1
  14. package/dist/{729.css → 423.css} +1 -1
  15. package/dist/{729.css.map → 423.css.map} +1 -1
  16. package/dist/423.genoverse.js +2 -0
  17. package/dist/423.genoverse.js.map +1 -0
  18. package/dist/{547.css → 47.css} +1 -1
  19. package/dist/47.css.map +1 -0
  20. package/dist/{166.genoverse.js → 47.genoverse.js} +1 -1
  21. package/dist/{129.css → 512.css} +1 -1
  22. package/dist/{129.css.map → 512.css.map} +1 -1
  23. package/dist/512.genoverse.js +2 -0
  24. package/dist/512.genoverse.js.map +1 -0
  25. package/dist/{232.css → 52.css} +1 -1
  26. package/dist/52.css.map +1 -0
  27. package/dist/52.genoverse.js +2 -0
  28. package/dist/52.genoverse.js.map +1 -0
  29. package/dist/758.css +23 -0
  30. package/dist/758.css.map +1 -0
  31. package/dist/840.genoverse.js +2 -0
  32. package/dist/840.genoverse.js.map +1 -0
  33. package/dist/{547.genoverse.js → 895.genoverse.js} +1 -1
  34. package/dist/89999bdf5d835c012025.woff2 +0 -0
  35. package/dist/914997e1bdfc990d0897.ttf +0 -0
  36. package/dist/{530.css → 943.css} +1 -1
  37. package/dist/{530.css.map → 943.css.map} +1 -1
  38. package/dist/943.genoverse.js +2 -0
  39. package/dist/943.genoverse.js.map +1 -0
  40. package/dist/{469.css → 966.css} +1 -1
  41. package/dist/{469.css.map → 966.css.map} +1 -1
  42. package/dist/966.genoverse.js +2 -0
  43. package/dist/966.genoverse.js.map +1 -0
  44. package/dist/{952.css → 984.css} +27 -27
  45. package/dist/{949.css.map → 984.css.map} +1 -1
  46. package/dist/984.genoverse.js +2 -0
  47. package/dist/984.genoverse.js.map +1 -0
  48. package/dist/genoverse.js +1 -1
  49. package/dist/genoverse.js.map +1 -1
  50. package/eslint.config.js +176 -0
  51. package/package.json +17 -9
  52. package/src/js/Genoverse.js +7 -5
  53. package/src/js/plugins/controlPanel.js +4 -3
  54. package/src/js/plugins/fileDrop.js +4 -2
  55. package/test/View/__snapshots__/render-bar-graph.test.js.snap +4 -4
  56. package/test/View/__snapshots__/render-chromosome.test.js.snap +2 -2
  57. package/test/View/__snapshots__/render-highlights.test.js.snap +4 -4
  58. package/test/View/__snapshots__/render-labels.test.js.snap +77 -77
  59. package/test/View/__snapshots__/render-legends.test.js.snap +3 -3
  60. package/test/View/__snapshots__/render-line-graph.test.js.snap +29 -29
  61. package/test/View/__snapshots__/render-scalebar.test.js.snap +12 -12
  62. package/test/View/__snapshots__/render-scaleline.test.js.snap +15 -15
  63. package/test/View/__snapshots__/render-sequence.test.js.snap +9 -9
  64. package/test/View/__snapshots__/render-transcripts.test.js.snap +58 -58
  65. package/test/track_config/__snapshots__/config-settings.test.js.snap +9 -9
  66. package/utils/devServer.js +14 -1
  67. package/dist/0caf4c6cf244a90efcc5.woff2 +0 -0
  68. package/dist/0d03b1bbd1d62c1e1284.ttf +0 -0
  69. package/dist/129.genoverse.js +0 -2
  70. package/dist/129.genoverse.js.map +0 -1
  71. package/dist/216.css +0 -20
  72. package/dist/216.css.map +0 -1
  73. package/dist/232.css.map +0 -1
  74. package/dist/232.genoverse.js +0 -2
  75. package/dist/232.genoverse.js.map +0 -1
  76. package/dist/394.genoverse.js +0 -2
  77. package/dist/394.genoverse.js.map +0 -1
  78. package/dist/469.genoverse.js +0 -2
  79. package/dist/469.genoverse.js.map +0 -1
  80. package/dist/530.genoverse.js +0 -2
  81. package/dist/530.genoverse.js.map +0 -1
  82. package/dist/547.css.map +0 -1
  83. package/dist/59edf72a325ac2048d60.woff2 +0 -0
  84. package/dist/804.genoverse.js +0 -2
  85. package/dist/804.genoverse.js.map +0 -1
  86. package/dist/842.genoverse.js +0 -2
  87. package/dist/842.genoverse.js.map +0 -1
  88. package/dist/893.genoverse.js +0 -2
  89. package/dist/893.genoverse.js.map +0 -1
  90. package/dist/949.genoverse.js +0 -2
  91. package/dist/949.genoverse.js.map +0 -1
  92. package/dist/952.genoverse.js +0 -2
  93. package/dist/952.genoverse.js.map +0 -1
  94. package/dist/e615bbcb258550973c16.ttf +0 -0
  95. /package/dist/{166.css → 895.css} +0 -0
@@ -0,0 +1,176 @@
1
+ const {
2
+ defineConfig,
3
+ globalIgnores,
4
+ } = require("eslint/config");
5
+
6
+ const globals = require("globals");
7
+ const alignAssignments = require("eslint-plugin-align-assignments");
8
+ const babelParser = require("@babel/eslint-parser");
9
+ const js = require("@eslint/js");
10
+
11
+ const {
12
+ FlatCompat,
13
+ } = require("@eslint/eslintrc");
14
+
15
+ const compat = new FlatCompat({
16
+ baseDirectory: __dirname,
17
+ recommendedConfig: js.configs.recommended,
18
+ allConfig: js.configs.all
19
+ });
20
+
21
+ const noRestrictedProperies = require("eslint-config-airbnb-base/rules/best-practices").rules["no-restricted-properties"].filter(
22
+ rule => !(rule.object === "Math" && rule.property === "pow" || rule.object === "window" && rule.property === "isNaN"),
23
+ );
24
+
25
+ module.exports = defineConfig([{
26
+ languageOptions: {
27
+ globals: {
28
+ ...globals.browser,
29
+ ...globals.node,
30
+ Genoverse: true,
31
+ },
32
+
33
+ parser: babelParser,
34
+ ecmaVersion: 8,
35
+ sourceType: "module",
36
+
37
+ parserOptions: {
38
+ requireConfigFile: false,
39
+ },
40
+ },
41
+
42
+ plugins: {
43
+ "align-assignments": alignAssignments,
44
+ },
45
+
46
+ extends: compat.extends("airbnb-base"),
47
+
48
+ rules: {
49
+ "align-assignments/align-assignments": "error",
50
+
51
+ "padding-line-between-statements": ["error", ...[[
52
+ "*",
53
+ ["multiline-block-like", "return", "break", "export", "throw", "cjs-export"],
54
+ ], ["*", ["cjs-import", "import", "const", "let", "var"]], [
55
+ ["multiline-block-like", "return", "break", "export", "throw", "cjs-export"],
56
+ "*",
57
+ ], [["cjs-import", "import", "const", "let", "var"], "*"], ["cjs-import", "cjs-import", "any"], ["import", "import", "any"], ["singleline-const", "const", "any"], ["singleline-let", "let", "any"], ["singleline-var", "var", "any"], ["expression", "expression", "any"]].map(([prev, next = "*", blankLine = "always"]) => ({
58
+ prev,
59
+ next,
60
+ blankLine,
61
+ }))],
62
+
63
+ "max-len": "off",
64
+ "no-multi-spaces": "off",
65
+ "no-multi-assign": "off",
66
+ "no-nested-ternary": "off",
67
+ "no-prototype-builtins": "off",
68
+ "no-plusplus": "off",
69
+ "operator-linebreak": "off",
70
+ "prefer-destructuring": "off",
71
+ "quote-props": "off",
72
+ "template-curly-spacing": "off",
73
+ "yoda": "off",
74
+ "no-underscore-dangle": "off",
75
+ "newline-per-chained-call": "off",
76
+ "default-param-last": "off",
77
+ "no-promise-executor-return": "off",
78
+ "no-continue": "off",
79
+ "no-fallthrough": "off",
80
+ "no-bitwise": "off",
81
+ "func-names": "off",
82
+ "no-param-reassign": "off",
83
+
84
+ "array-bracket-spacing": ["warn", "always", {
85
+ objectsInArrays: false,
86
+ arraysInArrays: false,
87
+ }],
88
+
89
+ "quotes": ["warn", "single", {
90
+ avoidEscape: true,
91
+ }],
92
+
93
+ "arrow-parens": ["error", "as-needed", {
94
+ requireForBlockBody: true,
95
+ }],
96
+
97
+ "function-paren-newline": ["error", "consistent"],
98
+ "function-call-argument-newline": ["error", "consistent"],
99
+ "linebreak-style": ["error", "unix"],
100
+ "object-shorthand": ["error", "consistent"],
101
+
102
+ "comma-dangle": ["error", {
103
+ arrays: "always-multiline",
104
+ objects: "always-multiline",
105
+ imports: "always-multiline",
106
+ exports: "always-multiline",
107
+ functions: "never",
108
+ }],
109
+
110
+ "key-spacing": ["error", {
111
+ singleLine: {
112
+ beforeColon: false,
113
+ afterColon: true,
114
+ },
115
+
116
+ multiLine: {
117
+ beforeColon: false,
118
+ afterColon: true,
119
+ },
120
+
121
+ align: {
122
+ beforeColon: true,
123
+ afterColon: true,
124
+ on: "colon",
125
+ },
126
+ }],
127
+
128
+ "object-curly-newline": ["error", {
129
+ ObjectExpression: {
130
+ multiline: true,
131
+ consistent: true,
132
+ },
133
+
134
+ ObjectPattern: {
135
+ multiline: true,
136
+ consistent: true,
137
+ },
138
+ }],
139
+
140
+ "import/no-extraneous-dependencies": ["error"],
141
+
142
+ "import/order": ["error", {
143
+ alphabetize: {
144
+ order: "asc",
145
+ },
146
+
147
+ groups: ["builtin", "external", "internal", "parent", "sibling"],
148
+ }],
149
+
150
+ "no-restricted-globals": ["error", "event", "isFinite"],
151
+ "no-restricted-properties": noRestrictedProperies,
152
+ "consistent-return": "off",
153
+ },
154
+ }, globalIgnores([
155
+ "**/node_modules",
156
+ "**/dist",
157
+ "**/*.min.js",
158
+ "src/js/lib/dalliance/*.js",
159
+ "src/js/lib/jquery-plugins/*.js",
160
+ ]), {
161
+ files: ["test/**/*.js"],
162
+
163
+ languageOptions: {
164
+ globals: {
165
+ jest: true,
166
+ describe: true,
167
+ it: true,
168
+ expect: true,
169
+ fail: true,
170
+ beforeAll: true,
171
+ afterAll: true,
172
+ afterEach: true,
173
+ beforeEach: true,
174
+ },
175
+ },
176
+ }]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "genoverse",
3
- "version": "4.0.9",
3
+ "version": "4.1.0-alpha",
4
4
  "description": "Genoverse is a portable, customizable, back-end independent JavaScript and HTML5 based genome browser which allows the user to explore data in a dynamic and interactive manner.",
5
5
  "main": "src/js/Genoverse.js",
6
6
  "directories": {
@@ -29,32 +29,40 @@
29
29
  "@babel/eslint-parser": "^7.17.0",
30
30
  "@babel/preset-env": "^7.16.11",
31
31
  "@babel/runtime-corejs3": "^7.17.2",
32
- "babel-loader": "^8.2.3",
32
+ "@eslint/eslintrc": "^3.3.5",
33
+ "@eslint/js": "^10.0.1",
34
+ "babel-loader": "^10.1.1",
33
35
  "babel-plugin-require-context-hook": "^1.0.0",
34
36
  "babel-plugin-transform-amd-to-commonjs": "^1.4.0",
35
- "canvas": "^2.8.0",
37
+ "canvas": "^3.2.3",
36
38
  "clean-webpack-plugin": "^4.0.0",
37
- "css-loader": "^6.7.0",
38
- "eslint": "^8.6.0",
39
+ "css-loader": "^7.1.4",
40
+ "eslint": "^10.4.0",
39
41
  "eslint-config-airbnb-base": "^15.0.0",
40
42
  "eslint-plugin-align-assignments": "^1.1.2",
41
43
  "eslint-plugin-es": "^4.1.0",
42
44
  "eslint-plugin-import": "^2.25.4",
43
- "jest": "^27.5.1",
45
+ "globals": "^17.6.0",
46
+ "jest": "^28.1.3",
47
+ "jest-environment-jsdom": "28",
44
48
  "mini-css-extract-plugin": "^2.6.0",
45
49
  "terser-webpack-plugin": "^5.3.0",
46
50
  "webpack": "^5.70.0",
47
- "webpack-cli": "^4.9.1",
48
- "webpack-dev-server": "^4.7.4"
51
+ "webpack-cli": "^7.0.3",
52
+ "webpack-dev-server": "^5.2.4"
49
53
  },
50
54
  "dependencies": {
51
55
  "@fortawesome/fontawesome-free": "^6.0.0",
52
56
  "basejs": "^1.1.1",
53
57
  "core-js": "^3.21.0",
58
+ "dompurify": "^3.4.6",
54
59
  "jParser": "^1.0.2",
55
- "jquery": "^3.6.0",
60
+ "jquery": "^3.7.1",
56
61
  "jquery-ui": "^1.13.0",
57
62
  "lodash": "^4.17.21",
58
63
  "rtree": "^1.4.2"
64
+ },
65
+ "resolutions": {
66
+ "jquery": "3.7.1"
59
67
  }
60
68
  }
@@ -1,11 +1,12 @@
1
1
  import Base from 'basejs';
2
+ import DOMPurify from 'dompurify';
2
3
  import _get from 'lodash/get';
3
4
  import Track from './Track';
4
5
  import HighlightRegionTrack from './Track/library/HighlightRegion';
5
6
  import LegendTrack from './Track/library/Legend';
6
7
  import importTracks from './lib/import-tracks';
7
8
  import $ from './lib/jquery';
8
- import wrapFunctions from './lib/wrap-functions';
9
+ import wrapFunctions from './lib/wrap-functions';
9
10
 
10
11
  const Genoverse = Base.extend({
11
12
  // Defaults
@@ -1355,7 +1356,7 @@ const Genoverse = Base.extend({
1355
1356
  (track ? track.model.sortFeatures(features) : features.sort((a, b) => a.start - b.start)).forEach(
1356
1357
  (feature) => {
1357
1358
  const location = `${feature.chr}:${feature.start}${feature.end === feature.start ? '' : `-${feature.end}`}`;
1358
- const title = feature.menuLabel || feature.name || (Array.isArray(feature.label) ? feature.label.join(' ') : feature.label) || String(feature.id);
1359
+ const title = DOMPurify.sanitize(feature.menuLabel || feature.name || (Array.isArray(feature.label) ? feature.label.join(' ') : feature.label) || String(feature.id));
1359
1360
 
1360
1361
  jQuery('<a href="#">').html(title.match(location) ? title : `${location} ${title}`).on('click', (e) => {
1361
1362
  this.makeFeatureMenu(feature, e, track);
@@ -1412,17 +1413,18 @@ const Genoverse = Base.extend({
1412
1413
  const start = parseInt(typeof properties.start !== 'undefined' ? properties.start : feature.start, 10);
1413
1414
  const end = parseInt(typeof properties.end !== 'undefined' ? properties.end : feature.end, 10);
1414
1415
  const columns = Math.max(...Object.values(properties).map(value => (Array.isArray(value) ? value.length : 1)));
1416
+ const sanitizedTitle = DOMPurify.sanitize(properties.title);
1415
1417
 
1416
1418
  let table = '';
1417
1419
 
1418
- jQuery('.gv-title', el)[properties.title ? 'html' : 'remove'](properties.title);
1420
+ jQuery('.gv-title', el)[properties.title ? 'html' : 'remove'](sanitizedTitle);
1419
1421
 
1420
1422
  if (track && start && end && !this.isStatic) {
1421
1423
  const linkData = {
1422
1424
  chr : chr,
1423
1425
  start : start,
1424
1426
  end : Math.max(end, start),
1425
- label : feature.label || (properties.title || '').replace(/<[^>]+>/g, ''),
1427
+ label : feature.label || (sanitizedTitle || ''),
1426
1428
  color : feature.color,
1427
1429
  };
1428
1430
 
@@ -1462,7 +1464,7 @@ const Genoverse = Base.extend({
1462
1464
  }
1463
1465
  );
1464
1466
 
1465
- jQuery('table:not(.gv-focus-highlight)', el)[table ? 'html' : 'remove'](table);
1467
+ jQuery('table:not(.gv-focus-highlight)', el)[table ? 'html' : 'remove'](DOMPurify.sanitize(table));
1466
1468
  }
1467
1469
  );
1468
1470
  },
@@ -1,4 +1,5 @@
1
1
  import '../../css/controlPanel.css';
2
+ import DOMPurify from 'dompurify';
2
3
  import karyotype from './karyotype';
3
4
 
4
5
  const plugin = function (pluginConf) {
@@ -236,7 +237,7 @@ const plugin = function (pluginConf) {
236
237
  ).forEach(
237
238
  (track) => {
238
239
  const el = jQuery('<div class="gv-tracks-menu-track">')
239
- .append(`<span class="gv-tracks-menu-track-name" title="${track.name}">${track.defaultName}</span>`)
240
+ .append(DOMPurify.sanitize(`<span class="gv-tracks-menu-track-name" title="${track.name}">${track.defaultName}</span>`))
240
241
  .appendTo(currentTracks)
241
242
  .data('track', track)
242
243
  .addClass(track.unsortable ? 'gv-unsortable' : '');
@@ -309,7 +310,7 @@ const plugin = function (pluginConf) {
309
310
  const parentEl = (
310
311
  allCategoryNames.length > 1
311
312
  ? jQuery('<div class="gv-tracks-library-category">').append(
312
- jQuery('<div class="gv-tracks-library-category-header">').html(categoryName || 'Other')
313
+ jQuery('<div class="gv-tracks-library-category-header">').html(DOMPurify.sanitize(categoryName) || 'Other')
313
314
  ).appendTo(availableTracks)
314
315
  : availableTracks
315
316
  );
@@ -325,7 +326,7 @@ const plugin = function (pluginConf) {
325
326
 
326
327
  browser.addTrack(track.extend({ id: `${track.prototype.id}${browser.tracksById[track.prototype.id] ? browser.trackIds[track.prototype.id]++ : ''}` }));
327
328
  })
328
- ).append(`<span>${track.prototype.name}</span>`).appendTo(parentEl).data('track', track.prototype);
329
+ ).append(`<span>${DOMPurify.sanitize(track.prototype.name)}</span>`).appendTo(parentEl).data('track', track.prototype);
329
330
  }
330
331
  );
331
332
  }
@@ -1,4 +1,5 @@
1
1
  import '../../css/fileDrop.css';
2
+ import DOMPurify from 'dompurify';
2
3
 
3
4
  const plugin = function () {
4
5
  const jQuery = this.jQuery;
@@ -57,9 +58,10 @@ const plugin = function () {
57
58
  (importer) => {
58
59
  import(`../Track/library/File/${importer.trackType}`).then(
59
60
  (imported) => {
61
+ const trackName = DOMPurify.sanitize(importer.file.name);
60
62
  const track = imported.default.extend({
61
- name : importer.file.name,
62
- info : `Local file "${importer.file.name}", size: ${importer.file.size} bytes`,
63
+ name : trackName,
64
+ info : `Local file "${trackName}", size: ${importer.file.size} bytes`,
63
65
  isLocal : true,
64
66
  dataFile : importer.file,
65
67
  indexFile : importer.indexFile,
@@ -14,7 +14,7 @@ exports[`Correctly render bar graph where: scale < 1, all bins of equal size the
14
14
 
15
15
  exports[`Correctly render bar graph where: scale < 1, all bins of equal size the graph has two datasets coloured red and blue 2`] = `""`;
16
16
 
17
- exports[`Correctly render bar graph where: scale < 1, all bins of equal size the graph has two datasets one with globalAlpha set 1`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABmJLR0QA/wD/AP+gvaeTAAAA7ElEQVR4nO3cMQrCQBBA0Uku7ubkWkQExdp88D222VQDnyHdbrdZ9/lwzNo+v/Eb+9UD8E6QGEFiBIkRJEaQGEFiBIkRJEaQGEFiBIkRJEaQGEFiBIkRJEaQGEFiBIkRJEaQGEFiBIkRJEaQGEFiBIkRJEaQGEFiBIkRJEaQmP2Yta1ZV8/Bkw2JESRGkBhBYgSJESRGkBhBYgQpup9nzcx8e4yG37EhMYLECBIjSNH5U3/d1mWDYENqBIkRJEaQGEFiBIkRJEaQGEFi9pmZbcZb7xE2JEaQGEFiBAEAAAAAAAAAAAAAAACA//QAxTIOetD41TUAAAAASUVORK5CYII="`;
17
+ exports[`Correctly render bar graph where: scale < 1, all bins of equal size the graph has two datasets one with globalAlpha set 1`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABmJLR0QA/wD/AP+gvaeTAAAA7UlEQVR4nO3csQrCMBRA0df+uOmX61ARFGd7wXPIkk6ByyPQIdtt1n0+HLO2z2/8xn71AXgnSIwgMYLECBIjSIwgMYLECBIjSIwgMYLECBIjSIwgMYLECBIjSIwgMYLECBIjSIwgMYLECBIjSIwgMYLECBIjSIwgMYLECBIjSMx+zNrWrKvPwZMJiREkRpAYQWIEiREkRpAYQWIEKbqfa83MfHuMht8xITGCxAgSI0jReam/dv7FX8iExAgSI0iMIDGCxAgSI0iMIDGCxOwzM9uMt94jTEiMIDGCxAgCAAAAAAAAAAAAAAAAAP/pAcUyDnqquoLKAAAAAElFTkSuQmCC"`;
18
18
 
19
19
  exports[`Correctly render bar graph where: scale < 1, all bins of equal size the graph has two datasets one with globalAlpha set 2`] = `""`;
20
20
 
@@ -32,7 +32,7 @@ exports[`Correctly render bar graph where: scale < 1, final bin is small the gra
32
32
 
33
33
  exports[`Correctly render bar graph where: scale < 1, final bin is small the graph has two datasets coloured red and blue 2`] = `""`;
34
34
 
35
- exports[`Correctly render bar graph where: scale < 1, final bin is small the graph has two datasets one with globalAlpha set 1`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABmJLR0QA/wD/AP+gvaeTAAAA6UlEQVR4nO3UwY0CQRAEwd5xnFnP8Ix7wAMsmJQuwoKSUt3XY/ZrPu7Z13DUOj2AX4LECBIjSIwgMYLECBIjSIwgMYLECBIjSIwgMYLECBIjSIwgMYLECBIjSIwgMYLECBIjSIwgMYLECBIjSIwgMYLECBIjSIwgMYLErD379Aa+uJAYQWIEiREkRpAYQWIEiREkRpCYNTNzz+M+PYQ3FxKzZuaemefhHXysa2bPXM/TQ3jzsrpe+/QCXEiOIDGCxAgSI0iMIDGCxAgSI0iMIDGCxAgSI0iMIAAAAAAAAAAAAAAAAADwP/0Bf/EKAxMwkbcAAAAASUVORK5CYII="`;
35
+ exports[`Correctly render bar graph where: scale < 1, final bin is small the graph has two datasets one with globalAlpha set 1`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABmJLR0QA/wD/AP+gvaeTAAAA6ElEQVR4nO3YwW3DQBAEwSETF5mZM5Mf8sOOgA24KoIBGnuPO1673vtx7zrGo86nB/CXIDGCxAgSI0iMIDGCxAgSI0iMIDGCxAgSI0iMIDGCxAgSI0iMIDGCxAgSI0iMIDGCxAgSI0iMIDGCxAgSI0iMIDGCxAgSI0iMIDHntevpDfziQmIEiREkRpAYQWIEiREkRpAYQWLObbv3up8ewocLiTm33du+nh7Cx3ls13YIEuHJ6nr7hw9wITGCxAgSI0iMIDGCxAgSI0iMIDGCxAgSI0iMIDGCAAAAAAAAAAAAAAAAAMD/9A1/8QoDEa51cQAAAABJRU5ErkJggg=="`;
36
36
 
37
37
  exports[`Correctly render bar graph where: scale < 1, final bin is small the graph has two datasets one with globalAlpha set 2`] = `""`;
38
38
 
@@ -68,7 +68,7 @@ exports[`Correctly render bar graph where: scale = 1 the graph has two datasets
68
68
 
69
69
  exports[`Correctly render bar graph where: scale = 1 the graph has two datasets coloured red and blue 2`] = `""`;
70
70
 
71
- exports[`Correctly render bar graph where: scale = 1 the graph has two datasets one with globalAlpha set 1`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABmJLR0QA/wD/AP+gvaeTAAABWElEQVR4nO3aMW7CUBAA0bWVe9s+OSkiEoFIaAie4j3RGLmwNNria/+yzX6ZB47Zjm2O7ed5Xx69x2utZ38AtwSJESRGkBhBYgSJESRGkBhBYtZjtuP+z332mVn2t38NJqRGkBhBYgSJESRGkBhBYgSJESTmO4ideYMJiREkRpAYQWIEiREkRpAYQWIEiVlnrjv03z3au/M/TEiMIDGCxAgSI0iMIDGCxAgSI0jMen/L3an8XCYkRpAYQWIEiREkRpAYQWIEiREk5ibIdbe+zLgJfxITEiNIjCAxgsQIEiNIjCAxgsQIErPO/H0yf3YzntcyITGCxAgSI0iMIDGCxAgSI0iMIDEfz15YrNjfyoTECBIjSIwgMYLECBIjSIwgMYKUXb5+++0z72RCYgSJESRGkBhBYgSJESRGkBhBypzMz2dCYgSJESRGkBhBYgSJESRGkBhBYj4BbkAYzQbnSNYAAAAASUVORK5CYII="`;
71
+ exports[`Correctly render bar graph where: scale = 1 the graph has two datasets one with globalAlpha set 1`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABmJLR0QA/wD/AP+gvaeTAAABWUlEQVR4nO3awUrDUBBA0Unwv5N8eV1IlUq1m9pc8By6SckicJnFY96yzX6ZO47Zjm2O7et5X+69x3OtZ38AtwSJESRGkBhBYgSJESRGkBhBYtZjtuP7n/vsM7PsJ3zPv2dCYgSJESRGkBhBYgSJESRGkBhBYj6D2Jk3mJAYQWIEiREkRpAYQWIEiREkRpCYdea6Q//Zvb07f8OExAgSI0iMIDGCxAgSI0iMIDGCxKzfb7k7lZ/LhMQIEiNIjCAxgsQIEiNIjCAxgsTcBLnu1pcZN+FPYkJiBIkRJEaQGEFiBIkRJEaQGEFi1pnfT+aPbsbzXCYkRpAYQWIEiREkRpAYQWIEiREk5u3RC4sV+0uZkBhBYgSJESRGkBhBYgSJESRGkLLLx2+/feaVTEiMIDGCxAgSI0iMIDGCxAgSI0iZk/n5TEiMIDGCxAgSI0iMIDGCxAgSI0jMO25AGM0vaaiZAAAAAElFTkSuQmCC"`;
72
72
 
73
73
  exports[`Correctly render bar graph where: scale = 1 the graph has two datasets one with globalAlpha set 2`] = `""`;
74
74
 
@@ -86,7 +86,7 @@ exports[`Correctly render bar graph where: scale > 1 the graph has two datasets
86
86
 
87
87
  exports[`Correctly render bar graph where: scale > 1 the graph has two datasets coloured red and blue 2`] = `""`;
88
88
 
89
- exports[`Correctly render bar graph where: scale > 1 the graph has two datasets one with globalAlpha set 1`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABmJLR0QA/wD/AP+gvaeTAAABiklEQVR4nO3cQW6DQBAAwSXyv4GXkw8k0hyIqNhd55WN3JrDwuJtX8e1Psi59nOybl/n/tfX8pOvJ740vysIpiCYgmAKgikIpiCYgmAKgtnWuo7Jwqd2rlPHOkbrtrW2ybqn7mA0IZiCYAqCKQimIJiCYAqCKQimIJjX3R94roPeCeuaEExBMAXBFARTEExBMAXBFARTEMx4pz59Zj06Wv6BpqfumxBMQTAFwRQEUxBMQTAFwRQEUxDMa63tGK595PT7dId7rIM+nT/VhGAKgikIpiCYgmAKgikIpiCYgmBuP/0+NX9GP9uAT98/1zUhmIJgCoIpCKYgmIJgCoIpCKYgmPFO/V12wne7+45DE4IpCKYgmIJgCoIpCKYgmIJgCoJ57Jn6u5jfwZgta0IwBcEUBFMQTEEwBcEUBFMQTEEwjz0nv9Ya/ff7tq7hn9SN37cfmV/fvb9hE4IpCKYgmIJgCoIpCKYgmIJgCoL5Bzv1zzp134RgCoIpCKYgmIJgCoIpCKYgmIJgvgGLayHWQWmwTwAAAABJRU5ErkJggg=="`;
89
+ exports[`Correctly render bar graph where: scale > 1 the graph has two datasets one with globalAlpha set 1`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABmJLR0QA/wD/AP+gvaeTAAABi0lEQVR4nO3cQU7DUAxAQQdx76YnLxcAyYugDPTNOiqlT144+e3xmPM1b+Q5j+fmusc8H7/9Xr7zcccfzc8KgikIpiCYgmAKgikIpiCYgmCOmde5ufCuzXXrnNW/McfMsbnurjsYTQimIJiCYAqCKQimIJiCYAqCKQjm8+oXfM5Jb8K6JgRTEExBMAXBFARTEExBMAXBFASz3tS3z6xXR8vf0PbUfROCKQimIJiCYAqCKQimIJiCYAqC+Zw5div4zC2n37cb7jknfTp/qwnBFARTEExBMAXBFARTEExBMAXBXH76fWv/jH63gG+/f65rQjAFwRQEUxBMQTAFwRQEUxBMQTDrTf2/bMJXu/qOQxOCKQimIJiCYAqCKQimIJiCYAqCue2Z+n+xv4Oxu6wJwRQEUxBMQTAFwRQEUxBMQTAFwdz2nPw1s/rt92Neyx+pW3/ffmX//q79DJsQTEEwBcEUBFMQTEEwBcEUBFMQzB/Y1N/r1H0TgikIpiCYgmAKgikIpiCYgmAKgvkCi2sh1uGihQwAAAAASUVORK5CYII="`;
90
90
 
91
91
  exports[`Correctly render bar graph where: scale > 1 the graph has two datasets one with globalAlpha set 2`] = `""`;
92
92
 
@@ -1,5 +1,5 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
- exports[`Correctly render a chromosome: with all band types 1`] = `"data:image/png;base64,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Op544gmmT5/Opk2bqKqqYu3atQiCwNNPP83mzZtpamoC6LWtu9zcXObNmwckksvOn/uUKVNwOp2oqorH48Htdl/QYxyM7HY7M2fOpKKigvHjx+N0Olm7di2KorBlyxbGjh3b44FTMBiktLQUoOsaqtf3rEDsa19N/zIyMrjrrrs4cOAAV155JdnZ2bz44ovIssy6deuYPHkydru9a/uWlhY+/fRTIHHOj8fjGAyGHp95NttoeldTU8OiRYuYNWsWa9eupby8nOLiYkRR5NVXX+Wtt97qcc3Iz8/nwQcfBBIPWnq7Jlx33XW43W4URaGioqKrEzhVOJ1OZFl2CUB6soM5G9u3b+fxxx9Hr9dz7NgxXC4Xzc3NBAIBOjp6TsLcOXRk3bp1XH/99axYsSIZIWs0g9706dP5zW9+g6qqjB49mubmZlwuF06ns8eFX6fTndbW3de//nUAKioqWLRoEUuXLsXpTPlng/06Zdm3zqSdel/NJL+vpsjnqZzv93r0UiyqN5stR2Up9q9oNLqLxNBwFcgVjcYRBoNhFHFdrqzIOYosOQRRjJottliaPV1Js2cIdqfLbE/PMNns6djSHNjS7KSlOxBEI2j13RfMQw89xPPPP8/rr79Ofn4+e/bsASAej592LeqtrbvOG7bCwkJee+01XnrpJQKBAMAZ9xss3nzzTe6//35uvfVW6urquoae63Q60tPTMZvNXdv21tbdFVdcAYDH4+GJJ55g/vz5pKen99muOd0777zDHXfcwcyZM2loaGDJkiVA4mdvt9tP+32c2tZdUVERkFi797nnnmPOnDnY7fauxGXFihWUlJRw7733nuejGvyKiorYt28f5eXl2Gw2br311q73otHoacmF3+8HID09nW984xvs37+faPT01UN721fTv6uvvpqdO3fyxRdfkJ6ezgMPPND1XjgcPq1jwePxAImk6uabb2b37t2Ew+EBb6Pp3RtvvMHixYuZM2cOPp+Pm2++GUicoxwOx2nnqM4RO8ePH+fnP/85CxYswOFw9Nim8/z18MMPs2PHDn70ox9dgCM5e06nk1gsZheA3s/AKebIkSMAqKpKdXU1GRkZNDf3PtHysGHDaGxs5M4778ThcHDkyBHeeOMNWltbL2TIGs2gN2bMGCDxhH7kyJG0tLTgcrm+1Ge98MILrFu3jueffz6lhhOdaza7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"`;
3
+ exports[`Correctly render a chromosome: with all band types 1`] = `"data:image/png;base64,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"`;
4
4
 
5
- exports[`Correctly render a chromosome: with only one band 1`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAAVCAYAAADVR8S+AAAABmJLR0QA/wD/AP+gvaeTAAADPElEQVR4nO3dP0ijZxzA8W9izpiWNuLRgMKhopBFsCDcaqt2akFE0UWwCg4FcXKSCufgkgpO3aQdhKIgbi4tgi7HLaJIFxGhylFFxD+lNSZK6OCfXuFyZ23jeyXfz/Y87y/wXV+e930T4i8x4FugG3gfSZIkSZJUKCfAD8AIkAYIXV8IA8+Bp6/sSZIkSZKkwkkDL4A2IFdyvfkl8BVXN+qSJEmSJKnwHgEfAb8C6zen5YfA48CSJEmSJEkqXi+BJ2HgYyAecIwkSZIkScWqHGgMc/WseyTgGEmSJEmSitUj4LMw8EXQJZIk6f66urp49uzZ7Toej7O4uMjq6irr6+u0tbUFFydJku4iCnwSBmqDLpEkSfklEgkSiQTNzc20tLQQCl19QiYajbK8vMzMzAyxWOx2fnBwkI2NDZqamujv72diYiKodEmSdHc1EeDDoCskSVJ+3d3dDA8PMz8/T319Pb29vQwMDJDNZuno6KCvr4/Kysrb+aWlJQ4ODigpKSGZTLK3txdgvSRJuqOKCPBe0BWSJOnNVlZWGB0dJRwOs729TUVFBUdHRxwfH3N2dva32bW1NQDm5uZobW1lfHw8iGRJkvTPfBDm6mV0SZL0Dtva2gIgl8uxs7NDeXl53tmqqipKS0vp6emhrq6OsbEx4nH/sEWSpHdcLAxcBF0hSZLerKGhAYBYLEZtbS27u7t5ZycnJ2lvbwcgm81ycXFBNpt9kE5JknRv6QhwBpQGXSJJkvJrbGxkYWGB6upqpqamuLy8zDubSqWYnZ2ls7OTZDJJKpUinU4/YK0kSbqH30LAL0B1wCGSJCmPoaEhysrKmJ6eJhKJcHh4+NbfRKNRampq2N/f5/T09AEqJUnSv/RzBG/QJUn6Xzg5ObnzbCaTYXNzs4A1kiTpP7YTAkaAb4IukSRJrxeNRgmFQpyfnwedIkmSCiMDfB0BfgIugUiwPZIk6XUymUzQCZIkqbAugB9D14tD4HGAMZIkSZIkFauXwJPw9WIEyAUYI0mSJElSMfodGAO4OUEPA8+Bp6/sSZIkSZKkwkkDL4A2IHdzgp4DPgW+B/4IKEySJEmSpGJxAnwHfM71E+1/Ak3usvBTE5y/AAAAAElFTkSuQmCC"`;
5
+ exports[`Correctly render a chromosome: with only one band 1`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAAVCAYAAADVR8S+AAAABmJLR0QA/wD/AP+gvaeTAAAC/0lEQVR4nO3dz0ubdxzA8XceE0Y3NudCMR6KhkiunZeATOkGHYhbvLmjP447Cr3uTxC97CbbRQTPTkQPGhFK0SGTiKAgASlTMIxsdpMxSHZQ1xbWKLbpt5D36/Z8nu8D7xzD9/skMZ67A3wPfAN8gCRJkiRJapQKMAc8As4BYpc3IuAxkHthJkmSJEmSGucceAI8BKotl8Mx4FsuvqhLkiRJkqTGSwB3gV+BX652y8tAMliSJEmSJEnN6ylwLwI+BVoDx0iSJEmS1Kw+Bu5HXJx1jweOkSRJkiSpWSWALyPg69AlkiTpdmZnZzk9PaVYLP43a2lpYWtri1KpxNHREZOTk8Ri/gasJEnvsPeAzyMgHbpEkiTdzszMDIODgy/NqtUq+XyedDpNNpult7eXgYGBQIWSJOmGuuLAR6ErJEnSq6VSKdbX11lbWyOZTBJFEWNjY5ydnVEoFOju7n5pfa1W4+TkBLjYTY+iiFqtFiJdkiTd3CcR8H7oCkmSVF8mk2Fqaorh4WE2NzeZmJi49pmDgwPK5TLFYpGVlZW3UClJkl7DhxEXL6NLkqR3WKlUYn9/H4DFxUX6+/uvfSabzdLR0UEmkyGXyzU6UZIkvZ47EfBP6ApJklRfPP78D1cSicSNj6xXKhWWl5fJ5/ONSpMkSW/GeQT8FbpCkiTV19XVRV9fHwAjIyNsbGy8cm17ezudnZ0AtLW1MTQ0xN7e3lvplCRJt/ZHBPweukKSJNW3u7vL6OgoOzs7pNNppqenAZifn2d1dZVsNsvh4SHj4+O0traysLDA8fEx29vbFAoF5ubmAn8CSZJ0jd9iQAF4ELpEkiT9v1QqxdLSEj09PaFTJElS4yxGwE+hKyRJkiRJamJ/A4UYcB/4GYjXXy9JkiRJkhrgGfBZ7PKiDCQDxkiSJEmS1KyeAveiy4tHQDVgjCRJkiRJzegZ8B3A1Q56BDwGci/MJEmSJElS45wDT4CHQPVqB70KfAH8CPwZKEySJEmSpGZRAX4AvuLyRPu/12mio8TqluwAAAAASUVORK5CYII="`;
@@ -34,7 +34,7 @@ exports[`Correctly render highlights: backgrounds overlapping highlights, comple
34
34
 
35
35
  exports[`Correctly render highlights: where two highlights overlap both labels are displayed 1`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAAPCAYAAAB3CuVDAAAABmJLR0QA/wD/AP+gvaeTAAAAkUlEQVR4nO3ZsQ2AUAxDQX/E/iuHlhKJIi7uJnAV6SlnZiYAAADAqmt7AAAAACDQAQAAoIJABwAAgAICHQAAAAoIdAAAACgg0AEAAKCAQAcAAIACAh0AAAAKCHQAAAAoINABAACggEAHAACAAgIdAAAACtzbA3g5Z3sBwCcnkySZuFs1ZrYXAAA/+aADAABAgQcWlAgc5aJUWQAAAABJRU5ErkJggg=="`;
36
36
 
37
- exports[`Correctly render highlights: where two highlights overlap both labels are displayed 2`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAAZCAYAAACihQTFAAAABmJLR0QA/wD/AP+gvaeTAAACu0lEQVR4nO3cPYicVRSA4XdEjYGsEBEs/AmsWMQiiBaChoBgIYiFxJ9GFBuxECKm0kJsAopgZxqxMkSw18JCRCwCiiktxGCXxsJCEGyOxQyysySFIe5u2OeBYe7HnHM5tznwce/cAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgBvC1JGpt69H3tRzU+9dt+IA1syRmv/cr9bz5paaczU/1fxc8+r1rREA4MZy024XwJpHqqen7qmaOjT11NSxrUFTR6dOTm1uz5s6MPVt9Vl1cCeLB/aVR6qna+5ZPs6hmqdqjq2HzdGakzWbV8h7vrq5Fg9Xx6v3l/MAAOxPXtD3loeqO6sHpu6ovqkerd6dOlM19WT1SXV39fksf/83r/q7erZr2IkH+A+29J1Z61c1Z5Yhs9avarb3q9+qD1fz/VlNdcuOrQAAAK5m6tjUl6vxO1OnVuPF1KWpg1Onp86vdsvvnbpva96WuV6b+mA31gHsB3OsZtV35p2aU6vxouZSzcGa0zXnl7vlc2/Nfet5/861WfPNch4AgP3r5t0ugKvabHmU/fHV84/VbdXH1RvVF9WierP6a1cqBFjarI7WXEO/mreqF6vTtfh+h+oFANiTHHHfexar71+qrxb1QvVS9Xv1R/Vq9fWiHqs+ql7ZlgewU9b6VS2u2K9qcZV+Nc+0/O/5cS/nAADsKVMbU5enXp66feq7qXNTF6ZeX8U8MXVx6uzUD1MntuZtmcsRd+B/NBs1l2terrm95rvVjewXal5fxTxRc7HmbM0PNSe25X1a82vNj1s+d+3uugAAYGV1C/utq/Fi6v6pw9tiNqYenDp0pTyAnTEHalZ9ZxY199cc3hazUfPg+u3sW/MAAAAAAAAAAAAAAAAAgD3mH2Ko4eVbQuLaAAAAAElFTkSuQmCC"`;
37
+ exports[`Correctly render highlights: where two highlights overlap both labels are displayed 2`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAAZCAYAAACihQTFAAAABmJLR0QA/wD/AP+gvaeTAAACsklEQVR4nO3csatWdRjA8e+NQI0cBGmTSJtcnFxLolU0cJdoKvwH2nJXpDloMZCmipYiIVocQkRJHQQbIhxqrKXFp+Ee4+16tbhdvRKfD7yc93nf33N4zvLAj+ecUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw70ztmXpnu3KnPpn6deqH7akQ4IHZU7OlfvVw7hyouVzzc83dmjPbUyMAAGzR1P6tbqY3y506NnXUBh3YfrO/Zou9ZWPuHKh5bfn+0rJRP/zfawQAgC2aujD129Q3U2eX305NfT91beri1K6pfVOXp25NXZ96a7PcJf9VG3Rg+82Fmt9qvqlZes6cqvm+5lrNxZpdNfuW6fitmus1b22e+7dzX6558+leDwAArNg4BZ96Zerbqd1LfHbqzNTpqfMr6/Y+avpugw48GQ9NwV+p+bZm9xKfXb9VfU7XnF9Zt/fx0/c5XPNjzYtPrnYAgGfT8ztdAI/1evVy9eWsxy9U31WXqg+m7lefrdWVqV07VSRAK/2qpjb0q5r71We1dmV9sr6Z2besf6/Wfn8aRQMAPEts0J9tz1Vfr9W7G/+YOlodr85NfV59/LSLA1jxXPV1rT3Ur2r+6lc1j+hXs6f1XvZhrX31JAsFAIB/NLV76peV+ODUvamDS7xv6tDUgQcT86njU5c25q6cwy3uwBMwu2tWes4crLm3fqzl2fNDywvglon5HK+5tEnu8zVf1Lz/9OoHAIB/MPXR1J2pc0t8YurG1O3leGzq5NQPUzenrk4deUTup1M/Tf0xdXfq7Z28NuD/Zj6quVNzbolP1Nyoub0cj9WcXH/efG7WXK058nDuvLF+C/zcXfmc2LnrAgAAAAAAAAAAAHbOn9WUJ4s8cU3MAAAAAElFTkSuQmCC"`;
38
38
 
39
39
  exports[`Correctly render highlights: where two highlights overlap both labels are displayed 3`] = `undefined`;
40
40
 
@@ -44,7 +44,7 @@ exports[`Correctly render highlights: where two highlights overlap both labels a
44
44
 
45
45
  exports[`Correctly render highlights: where two highlights overlap second label is hidden 1`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAAPCAYAAAB3CuVDAAAABmJLR0QA/wD/AP+gvaeTAAAAkklEQVR4nO3ZMQrAMAwEQTvk/1++tGkCghS+YqY2QqhbvJNkAQAAAEddpxcAAAAABDoAAABUEOgAAABQQKADAABAAYEOAAAABQQ6AAAAFBDoAAAAUECgAwAAQAGBDgAAAAUEOgAAABQQ6AAAAFBAoAMAAECB+/QCvOw9e7YyHpk1m8mHzG8NAADwhx90AAAAKPAAWkIIHPeu33wAAAAASUVORK5CYII="`;
46
46
 
47
- exports[`Correctly render highlights: where two highlights overlap second label is hidden 2`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAAZCAYAAACihQTFAAAABmJLR0QA/wD/AP+gvaeTAAABxElEQVR4nO3csctWZRjH8e8jkr6gQdKmJigOOUjgICQEgoPQJEmTJC7SIBg46RAtDS5uujgmBu05OIQ4BQn9AYKrS4Nb4HI5+BBPLzr49uar8Pks5z6c63dznfFwX5wCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACA98LUgamrm5GbOjv1w6Y1BwAAwP9q21Y3wL8cq76c2lc1tWvq9NTR1aKpT6e+mjq4Pje1Y+pB9VO19jabBwAAYON8oL9bPqs+rg5P7al+q45X30/9WDV1qrpd7a1+npfP/8lVz6szbeAkHgAAAKimjk79ulxfm7q8XC+mnkytTV2Zurs8Ld8/9clqbmWvi1PXt+I9AAAAeHPbt7oBXutgL0fZTyzvH1U7q5vVpeqXalF9V/29JR0CAACwaYy4v3sWy+vj6t6ivq7OVX9Vz6oL1f1FfV7dqM6vywEAAAD/xdTuqadT30x9OPVw6s7U71PfLmtOTv05dWvqj6kvVnMrexlxBwAAgI1a/oX9g+V6MXVo6qN1NbunjkztelUOAAAAAAAAAAAAAAAAAABgg14AG8pnTY0vYGcAAAAASUVORK5CYII="`;
47
+ exports[`Correctly render highlights: where two highlights overlap second label is hidden 2`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAAZCAYAAACihQTFAAAABmJLR0QA/wD/AP+gvaeTAAABnElEQVR4nO3avctPcRjH8TcpD2VQVsnDbjLzDwhll0zKH+HeyR+gLJRMlEmULAZJ5GFQFoOB0WRxGfzU3R1yI7eH12s5Xeecz7frjFfXKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4PlObp07+quzU5am3U09+TYcAAADwH5ja/qPD9JeyUwen9hvQAQAAYBWmzk+9m7o1tbS4d2zq/tTDqUtTG6e2Td2eejb1aOrol7KL/F4DOgAAAKzCyi341K6pO1ObFvXS1Omp41Pnlr239WvbdwM6AADA32HDWjfANx2odlY35lO9pbpbXanOTH2orq2re1Mb16pJAAAAfp4B/c+2vrq5rk6tfDC1vzpUnZ26Xl383c0BAADAP2lq09SbZfXuqddTuxf1tqk9Uzs+b8ynDk1dWZlddoZf3AEAAGC1pi5MvZg6u6gPTz2eer64Hpw6MvVk6unUg6l9X8lenXo19X7q5dSJtfw2AAAAAAAAAAAAAIBv+wjBOIxsJGVfVgAAAABJRU5ErkJggg=="`;
48
48
 
49
49
  exports[`Correctly render highlights: where two highlights overlap second label is hidden 3`] = `undefined`;
50
50
 
@@ -54,7 +54,7 @@ exports[`Correctly render highlights: where two highlights overlap second label
54
54
 
55
55
  exports[`Correctly render highlights: with a defined color 1`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAAPCAYAAAB3CuVDAAAABmJLR0QA/wD/AP+gvaeTAAAAh0lEQVR4nO3ZwQmAUBBDQVfsv+V4ld/ABpypINdHJkkuAAAAYNW9PQAAAAAQ6AAAAFBBoAMAAEABgQ4AAAAFBDoAAAAUEOgAAABQQKADAABAAYEOAAAABQQ6AAAAFBDoAAAAUECgAwAAQAGBDgAAAAWe7QF8zGwv4JRsLwAAAH7Cgw4AAAAFXmrNBhwSTvt8AAAAAElFTkSuQmCC"`;
56
56
 
57
- exports[`Correctly render highlights: with a defined color 2`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAAZCAYAAACihQTFAAAABmJLR0QA/wD/AP+gvaeTAAABmklEQVR4nO3aoasWVhjH8e8rsilcBcXmVcFh0HARDIKCIBgEo2ASxWYQHCzNYLPatKyOCXYNBoNpoOAfMLCuGNYWnwVf5CquqPjeK59POc/hPD94TjxwCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALaFqSNTv36rHAAAAFvHjlUPwAdOVZem1qum1qYuTm1sbpo6PnV56uincgAAAGw/Huhby8nqQHVsan/1vDpd3Z26VzV1ofqtOlg9mnfn73MrmRoAAAC+J1MbU0+W9Z2p28t6MfVmavfUL1N/TK1PHZo6vDkHAADA9rRz1QPwv4727iv72eX+VbWrelDdqh5Xi+rn6t+VTAgAAMBX44v71rNYrn9VTxd1pbpava3+qW5UzxZ1prpfXf8oBwAAAHyJqT1Tf09dm9o79WLq96k/p24ue85PvZ56OPVy6tzm3KrvAAAAAN+FqR+nfljWi6mfpvZ91LNn6sTU2qdyAAAAAAAAAAAAAAAAAAAAn+k/3AJZbJqyUvMAAAAASUVORK5CYII="`;
57
+ exports[`Correctly render highlights: with a defined color 2`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAAZCAYAAACihQTFAAAABmJLR0QA/wD/AP+gvaeTAAABb0lEQVR4nO3ZsYvPcRzH8edJ3VGGK6vk/AEmM//AhbIbTMof4faTP0BZDDdSJlGyGCTRYfAHGKx2b4Ofuq5LcnXn9Hgsn17f7+dV7/XTuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgz0ydmLp50F0AAABgh6nTU9sH3QUAAAB2mLo39W3q2dTG4tv1qddTb6ceTi1PrU49n/o49W7q2l5dAAAA4C/s3oJPnZt6MbWyyBtTt6duTN3dce+UDToAAMDRdvywB+C3LlVnqyfzM5+sXlZb1Z2p79WjpXo1tXxYQwIAALB/Huj/tmPV06W6tfvH1MVqvdqcelw9OOjhAAAA4L80tTL1dUdem/oytbbIq1Pnp8782phPrU9t7e4CAAAA+zB1f+rz1OYiX5l6P/VpcV6eujq1PfVh6s3Uhb26AAAAAAAAAAAAAABHyw/k53EsqnWGjQAAAABJRU5ErkJggg=="`;
58
58
 
59
59
  exports[`Correctly render highlights: with a defined color 3`] = `undefined`;
60
60
 
@@ -64,7 +64,7 @@ exports[`Correctly render highlights: with a defined color 5`] = `undefined`;
64
64
 
65
65
  exports[`Correctly render highlights: with a mixture of defined colors and no colors 1`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAAPCAYAAAB3CuVDAAAABmJLR0QA/wD/AP+gvaeTAAAA9ElEQVR4nO3ZsYkCQRiGYVfMBWuwBFOxASu43OQwuYs2E7ONNJFLzK3gGjgutQRrEKxgjKYD/90feZ4C3hmYYPnYppRSRgAAAMCgxkNfAAAAADDQAQAAIAUDHQAAABIw0AEAACABAx0AAAASMNABAAAgAQMdAAAAEjDQAQAAIAEDHQAAABIw0AEAACABAx0AAAASMNABAAAggcnQF3iFtm17OafrutD+Y78P7VfT3S60v/z9Du1X/+tD8AlNcL8qofXNzz20X50/Z7EHXHp6j4/Y9xj9XWP71WoRmj993UL71fY4D+2/y/cDAHgP/qADAABAAk/qBBscvfALGAAAAABJRU5ErkJggg=="`;
66
66
 
67
- exports[`Correctly render highlights: with a mixture of defined colors and no colors 2`] = `"data:image/png;base64,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"`;
67
+ exports[`Correctly render highlights: with a mixture of defined colors and no colors 2`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAAZCAYAAACihQTFAAAABmJLR0QA/wD/AP+gvaeTAAAF4klEQVR4nO3db2xVdx3H8ff3nBuyEZpS2NZNN83siji3ZSJ/RikRNIo6MG6KCQvGjDE3RgBhlVsIZieIGfdsWTEFxFDZkiGLZVHInJvGOOYgmbG6B2yIBTOXogNZOyx00tJ7vz6QB3tm7rlLfr3t55WcB/cmJ3k/uTf5nnPv+YKIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIyIhmoQM+KK2trXvdfYG7n07T9NbQPVn0btlyQzw8/CQwFRg0aKtNku2hu8q1uHNx/PYV17/qEVeZE4PvP7xwWwuGh27Lwp0IOAIMmzE3dE8Wy3f0ngX6L798r2Pl5Kr8jHgntVxiD9AMDBDxNVvCa6G7yuGv/GEKxeiF971VD2y2eTPSUE1Zta/tfhC31UAMHPMi31rd3tj//84bafL5/BpghZkNlkql3WmaVt33roiIiIwOUeiAD1CHmX05dESlHDZPTJLrY5jt0Ho+SW4O3VSu/Yv3l3JxbtGRhW035ibUTjFs9pznvvPF0F0VeAB4M3REhYY7Vk5uuHxU5XAOwCX24HRxD9fi3E7MW6GTymVzZ3XbvBkNNm9GA5+ZfhPYWeLSgdBd5dq54q063DbHg+PmrNrW+HGH81HMstBd5crn87cCq9x9xsDAwEzgno0bN94SuktERETGplEzoG/duvUQ8G7ojkpM3rSppy5Jfg9QkyT/Ao4X4UOBs8pn+KE7HzsNMG7oQuwQWWzVeve8HlgC7AzdMtb501wHzGGAx81wW0q/fYO+0F0VefnPzeBnbe6s7tAp5bp4xQVzsGL8nys7F3tsxniMf4buyuAT7t6Vpun59vb2QTN7pVgs3h06SkRERMamUTOgjzaX75x/bAheDd2SVfNza7vfGyq+49jRw3+s/U3onoweB74HDIcOqYzHy3f0nbh/e+8b9+3oeyB0TSYxDUAPE3jK93LMf8oe72RC6KzKFJcAz4SuyGJd2yf7IthALu4+8+GTZ9zJrWy7aX/ornK5+9Eoiu7YsGHD1evXr68BPu/uN4TuEhERkbFJA/oIdO7RR+uK8IzBQ9ckyYXQPVkdXtQ2JTfs1xneMGda/8zQPeVyZz5QMuPl0C2VykXxzI6Vkxrd44UGLd/e0dccuqlsRXLANJydnOQWwBjiu6GzsvKXXsqB3UXxUmfoliwK64/XYNzrRab2Tjx1rRlD29eeqLqLP2ma/qVUKn2/VCq9aGa/cvc/UfUX5ERERKRaaUAfYXqeeOJKBgcPOPywNkleDN1TqUN3bTuH2a/BF4VuyaAJmO/O34BngenuVN1/hQF2raj7O0DHqolvgh8suU8P3ZTBKYy3bSlHLKGE8XMibg8dlZnXLMB4wz7X9I/QKVmMH8o1u9u7q9sbTyXJ/GHwA+7WFLorizRNf1IoFD5dKBTmRlF00cxOhG4SERGRsUkD+gjinZ1xTX//XuCFuiTZE7onq1kH19Q3Pf/wRwGaf9lah/tXMD8WuqtcZvzAjI+Y0QB8Hegy46uhu8p1X8e/Jz34o9PXACzfdqbenC85fjR0V7nsm5wE3vF93AaA8wWc18NWVcCo2p+3A5RK9ADTfvzwX69KEo9wW4BxPHRXFi0tLTcCtLa2fsrd746i6OnQTSIiIjI2jZo1a/l8/mfuPtvM6oFT7r4lTdMnQ3eV41ySfBb4Le97Yribrat75JGD4arK1/z8uimU/FngajcuUmLfkUVtm6p1zRqAO3cAj1XjmrV7d/XeHBf5BTDBYSgy27X7oUmF0F1Z+D5uw9kN1AKv4yyzpVTdWi/v6hrPBe9h3KVGa2qq2gfdbV9zIu/G/QAGrw2MKy7Lp1PPh+4qVz6f/x3/W295GlhdKBQOB04SERERERERERERERERERERERERGcP+C8Ss1Sp8K2ajAAAAAElFTkSuQmCC"`;
68
68
 
69
69
  exports[`Correctly render highlights: with a mixture of defined colors and no colors 3`] = `undefined`;
70
70