igv 2.13.0 → 2.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/igv.esm.js CHANGED
@@ -8489,8 +8489,8 @@ function encode(objectName) {
8489
8489
 
8490
8490
  let result = '';
8491
8491
  objectName.split('').forEach(function(letter) {
8492
- if(encodings.has(letter)) {
8493
- result += encodings.get(letter);
8492
+ if(encodings$1.has(letter)) {
8493
+ result += encodings$1.get(letter);
8494
8494
  } else {
8495
8495
  result += letter;
8496
8496
  }
@@ -8499,27 +8499,27 @@ function encode(objectName) {
8499
8499
  }
8500
8500
 
8501
8501
  // %23 %24 %25 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3D %3F %40 %5B %5D
8502
- const encodings = new Map();
8503
- encodings.set("!", "%21");
8504
- encodings.set("#", "%23");
8505
- encodings.set("$", "%24");
8506
- encodings.set("%", "%25");
8507
- encodings.set("&", "%26");
8508
- encodings.set("'", "%27");
8509
- encodings.set("(", "%28");
8510
- encodings.set(")", "%29");
8511
- encodings.set("*", "%2A");
8512
- encodings.set("+", "%2B");
8513
- encodings.set(",", "%2C");
8514
- encodings.set("/", "%2F");
8515
- encodings.set(":", "%3A");
8516
- encodings.set(";", "%3B");
8517
- encodings.set("=", "%3D");
8518
- encodings.set("?", "%3F");
8519
- encodings.set("@", "%40");
8520
- encodings.set("[", "%5B");
8521
- encodings.set("]", "%5D");
8522
- encodings.set(" ", "%20");
8502
+ const encodings$1 = new Map();
8503
+ encodings$1.set("!", "%21");
8504
+ encodings$1.set("#", "%23");
8505
+ encodings$1.set("$", "%24");
8506
+ encodings$1.set("%", "%25");
8507
+ encodings$1.set("&", "%26");
8508
+ encodings$1.set("'", "%27");
8509
+ encodings$1.set("(", "%28");
8510
+ encodings$1.set(")", "%29");
8511
+ encodings$1.set("*", "%2A");
8512
+ encodings$1.set("+", "%2B");
8513
+ encodings$1.set(",", "%2C");
8514
+ encodings$1.set("/", "%2F");
8515
+ encodings$1.set(":", "%3A");
8516
+ encodings$1.set(";", "%3B");
8517
+ encodings$1.set("=", "%3D");
8518
+ encodings$1.set("?", "%3F");
8519
+ encodings$1.set("@", "%40");
8520
+ encodings$1.set("[", "%5B");
8521
+ encodings$1.set("]", "%5D");
8522
+ encodings$1.set(" ", "%20");
8523
8523
 
8524
8524
  // Convenience functions for the gapi oAuth library.
8525
8525
 
@@ -8841,7 +8841,7 @@ function download(filename, data) {
8841
8841
  /*============================================================================*/
8842
8842
 
8843
8843
 
8844
- function zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }
8844
+ function zero$1$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }
8845
8845
 
8846
8846
  // From zutil.h
8847
8847
 
@@ -8850,8 +8850,8 @@ function download(filename, data) {
8850
8850
  const DYN_TREES = 2;
8851
8851
  /* The three kinds of block type */
8852
8852
 
8853
- const MIN_MATCH$1 = 3;
8854
- const MAX_MATCH$1 = 258;
8853
+ const MIN_MATCH$1$1 = 3;
8854
+ const MAX_MATCH$1$1 = 258;
8855
8855
  /* The minimum and maximum match lengths */
8856
8856
 
8857
8857
  // From deflate.h
@@ -8859,22 +8859,22 @@ function download(filename, data) {
8859
8859
  * Internal compression state.
8860
8860
  */
8861
8861
 
8862
- const LENGTH_CODES$1 = 29;
8862
+ const LENGTH_CODES$1$1 = 29;
8863
8863
  /* number of length codes, not counting the special END_BLOCK code */
8864
8864
 
8865
- const LITERALS$1 = 256;
8865
+ const LITERALS$1$1 = 256;
8866
8866
  /* number of literal bytes 0..255 */
8867
8867
 
8868
- const L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;
8868
+ const L_CODES$1$1 = LITERALS$1$1 + 1 + LENGTH_CODES$1$1;
8869
8869
  /* number of Literal or Length codes, including the END_BLOCK code */
8870
8870
 
8871
- const D_CODES$1 = 30;
8871
+ const D_CODES$1$1 = 30;
8872
8872
  /* number of distance codes */
8873
8873
 
8874
8874
  const BL_CODES$1 = 19;
8875
8875
  /* number of codes used to transfer the bit lengths */
8876
8876
 
8877
- const HEAP_SIZE$1 = 2 * L_CODES$1 + 1;
8877
+ const HEAP_SIZE$1 = 2 * L_CODES$1$1 + 1;
8878
8878
  /* maximum heap size */
8879
8879
 
8880
8880
  const MAX_BITS$1 = 15;
@@ -8927,40 +8927,40 @@ function download(filename, data) {
8927
8927
 
8928
8928
  // We pre-fill arrays with 0 to avoid uninitialized gaps
8929
8929
 
8930
- const DIST_CODE_LEN = 512; /* see definition of array dist_code below */
8930
+ const DIST_CODE_LEN$1 = 512; /* see definition of array dist_code below */
8931
8931
 
8932
8932
  // !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1
8933
- const static_ltree = new Array((L_CODES$1 + 2) * 2);
8934
- zero$1(static_ltree);
8933
+ const static_ltree$1 = new Array((L_CODES$1$1 + 2) * 2);
8934
+ zero$1$1(static_ltree$1);
8935
8935
  /* The static literal tree. Since the bit lengths are imposed, there is no
8936
8936
  * need for the L_CODES extra codes used during heap construction. However
8937
8937
  * The codes 286 and 287 are needed to build a canonical tree (see _tr_init
8938
8938
  * below).
8939
8939
  */
8940
8940
 
8941
- const static_dtree = new Array(D_CODES$1 * 2);
8942
- zero$1(static_dtree);
8941
+ const static_dtree$1 = new Array(D_CODES$1$1 * 2);
8942
+ zero$1$1(static_dtree$1);
8943
8943
  /* The static distance tree. (Actually a trivial tree since all codes use
8944
8944
  * 5 bits.)
8945
8945
  */
8946
8946
 
8947
- const _dist_code = new Array(DIST_CODE_LEN);
8948
- zero$1(_dist_code);
8947
+ const _dist_code$1 = new Array(DIST_CODE_LEN$1);
8948
+ zero$1$1(_dist_code$1);
8949
8949
  /* Distance codes. The first 256 values correspond to the distances
8950
8950
  * 3 .. 258, the last 256 values correspond to the top 8 bits of
8951
8951
  * the 15 bit distances.
8952
8952
  */
8953
8953
 
8954
- const _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);
8955
- zero$1(_length_code);
8954
+ const _length_code$1 = new Array(MAX_MATCH$1$1 - MIN_MATCH$1$1 + 1);
8955
+ zero$1$1(_length_code$1);
8956
8956
  /* length code for each normalized match length (0 == MIN_MATCH) */
8957
8957
 
8958
- const base_length = new Array(LENGTH_CODES$1);
8959
- zero$1(base_length);
8958
+ const base_length$1 = new Array(LENGTH_CODES$1$1);
8959
+ zero$1$1(base_length$1);
8960
8960
  /* First normalized length for each code (0 = MIN_MATCH) */
8961
8961
 
8962
- const base_dist = new Array(D_CODES$1);
8963
- zero$1(base_dist);
8962
+ const base_dist$1 = new Array(D_CODES$1$1);
8963
+ zero$1$1(base_dist$1);
8964
8964
  /* First normalized distance for each code (0 = distance of 1) */
8965
8965
 
8966
8966
 
@@ -8992,7 +8992,7 @@ function download(filename, data) {
8992
8992
 
8993
8993
  const d_code = (dist) => {
8994
8994
 
8995
- return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];
8995
+ return dist < 256 ? _dist_code$1[dist] : _dist_code$1[256 + (dist >>> 7)];
8996
8996
  };
8997
8997
 
8998
8998
 
@@ -9236,10 +9236,10 @@ function download(filename, data) {
9236
9236
 
9237
9237
  /* Initialize the mapping length (0..255) -> length code (0..28) */
9238
9238
  length = 0;
9239
- for (code = 0; code < LENGTH_CODES$1 - 1; code++) {
9240
- base_length[code] = length;
9239
+ for (code = 0; code < LENGTH_CODES$1$1 - 1; code++) {
9240
+ base_length$1[code] = length;
9241
9241
  for (n = 0; n < (1 << extra_lbits[code]); n++) {
9242
- _length_code[length++] = code;
9242
+ _length_code$1[length++] = code;
9243
9243
  }
9244
9244
  }
9245
9245
  //Assert (length == 256, "tr_static_init: length != 256");
@@ -9247,22 +9247,22 @@ function download(filename, data) {
9247
9247
  * in two different ways: code 284 + 5 bits or code 285, so we
9248
9248
  * overwrite length_code[255] to use the best encoding:
9249
9249
  */
9250
- _length_code[length - 1] = code;
9250
+ _length_code$1[length - 1] = code;
9251
9251
 
9252
9252
  /* Initialize the mapping dist (0..32K) -> dist code (0..29) */
9253
9253
  dist = 0;
9254
9254
  for (code = 0; code < 16; code++) {
9255
- base_dist[code] = dist;
9255
+ base_dist$1[code] = dist;
9256
9256
  for (n = 0; n < (1 << extra_dbits[code]); n++) {
9257
- _dist_code[dist++] = code;
9257
+ _dist_code$1[dist++] = code;
9258
9258
  }
9259
9259
  }
9260
9260
  //Assert (dist == 256, "tr_static_init: dist != 256");
9261
9261
  dist >>= 7; /* from now on, all distances are divided by 128 */
9262
- for (; code < D_CODES$1; code++) {
9263
- base_dist[code] = dist << 7;
9262
+ for (; code < D_CODES$1$1; code++) {
9263
+ base_dist$1[code] = dist << 7;
9264
9264
  for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {
9265
- _dist_code[256 + dist++] = code;
9265
+ _dist_code$1[256 + dist++] = code;
9266
9266
  }
9267
9267
  }
9268
9268
  //Assert (dist == 256, "tr_static_init: 256+dist != 512");
@@ -9274,22 +9274,22 @@ function download(filename, data) {
9274
9274
 
9275
9275
  n = 0;
9276
9276
  while (n <= 143) {
9277
- static_ltree[n * 2 + 1]/*.Len*/ = 8;
9277
+ static_ltree$1[n * 2 + 1]/*.Len*/ = 8;
9278
9278
  n++;
9279
9279
  bl_count[8]++;
9280
9280
  }
9281
9281
  while (n <= 255) {
9282
- static_ltree[n * 2 + 1]/*.Len*/ = 9;
9282
+ static_ltree$1[n * 2 + 1]/*.Len*/ = 9;
9283
9283
  n++;
9284
9284
  bl_count[9]++;
9285
9285
  }
9286
9286
  while (n <= 279) {
9287
- static_ltree[n * 2 + 1]/*.Len*/ = 7;
9287
+ static_ltree$1[n * 2 + 1]/*.Len*/ = 7;
9288
9288
  n++;
9289
9289
  bl_count[7]++;
9290
9290
  }
9291
9291
  while (n <= 287) {
9292
- static_ltree[n * 2 + 1]/*.Len*/ = 8;
9292
+ static_ltree$1[n * 2 + 1]/*.Len*/ = 8;
9293
9293
  n++;
9294
9294
  bl_count[8]++;
9295
9295
  }
@@ -9297,17 +9297,17 @@ function download(filename, data) {
9297
9297
  * tree construction to get a canonical Huffman tree (longest code
9298
9298
  * all ones)
9299
9299
  */
9300
- gen_codes(static_ltree, L_CODES$1 + 1, bl_count);
9300
+ gen_codes(static_ltree$1, L_CODES$1$1 + 1, bl_count);
9301
9301
 
9302
9302
  /* The static distance tree is trivial: */
9303
- for (n = 0; n < D_CODES$1; n++) {
9304
- static_dtree[n * 2 + 1]/*.Len*/ = 5;
9305
- static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);
9303
+ for (n = 0; n < D_CODES$1$1; n++) {
9304
+ static_dtree$1[n * 2 + 1]/*.Len*/ = 5;
9305
+ static_dtree$1[n * 2]/*.Code*/ = bi_reverse(n, 5);
9306
9306
  }
9307
9307
 
9308
9308
  // Now data ready and we can init static trees
9309
- static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);
9310
- static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);
9309
+ static_l_desc = new StaticTreeDesc(static_ltree$1, extra_lbits, LITERALS$1$1 + 1, L_CODES$1$1, MAX_BITS$1);
9310
+ static_d_desc = new StaticTreeDesc(static_dtree$1, extra_dbits, 0, D_CODES$1$1, MAX_BITS$1);
9311
9311
  static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);
9312
9312
 
9313
9313
  //static_init_done = true;
@@ -9322,8 +9322,8 @@ function download(filename, data) {
9322
9322
  let n; /* iterates over tree elements */
9323
9323
 
9324
9324
  /* Initialize the trees. */
9325
- for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }
9326
- for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }
9325
+ for (n = 0; n < L_CODES$1$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }
9326
+ for (n = 0; n < D_CODES$1$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }
9327
9327
  for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }
9328
9328
 
9329
9329
  s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;
@@ -9443,11 +9443,11 @@ function download(filename, data) {
9443
9443
  //Tracecv(isgraph(lc), (stderr," '%c' ", lc));
9444
9444
  } else {
9445
9445
  /* Here, lc is the match length - MIN_MATCH */
9446
- code = _length_code[lc];
9447
- send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */
9446
+ code = _length_code$1[lc];
9447
+ send_code(s, code + LITERALS$1$1 + 1, ltree); /* send the length code */
9448
9448
  extra = extra_lbits[code];
9449
9449
  if (extra !== 0) {
9450
- lc -= base_length[code];
9450
+ lc -= base_length$1[code];
9451
9451
  send_bits(s, lc, extra); /* send the extra length bits */
9452
9452
  }
9453
9453
  dist--; /* dist is now the match distance - 1 */
@@ -9457,7 +9457,7 @@ function download(filename, data) {
9457
9457
  send_code(s, code, dtree); /* send the distance code */
9458
9458
  extra = extra_dbits[code];
9459
9459
  if (extra !== 0) {
9460
- dist -= base_dist[code];
9460
+ dist -= base_dist$1[code];
9461
9461
  send_bits(s, dist, extra); /* send the extra distance bits */
9462
9462
  }
9463
9463
  } /* literal or match pair ? */
@@ -9811,7 +9811,7 @@ function download(filename, data) {
9811
9811
  s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {
9812
9812
  return Z_TEXT;
9813
9813
  }
9814
- for (n = 32; n < LITERALS$1; n++) {
9814
+ for (n = 32; n < LITERALS$1$1; n++) {
9815
9815
  if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {
9816
9816
  return Z_TEXT;
9817
9817
  }
@@ -9869,7 +9869,7 @@ function download(filename, data) {
9869
9869
  */
9870
9870
  const _tr_align$1 = (s) => {
9871
9871
  send_bits(s, STATIC_TREES << 1, 3);
9872
- send_code(s, END_BLOCK, static_ltree);
9872
+ send_code(s, END_BLOCK, static_ltree$1);
9873
9873
  bi_flush(s);
9874
9874
  };
9875
9875
 
@@ -9941,7 +9941,7 @@ function download(filename, data) {
9941
9941
  } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {
9942
9942
 
9943
9943
  send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);
9944
- compress_block(s, static_ltree, static_dtree);
9944
+ compress_block(s, static_ltree$1, static_dtree$1);
9945
9945
 
9946
9946
  } else {
9947
9947
  send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);
@@ -9989,7 +9989,7 @@ function download(filename, data) {
9989
9989
  // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
9990
9990
  // (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match");
9991
9991
 
9992
- s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;
9992
+ s.dyn_ltree[(_length_code$1[lc] + LITERALS$1$1 + 1) * 2]/*.Freq*/++;
9993
9993
  s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;
9994
9994
  }
9995
9995
 
@@ -10111,7 +10111,7 @@ function download(filename, data) {
10111
10111
  // 3. This notice may not be removed or altered from any source distribution.
10112
10112
 
10113
10113
  // Use ordinary array, since untyped makes no boost here
10114
- const makeTable = () => {
10114
+ const makeTable$1 = () => {
10115
10115
  let c, table = [];
10116
10116
 
10117
10117
  for (var n = 0; n < 256; n++) {
@@ -10126,7 +10126,7 @@ function download(filename, data) {
10126
10126
  };
10127
10127
 
10128
10128
  // Create table on load. Just 255 signed longs. Not a problem.
10129
- const crcTable = new Uint32Array(makeTable());
10129
+ const crcTable = new Uint32Array(makeTable$1());
10130
10130
 
10131
10131
 
10132
10132
  const crc32 = (crc, buf, len, pos) => {
@@ -12171,11 +12171,11 @@ function download(filename, data) {
12171
12171
  // Table with utf8 lengths (calculated by first byte of sequence)
12172
12172
  // Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,
12173
12173
  // because max possible codepoint is 0x10ffff
12174
- const _utf8len = new Uint8Array(256);
12174
+ const _utf8len$1 = new Uint8Array(256);
12175
12175
  for (let q = 0; q < 256; q++) {
12176
- _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);
12176
+ _utf8len$1[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);
12177
12177
  }
12178
- _utf8len[254] = _utf8len[254] = 1; // Invalid sequence start
12178
+ _utf8len$1[254] = _utf8len$1[254] = 1; // Invalid sequence start
12179
12179
 
12180
12180
 
12181
12181
  // convert string to array (typed, when possible)
@@ -12275,7 +12275,7 @@ function download(filename, data) {
12275
12275
  // quick process ascii
12276
12276
  if (c < 0x80) { utf16buf[out++] = c; continue; }
12277
12277
 
12278
- let c_len = _utf8len[c];
12278
+ let c_len = _utf8len$1[c];
12279
12279
  // skip 5 & 6 byte codes
12280
12280
  if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }
12281
12281
 
@@ -12326,7 +12326,7 @@ function download(filename, data) {
12326
12326
  // return max too.
12327
12327
  if (pos === 0) { return max; }
12328
12328
 
12329
- return (pos + _utf8len[buf[pos]] > max) ? pos : max;
12329
+ return (pos + _utf8len$1[buf[pos]] > max) ? pos : max;
12330
12330
  };
12331
12331
 
12332
12332
  var strings = {
@@ -16517,61 +16517,6 @@ function dragEnd$1(event) {
16517
16517
  dragData$1 = undefined;
16518
16518
  }
16519
16519
 
16520
- const appleCrayonPalette$1 =
16521
- {
16522
- licorice: "#000000",
16523
- lead: "#1e1e1e",
16524
- tungsten: "#3a3a3a",
16525
- iron: "#545453",
16526
- steel: "#6e6e6e",
16527
- tin: "#878687",
16528
- nickel: "#888787",
16529
- aluminum: "#a09fa0",
16530
- magnesium: "#b8b8b8",
16531
- silver: "#d0d0d0",
16532
- mercury: "#e8e8e8",
16533
- snow: "#ffffff",
16534
- //
16535
- cayenne: "#891100",
16536
- mocha: "#894800",
16537
- aspargus: "#888501",
16538
- fern: "#458401",
16539
- clover: "#028401",
16540
- moss: "#018448",
16541
- teal: "#008688",
16542
- ocean: "#004a88",
16543
- midnight: "#001888",
16544
- eggplant: "#491a88",
16545
- plum: "#891e88",
16546
- maroon: "#891648",
16547
- //
16548
- maraschino: "#ff2101",
16549
- tangerine: "#ff8802",
16550
- lemon: "#fffa03",
16551
- lime: "#83f902",
16552
- spring: "#05f802",
16553
- seam_foam: "#03f987",
16554
- turquoise: "#00fdff",
16555
- aqua: "#008cff",
16556
- blueberry: "#002eff",
16557
- grape: "#8931ff",
16558
- magenta: "#ff39ff",
16559
- strawberry: "#ff2987",
16560
- //
16561
- salmon: "#ff726e",
16562
- cantaloupe: "#ffce6e",
16563
- banana: "#fffb6d",
16564
- honeydew: "#cefa6e",
16565
- flora: "#68f96e",
16566
- spindrift: "#68fbd0",
16567
- ice: "#68fdff",
16568
- sky: "#6acfff",
16569
- orchid: "#6e76ff",
16570
- lavender: "#d278ff",
16571
- bubblegum: "#ff7aff",
16572
- carnation: "#ff7fd3"
16573
- };
16574
-
16575
16520
  // Support for oauth token based authorization
16576
16521
  // This class supports explicit setting of an oauth token either globally or for specific hosts.
16577
16522
  //
@@ -16654,7 +16599,7 @@ function regExpEscape(s) {
16654
16599
  * @param {number} requestsPerSecond The amount of requests per second
16655
16600
  * the library will limit to
16656
16601
  */
16657
- class Throttle {
16602
+ class Throttle$1 {
16658
16603
  constructor(options) {
16659
16604
  this.requestsPerSecond = options.requestsPerSecond || 10;
16660
16605
  this.lastStartTime = 0;
@@ -16764,7 +16709,7 @@ class Throttle {
16764
16709
  */
16765
16710
  let RANGE_WARNING_GIVEN = false;
16766
16711
 
16767
- const googleThrottle = new Throttle({
16712
+ const googleThrottle = new Throttle$1({
16768
16713
  requestsPerSecond: 8
16769
16714
  });
16770
16715
 
@@ -18509,7 +18454,7 @@ class AlertDialog {
18509
18454
  }, alertProps);
18510
18455
 
18511
18456
  // container
18512
- this.container = div({class: "igv-ui-alert-dialog-container"});
18457
+ this.container = div({class: "igv-ui-1_3_0-alert-dialog-container"});
18513
18458
  parent.appendChild(this.container);
18514
18459
  this.container.setAttribute('tabIndex', '-1');
18515
18460
 
@@ -18522,11 +18467,11 @@ class AlertDialog {
18522
18467
  this.errorHeadline.textContent = '';
18523
18468
 
18524
18469
  // body container
18525
- let bodyContainer = div({class: 'igv-ui-alert-dialog-body'});
18470
+ let bodyContainer = div({class: 'igv-ui-1_3_0-alert-dialog-body'});
18526
18471
  this.container.appendChild(bodyContainer);
18527
18472
 
18528
18473
  // body copy
18529
- this.body = div({class: 'igv-ui-alert-dialog-body-copy'});
18474
+ this.body = div({class: 'igv-ui-1_3_0-alert-dialog-body-copy'});
18530
18475
  bodyContainer.appendChild(this.body);
18531
18476
 
18532
18477
  // ok container
@@ -18614,23 +18559,23 @@ class InputDialog {
18614
18559
  this.parent = parent;
18615
18560
 
18616
18561
  // dialog container
18617
- this.container = div({class: 'igv-ui-generic-dialog-container'});
18562
+ this.container = div({class: 'igv-ui-1_3_0-generic-dialog-container'});
18618
18563
  parent.appendChild(this.container);
18619
18564
 
18620
18565
  // const { x, y, width, height } = this.container.getBoundingClientRect();
18621
18566
  // console.log(`InputDialog - x ${ x } y ${ y } width ${ width } height ${ height }`)
18622
18567
 
18623
18568
  // dialog header
18624
- const header = div({class: 'igv-ui-generic-dialog-header'});
18569
+ const header = div({class: 'igv-ui-1_3_0-generic-dialog-header'});
18625
18570
  this.container.appendChild(header);
18626
18571
 
18627
18572
  // dialog label
18628
- this.label = div({class: 'igv-ui-generic-dialog-one-liner'});
18573
+ this.label = div({class: 'igv-ui-1_3_0-generic-dialog-one-liner'});
18629
18574
  this.container.appendChild(this.label);
18630
18575
  this.label.text = 'Unlabeled';
18631
18576
 
18632
18577
  // input container
18633
- this.input_container = div({class: 'igv-ui-generic-dialog-input'});
18578
+ this.input_container = div({class: 'igv-ui-1_3_0-generic-dialog-input'});
18634
18579
  this.container.appendChild(this.input_container);
18635
18580
  //
18636
18581
  this.input = document.createElement("input");
@@ -18638,7 +18583,7 @@ class InputDialog {
18638
18583
 
18639
18584
 
18640
18585
  // ok | cancel
18641
- const buttons = div({class: 'igv-ui-generic-dialog-ok-cancel'});
18586
+ const buttons = div({class: 'igv-ui-1_3_0-generic-dialog-ok-cancel'});
18642
18587
  this.container.appendChild(buttons);
18643
18588
 
18644
18589
  // ok
@@ -18772,7 +18717,7 @@ class GenericContainer {
18772
18717
 
18773
18718
  constructor({parent, top, left, width, height, border, closeHandler}) {
18774
18719
 
18775
- let container = div({class: 'igv-ui-generic-container'});
18720
+ let container = div({class: 'igv-ui-1_3_0-generic-container'});
18776
18721
  parent.appendChild(container);
18777
18722
  hide(container);
18778
18723
  this.container = container;
@@ -18843,14 +18788,14 @@ const createColorSwatchSelector = (container, colorHandler, defaultColors) => {
18843
18788
  const hexColorStrings = Object.values(appleCrayonPalette);
18844
18789
 
18845
18790
  for (let hexColorString of hexColorStrings) {
18846
- const swatch = div({ class: 'igv-ui-color-swatch' });
18791
+ const swatch = div({ class: 'igv-ui-1_3_0-color-swatch' });
18847
18792
  container.appendChild(swatch);
18848
18793
  decorateSwatch(swatch, hexColorString, colorHandler);
18849
18794
  }
18850
18795
 
18851
18796
  if (defaultColors) {
18852
18797
  for (let hexColorString of defaultColors) {
18853
- const swatch = div({ class: 'igv-ui-color-swatch' });
18798
+ const swatch = div({ class: 'igv-ui-1_3_0-color-swatch' });
18854
18799
  container.appendChild(swatch);
18855
18800
  decorateSwatch(swatch, hexColorString, colorHandler);
18856
18801
  }
@@ -18885,7 +18830,7 @@ class Popover {
18885
18830
  this.parent = parent;
18886
18831
 
18887
18832
  // popover
18888
- this.popover = div({ class: "igv-ui-popover" });
18833
+ this.popover = div({ class: "igv-ui-1_3_0-popover" });
18889
18834
  parent.appendChild(this.popover);
18890
18835
 
18891
18836
  // header
@@ -19045,32 +18990,916 @@ function createMenuElements$1(itemList, popover) {
19045
18990
  return list;
19046
18991
  }
19047
18992
 
19048
- function embedCSS$2() {
18993
+ // %23 %24 %25 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3D %3F %40 %5B %5D
18994
+ const encodings = new Map();
18995
+ encodings.set("!", "%21");
18996
+ encodings.set("#", "%23");
18997
+ encodings.set("$", "%24");
18998
+ encodings.set("%", "%25");
18999
+ encodings.set("&", "%26");
19000
+ encodings.set("'", "%27");
19001
+ encodings.set("(", "%28");
19002
+ encodings.set(")", "%29");
19003
+ encodings.set("*", "%2A");
19004
+ encodings.set("+", "%2B");
19005
+ encodings.set(",", "%2C");
19006
+ encodings.set("/", "%2F");
19007
+ encodings.set(":", "%3A");
19008
+ encodings.set(";", "%3B");
19009
+ encodings.set("=", "%3D");
19010
+ encodings.set("?", "%3F");
19011
+ encodings.set("@", "%40");
19012
+ encodings.set("[", "%5B");
19013
+ encodings.set("]", "%5D");
19014
+ encodings.set(" ", "%20");
19015
+
19016
+ if (typeof process === 'object' && typeof window === 'undefined') {
19017
+ global.atob = function (str) {
19018
+ return Buffer.from(str, 'base64').toString('binary');
19019
+ };
19020
+ }
19049
19021
 
19050
- var css = '.igv-ui-popover {\n cursor: default;\n position: absolute;\n z-index: 2048;\n border-color: #7F7F7F;\n border-radius: 4px;\n border-style: solid;\n border-width: 1px;\n font-family: \"Open Sans\", sans-serif;\n font-size: small;\n background-color: white; }\n .igv-ui-popover > div:first-child {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n height: 24px;\n cursor: move;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-color: #7F7F7F;\n border-bottom-style: solid;\n border-bottom-width: thin;\n background-color: #eee; }\n .igv-ui-popover > div:first-child > div:first-child {\n margin-left: 4px; }\n .igv-ui-popover > div:first-child > div:last-child {\n margin-right: 4px;\n height: 12px;\n width: 12px;\n color: #7F7F7F; }\n .igv-ui-popover > div:first-child > div:last-child:hover {\n cursor: pointer;\n color: #444; }\n .igv-ui-popover > div:last-child {\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 400px;\n max-width: 800px;\n background-color: white; }\n .igv-ui-popover > div:last-child > div {\n -webkit-user-select: text;\n -moz-user-select: text;\n -ms-user-select: text;\n user-select: text;\n margin-left: 4px;\n margin-right: 4px;\n min-width: 220px;\n overflow-x: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\n .igv-ui-popover > div:last-child > div > span {\n font-weight: bolder; }\n .igv-ui-popover > div:last-child hr {\n width: 100%; }\n\n.igv-ui-alert-dialog-container {\n box-sizing: content-box;\n position: absolute;\n z-index: 2048;\n top: 50%;\n left: 50%;\n width: 400px;\n height: 200px;\n border-color: #7F7F7F;\n border-radius: 4px;\n border-style: solid;\n border-width: thin;\n outline: none;\n font-family: \"Open Sans\", sans-serif;\n font-size: 15px;\n font-weight: 400;\n background-color: white;\n display: flex;\n flex-flow: column;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center; }\n .igv-ui-alert-dialog-container > div:first-child {\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center;\n width: 100%;\n height: 24px;\n cursor: move;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-color: #7F7F7F;\n border-bottom-style: solid;\n border-bottom-width: thin;\n background-color: #eee; }\n .igv-ui-alert-dialog-container > div:first-child div:first-child {\n padding-left: 8px; }\n .igv-ui-alert-dialog-container .igv-ui-alert-dialog-body {\n -webkit-user-select: text;\n -moz-user-select: text;\n -ms-user-select: text;\n user-select: text;\n color: #373737;\n width: 100%;\n height: calc(100% - 24px - 64px);\n overflow-y: scroll; }\n .igv-ui-alert-dialog-container .igv-ui-alert-dialog-body .igv-ui-alert-dialog-body-copy {\n margin: 16px;\n width: auto;\n height: auto;\n overflow-wrap: break-word;\n word-break: break-word;\n background-color: white;\n border: unset; }\n .igv-ui-alert-dialog-container > div:last-child {\n width: 100%;\n margin-bottom: 10px;\n background-color: white;\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: center;\n align-items: center; }\n .igv-ui-alert-dialog-container > div:last-child div {\n margin: unset;\n width: 40px;\n height: 30px;\n line-height: 30px;\n text-align: center;\n color: white;\n font-family: \"Open Sans\", sans-serif;\n font-size: small;\n font-weight: 400;\n border-color: #2B81AF;\n border-style: solid;\n border-width: thin;\n border-radius: 4px;\n background-color: #2B81AF; }\n .igv-ui-alert-dialog-container > div:last-child div:hover {\n cursor: pointer;\n border-color: #25597f;\n background-color: #25597f; }\n\n.igv-ui-color-swatch {\n position: relative;\n box-sizing: content-box;\n display: flex;\n flex-flow: row;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n width: 32px;\n height: 32px;\n border-style: solid;\n border-width: 2px;\n border-color: white;\n border-radius: 4px; }\n\n.igv-ui-color-swatch:hover {\n border-color: dimgray; }\n\n.igv-ui-colorpicker-menu-close-button {\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: flex-end;\n align-items: center;\n width: 100%;\n height: 32px;\n margin-top: 4px;\n margin-bottom: 4px;\n padding-right: 8px; }\n .igv-ui-colorpicker-menu-close-button i.fa {\n display: block;\n margin-left: 4px;\n margin-right: 4px;\n color: #5f5f5f; }\n .igv-ui-colorpicker-menu-close-button i.fa:hover,\n .igv-ui-colorpicker-menu-close-button i.fa:focus,\n .igv-ui-colorpicker-menu-close-button i.fa:active {\n cursor: pointer;\n color: #0f0f0f; }\n\n.igv-ui-generic-dialog-container {\n box-sizing: content-box;\n position: fixed;\n top: 0;\n left: 0;\n width: 300px;\n height: 200px;\n border-color: #7F7F7F;\n border-radius: 4px;\n border-style: solid;\n border-width: thin;\n font-family: \"Open Sans\", sans-serif;\n font-size: medium;\n font-weight: 400;\n z-index: 2048;\n background-color: white;\n display: flex;\n flex-flow: column;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-header {\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: flex-end;\n align-items: center;\n width: 100%;\n height: 24px;\n cursor: move;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-color: #7F7F7F;\n border-bottom-style: solid;\n border-bottom-width: thin;\n background-color: #eee; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-header div {\n margin-right: 4px;\n margin-bottom: 2px;\n height: 12px;\n width: 12px;\n color: #7F7F7F; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-header div:hover {\n cursor: pointer;\n color: #444; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-one-liner {\n color: #373737;\n width: 95%;\n height: 24px;\n line-height: 24px;\n text-align: left;\n margin-top: 8px;\n padding-left: 8px;\n overflow-wrap: break-word;\n background-color: white; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-label-input {\n margin-top: 8px;\n width: 95%;\n height: 24px;\n color: #373737;\n line-height: 24px;\n padding-left: 8px;\n background-color: white;\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-label-input div {\n width: 30%;\n height: 100%;\n font-size: 16px;\n text-align: right;\n padding-right: 8px;\n background-color: white; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-label-input input {\n display: block;\n height: 100%;\n width: 100%;\n padding-left: 4px;\n font-family: \"Open Sans\", sans-serif;\n font-weight: 400;\n color: #373737;\n text-align: left;\n outline: none;\n border-style: solid;\n border-width: thin;\n border-color: #7F7F7F;\n background-color: white; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-label-input input {\n width: 50%;\n font-size: 16px; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-input {\n margin-top: 8px;\n width: calc(100% - 16px);\n height: 24px;\n color: #373737;\n line-height: 24px;\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: space-around;\n align-items: center; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-input input {\n display: block;\n height: 100%;\n width: 100%;\n padding-left: 4px;\n font-family: \"Open Sans\", sans-serif;\n font-weight: 400;\n color: #373737;\n text-align: left;\n outline: none;\n border-style: solid;\n border-width: thin;\n border-color: #7F7F7F;\n background-color: white; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-input input {\n font-size: 16px; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-ok-cancel {\n width: 100%;\n height: 28px;\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: space-around;\n align-items: center; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-ok-cancel div {\n margin-top: 32px;\n color: white;\n font-family: \"Open Sans\", sans-serif;\n font-size: 14px;\n font-weight: 400;\n width: 75px;\n height: 28px;\n line-height: 28px;\n text-align: center;\n border-color: transparent;\n border-style: solid;\n border-width: thin;\n border-radius: 2px; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-ok-cancel div:first-child {\n margin-left: 32px;\n margin-right: 0;\n background-color: #5ea4e0; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-ok-cancel div:last-child {\n margin-left: 0;\n margin-right: 32px;\n background-color: #c4c4c4; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-ok-cancel div:first-child:hover {\n cursor: pointer;\n background-color: #3b5c7f; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-ok-cancel div:last-child:hover {\n cursor: pointer;\n background-color: #7f7f7f; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-ok {\n width: 100%;\n height: 36px;\n margin-top: 32px;\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: space-around;\n align-items: center; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-ok div {\n width: 98px;\n height: 36px;\n line-height: 36px;\n text-align: center;\n color: white;\n font-family: \"Open Sans\", sans-serif;\n font-size: medium;\n font-weight: 400;\n border-color: white;\n border-style: solid;\n border-width: thin;\n border-radius: 4px;\n background-color: #2B81AF; }\n .igv-ui-generic-dialog-container .igv-ui-generic-dialog-ok div:hover {\n cursor: pointer;\n background-color: #25597f; }\n\n.igv-ui-generic-container {\n box-sizing: content-box;\n position: absolute;\n z-index: 2048;\n background-color: white;\n cursor: pointer;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n align-items: center; }\n .igv-ui-generic-container > div:first-child {\n cursor: move;\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: flex-end;\n align-items: center;\n height: 24px;\n width: 100%;\n background-color: #dddddd; }\n .igv-ui-generic-container > div:first-child > div {\n display: block;\n color: #5f5f5f;\n cursor: pointer;\n width: 14px;\n height: 14px;\n margin-right: 8px;\n margin-bottom: 4px; }\n\n.igv-ui-dialog {\n z-index: 2048;\n position: fixed;\n width: fit-content;\n height: fit-content;\n display: flex;\n flex-flow: column;\n flex-wrap: nowrap;\n justify-content: flex-start;\n background-color: white;\n border-color: #7F7F7F;\n border-radius: 4px;\n border-style: solid;\n border-width: thin;\n font-family: \"Open Sans\", sans-serif;\n font-size: medium;\n font-weight: 400; }\n .igv-ui-dialog .igv-ui-dialog-header {\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: flex-end;\n align-items: center;\n width: 100%;\n height: 24px;\n cursor: move;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-color: #7F7F7F;\n border-bottom-style: solid;\n border-bottom-width: thin;\n background-color: #eee; }\n .igv-ui-dialog .igv-ui-dialog-header div {\n margin-right: 4px;\n margin-bottom: 2px;\n height: 12px;\n width: 12px;\n color: #7F7F7F; }\n .igv-ui-dialog .igv-ui-dialog-header div:hover {\n cursor: pointer;\n color: #444; }\n .igv-ui-dialog .igv-ui-dialog-one-liner {\n width: 95%;\n height: 24px;\n line-height: 24px;\n text-align: left;\n margin: 8px;\n overflow-wrap: break-word;\n background-color: white;\n font-weight: bold; }\n .igv-ui-dialog .igv-ui-dialog-ok-cancel {\n width: 100%;\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: space-around;\n align-items: center; }\n .igv-ui-dialog .igv-ui-dialog-ok-cancel div {\n margin: 16px;\n margin-top: 32px;\n color: white;\n font-family: \"Open Sans\", sans-serif;\n font-size: 14px;\n font-weight: 400;\n width: 75px;\n height: 28px;\n line-height: 28px;\n text-align: center;\n border-color: transparent;\n border-style: solid;\n border-width: thin;\n border-radius: 2px; }\n .igv-ui-dialog .igv-ui-dialog-ok-cancel div:first-child {\n background-color: #5ea4e0; }\n .igv-ui-dialog .igv-ui-dialog-ok-cancel div:last-child {\n background-color: #c4c4c4; }\n .igv-ui-dialog .igv-ui-dialog-ok-cancel div:first-child:hover {\n cursor: pointer;\n background-color: #3b5c7f; }\n .igv-ui-dialog .igv-ui-dialog-ok-cancel div:last-child:hover {\n cursor: pointer;\n background-color: #7f7f7f; }\n .igv-ui-dialog .igv-ui-dialog-ok {\n width: 100%;\n height: 36px;\n margin-top: 32px;\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: space-around;\n align-items: center; }\n .igv-ui-dialog .igv-ui-dialog-ok div {\n width: 98px;\n height: 36px;\n line-height: 36px;\n text-align: center;\n color: white;\n font-family: \"Open Sans\", sans-serif;\n font-size: medium;\n font-weight: 400;\n border-color: white;\n border-style: solid;\n border-width: thin;\n border-radius: 4px;\n background-color: #2B81AF; }\n .igv-ui-dialog .igv-ui-dialog-ok div:hover {\n cursor: pointer;\n background-color: #25597f; }\n\n.igv-ui-panel, .igv-ui-panel-column, .igv-ui-panel-row {\n z-index: 2048;\n background-color: white;\n font-family: \"Open Sans\", sans-serif;\n font-size: medium;\n font-weight: 400;\n display: flex;\n justify-content: flex-start;\n align-items: flex-start; }\n\n.igv-ui-panel-column {\n display: flex;\n flex-direction: column; }\n\n.igv-ui-panel-row {\n display: flex;\n flex-direction: row; }\n\n.igv-ui-textbox {\n background-color: white;\n font-family: \"Open Sans\", sans-serif;\n font-size: medium;\n font-weight: 400;\n display: flex;\n justify-content: flex-start;\n align-items: flex-start; }\n\n/*# sourceMappingURL=igv-ui.css.map */\n';
19022
+ /*============================================================================*/
19051
19023
 
19052
- var style = document.createElement('style');
19053
- style.setAttribute('type', 'text/css');
19054
- style.innerHTML = css;
19055
19024
 
19056
- document.head.insertBefore(style, document.head.childNodes[ document.head.childNodes.length - 1 ]);
19025
+ function zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }
19026
+ /* The three kinds of block type */
19027
+
19028
+ const MIN_MATCH$1 = 3;
19029
+ const MAX_MATCH$1 = 258;
19030
+ /* The minimum and maximum match lengths */
19031
+
19032
+ // From deflate.h
19033
+ /* ===========================================================================
19034
+ * Internal compression state.
19035
+ */
19036
+
19037
+ const LENGTH_CODES$1 = 29;
19038
+ /* number of length codes, not counting the special END_BLOCK code */
19039
+
19040
+ const LITERALS$1 = 256;
19041
+ /* number of literal bytes 0..255 */
19042
+
19043
+ const L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;
19044
+ /* number of Literal or Length codes, including the END_BLOCK code */
19045
+
19046
+ const D_CODES$1 = 30;
19047
+ /* eslint-enable comma-spacing,array-bracket-spacing */
19048
+
19049
+ /* The lengths of the bit length codes are sent in order of decreasing
19050
+ * probability, to avoid transmitting the lengths for unused bit length codes.
19051
+ */
19052
+
19053
+ /* ===========================================================================
19054
+ * Local data. These are initialized only once.
19055
+ */
19056
+
19057
+ // We pre-fill arrays with 0 to avoid uninitialized gaps
19058
+
19059
+ const DIST_CODE_LEN = 512; /* see definition of array dist_code below */
19060
+
19061
+ // !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1
19062
+ const static_ltree = new Array((L_CODES$1 + 2) * 2);
19063
+ zero$1(static_ltree);
19064
+ /* The static literal tree. Since the bit lengths are imposed, there is no
19065
+ * need for the L_CODES extra codes used during heap construction. However
19066
+ * The codes 286 and 287 are needed to build a canonical tree (see _tr_init
19067
+ * below).
19068
+ */
19069
+
19070
+ const static_dtree = new Array(D_CODES$1 * 2);
19071
+ zero$1(static_dtree);
19072
+ /* The static distance tree. (Actually a trivial tree since all codes use
19073
+ * 5 bits.)
19074
+ */
19075
+
19076
+ const _dist_code = new Array(DIST_CODE_LEN);
19077
+ zero$1(_dist_code);
19078
+ /* Distance codes. The first 256 values correspond to the distances
19079
+ * 3 .. 258, the last 256 values correspond to the top 8 bits of
19080
+ * the 15 bit distances.
19081
+ */
19082
+
19083
+ const _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);
19084
+ zero$1(_length_code);
19085
+ /* length code for each normalized match length (0 == MIN_MATCH) */
19086
+
19087
+ const base_length = new Array(LENGTH_CODES$1);
19088
+ zero$1(base_length);
19089
+ /* First normalized length for each code (0 = MIN_MATCH) */
19090
+
19091
+ const base_dist = new Array(D_CODES$1);
19092
+ zero$1(base_dist);
19093
+
19094
+ // Note: we can't get significant speed boost here.
19095
+ // So write code to minimize size - no pregenerated tables
19096
+ // and array tools dependencies.
19097
+
19098
+ // (C) 1995-2013 Jean-loup Gailly and Mark Adler
19099
+ // (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
19100
+ //
19101
+ // This software is provided 'as-is', without any express or implied
19102
+ // warranty. In no event will the authors be held liable for any damages
19103
+ // arising from the use of this software.
19104
+ //
19105
+ // Permission is granted to anyone to use this software for any purpose,
19106
+ // including commercial applications, and to alter it and redistribute it
19107
+ // freely, subject to the following restrictions:
19108
+ //
19109
+ // 1. The origin of this software must not be misrepresented; you must not
19110
+ // claim that you wrote the original software. If you use this software
19111
+ // in a product, an acknowledgment in the product documentation would be
19112
+ // appreciated but is not required.
19113
+ // 2. Altered source versions must be plainly marked as such, and must not be
19114
+ // misrepresented as being the original software.
19115
+ // 3. This notice may not be removed or altered from any source distribution.
19116
+
19117
+ // Use ordinary array, since untyped makes no boost here
19118
+ const makeTable = () => {
19119
+ let c, table = [];
19120
+
19121
+ for (var n = 0; n < 256; n++) {
19122
+ c = n;
19123
+ for (var k = 0; k < 8; k++) {
19124
+ c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));
19125
+ }
19126
+ table[n] = c;
19127
+ }
19128
+
19129
+ return table;
19130
+ };
19131
+
19132
+ // Create table on load. Just 255 signed longs. Not a problem.
19133
+ new Uint32Array(makeTable());
19134
+
19135
+ try { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { }
19136
+
19137
+
19138
+ // Table with utf8 lengths (calculated by first byte of sequence)
19139
+ // Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,
19140
+ // because max possible codepoint is 0x10ffff
19141
+ const _utf8len = new Uint8Array(256);
19142
+ for (let q = 0; q < 256; q++) {
19143
+ _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);
19144
+ }
19145
+ _utf8len[254] = _utf8len[254] = 1; // Invalid sequence start
19146
+
19147
+ // *********** BELOW COMMENTED OUT BY JTR **************//
19148
+ // exports.Deflate = Deflate_1;
19149
+ // exports.Inflate = Inflate_1;
19150
+ // exports.constants = constants_1;
19151
+ // exports['default'] = pako;
19152
+ // exports.deflate = deflate_1;
19153
+ // exports.deflateRaw = deflateRaw_1;
19154
+ // exports.gzip = gzip_1;
19155
+ // exports.inflate = inflate_1;
19156
+ // exports.inflateRaw = inflateRaw_1;
19157
+ // exports.ungzip = ungzip_1;
19158
+
19159
+ // Object.defineProperty(exports, '__esModule', { value: true });
19160
+ //
19161
+ // })));
19162
+
19163
+ // The MIT License (MIT)
19164
+
19165
+ /**
19166
+ * @constructor
19167
+ * @param {Object} options A set op options to pass to the throttle function
19168
+ * @param {number} requestsPerSecond The amount of requests per second
19169
+ * the library will limit to
19170
+ */
19171
+ class Throttle {
19172
+ constructor(options) {
19173
+ this.requestsPerSecond = options.requestsPerSecond || 10;
19174
+ this.lastStartTime = 0;
19175
+ this.queued = [];
19176
+ }
19177
+
19178
+ /**
19179
+ * Adds a promise
19180
+ * @param {Function} async function to be executed
19181
+ * @param {Object} options A set of options.
19182
+ * @return {Promise} A promise
19183
+ */
19184
+ add(asyncFunction, options) {
19185
+
19186
+ var self = this;
19187
+ return new Promise(function (resolve, reject) {
19188
+ self.queued.push({
19189
+ resolve: resolve,
19190
+ reject: reject,
19191
+ asyncFunction: asyncFunction,
19192
+ });
19193
+ self.dequeue();
19194
+ });
19195
+ }
19196
+
19197
+ /**
19198
+ * Adds all the promises passed as parameters
19199
+ * @param {Function} promises An array of functions that return a promise
19200
+ * @param {Object} options A set of options.
19201
+ * @param {number} options.signal An AbortSignal object that can be used to abort the returned promise
19202
+ * @param {number} options.weight A "weight" of each operation resolving by array of promises
19203
+ * @return {Promise} A promise that succeeds when all the promises passed as options do
19204
+ */
19205
+ addAll(promises, options) {
19206
+ var addedPromises = promises.map(function (promise) {
19207
+ return this.add(promise, options);
19208
+ }.bind(this));
19209
+
19210
+ return Promise.all(addedPromises);
19211
+ };
19212
+
19213
+ /**
19214
+ * Dequeues a promise
19215
+ * @return {void}
19216
+ */
19217
+ dequeue() {
19218
+ if (this.queued.length > 0) {
19219
+ var now = new Date(),
19220
+ inc = (1000 / this.requestsPerSecond) + 1,
19221
+ elapsed = now - this.lastStartTime;
19222
+
19223
+ if (elapsed >= inc) {
19224
+ this._execute();
19225
+ } else {
19226
+ // we have reached the limit, schedule a dequeue operation
19227
+ setTimeout(function () {
19228
+ this.dequeue();
19229
+ }.bind(this), inc - elapsed);
19230
+ }
19231
+ }
19232
+ }
19233
+
19234
+ /**
19235
+ * Executes the promise
19236
+ * @private
19237
+ * @return {void}
19238
+ */
19239
+ async _execute() {
19240
+ this.lastStartTime = new Date();
19241
+ var candidate = this.queued.shift();
19242
+ const f = candidate.asyncFunction;
19243
+ try {
19244
+ const r = await f();
19245
+ candidate.resolve(r);
19246
+ } catch (e) {
19247
+ candidate.reject(e);
19248
+ }
19249
+
19250
+ }
19251
+
19057
19252
 
19058
19253
  }
19059
19254
 
19060
- if(typeof document !== 'undefined') {
19061
- if (!stylesheetExists("igv-ui.css")) {
19062
- // console.log('igv-ui. will call embedCSS() ...');
19255
+ /*
19256
+ * The MIT License (MIT)
19257
+ *
19258
+ * Copyright (c) 2014 Broad Institute
19259
+ *
19260
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
19261
+ * of this software and associated documentation files (the "Software"), to deal
19262
+ * in the Software without restriction, including without limitation the rights
19263
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19264
+ * copies of the Software, and to permit persons to whom the Software is
19265
+ * furnished to do so, subject to the following conditions:
19266
+ *
19267
+ * The above copyright notice and this permission notice shall be included in
19268
+ * all copies or substantial portions of the Software.
19269
+ *
19270
+ *
19271
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19272
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19273
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19274
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19275
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19276
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19277
+ * THE SOFTWARE.
19278
+ */
19279
+
19280
+ new Throttle({
19281
+ requestsPerSecond: 8
19282
+ });
19283
+
19284
+ class GenericColorPicker extends GenericContainer {
19285
+
19286
+ constructor({parent, width}) {
19287
+ super({parent, width, border: '1px solid gray'});
19288
+ }
19289
+
19290
+ configure(defaultColors, colorHandlers) {
19291
+
19292
+ this.colorHandlers = colorHandlers;
19293
+
19294
+ // active color handler defaults to handler with 'color' as key
19295
+ this.setActiveColorHandler('color');
19296
+
19297
+ this.createSwatches(defaultColors);
19298
+
19299
+ }
19300
+
19301
+ setActiveColorHandler(option) {
19302
+ this.activeColorHandler = this.colorHandlers[option];
19303
+ }
19304
+
19305
+ createSwatches(defaultColors) {
19306
+
19307
+ this.container.querySelectorAll('.igv-ui-1_3_0-color-swatch').forEach(swatch => swatch.remove());
19308
+
19309
+ const hexColorStrings = Object.values(appleCrayonPalette);
19310
+
19311
+ for (let hexColorString of hexColorStrings) {
19312
+ const swatch = div({class: 'igv-ui-1_3_0-color-swatch'});
19313
+ this.container.appendChild(swatch);
19314
+ this.decorateSwatch(swatch, hexColorString);
19315
+ }
19316
+
19317
+ if (defaultColors) {
19318
+ for (let hexColorString of defaultColors) {
19319
+ const swatch = div({class: 'igv-ui-1_3_0-color-swatch'});
19320
+ this.container.appendChild(swatch);
19321
+ this.decorateSwatch(swatch, hexColorString);
19322
+ }
19323
+ }
19324
+
19325
+ }
19326
+
19327
+ decorateSwatch(swatch, hexColorString) {
19328
+
19329
+ swatch.style.backgroundColor = hexColorString;
19330
+
19331
+ swatch.addEventListener('mouseenter', () => swatch.style.borderColor = hexColorString);
19332
+
19333
+ swatch.addEventListener('mouseleave', () => swatch.style.borderColor = 'white');
19334
+
19335
+ swatch.addEventListener('click', event => {
19336
+ event.stopPropagation();
19337
+ this.activeColorHandler(hexColorString);
19338
+ });
19339
+
19340
+ swatch.addEventListener('touchend', event => {
19341
+ event.stopPropagation();
19342
+ this.activeColorHandler(hexColorString);
19343
+ });
19344
+
19345
+ }
19346
+
19347
+ }
19348
+
19349
+ function embedCSS$2() {
19350
+ const style = document.createElement('style');
19351
+ style.setAttribute('type', 'text/css');
19352
+ style.setAttribute('title', 'igv-ui-1_3_0.css');
19353
+ style.innerHTML = `.igv-ui-1_3_0-popover {
19354
+ cursor: default;
19355
+ position: absolute;
19356
+ z-index: 2048;
19357
+ border-color: #7F7F7F;
19358
+ border-radius: 4px;
19359
+ border-style: solid;
19360
+ border-width: 1px;
19361
+ font-family: "Open Sans", sans-serif;
19362
+ font-size: small;
19363
+ background-color: white; }
19364
+ .igv-ui-1_3_0-popover > div:first-child {
19365
+ display: flex;
19366
+ flex-direction: row;
19367
+ flex-wrap: nowrap;
19368
+ justify-content: space-between;
19369
+ align-items: center;
19370
+ width: 100%;
19371
+ height: 24px;
19372
+ cursor: move;
19373
+ border-top-left-radius: 4px;
19374
+ border-top-right-radius: 4px;
19375
+ border-bottom-color: #7F7F7F;
19376
+ border-bottom-style: solid;
19377
+ border-bottom-width: thin;
19378
+ background-color: #eee; }
19379
+ .igv-ui-1_3_0-popover > div:first-child > div:first-child {
19380
+ margin-left: 4px; }
19381
+ .igv-ui-1_3_0-popover > div:first-child > div:last-child {
19382
+ margin-right: 4px;
19383
+ height: 12px;
19384
+ width: 12px;
19385
+ color: #7F7F7F; }
19386
+ .igv-ui-1_3_0-popover > div:first-child > div:last-child:hover {
19387
+ cursor: pointer;
19388
+ color: #444; }
19389
+ .igv-ui-1_3_0-popover > div:last-child {
19390
+ overflow-y: auto;
19391
+ overflow-x: hidden;
19392
+ max-height: 400px;
19393
+ max-width: 800px;
19394
+ background-color: white; }
19395
+ .igv-ui-1_3_0-popover > div:last-child > div {
19396
+ -webkit-user-select: text;
19397
+ -moz-user-select: text;
19398
+ -ms-user-select: text;
19399
+ user-select: text;
19400
+ margin-left: 4px;
19401
+ margin-right: 4px;
19402
+ min-width: 220px;
19403
+ overflow-x: hidden;
19404
+ text-overflow: ellipsis;
19405
+ white-space: nowrap; }
19406
+ .igv-ui-1_3_0-popover > div:last-child > div > span {
19407
+ font-weight: bolder; }
19408
+ .igv-ui-1_3_0-popover > div:last-child hr {
19409
+ width: 100%; }
19410
+
19411
+ .igv-ui-1_3_0-alert-dialog-container {
19412
+ box-sizing: content-box;
19413
+ position: absolute;
19414
+ z-index: 2048;
19415
+ top: 50%;
19416
+ left: 50%;
19417
+ width: 400px;
19418
+ height: 200px;
19419
+ border-color: #7F7F7F;
19420
+ border-radius: 4px;
19421
+ border-style: solid;
19422
+ border-width: thin;
19423
+ outline: none;
19424
+ font-family: "Open Sans", sans-serif;
19425
+ font-size: 15px;
19426
+ font-weight: 400;
19427
+ background-color: white;
19428
+ display: flex;
19429
+ flex-flow: column;
19430
+ flex-wrap: nowrap;
19431
+ justify-content: space-between;
19432
+ align-items: center; }
19433
+ .igv-ui-1_3_0-alert-dialog-container > div:first-child {
19434
+ display: flex;
19435
+ flex-flow: row;
19436
+ flex-wrap: nowrap;
19437
+ justify-content: flex-start;
19438
+ align-items: center;
19439
+ width: 100%;
19440
+ height: 24px;
19441
+ cursor: move;
19442
+ border-top-left-radius: 4px;
19443
+ border-top-right-radius: 4px;
19444
+ border-bottom-color: #7F7F7F;
19445
+ border-bottom-style: solid;
19446
+ border-bottom-width: thin;
19447
+ background-color: #eee; }
19448
+ .igv-ui-1_3_0-alert-dialog-container > div:first-child div:first-child {
19449
+ padding-left: 8px; }
19450
+ .igv-ui-1_3_0-alert-dialog-container .igv-ui-1_3_0-alert-dialog-body {
19451
+ -webkit-user-select: text;
19452
+ -moz-user-select: text;
19453
+ -ms-user-select: text;
19454
+ user-select: text;
19455
+ color: #373737;
19456
+ width: 100%;
19457
+ height: calc(100% - 24px - 64px);
19458
+ overflow-y: scroll; }
19459
+ .igv-ui-1_3_0-alert-dialog-container .igv-ui-1_3_0-alert-dialog-body .igv-ui-1_3_0-alert-dialog-body-copy {
19460
+ margin: 16px;
19461
+ width: auto;
19462
+ height: auto;
19463
+ overflow-wrap: break-word;
19464
+ word-break: break-word;
19465
+ background-color: white;
19466
+ border: unset; }
19467
+ .igv-ui-1_3_0-alert-dialog-container > div:last-child {
19468
+ width: 100%;
19469
+ margin-bottom: 10px;
19470
+ background-color: white;
19471
+ display: flex;
19472
+ flex-flow: row;
19473
+ flex-wrap: nowrap;
19474
+ justify-content: center;
19475
+ align-items: center; }
19476
+ .igv-ui-1_3_0-alert-dialog-container > div:last-child div {
19477
+ margin: unset;
19478
+ width: 40px;
19479
+ height: 30px;
19480
+ line-height: 30px;
19481
+ text-align: center;
19482
+ color: white;
19483
+ font-family: "Open Sans", sans-serif;
19484
+ font-size: small;
19485
+ font-weight: 400;
19486
+ border-color: #2B81AF;
19487
+ border-style: solid;
19488
+ border-width: thin;
19489
+ border-radius: 4px;
19490
+ background-color: #2B81AF; }
19491
+ .igv-ui-1_3_0-alert-dialog-container > div:last-child div:hover {
19492
+ cursor: pointer;
19493
+ border-color: #25597f;
19494
+ background-color: #25597f; }
19495
+
19496
+ .igv-ui-1_3_0-color-swatch {
19497
+ position: relative;
19498
+ box-sizing: content-box;
19499
+ display: flex;
19500
+ flex-flow: row;
19501
+ flex-wrap: wrap;
19502
+ justify-content: center;
19503
+ align-items: center;
19504
+ width: 32px;
19505
+ height: 32px;
19506
+ border-style: solid;
19507
+ border-width: 2px;
19508
+ border-color: white;
19509
+ border-radius: 4px; }
19510
+
19511
+ .igv-ui-1_3_0-color-swatch:hover {
19512
+ border-color: dimgray; }
19513
+
19514
+ .igv-ui-1_3_0-colorpicker-menu-close-button {
19515
+ display: flex;
19516
+ flex-flow: row;
19517
+ flex-wrap: nowrap;
19518
+ justify-content: flex-end;
19519
+ align-items: center;
19520
+ width: 100%;
19521
+ height: 32px;
19522
+ margin-top: 4px;
19523
+ margin-bottom: 4px;
19524
+ padding-right: 8px; }
19525
+ .igv-ui-1_3_0-colorpicker-menu-close-button i.fa {
19526
+ display: block;
19527
+ margin-left: 4px;
19528
+ margin-right: 4px;
19529
+ color: #5f5f5f; }
19530
+ .igv-ui-1_3_0-colorpicker-menu-close-button i.fa:hover,
19531
+ .igv-ui-1_3_0-colorpicker-menu-close-button i.fa:focus,
19532
+ .igv-ui-1_3_0-colorpicker-menu-close-button i.fa:active {
19533
+ cursor: pointer;
19534
+ color: #0f0f0f; }
19535
+
19536
+ .igv-ui-1_3_0-generic-dialog-container {
19537
+ box-sizing: content-box;
19538
+ position: fixed;
19539
+ top: 0;
19540
+ left: 0;
19541
+ width: 300px;
19542
+ height: 200px;
19543
+ border-color: #7F7F7F;
19544
+ border-radius: 4px;
19545
+ border-style: solid;
19546
+ border-width: thin;
19547
+ font-family: "Open Sans", sans-serif;
19548
+ font-size: medium;
19549
+ font-weight: 400;
19550
+ z-index: 2048;
19551
+ background-color: white;
19552
+ display: flex;
19553
+ flex-flow: column;
19554
+ flex-wrap: nowrap;
19555
+ justify-content: flex-start;
19556
+ align-items: center; }
19557
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-header {
19558
+ display: flex;
19559
+ flex-flow: row;
19560
+ flex-wrap: nowrap;
19561
+ justify-content: flex-end;
19562
+ align-items: center;
19563
+ width: 100%;
19564
+ height: 24px;
19565
+ cursor: move;
19566
+ border-top-left-radius: 4px;
19567
+ border-top-right-radius: 4px;
19568
+ border-bottom-color: #7F7F7F;
19569
+ border-bottom-style: solid;
19570
+ border-bottom-width: thin;
19571
+ background-color: #eee; }
19572
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-header div {
19573
+ margin-right: 4px;
19574
+ margin-bottom: 2px;
19575
+ height: 12px;
19576
+ width: 12px;
19577
+ color: #7F7F7F; }
19578
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-header div:hover {
19579
+ cursor: pointer;
19580
+ color: #444; }
19581
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-one-liner {
19582
+ color: #373737;
19583
+ width: 95%;
19584
+ height: 24px;
19585
+ line-height: 24px;
19586
+ text-align: left;
19587
+ margin-top: 8px;
19588
+ padding-left: 8px;
19589
+ overflow-wrap: break-word;
19590
+ background-color: white; }
19591
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-label-input {
19592
+ margin-top: 8px;
19593
+ width: 95%;
19594
+ height: 24px;
19595
+ color: #373737;
19596
+ line-height: 24px;
19597
+ padding-left: 8px;
19598
+ background-color: white;
19599
+ display: flex;
19600
+ flex-flow: row;
19601
+ flex-wrap: nowrap;
19602
+ justify-content: flex-start;
19603
+ align-items: center; }
19604
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-label-input div {
19605
+ width: 30%;
19606
+ height: 100%;
19607
+ font-size: 16px;
19608
+ text-align: right;
19609
+ padding-right: 8px;
19610
+ background-color: white; }
19611
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-label-input input {
19612
+ display: block;
19613
+ height: 100%;
19614
+ width: 100%;
19615
+ padding-left: 4px;
19616
+ font-family: "Open Sans", sans-serif;
19617
+ font-weight: 400;
19618
+ color: #373737;
19619
+ text-align: left;
19620
+ outline: none;
19621
+ border-style: solid;
19622
+ border-width: thin;
19623
+ border-color: #7F7F7F;
19624
+ background-color: white; }
19625
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-label-input input {
19626
+ width: 50%;
19627
+ font-size: 16px; }
19628
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-input {
19629
+ margin-top: 8px;
19630
+ width: calc(100% - 16px);
19631
+ height: 24px;
19632
+ color: #373737;
19633
+ line-height: 24px;
19634
+ display: flex;
19635
+ flex-flow: row;
19636
+ flex-wrap: nowrap;
19637
+ justify-content: space-around;
19638
+ align-items: center; }
19639
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-input input {
19640
+ display: block;
19641
+ height: 100%;
19642
+ width: 100%;
19643
+ padding-left: 4px;
19644
+ font-family: "Open Sans", sans-serif;
19645
+ font-weight: 400;
19646
+ color: #373737;
19647
+ text-align: left;
19648
+ outline: none;
19649
+ border-style: solid;
19650
+ border-width: thin;
19651
+ border-color: #7F7F7F;
19652
+ background-color: white; }
19653
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-input input {
19654
+ font-size: 16px; }
19655
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok-cancel {
19656
+ width: 100%;
19657
+ height: 28px;
19658
+ display: flex;
19659
+ flex-flow: row;
19660
+ flex-wrap: nowrap;
19661
+ justify-content: space-around;
19662
+ align-items: center; }
19663
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok-cancel div {
19664
+ margin-top: 32px;
19665
+ color: white;
19666
+ font-family: "Open Sans", sans-serif;
19667
+ font-size: 14px;
19668
+ font-weight: 400;
19669
+ width: 75px;
19670
+ height: 28px;
19671
+ line-height: 28px;
19672
+ text-align: center;
19673
+ border-color: transparent;
19674
+ border-style: solid;
19675
+ border-width: thin;
19676
+ border-radius: 2px; }
19677
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok-cancel div:first-child {
19678
+ margin-left: 32px;
19679
+ margin-right: 0;
19680
+ background-color: #5ea4e0; }
19681
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok-cancel div:last-child {
19682
+ margin-left: 0;
19683
+ margin-right: 32px;
19684
+ background-color: #c4c4c4; }
19685
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok-cancel div:first-child:hover {
19686
+ cursor: pointer;
19687
+ background-color: #3b5c7f; }
19688
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok-cancel div:last-child:hover {
19689
+ cursor: pointer;
19690
+ background-color: #7f7f7f; }
19691
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok {
19692
+ width: 100%;
19693
+ height: 36px;
19694
+ margin-top: 32px;
19695
+ display: flex;
19696
+ flex-flow: row;
19697
+ flex-wrap: nowrap;
19698
+ justify-content: space-around;
19699
+ align-items: center; }
19700
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok div {
19701
+ width: 98px;
19702
+ height: 36px;
19703
+ line-height: 36px;
19704
+ text-align: center;
19705
+ color: white;
19706
+ font-family: "Open Sans", sans-serif;
19707
+ font-size: medium;
19708
+ font-weight: 400;
19709
+ border-color: white;
19710
+ border-style: solid;
19711
+ border-width: thin;
19712
+ border-radius: 4px;
19713
+ background-color: #2B81AF; }
19714
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok div:hover {
19715
+ cursor: pointer;
19716
+ background-color: #25597f; }
19717
+
19718
+ .igv-ui-1_3_0-generic-container {
19719
+ box-sizing: content-box;
19720
+ position: absolute;
19721
+ z-index: 2048;
19722
+ background-color: white;
19723
+ cursor: pointer;
19724
+ display: flex;
19725
+ flex-direction: row;
19726
+ flex-wrap: wrap;
19727
+ justify-content: flex-start;
19728
+ align-items: center; }
19729
+ .igv-ui-1_3_0-generic-container > div:first-child {
19730
+ cursor: move;
19731
+ display: flex;
19732
+ flex-flow: row;
19733
+ flex-wrap: nowrap;
19734
+ justify-content: flex-end;
19735
+ align-items: center;
19736
+ height: 24px;
19737
+ width: 100%;
19738
+ background-color: #dddddd; }
19739
+ .igv-ui-1_3_0-generic-container > div:first-child > div {
19740
+ display: block;
19741
+ color: #5f5f5f;
19742
+ cursor: pointer;
19743
+ width: 14px;
19744
+ height: 14px;
19745
+ margin-right: 8px;
19746
+ margin-bottom: 4px; }
19747
+
19748
+ .igv-ui-1_3_0-dialog {
19749
+ z-index: 2048;
19750
+ position: fixed;
19751
+ width: fit-content;
19752
+ height: fit-content;
19753
+ display: flex;
19754
+ flex-flow: column;
19755
+ flex-wrap: nowrap;
19756
+ justify-content: flex-start;
19757
+ background-color: white;
19758
+ border-color: #7F7F7F;
19759
+ border-radius: 4px;
19760
+ border-style: solid;
19761
+ border-width: thin;
19762
+ font-family: "Open Sans", sans-serif;
19763
+ font-size: medium;
19764
+ font-weight: 400; }
19765
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-header {
19766
+ display: flex;
19767
+ flex-flow: row;
19768
+ flex-wrap: nowrap;
19769
+ justify-content: flex-end;
19770
+ align-items: center;
19771
+ width: 100%;
19772
+ height: 24px;
19773
+ cursor: move;
19774
+ border-top-left-radius: 4px;
19775
+ border-top-right-radius: 4px;
19776
+ border-bottom-color: #7F7F7F;
19777
+ border-bottom-style: solid;
19778
+ border-bottom-width: thin;
19779
+ background-color: #eee; }
19780
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-header div {
19781
+ margin-right: 4px;
19782
+ margin-bottom: 2px;
19783
+ height: 12px;
19784
+ width: 12px;
19785
+ color: #7F7F7F; }
19786
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-header div:hover {
19787
+ cursor: pointer;
19788
+ color: #444; }
19789
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-one-liner {
19790
+ width: 95%;
19791
+ height: 24px;
19792
+ line-height: 24px;
19793
+ text-align: left;
19794
+ margin: 8px;
19795
+ overflow-wrap: break-word;
19796
+ background-color: white;
19797
+ font-weight: bold; }
19798
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok-cancel {
19799
+ width: 100%;
19800
+ display: flex;
19801
+ flex-flow: row;
19802
+ flex-wrap: nowrap;
19803
+ justify-content: space-around;
19804
+ align-items: center; }
19805
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok-cancel div {
19806
+ margin: 16px;
19807
+ margin-top: 32px;
19808
+ color: white;
19809
+ font-family: "Open Sans", sans-serif;
19810
+ font-size: 14px;
19811
+ font-weight: 400;
19812
+ width: 75px;
19813
+ height: 28px;
19814
+ line-height: 28px;
19815
+ text-align: center;
19816
+ border-color: transparent;
19817
+ border-style: solid;
19818
+ border-width: thin;
19819
+ border-radius: 2px; }
19820
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok-cancel div:first-child {
19821
+ background-color: #5ea4e0; }
19822
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok-cancel div:last-child {
19823
+ background-color: #c4c4c4; }
19824
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok-cancel div:first-child:hover {
19825
+ cursor: pointer;
19826
+ background-color: #3b5c7f; }
19827
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok-cancel div:last-child:hover {
19828
+ cursor: pointer;
19829
+ background-color: #7f7f7f; }
19830
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok {
19831
+ width: 100%;
19832
+ height: 36px;
19833
+ margin-top: 32px;
19834
+ display: flex;
19835
+ flex-flow: row;
19836
+ flex-wrap: nowrap;
19837
+ justify-content: space-around;
19838
+ align-items: center; }
19839
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok div {
19840
+ width: 98px;
19841
+ height: 36px;
19842
+ line-height: 36px;
19843
+ text-align: center;
19844
+ color: white;
19845
+ font-family: "Open Sans", sans-serif;
19846
+ font-size: medium;
19847
+ font-weight: 400;
19848
+ border-color: white;
19849
+ border-style: solid;
19850
+ border-width: thin;
19851
+ border-radius: 4px;
19852
+ background-color: #2B81AF; }
19853
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok div:hover {
19854
+ cursor: pointer;
19855
+ background-color: #25597f; }
19856
+
19857
+ .igv-ui-1_3_0-panel, .igv-ui-1_3_0-panel-column, .igv-ui-1_3_0-panel-row {
19858
+ z-index: 2048;
19859
+ background-color: white;
19860
+ font-family: "Open Sans", sans-serif;
19861
+ font-size: medium;
19862
+ font-weight: 400;
19863
+ display: flex;
19864
+ justify-content: flex-start;
19865
+ align-items: flex-start; }
19866
+
19867
+ .igv-ui-1_3_0-panel-column {
19868
+ display: flex;
19869
+ flex-direction: column; }
19870
+
19871
+ .igv-ui-1_3_0-panel-row {
19872
+ display: flex;
19873
+ flex-direction: row; }
19874
+
19875
+ .igv-ui-1_3_0-textbox {
19876
+ background-color: white;
19877
+ font-family: "Open Sans", sans-serif;
19878
+ font-size: medium;
19879
+ font-weight: 400;
19880
+ display: flex;
19881
+ justify-content: flex-start;
19882
+ align-items: flex-start; }
19883
+
19884
+ /*# sourceMappingURL=igv-ui-1_3_0.css.map */
19885
+ `;
19886
+ document.head.insertBefore(style, document.head.childNodes[ document.head.childNodes.length - 1 ]);
19887
+ }
19888
+
19889
+ if (typeof document !== 'undefined') {
19890
+
19891
+ if (!stylesheetExists("igv-ui-1_3_0.css")) {
19063
19892
  embedCSS$2();
19064
- // console.log('... done.');
19065
19893
  }
19894
+
19066
19895
  function stylesheetExists(stylesheetName) {
19067
19896
  for (let ss of document.styleSheets) {
19068
19897
  ss = ss.href ? ss.href.replace(/^.*[\\\/]/, '') : '';
19069
19898
  if (ss === stylesheetName) {
19070
- return true;
19899
+ return true
19071
19900
  }
19072
19901
  }
19073
- return false;
19902
+ return false
19074
19903
  }
19075
19904
  }
19076
19905
 
@@ -23033,7 +23862,7 @@ const Cytoband = function (start, end, name, typestain) {
23033
23862
  }
23034
23863
  };
23035
23864
 
23036
- const _version = "2.13.0";
23865
+ const _version = "2.13.1";
23037
23866
  function version() {
23038
23867
  return _version
23039
23868
  }
@@ -32480,7 +33309,7 @@ function zoomLevelForScale(chr, bpPerPixel, genome) {
32480
33309
  * @param config
32481
33310
  * @constructor
32482
33311
  */
32483
- class StaticFeatureSource$1 {
33312
+ class StaticFeatureSource {
32484
33313
 
32485
33314
  constructor(config, genome) {
32486
33315
 
@@ -32538,6 +33367,11 @@ class StaticFeatureSource$1 {
32538
33367
  return this.featureCache.getAllFeatures()
32539
33368
  }
32540
33369
 
33370
+ supportsWholeGenome() {
33371
+ return true
33372
+ }
33373
+
33374
+
32541
33375
  }
32542
33376
 
32543
33377
 
@@ -32600,7 +33434,7 @@ function FeatureSource(config, genome) {
32600
33434
  const format = config.format ? config.format.toLowerCase() : undefined;
32601
33435
 
32602
33436
  if (config.features) {
32603
- return new StaticFeatureSource$1(config, genome)
33437
+ return new StaticFeatureSource(config, genome)
32604
33438
  } else if (bbFormats.has(format)) {
32605
33439
  return new BWSource(config, genome)
32606
33440
  } else if ("tdf" === format) {
@@ -32899,12 +33733,12 @@ function randomColor() {
32899
33733
 
32900
33734
  const appleCrayonColorName = 'nickel';
32901
33735
 
32902
- const ROI_DEFAULT_ALPHA = 2/16;
33736
+ const ROI_DEFAULT_ALPHA = 2 / 16;
32903
33737
 
32904
33738
  const ROI_DEFAULT_COLOR = appleCrayonRGBA(appleCrayonColorName, ROI_DEFAULT_ALPHA);
32905
- const ROI_DEFAULT_HEADER_COLOR = 'rgba(0,0,0,0)';
33739
+ const ROI_DEFAULT_HEADER_COLOR = 'rgb(190,190,190)';
32906
33740
 
32907
- const ROI_USER_HEADER_DEFINED_COLOR = 'rgba(155,185,129,1)';
33741
+ const ROI_USER_HEADER_DEFINED_COLOR = 'rgba(155,185,129)';
32908
33742
  const ROI_USER_DEFINED_COLOR = ROI_DEFAULT_COLOR;
32909
33743
 
32910
33744
  class ROISet {
@@ -32912,7 +33746,6 @@ class ROISet {
32912
33746
  constructor(config, genome) {
32913
33747
 
32914
33748
  this.url = config.url;
32915
- this.isUserDefined = config.isUserDefined;
32916
33749
 
32917
33750
  if (config.name) {
32918
33751
  this.name = config.name;
@@ -32922,10 +33755,10 @@ class ROISet {
32922
33755
  this.name = getFilename$1(config.url);
32923
33756
  }
32924
33757
 
32925
- if (config.isUserDefined) {
33758
+ this.isUserDefined = config.isUserDefined;
33759
+
33760
+ if (config.features) {
32926
33761
  this.featureSource = new DynamicFeatureSource(config.features, genome);
32927
- } else if (config.features) {
32928
- this.featureSource = new StaticFeatureSource(config.features, genome);
32929
33762
  } else {
32930
33763
  if (config.format) {
32931
33764
  config.format = config.format.toLowerCase();
@@ -32937,15 +33770,12 @@ class ROISet {
32937
33770
  }
32938
33771
 
32939
33772
  if (true === this.isUserDefined) {
32940
-
32941
33773
  this.color = config.color || ROI_USER_DEFINED_COLOR;
32942
-
32943
33774
  this.headerColor = ROI_USER_HEADER_DEFINED_COLOR;
32944
33775
 
32945
33776
  } else {
32946
33777
 
32947
33778
  this.color = config.color || ROI_DEFAULT_COLOR;
32948
-
32949
33779
  this.headerColor = ROI_DEFAULT_HEADER_COLOR;
32950
33780
 
32951
33781
  // Use body color with alpha pinned to 1
@@ -32981,18 +33811,16 @@ class ROISet {
32981
33811
 
32982
33812
  toJSON() {
32983
33813
  if (this.url) {
32984
- return '' === this.name ? {color: this.color, url: this.url} : {
32985
- name: this.name,
32986
- color: this.color,
32987
- url: this.url
32988
- }
33814
+ return {name: this.name, color: this.color, url: this.url, isUserDefined: this.isUserDefined}
32989
33815
  } else {
32990
- const features = this.featureSource.getAllFeatures();
32991
- return '' === this.name ? {color: this.color, features: features} : {
32992
- name: this.name,
32993
- color: this.color,
32994
- features: features
33816
+ const featureMap = this.featureSource.getAllFeatures();
33817
+ const features = [];
33818
+ for (let chr of Object.keys(featureMap)) {
33819
+ for (let f of featureMap[chr]) {
33820
+ features.push(f);
33821
+ }
32995
33822
  }
33823
+ return {name: this.name, color: this.color, features: features, isUserDefined: this.isUserDefined}
32996
33824
  }
32997
33825
  }
32998
33826
 
@@ -33021,31 +33849,9 @@ function screenCoordinates(regionStartBP, regionEndBP, bpStart, bpp) {
33021
33849
  return {x: xStart, width}
33022
33850
  }
33023
33851
 
33024
- class StaticFeatureSource {
33025
- constructor(features, genome) {
33026
- this.featureCache = new FeatureCache$1(features, genome);
33027
- this.genome = genome;
33028
- }
33029
-
33030
- getFeatures({chr, start, end}) {
33031
- if (chr.toLowerCase() === 'all') {
33032
- return computeWGFeatures(this.featureCache.getAllFeatures(), this.genome)
33033
- } else {
33034
- return this.featureCache.queryFeatures(chr, start, end)
33035
- }
33036
- }
33037
-
33038
- getAllFeatures() {
33039
- return this.featureCache.getAllFeatures()
33040
- }
33041
-
33042
- supportsWholeGenome() {
33043
- return true
33044
- }
33045
- }
33046
33852
 
33047
33853
  /**
33048
- * Special feature source that allows addition of features dynamically, for supporting user-defined genomes
33854
+ * Special feature source that allows addition of features dynamically
33049
33855
  */
33050
33856
  class DynamicFeatureSource {
33051
33857
 
@@ -33095,11 +33901,11 @@ class DynamicFeatureSource {
33095
33901
  featureList.sort((a, b) => a.start - b.start);
33096
33902
  }
33097
33903
 
33098
- removeFeature({ chr, start, end }) {
33099
-
33100
- if (this.featureMap[ chr ]) {
33904
+ removeFeature({chr, start, end}) {
33905
+
33906
+ if (this.featureMap[chr]) {
33101
33907
  const match = `${chr}-${start}-${end}`;
33102
- this.featureMap[ chr ] = this.featureMap[ chr ].filter(feature => match !== `${feature.chr}-${feature.start}-${feature.end}`);
33908
+ this.featureMap[chr] = this.featureMap[chr].filter(feature => match !== `${feature.chr}-${feature.start}-${feature.end}`);
33103
33909
  }
33104
33910
  }
33105
33911
  }
@@ -41168,71 +41974,6 @@ function configureFont(ctx, {textAlign, textBaseline, strokeStyle, fillStyle}, s
41168
41974
  ctx.fillStyle = fillStyle;
41169
41975
  }
41170
41976
 
41171
- class GenericColorPicker extends GenericContainer {
41172
-
41173
- constructor({parent, width}) {
41174
- super({parent, width, border: '1px solid gray'});
41175
- }
41176
-
41177
- configure(defaultColors, colorHandlers) {
41178
-
41179
- this.colorHandlers = colorHandlers;
41180
-
41181
- // active color handler defaults to handler with 'color' as key
41182
- this.setActiveColorHandler('color');
41183
-
41184
- this.createSwatches(defaultColors);
41185
-
41186
- }
41187
-
41188
- setActiveColorHandler(option) {
41189
- this.activeColorHandler = this.colorHandlers[option];
41190
- }
41191
-
41192
- createSwatches(defaultColors) {
41193
-
41194
- this.container.querySelectorAll('.igv-ui-color-swatch').forEach(swatch => swatch.remove());
41195
-
41196
- const hexColorStrings = Object.values(appleCrayonPalette$1);
41197
-
41198
- for (let hexColorString of hexColorStrings) {
41199
- const swatch = div$1({class: 'igv-ui-color-swatch'});
41200
- this.container.appendChild(swatch);
41201
- this.decorateSwatch(swatch, hexColorString);
41202
- }
41203
-
41204
- if (defaultColors) {
41205
- for (let hexColorString of defaultColors) {
41206
- const swatch = div$1({class: 'igv-ui-color-swatch'});
41207
- this.container.appendChild(swatch);
41208
- this.decorateSwatch(swatch, hexColorString);
41209
- }
41210
- }
41211
-
41212
- }
41213
-
41214
- decorateSwatch(swatch, hexColorString) {
41215
-
41216
- swatch.style.backgroundColor = hexColorString;
41217
-
41218
- swatch.addEventListener('mouseenter', () => swatch.style.borderColor = hexColorString);
41219
-
41220
- swatch.addEventListener('mouseleave', () => swatch.style.borderColor = 'white');
41221
-
41222
- swatch.addEventListener('click', event => {
41223
- event.stopPropagation();
41224
- this.activeColorHandler(hexColorString);
41225
- });
41226
-
41227
- swatch.addEventListener('touchend', event => {
41228
- event.stopPropagation();
41229
- this.activeColorHandler(hexColorString);
41230
- });
41231
-
41232
- }
41233
-
41234
- }
41235
-
41236
41977
  /*
41237
41978
  * The MIT License (MIT)
41238
41979
  *
@@ -50053,6 +50794,7 @@ const CustomButton = function (parent, browser, b) {
50053
50794
  };
50054
50795
 
50055
50796
  class ROIManager {
50797
+
50056
50798
  constructor(browser, roiMenu, roiTable, top, roiSets) {
50057
50799
 
50058
50800
  this.browser = browser;
@@ -50214,8 +50956,9 @@ class ROIManager {
50214
50956
  if (el) {
50215
50957
  el.style.left = `${pixelX}px`;
50216
50958
  el.style.width = `${pixelWidth}px`;
50959
+
50217
50960
  } else {
50218
- const element = this.createRegionElement(browser.columnContainer, pixelTop, pixelX, pixelWidth, roiSet, regionKey);
50961
+ const element = this.createRegionElement(browser.columnContainer, pixelTop, pixelX, pixelWidth, roiSet, regionKey, feature.name);
50219
50962
  columns[i].appendChild(element);
50220
50963
  }
50221
50964
  }
@@ -50223,26 +50966,22 @@ class ROIManager {
50223
50966
  }
50224
50967
  }
50225
50968
 
50226
- createRegionElement(columnContainer, pixelTop, pixelX, pixelWidth, roiSet, regionKey) {
50969
+ createRegionElement(columnContainer, pixelTop, pixelX, pixelWidth, roiSet, regionKey, name) {
50227
50970
 
50228
50971
  const regionElement = div$1({class: 'igv-roi-region'});
50229
50972
 
50230
50973
  regionElement.style.top = `${pixelTop}px`;
50231
50974
  regionElement.style.left = `${pixelX}px`;
50232
-
50233
50975
  regionElement.style.width = `${pixelWidth}px`;
50234
-
50235
50976
  regionElement.style.backgroundColor = roiSet.color;
50236
-
50237
50977
  regionElement.dataset.region = regionKey;
50238
50978
 
50239
- if (true === roiSet.isUserDefined) {
50240
-
50241
- const header = div$1();
50242
- regionElement.appendChild(header);
50979
+ const header = div$1();
50980
+ regionElement.appendChild(header);
50243
50981
 
50244
- header.style.backgroundColor = roiSet.headerColor;
50982
+ header.style.backgroundColor = roiSet.headerColor;
50245
50983
 
50984
+ if (true === roiSet.isUserDefined) {
50246
50985
  header.addEventListener('click', event => {
50247
50986
  event.preventDefault();
50248
50987
  event.stopPropagation();
@@ -50250,6 +50989,18 @@ class ROIManager {
50250
50989
  const {x, y} = translateMouseCoordinates$1(event, columnContainer);
50251
50990
  this.roiMenu.present(x, y, this, columnContainer, regionElement);
50252
50991
  });
50992
+ } else if (name) {
50993
+ header.addEventListener('click', event => {
50994
+ event.preventDefault();
50995
+ event.stopPropagation();
50996
+ if (this.popover) {
50997
+ this.popover.dispose();
50998
+ }
50999
+ this.popover = new Popover(columnContainer, roiSet.name);
51000
+ this.popover.presentContentWithEvent(event, name);
51001
+ });
51002
+ } else {
51003
+ header.style.pointerEvents = 'none';
50253
51004
  }
50254
51005
 
50255
51006
  return regionElement
@@ -51406,12 +52157,8 @@ class Browser {
51406
52157
  const roiMenu = new ROIMenu(this, this.columnContainer);
51407
52158
  if (session.roi) {
51408
52159
 
51409
- session.roi.filter(config => config.features && config.isUserDefined).map((c, index) => c.name = undefined);
51410
-
51411
52160
  const roiSetList = session.roi.map(c => new ROISet(c, this.genome));
51412
-
51413
- const named = roiSetList.filter(({name}) => name !== undefined);
51414
-
52161
+ const named = roiSetList.filter(({name}) => name !== undefined && name.length > 0);
51415
52162
  const roiTable = new ROITable(this, this.columnContainer, (named.length > 0));
51416
52163
 
51417
52164
  this.roiManager = new ROIManager(this, roiMenu, roiTable, ideogramHeight, roiSetList);