genoverse 4.0.9 → 4.1.0-alpha.2

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 (93) 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/genoverse-4.1.0-alpha.2.tgz +0 -0
  52. package/package.json +18 -10
  53. package/src/js/Genoverse.js +7 -5
  54. package/src/js/plugins/controlPanel.js +4 -3
  55. package/src/js/plugins/fileDrop.js +4 -2
  56. package/test/View/__snapshots__/render-chromosome.test.js.snap +2 -2
  57. package/test/View/__snapshots__/render-highlights.test.js.snap +3 -3
  58. package/test/View/__snapshots__/render-labels.test.js.snap +74 -74
  59. package/test/View/__snapshots__/render-legends.test.js.snap +3 -3
  60. package/test/View/__snapshots__/render-scalebar.test.js.snap +12 -12
  61. package/test/View/__snapshots__/render-scaleline.test.js.snap +15 -15
  62. package/test/View/__snapshots__/render-sequence.test.js.snap +5 -5
  63. package/test/track_config/__snapshots__/config-settings.test.js.snap +9 -9
  64. package/utils/devServer.js +14 -1
  65. package/dist/0caf4c6cf244a90efcc5.woff2 +0 -0
  66. package/dist/0d03b1bbd1d62c1e1284.ttf +0 -0
  67. package/dist/129.genoverse.js +0 -2
  68. package/dist/129.genoverse.js.map +0 -1
  69. package/dist/216.css +0 -20
  70. package/dist/216.css.map +0 -1
  71. package/dist/232.css.map +0 -1
  72. package/dist/232.genoverse.js +0 -2
  73. package/dist/232.genoverse.js.map +0 -1
  74. package/dist/394.genoverse.js +0 -2
  75. package/dist/394.genoverse.js.map +0 -1
  76. package/dist/469.genoverse.js +0 -2
  77. package/dist/469.genoverse.js.map +0 -1
  78. package/dist/530.genoverse.js +0 -2
  79. package/dist/530.genoverse.js.map +0 -1
  80. package/dist/547.css.map +0 -1
  81. package/dist/59edf72a325ac2048d60.woff2 +0 -0
  82. package/dist/804.genoverse.js +0 -2
  83. package/dist/804.genoverse.js.map +0 -1
  84. package/dist/842.genoverse.js +0 -2
  85. package/dist/842.genoverse.js.map +0 -1
  86. package/dist/893.genoverse.js +0 -2
  87. package/dist/893.genoverse.js.map +0 -1
  88. package/dist/949.genoverse.js +0 -2
  89. package/dist/949.genoverse.js.map +0 -1
  90. package/dist/952.genoverse.js +0 -2
  91. package/dist/952.genoverse.js.map +0 -1
  92. package/dist/e615bbcb258550973c16.ttf +0 -0
  93. /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
+ }]);
Binary file
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.2",
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",
56
- "jquery-ui": "^1.13.0",
60
+ "jquery": "^3.7.1",
61
+ "jquery-ui": "^1.14.2",
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,
@@ -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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ySefZMWKFWRmZp7v8Lud7OxsDh8+zLBhwygqKmp3oqCqKpFIBLvdzosvvsjgwYO55ZZbEtu3b99Ofn4+jzzyCHCsZ153Zk1NTfh8Pvx+P16v94yTHPp8PgYPHsymTZuOmx/AaDRiMBj05O88qK+vJysri+LiYjIzM884gVhWVhZXXnklK1euPO78JooiBoMBSZK49dZb2bx5MxUVFR0RfrfTq1cvCgoKGDlyJAcOHDjtvBgA+/bt4+WXX2b9+vWJ0ieIlyJomkZRURGPPvoomzZtAuK5ZGcc5dPY2IjZbA6LQBNdJEEfNmwYGzdupE+fPixZsuS0J6Nly5bxzjvvcOWVV9K7d2/ee+89Dh8+3MHR6nRd3549e7jlllsoKSlh7ty57TqZffXVV8ycOZM9e/bwxhtvkJaWxtq1a4F4T+Q///nPCxX2BReNRKitqqCyolStKClsKi8pNMZiYWO89jz6iaIoW4FPgUpJOmtiEjz6KoD4jXAsclItrSUaifiikUh2sLY6hzaTwQkGw0BN03Jaa9LPtvRZmxnYde20ZMkS3nrrLUaPHo3L5Tpr78qJLrvsMlauXMmwYcO4+eabqampSSSdRUVFTJky5UKEnRR33XUXv/jFL/jyyy8JhULtnil3//79zJ8/n02bNvHBBx/g8Xh44403gHjyP3HiRGpqavjlL3+ZeM+9996rD3M/jSlTpjB//nwKCgpoaWlp92z3hw8fZtGiRaxYsYJt27bhdrt59913gXjyP3/+fN58800WLFhANBrFZrMl6tR1p7d3717y8vLIzMzEZDIdN4T6RH369MHlciVKPgA++eQTevTogd1uP24ODN13s337du644w569uyJxWI544iGSy65hNTUVO66667EzzZv3kxubi5Op5MvvvgCn8/HDTfckNheUFDAZ599diGb0K3MmjWLmTNnkp+ff9bryAcffEB5eTm33XZb4mcLFy7k008/pbq6ml//+tfk5uYyZcoUvF4vgUCA1atXd0Ar2icYDGIymRoNwNfAkGQHdDYPPPAAVquVl156CVEUqampOeP+JpOJvn37UldXd1KNTmc25zfdozZX17kseeL/tfs9f/7zn4lEItx9993IspxYDimZ5j75pw7/nbFolJpAOYGKUvxlxWF/abHU0txkFs3mQydMBNeRs7efzlknl2tdw9xqc0bdHq90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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+gvaeTAAADL0lEQVR4nO3cO0hkVxyA8e9eZ+IjJBEXB5t1FLQQBWOhdQIbBBOwkSmsUhq0ULCSBOwsUmgTbDRpRDsrQdBCBFm20jCk8QVRljTqICGJ42PGFD6yhavrbvRmM9+vu+f+i6+9nHtOwD9KgR+AFPAhkiRJkiTpoRwC08AgcAQQXL4IgedA2ytrkiRJkiTp4RwBL4BnQL7ocvFr4BsuPtQlSZIkSdLDiwOVwG/Az1e75fvAk8iSJEmSJEkqXC+BpyHwKfBJxDGSJEmSJBWqcqA55OJf91jEMZIkSZIkFao48EUIfBV1iSRJentBELC4uEhVVRUA8Xicqakp1tbWSKfTdHd3R1woSZLuUAx8FgNqoy6RJEm3SyQSADQ0NFBUVMTS0hLn5+d0dXUxMjJCXV0dYXhx12tnZydhGNLS0kIikWB1dZXp6eko8yVJ0t1qQuDjqCskSdLtUqkUKysrtLe309PTw+TkJABzc3O0tbWxvr5+PZtOpxkeHgagvr6evb29KJIlSdL9VMSAsqgrJEnS3ZaXlxkaGiIMQ7a3t6moqCCTyZDNZsnlctdzGxsbAIyNjZFKpZiZmYkqWZIkvbmPQi4Oo0uSpP+4zc1NAPL5PDs7O5SXl984V1lZSVlZGf39/SSTSTo6OmhsbHzMVEmSdH+lIXAadYUkSbpbU1MTAKWlpdTW1rK7u3vj3MDAAL29vQDkcjlOTk44Pj5+tE5JkvRWjmLAX8AHUZdIkqTbNTc3Mzs7SzKZZHR0lLOzsxvnxsfHmZ+fp7W1lerqahYWFtja2nrkWkmSdE+/B8CvQDLiEEmSdIu+vj5KSkqYmJggFouxv79/63w8HqempoZMJsPBwcEjVUqSpHfwSww/0CVJem8cHh6+0dzp6en1mXVJkvRe2AmAQeD7qEskSdLrFRcXEwQB2Ww26hRJkvTvOwa+jQGLwBkQi7ZHkiS9jpe8SZL0v3YKLASXD/vAkwhjJEmSJEkqVC+Bp+HlwyCQjzBGkiRJkqRC9AfwHcDVDnoIPAfaXlmTJEmSJEkP5wh4ATwD8lc76Hngc+An4M+IwiRJkiRJKhSHwI/Al1z+0f43z/m00/T8KEUAAAAASUVORK5CYII="`;
@@ -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+gvaeTAAAC4UlEQVR4nO3czavmYxjA8e8zxnhfKMVkOqbJSymvxRB/gMUsxEJSSlKSrSQvS0tkYYGNDSsLTbYiykKRpsaCZspfoEQsdFmc34xnvEacc3Q+n81zX7/f77m77s3Vc3fdv6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgf2Hqiqmn/sH3Xpw6by2+ber1fzc7gHVzRc3frlc1L9acV7Oqeanms5rj/2wuAAD4j0zdM/XR1IElvmzqyNTG2jMXT909decSH5g6MXV4id+e+nbqre1ZBbA7zD01H9UcWOLLao7UbKw9c3HN3TV3LvGBmhM1hzevzYc1Z9WcW/NVzZVbvw4AgJ1jz3YnwBlurC6prpq6pXqnuq56c9m8n1+9X11ZPTL1fHVVdUF1+zLHw9VDW504sOucrlc1Z9SrZfN+Rr2q+XW9+qZ6rlY/VT9W37d2EggAALbV1PVT7y7jo2td8YNTH09tTJ2cunXq3GUT39TxqYvW5rlLBx34b831Ne8u46ObXfGqOVjz8WYnfU7W3Lp0yG9Z7h+vuWhtnktr3q55ZUvTBwDYgfZudwL8oUPV01M/LPGnq/p66rHqyera6rXqk+1KEGBxqHq65nS9qtXXNX9Rr+aB6onq2Vod3bp0AQB2Jhv0nWe1fH5Zvbyq92bzx+/9UzdUG6u6dznu/kX1wnYlCux6Z9SrWr1Xc6i6v+aGaqNW9y7H3X9Vr+bm6tHqjlp9t7VpAwDsTDboO8vJ6qapB6tnqjemjrX5rufj1VfVq8vR9sv75Rj7sTb/tf2+rU8Z2KVOVjfVnK5XNb+pV8vR9t+rV8erg9UHNafmfLhWn2/ZCgAA4M9MnTO1bxmfPXX10i0/dX/v1DVT+9eu7Zm6cDvyBXazOadm3zI+u+bqpVt+6v7emmtq9q9d21OjXgEAAAAAAAAAAAAAAADAzvUzojjWdTwWAg0AAAAASUVORK5CYII="`;
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+gvaeTAAAB2klEQVR4nO3cP4sfVRTH4c+GVRM1hWCRYFhFsgYENwYxGvAFCAqKFmITCCGNpBfR2jKBlDFNGq0sRKwCYmch2ARMESHgq7A7FjvBtUizrPvbLM/TzD3z5/Kd8jB3bgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMBjYerFqS928dz1qWM76renbu1tOgAAAP5PR1YdgP94o3pv6lTV1Imp96c2Ht4w9dzUh1PvLPWp6oNqa6m/r+5Uz+x7egAAAHZNg36wvF49X21OvVn9UL1WfTv10dTT1S/V6erK1NfVZtvN+IVljsvVpf0ODgAAAIfG1NbUT8v4x6m3lvFLU79ObUw9mDo/dXRp4pv6Y+r4jnnenfpuNW8BAADAbqyvOgCP9HL15dTfS/37Wv019Vn1efVq9U3126oCAgAAsHc06AfP2nK8X91Yq59nu1n/dOpstbFWHy/L3e9V11YVFAAAgL2jQT9YHlTnpi5WX1W3p+62/W/61erP6uaytP2F/l3GfrftXds/2f/IAAAAcAhNPTX15DJ+YuqV5Wv5w+vrU2emTu44d2Tq2VXkBQAAAAAAAAAAAAAAAAAADpV/ABMsWEY/sMeiAAAAAElFTkSuQmCC"`;
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+gvaeTAAABsUlEQVR4nO3aP8vQVRjH4c8jWpk6CA0G8hjiH4jUlozAl+AgObW0ufgGJNzFyaBVByfBUUTawiEQkcSpBkHBpbfgdjv4E3RoyeRnj9e1nHOfP/Bdb84pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+F+YOjD107+49/PUzneRCQAAAD44U99P/T61f6n3TZ2e2nztzN6pM1Onlnr/1JOpb9fKDQAAwNvbtnYA3vB19Vl1eOqb6lZ1rLqxNO+fVnerQ9W5qUvV4WpX9d06kQEAAGCLmTo+dWeZ3371Kj71xdS9qc2pp1Mnpz5Zmvim/pzas2Z2AAAA3s72tQPwjw5WF6eeL/XDjXo2db66UH1ZXa0erBUQAACA/44G/f2zsYyPq1826rd52az/MHWi2tyos8t397+qK2sFBQAAgC1pas/U31M/Tn019cfU9alHU6emdk3dn7o29evU5eXezamba+cHAACALWPq46mPlvmOqSPLa/mr/e1TR6c+f21t29TuNfICAAAAAAAAAAAAAAAAAABbygubNWA2rYd6sQAAAABJRU5ErkJggg=="`;
58
58
 
59
59
  exports[`Correctly render highlights: with a defined color 3`] = `undefined`;
60
60