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.js CHANGED
@@ -7529,8 +7529,8 @@
7529
7529
  function encode(objectName) {
7530
7530
  let result = '';
7531
7531
  objectName.split('').forEach(function (letter) {
7532
- if (encodings.has(letter)) {
7533
- result += encodings.get(letter);
7532
+ if (encodings$1.has(letter)) {
7533
+ result += encodings$1.get(letter);
7534
7534
  } else {
7535
7535
  result += letter;
7536
7536
  }
@@ -7539,27 +7539,27 @@
7539
7539
  } // %23 %24 %25 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3D %3F %40 %5B %5D
7540
7540
 
7541
7541
 
7542
- const encodings = new Map();
7543
- encodings.set("!", "%21");
7544
- encodings.set("#", "%23");
7545
- encodings.set("$", "%24");
7546
- encodings.set("%", "%25");
7547
- encodings.set("&", "%26");
7548
- encodings.set("'", "%27");
7549
- encodings.set("(", "%28");
7550
- encodings.set(")", "%29");
7551
- encodings.set("*", "%2A");
7552
- encodings.set("+", "%2B");
7553
- encodings.set(",", "%2C");
7554
- encodings.set("/", "%2F");
7555
- encodings.set(":", "%3A");
7556
- encodings.set(";", "%3B");
7557
- encodings.set("=", "%3D");
7558
- encodings.set("?", "%3F");
7559
- encodings.set("@", "%40");
7560
- encodings.set("[", "%5B");
7561
- encodings.set("]", "%5D");
7562
- encodings.set(" ", "%20"); // For testing
7542
+ const encodings$1 = new Map();
7543
+ encodings$1.set("!", "%21");
7544
+ encodings$1.set("#", "%23");
7545
+ encodings$1.set("$", "%24");
7546
+ encodings$1.set("%", "%25");
7547
+ encodings$1.set("&", "%26");
7548
+ encodings$1.set("'", "%27");
7549
+ encodings$1.set("(", "%28");
7550
+ encodings$1.set(")", "%29");
7551
+ encodings$1.set("*", "%2A");
7552
+ encodings$1.set("+", "%2B");
7553
+ encodings$1.set(",", "%2C");
7554
+ encodings$1.set("/", "%2F");
7555
+ encodings$1.set(":", "%3A");
7556
+ encodings$1.set(";", "%3B");
7557
+ encodings$1.set("=", "%3D");
7558
+ encodings$1.set("?", "%3F");
7559
+ encodings$1.set("@", "%40");
7560
+ encodings$1.set("[", "%5B");
7561
+ encodings$1.set("]", "%5D");
7562
+ encodings$1.set(" ", "%20"); // For testing
7563
7563
 
7564
7564
  // Convenience functions for the gapi oAuth library.
7565
7565
  const FIVE_MINUTES = 5 * 60 * 1000;
@@ -7912,7 +7912,7 @@
7912
7912
  const Z_UNKNOWN$1 = 2;
7913
7913
  /*============================================================================*/
7914
7914
 
7915
- function zero$1(buf) {
7915
+ function zero$1$1(buf) {
7916
7916
  let len = buf.length;
7917
7917
 
7918
7918
  while (--len >= 0) {
@@ -7926,8 +7926,8 @@
7926
7926
  const DYN_TREES = 2;
7927
7927
  /* The three kinds of block type */
7928
7928
 
7929
- const MIN_MATCH$1 = 3;
7930
- const MAX_MATCH$1 = 258;
7929
+ const MIN_MATCH$1$1 = 3;
7930
+ const MAX_MATCH$1$1 = 258;
7931
7931
  /* The minimum and maximum match lengths */
7932
7932
  // From deflate.h
7933
7933
 
@@ -7935,22 +7935,22 @@
7935
7935
  * Internal compression state.
7936
7936
  */
7937
7937
 
7938
- const LENGTH_CODES$1 = 29;
7938
+ const LENGTH_CODES$1$1 = 29;
7939
7939
  /* number of length codes, not counting the special END_BLOCK code */
7940
7940
 
7941
- const LITERALS$1 = 256;
7941
+ const LITERALS$1$1 = 256;
7942
7942
  /* number of literal bytes 0..255 */
7943
7943
 
7944
- const L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;
7944
+ const L_CODES$1$1 = LITERALS$1$1 + 1 + LENGTH_CODES$1$1;
7945
7945
  /* number of Literal or Length codes, including the END_BLOCK code */
7946
7946
 
7947
- const D_CODES$1 = 30;
7947
+ const D_CODES$1$1 = 30;
7948
7948
  /* number of distance codes */
7949
7949
 
7950
7950
  const BL_CODES$1 = 19;
7951
7951
  /* number of codes used to transfer the bit lengths */
7952
7952
 
7953
- const HEAP_SIZE$1 = 2 * L_CODES$1 + 1;
7953
+ const HEAP_SIZE$1 = 2 * L_CODES$1$1 + 1;
7954
7954
  /* maximum heap size */
7955
7955
 
7956
7956
  const MAX_BITS$1 = 15;
@@ -8001,43 +8001,43 @@
8001
8001
  */
8002
8002
  // We pre-fill arrays with 0 to avoid uninitialized gaps
8003
8003
 
8004
- const DIST_CODE_LEN = 512;
8004
+ const DIST_CODE_LEN$1 = 512;
8005
8005
  /* see definition of array dist_code below */
8006
8006
  // !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1
8007
8007
 
8008
- const static_ltree = new Array((L_CODES$1 + 2) * 2);
8009
- zero$1(static_ltree);
8008
+ const static_ltree$1 = new Array((L_CODES$1$1 + 2) * 2);
8009
+ zero$1$1(static_ltree$1);
8010
8010
  /* The static literal tree. Since the bit lengths are imposed, there is no
8011
8011
  * need for the L_CODES extra codes used during heap construction. However
8012
8012
  * The codes 286 and 287 are needed to build a canonical tree (see _tr_init
8013
8013
  * below).
8014
8014
  */
8015
8015
 
8016
- const static_dtree = new Array(D_CODES$1 * 2);
8017
- zero$1(static_dtree);
8016
+ const static_dtree$1 = new Array(D_CODES$1$1 * 2);
8017
+ zero$1$1(static_dtree$1);
8018
8018
  /* The static distance tree. (Actually a trivial tree since all codes use
8019
8019
  * 5 bits.)
8020
8020
  */
8021
8021
 
8022
- const _dist_code = new Array(DIST_CODE_LEN);
8022
+ const _dist_code$1 = new Array(DIST_CODE_LEN$1);
8023
8023
 
8024
- zero$1(_dist_code);
8024
+ zero$1$1(_dist_code$1);
8025
8025
  /* Distance codes. The first 256 values correspond to the distances
8026
8026
  * 3 .. 258, the last 256 values correspond to the top 8 bits of
8027
8027
  * the 15 bit distances.
8028
8028
  */
8029
8029
 
8030
- const _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);
8030
+ const _length_code$1 = new Array(MAX_MATCH$1$1 - MIN_MATCH$1$1 + 1);
8031
8031
 
8032
- zero$1(_length_code);
8032
+ zero$1$1(_length_code$1);
8033
8033
  /* length code for each normalized match length (0 == MIN_MATCH) */
8034
8034
 
8035
- const base_length = new Array(LENGTH_CODES$1);
8036
- zero$1(base_length);
8035
+ const base_length$1 = new Array(LENGTH_CODES$1$1);
8036
+ zero$1$1(base_length$1);
8037
8037
  /* First normalized length for each code (0 = MIN_MATCH) */
8038
8038
 
8039
- const base_dist = new Array(D_CODES$1);
8040
- zero$1(base_dist);
8039
+ const base_dist$1 = new Array(D_CODES$1$1);
8040
+ zero$1$1(base_dist$1);
8041
8041
  /* First normalized distance for each code (0 = distance of 1) */
8042
8042
 
8043
8043
  function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {
@@ -8076,7 +8076,7 @@
8076
8076
  }
8077
8077
 
8078
8078
  const d_code = dist => {
8079
- return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];
8079
+ return dist < 256 ? _dist_code$1[dist] : _dist_code$1[256 + (dist >>> 7)];
8080
8080
  };
8081
8081
  /* ===========================================================================
8082
8082
  * Output a short LSB first on the stream.
@@ -8407,11 +8407,11 @@
8407
8407
 
8408
8408
  length = 0;
8409
8409
 
8410
- for (code = 0; code < LENGTH_CODES$1 - 1; code++) {
8411
- base_length[code] = length;
8410
+ for (code = 0; code < LENGTH_CODES$1$1 - 1; code++) {
8411
+ base_length$1[code] = length;
8412
8412
 
8413
8413
  for (n = 0; n < 1 << extra_lbits[code]; n++) {
8414
- _length_code[length++] = code;
8414
+ _length_code$1[length++] = code;
8415
8415
  }
8416
8416
  } //Assert (length == 256, "tr_static_init: length != 256");
8417
8417
 
@@ -8421,16 +8421,16 @@
8421
8421
  */
8422
8422
 
8423
8423
 
8424
- _length_code[length - 1] = code;
8424
+ _length_code$1[length - 1] = code;
8425
8425
  /* Initialize the mapping dist (0..32K) -> dist code (0..29) */
8426
8426
 
8427
8427
  dist = 0;
8428
8428
 
8429
8429
  for (code = 0; code < 16; code++) {
8430
- base_dist[code] = dist;
8430
+ base_dist$1[code] = dist;
8431
8431
 
8432
8432
  for (n = 0; n < 1 << extra_dbits[code]; n++) {
8433
- _dist_code[dist++] = code;
8433
+ _dist_code$1[dist++] = code;
8434
8434
  }
8435
8435
  } //Assert (dist == 256, "tr_static_init: dist != 256");
8436
8436
 
@@ -8438,11 +8438,11 @@
8438
8438
  dist >>= 7;
8439
8439
  /* from now on, all distances are divided by 128 */
8440
8440
 
8441
- for (; code < D_CODES$1; code++) {
8442
- base_dist[code] = dist << 7;
8441
+ for (; code < D_CODES$1$1; code++) {
8442
+ base_dist$1[code] = dist << 7;
8443
8443
 
8444
8444
  for (n = 0; n < 1 << extra_dbits[code] - 7; n++) {
8445
- _dist_code[256 + dist++] = code;
8445
+ _dist_code$1[256 + dist++] = code;
8446
8446
  }
8447
8447
  } //Assert (dist == 256, "tr_static_init: 256+dist != 512");
8448
8448
 
@@ -8456,7 +8456,7 @@
8456
8456
  n = 0;
8457
8457
 
8458
8458
  while (n <= 143) {
8459
- static_ltree[n * 2 + 1]
8459
+ static_ltree$1[n * 2 + 1]
8460
8460
  /*.Len*/
8461
8461
  = 8;
8462
8462
  n++;
@@ -8464,7 +8464,7 @@
8464
8464
  }
8465
8465
 
8466
8466
  while (n <= 255) {
8467
- static_ltree[n * 2 + 1]
8467
+ static_ltree$1[n * 2 + 1]
8468
8468
  /*.Len*/
8469
8469
  = 9;
8470
8470
  n++;
@@ -8472,7 +8472,7 @@
8472
8472
  }
8473
8473
 
8474
8474
  while (n <= 279) {
8475
- static_ltree[n * 2 + 1]
8475
+ static_ltree$1[n * 2 + 1]
8476
8476
  /*.Len*/
8477
8477
  = 7;
8478
8478
  n++;
@@ -8480,7 +8480,7 @@
8480
8480
  }
8481
8481
 
8482
8482
  while (n <= 287) {
8483
- static_ltree[n * 2 + 1]
8483
+ static_ltree$1[n * 2 + 1]
8484
8484
  /*.Len*/
8485
8485
  = 8;
8486
8486
  n++;
@@ -8492,21 +8492,21 @@
8492
8492
  */
8493
8493
 
8494
8494
 
8495
- gen_codes(static_ltree, L_CODES$1 + 1, bl_count);
8495
+ gen_codes(static_ltree$1, L_CODES$1$1 + 1, bl_count);
8496
8496
  /* The static distance tree is trivial: */
8497
8497
 
8498
- for (n = 0; n < D_CODES$1; n++) {
8499
- static_dtree[n * 2 + 1]
8498
+ for (n = 0; n < D_CODES$1$1; n++) {
8499
+ static_dtree$1[n * 2 + 1]
8500
8500
  /*.Len*/
8501
8501
  = 5;
8502
- static_dtree[n * 2]
8502
+ static_dtree$1[n * 2]
8503
8503
  /*.Code*/
8504
8504
  = bi_reverse(n, 5);
8505
8505
  } // Now data ready and we can init static trees
8506
8506
 
8507
8507
 
8508
- static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);
8509
- static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);
8508
+ static_l_desc = new StaticTreeDesc(static_ltree$1, extra_lbits, LITERALS$1$1 + 1, L_CODES$1$1, MAX_BITS$1);
8509
+ static_d_desc = new StaticTreeDesc(static_dtree$1, extra_dbits, 0, D_CODES$1$1, MAX_BITS$1);
8510
8510
  static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS); //static_init_done = true;
8511
8511
  };
8512
8512
  /* ===========================================================================
@@ -8520,13 +8520,13 @@
8520
8520
 
8521
8521
  /* Initialize the trees. */
8522
8522
 
8523
- for (n = 0; n < L_CODES$1; n++) {
8523
+ for (n = 0; n < L_CODES$1$1; n++) {
8524
8524
  s.dyn_ltree[n * 2]
8525
8525
  /*.Freq*/
8526
8526
  = 0;
8527
8527
  }
8528
8528
 
8529
- for (n = 0; n < D_CODES$1; n++) {
8529
+ for (n = 0; n < D_CODES$1$1; n++) {
8530
8530
  s.dyn_dtree[n * 2]
8531
8531
  /*.Freq*/
8532
8532
  = 0;
@@ -8683,14 +8683,14 @@
8683
8683
  //Tracecv(isgraph(lc), (stderr," '%c' ", lc));
8684
8684
  } else {
8685
8685
  /* Here, lc is the match length - MIN_MATCH */
8686
- code = _length_code[lc];
8687
- send_code(s, code + LITERALS$1 + 1, ltree);
8686
+ code = _length_code$1[lc];
8687
+ send_code(s, code + LITERALS$1$1 + 1, ltree);
8688
8688
  /* send the length code */
8689
8689
 
8690
8690
  extra = extra_lbits[code];
8691
8691
 
8692
8692
  if (extra !== 0) {
8693
- lc -= base_length[code];
8693
+ lc -= base_length$1[code];
8694
8694
  send_bits(s, lc, extra);
8695
8695
  /* send the extra length bits */
8696
8696
  }
@@ -8706,7 +8706,7 @@
8706
8706
  extra = extra_dbits[code];
8707
8707
 
8708
8708
  if (extra !== 0) {
8709
- dist -= base_dist[code];
8709
+ dist -= base_dist$1[code];
8710
8710
  send_bits(s, dist, extra);
8711
8711
  /* send the extra distance bits */
8712
8712
  }
@@ -9164,7 +9164,7 @@
9164
9164
  return Z_TEXT;
9165
9165
  }
9166
9166
 
9167
- for (n = 32; n < LITERALS$1; n++) {
9167
+ for (n = 32; n < LITERALS$1$1; n++) {
9168
9168
  if (s.dyn_ltree[n * 2]
9169
9169
  /*.Freq*/
9170
9170
  !== 0) {
@@ -9223,7 +9223,7 @@
9223
9223
 
9224
9224
  const _tr_align$1 = s => {
9225
9225
  send_bits(s, STATIC_TREES << 1, 3);
9226
- send_code(s, END_BLOCK, static_ltree);
9226
+ send_code(s, END_BLOCK, static_ltree$1);
9227
9227
  bi_flush(s);
9228
9228
  };
9229
9229
  /* ===========================================================================
@@ -9296,7 +9296,7 @@
9296
9296
  _tr_stored_block$1(s, buf, stored_len, last);
9297
9297
  } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {
9298
9298
  send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);
9299
- compress_block(s, static_ltree, static_dtree);
9299
+ compress_block(s, static_ltree$1, static_dtree$1);
9300
9300
  } else {
9301
9301
  send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);
9302
9302
  send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);
@@ -9345,7 +9345,7 @@
9345
9345
  // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
9346
9346
  // (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match");
9347
9347
 
9348
- s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2] /*.Freq*/++;
9348
+ s.dyn_ltree[(_length_code$1[lc] + LITERALS$1$1 + 1) * 2] /*.Freq*/++;
9349
9349
  s.dyn_dtree[d_code(dist) * 2] /*.Freq*/++;
9350
9350
  } // (!) This block is disabled in zlib defaults,
9351
9351
  // don't enable it for binary compatibility
@@ -9457,7 +9457,7 @@
9457
9457
  // 3. This notice may not be removed or altered from any source distribution.
9458
9458
  // Use ordinary array, since untyped makes no boost here
9459
9459
 
9460
- const makeTable = () => {
9460
+ const makeTable$1 = () => {
9461
9461
  let c,
9462
9462
  table = [];
9463
9463
 
@@ -9475,7 +9475,7 @@
9475
9475
  }; // Create table on load. Just 255 signed longs. Not a problem.
9476
9476
 
9477
9477
 
9478
- const crcTable = new Uint32Array(makeTable());
9478
+ const crcTable = new Uint32Array(makeTable$1());
9479
9479
 
9480
9480
  const crc32 = (crc, buf, len, pos) => {
9481
9481
  const t = crcTable;
@@ -11799,13 +11799,13 @@
11799
11799
  // because max possible codepoint is 0x10ffff
11800
11800
 
11801
11801
 
11802
- const _utf8len = new Uint8Array(256);
11802
+ const _utf8len$1 = new Uint8Array(256);
11803
11803
 
11804
11804
  for (let q = 0; q < 256; q++) {
11805
- _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1;
11805
+ _utf8len$1[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1;
11806
11806
  }
11807
11807
 
11808
- _utf8len[254] = _utf8len[254] = 1; // Invalid sequence start
11808
+ _utf8len$1[254] = _utf8len$1[254] = 1; // Invalid sequence start
11809
11809
  // convert string to array (typed, when possible)
11810
11810
 
11811
11811
  var string2buf = str => {
@@ -11917,7 +11917,7 @@
11917
11917
  continue;
11918
11918
  }
11919
11919
 
11920
- let c_len = _utf8len[c]; // skip 5 & 6 byte codes
11920
+ let c_len = _utf8len$1[c]; // skip 5 & 6 byte codes
11921
11921
 
11922
11922
  if (c_len > 4) {
11923
11923
  utf16buf[out++] = 0xfffd;
@@ -11983,7 +11983,7 @@
11983
11983
  return max;
11984
11984
  }
11985
11985
 
11986
- return pos + _utf8len[buf[pos]] > max ? pos : max;
11986
+ return pos + _utf8len$1[buf[pos]] > max ? pos : max;
11987
11987
  };
11988
11988
 
11989
11989
  var strings = {
@@ -16839,60 +16839,6 @@
16839
16839
  dragData$1 = undefined;
16840
16840
  }
16841
16841
 
16842
- const appleCrayonPalette$1 = {
16843
- licorice: "#000000",
16844
- lead: "#1e1e1e",
16845
- tungsten: "#3a3a3a",
16846
- iron: "#545453",
16847
- steel: "#6e6e6e",
16848
- tin: "#878687",
16849
- nickel: "#888787",
16850
- aluminum: "#a09fa0",
16851
- magnesium: "#b8b8b8",
16852
- silver: "#d0d0d0",
16853
- mercury: "#e8e8e8",
16854
- snow: "#ffffff",
16855
- //
16856
- cayenne: "#891100",
16857
- mocha: "#894800",
16858
- aspargus: "#888501",
16859
- fern: "#458401",
16860
- clover: "#028401",
16861
- moss: "#018448",
16862
- teal: "#008688",
16863
- ocean: "#004a88",
16864
- midnight: "#001888",
16865
- eggplant: "#491a88",
16866
- plum: "#891e88",
16867
- maroon: "#891648",
16868
- //
16869
- maraschino: "#ff2101",
16870
- tangerine: "#ff8802",
16871
- lemon: "#fffa03",
16872
- lime: "#83f902",
16873
- spring: "#05f802",
16874
- seam_foam: "#03f987",
16875
- turquoise: "#00fdff",
16876
- aqua: "#008cff",
16877
- blueberry: "#002eff",
16878
- grape: "#8931ff",
16879
- magenta: "#ff39ff",
16880
- strawberry: "#ff2987",
16881
- //
16882
- salmon: "#ff726e",
16883
- cantaloupe: "#ffce6e",
16884
- banana: "#fffb6d",
16885
- honeydew: "#cefa6e",
16886
- flora: "#68f96e",
16887
- spindrift: "#68fbd0",
16888
- ice: "#68fdff",
16889
- sky: "#6acfff",
16890
- orchid: "#6e76ff",
16891
- lavender: "#d278ff",
16892
- bubblegum: "#ff7aff",
16893
- carnation: "#ff7fd3"
16894
- };
16895
-
16896
16842
  // Support for oauth token based authorization
16897
16843
  // This class supports explicit setting of an oauth token either globally or for specific hosts.
16898
16844
  //
@@ -16975,7 +16921,7 @@
16975
16921
  * the library will limit to
16976
16922
  */
16977
16923
 
16978
- class Throttle {
16924
+ class Throttle$1 {
16979
16925
  constructor(options) {
16980
16926
  this.requestsPerSecond = options.requestsPerSecond || 10;
16981
16927
  this.lastStartTime = 0;
@@ -17084,7 +17030,7 @@
17084
17030
  * THE SOFTWARE.
17085
17031
  */
17086
17032
  let RANGE_WARNING_GIVEN = false;
17087
- const googleThrottle = new Throttle({
17033
+ const googleThrottle = new Throttle$1({
17088
17034
  requestsPerSecond: 8
17089
17035
  });
17090
17036
  const igvxhr = {
@@ -18790,7 +18736,7 @@
18790
18736
  }, alertProps); // container
18791
18737
 
18792
18738
  this.container = div({
18793
- class: "igv-ui-alert-dialog-container"
18739
+ class: "igv-ui-1_3_0-alert-dialog-container"
18794
18740
  });
18795
18741
  parent.appendChild(this.container);
18796
18742
  this.container.setAttribute('tabIndex', '-1'); // header
@@ -18802,12 +18748,12 @@
18802
18748
  this.errorHeadline.textContent = ''; // body container
18803
18749
 
18804
18750
  let bodyContainer = div({
18805
- class: 'igv-ui-alert-dialog-body'
18751
+ class: 'igv-ui-1_3_0-alert-dialog-body'
18806
18752
  });
18807
18753
  this.container.appendChild(bodyContainer); // body copy
18808
18754
 
18809
18755
  this.body = div({
18810
- class: 'igv-ui-alert-dialog-body-copy'
18756
+ class: 'igv-ui-1_3_0-alert-dialog-body-copy'
18811
18757
  });
18812
18758
  bodyContainer.appendChild(this.body); // ok container
18813
18759
 
@@ -18885,25 +18831,25 @@
18885
18831
  this.parent = parent; // dialog container
18886
18832
 
18887
18833
  this.container = div({
18888
- class: 'igv-ui-generic-dialog-container'
18834
+ class: 'igv-ui-1_3_0-generic-dialog-container'
18889
18835
  });
18890
18836
  parent.appendChild(this.container); // const { x, y, width, height } = this.container.getBoundingClientRect();
18891
18837
  // console.log(`InputDialog - x ${ x } y ${ y } width ${ width } height ${ height }`)
18892
18838
  // dialog header
18893
18839
 
18894
18840
  const header = div({
18895
- class: 'igv-ui-generic-dialog-header'
18841
+ class: 'igv-ui-1_3_0-generic-dialog-header'
18896
18842
  });
18897
18843
  this.container.appendChild(header); // dialog label
18898
18844
 
18899
18845
  this.label = div({
18900
- class: 'igv-ui-generic-dialog-one-liner'
18846
+ class: 'igv-ui-1_3_0-generic-dialog-one-liner'
18901
18847
  });
18902
18848
  this.container.appendChild(this.label);
18903
18849
  this.label.text = 'Unlabeled'; // input container
18904
18850
 
18905
18851
  this.input_container = div({
18906
- class: 'igv-ui-generic-dialog-input'
18852
+ class: 'igv-ui-1_3_0-generic-dialog-input'
18907
18853
  });
18908
18854
  this.container.appendChild(this.input_container); //
18909
18855
 
@@ -18911,7 +18857,7 @@
18911
18857
  this.input_container.appendChild(this.input); // ok | cancel
18912
18858
 
18913
18859
  const buttons = div({
18914
- class: 'igv-ui-generic-dialog-ok-cancel'
18860
+ class: 'igv-ui-1_3_0-generic-dialog-ok-cancel'
18915
18861
  });
18916
18862
  this.container.appendChild(buttons); // ok
18917
18863
 
@@ -19050,7 +18996,7 @@
19050
18996
  closeHandler
19051
18997
  }) {
19052
18998
  let container = div({
19053
- class: 'igv-ui-generic-container'
18999
+ class: 'igv-ui-1_3_0-generic-container'
19054
19000
  });
19055
19001
  parent.appendChild(container);
19056
19002
  hide(container);
@@ -19138,7 +19084,7 @@
19138
19084
 
19139
19085
  for (let hexColorString of hexColorStrings) {
19140
19086
  const swatch = div({
19141
- class: 'igv-ui-color-swatch'
19087
+ class: 'igv-ui-1_3_0-color-swatch'
19142
19088
  });
19143
19089
  container.appendChild(swatch);
19144
19090
  decorateSwatch(swatch, hexColorString, colorHandler);
@@ -19147,7 +19093,7 @@
19147
19093
  if (defaultColors) {
19148
19094
  for (let hexColorString of defaultColors) {
19149
19095
  const swatch = div({
19150
- class: 'igv-ui-color-swatch'
19096
+ class: 'igv-ui-1_3_0-color-swatch'
19151
19097
  });
19152
19098
  container.appendChild(swatch);
19153
19099
  decorateSwatch(swatch, hexColorString, colorHandler);
@@ -19174,7 +19120,7 @@
19174
19120
  this.parent = parent; // popover
19175
19121
 
19176
19122
  this.popover = div({
19177
- class: "igv-ui-popover"
19123
+ class: "igv-ui-1_3_0-popover"
19178
19124
  });
19179
19125
  parent.appendChild(this.popover); // header
19180
19126
 
@@ -19326,18 +19272,910 @@
19326
19272
  return list;
19327
19273
  }
19328
19274
 
19275
+
19276
+ const encodings = new Map();
19277
+ encodings.set("!", "%21");
19278
+ encodings.set("#", "%23");
19279
+ encodings.set("$", "%24");
19280
+ encodings.set("%", "%25");
19281
+ encodings.set("&", "%26");
19282
+ encodings.set("'", "%27");
19283
+ encodings.set("(", "%28");
19284
+ encodings.set(")", "%29");
19285
+ encodings.set("*", "%2A");
19286
+ encodings.set("+", "%2B");
19287
+ encodings.set(",", "%2C");
19288
+ encodings.set("/", "%2F");
19289
+ encodings.set(":", "%3A");
19290
+ encodings.set(";", "%3B");
19291
+ encodings.set("=", "%3D");
19292
+ encodings.set("?", "%3F");
19293
+ encodings.set("@", "%40");
19294
+ encodings.set("[", "%5B");
19295
+ encodings.set("]", "%5D");
19296
+ encodings.set(" ", "%20");
19297
+
19298
+ if (typeof process === 'object' && typeof window === 'undefined') {
19299
+ global.atob = function (str) {
19300
+ return Buffer.from(str, 'base64').toString('binary');
19301
+ };
19302
+ } // Ths file is a modification of the pako distribution https://github.com/nodeca/pako. The modifications
19303
+ /*============================================================================*/
19304
+
19305
+ function zero$1(buf) {
19306
+ let len = buf.length;
19307
+
19308
+ while (--len >= 0) {
19309
+ buf[len] = 0;
19310
+ }
19311
+ } // From zutil.h
19312
+ /* The three kinds of block type */
19313
+
19314
+ const MIN_MATCH$1 = 3;
19315
+ const MAX_MATCH$1 = 258;
19316
+ /* The minimum and maximum match lengths */
19317
+ // From deflate.h
19318
+
19319
+ /* ===========================================================================
19320
+ * Internal compression state.
19321
+ */
19322
+
19323
+ const LENGTH_CODES$1 = 29;
19324
+ /* number of length codes, not counting the special END_BLOCK code */
19325
+
19326
+ const LITERALS$1 = 256;
19327
+ /* number of literal bytes 0..255 */
19328
+
19329
+ const L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;
19330
+ /* number of Literal or Length codes, including the END_BLOCK code */
19331
+
19332
+ const D_CODES$1 = 30;
19333
+ /* eslint-enable comma-spacing,array-bracket-spacing */
19334
+
19335
+ /* The lengths of the bit length codes are sent in order of decreasing
19336
+ * probability, to avoid transmitting the lengths for unused bit length codes.
19337
+ */
19338
+
19339
+ /* ===========================================================================
19340
+ * Local data. These are initialized only once.
19341
+ */
19342
+ // We pre-fill arrays with 0 to avoid uninitialized gaps
19343
+
19344
+ const DIST_CODE_LEN = 512;
19345
+ /* see definition of array dist_code below */
19346
+ // !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1
19347
+
19348
+ const static_ltree = new Array((L_CODES$1 + 2) * 2);
19349
+ zero$1(static_ltree);
19350
+ /* The static literal tree. Since the bit lengths are imposed, there is no
19351
+ * need for the L_CODES extra codes used during heap construction. However
19352
+ * The codes 286 and 287 are needed to build a canonical tree (see _tr_init
19353
+ * below).
19354
+ */
19355
+
19356
+ const static_dtree = new Array(D_CODES$1 * 2);
19357
+ zero$1(static_dtree);
19358
+ /* The static distance tree. (Actually a trivial tree since all codes use
19359
+ * 5 bits.)
19360
+ */
19361
+
19362
+ const _dist_code = new Array(DIST_CODE_LEN);
19363
+
19364
+ zero$1(_dist_code);
19365
+ /* Distance codes. The first 256 values correspond to the distances
19366
+ * 3 .. 258, the last 256 values correspond to the top 8 bits of
19367
+ * the 15 bit distances.
19368
+ */
19369
+
19370
+ const _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);
19371
+
19372
+ zero$1(_length_code);
19373
+ /* length code for each normalized match length (0 == MIN_MATCH) */
19374
+
19375
+ const base_length = new Array(LENGTH_CODES$1);
19376
+ zero$1(base_length);
19377
+ /* First normalized length for each code (0 = MIN_MATCH) */
19378
+
19379
+ const base_dist = new Array(D_CODES$1);
19380
+ zero$1(base_dist);
19381
+ // So write code to minimize size - no pregenerated tables
19382
+ // and array tools dependencies.
19383
+ // (C) 1995-2013 Jean-loup Gailly and Mark Adler
19384
+ // (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
19385
+ //
19386
+ // This software is provided 'as-is', without any express or implied
19387
+ // warranty. In no event will the authors be held liable for any damages
19388
+ // arising from the use of this software.
19389
+ //
19390
+ // Permission is granted to anyone to use this software for any purpose,
19391
+ // including commercial applications, and to alter it and redistribute it
19392
+ // freely, subject to the following restrictions:
19393
+ //
19394
+ // 1. The origin of this software must not be misrepresented; you must not
19395
+ // claim that you wrote the original software. If you use this software
19396
+ // in a product, an acknowledgment in the product documentation would be
19397
+ // appreciated but is not required.
19398
+ // 2. Altered source versions must be plainly marked as such, and must not be
19399
+ // misrepresented as being the original software.
19400
+ // 3. This notice may not be removed or altered from any source distribution.
19401
+ // Use ordinary array, since untyped makes no boost here
19402
+
19403
+ const makeTable = () => {
19404
+ let c,
19405
+ table = [];
19406
+
19407
+ for (var n = 0; n < 256; n++) {
19408
+ c = n;
19409
+
19410
+ for (var k = 0; k < 8; k++) {
19411
+ c = c & 1 ? 0xEDB88320 ^ c >>> 1 : c >>> 1;
19412
+ }
19413
+
19414
+ table[n] = c;
19415
+ }
19416
+
19417
+ return table;
19418
+ }; // Create table on load. Just 255 signed longs. Not a problem.
19419
+
19420
+
19421
+ new Uint32Array(makeTable());
19422
+
19423
+ try {
19424
+ String.fromCharCode.apply(null, new Uint8Array(1));
19425
+ } catch (__) {
19426
+ } // Table with utf8 lengths (calculated by first byte of sequence)
19427
+ // Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,
19428
+ // because max possible codepoint is 0x10ffff
19429
+
19430
+
19431
+ const _utf8len = new Uint8Array(256);
19432
+
19433
+ for (let q = 0; q < 256; q++) {
19434
+ _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1;
19435
+ }
19436
+
19437
+ _utf8len[254] = _utf8len[254] = 1; // Invalid sequence start
19438
+ // exports.Deflate = Deflate_1;
19439
+ // exports.Inflate = Inflate_1;
19440
+ // exports.constants = constants_1;
19441
+ // exports['default'] = pako;
19442
+ // exports.deflate = deflate_1;
19443
+ // exports.deflateRaw = deflateRaw_1;
19444
+ // exports.gzip = gzip_1;
19445
+ // exports.inflate = inflate_1;
19446
+ // exports.inflateRaw = inflateRaw_1;
19447
+ // exports.ungzip = ungzip_1;
19448
+ // Object.defineProperty(exports, '__esModule', { value: true });
19449
+ //
19450
+ // })));
19451
+ // The MIT License (MIT)
19452
+
19453
+ /**
19454
+ * @constructor
19455
+ * @param {Object} options A set op options to pass to the throttle function
19456
+ * @param {number} requestsPerSecond The amount of requests per second
19457
+ * the library will limit to
19458
+ */
19459
+
19460
+
19461
+ class Throttle {
19462
+ constructor(options) {
19463
+ this.requestsPerSecond = options.requestsPerSecond || 10;
19464
+ this.lastStartTime = 0;
19465
+ this.queued = [];
19466
+ }
19467
+ /**
19468
+ * Adds a promise
19469
+ * @param {Function} async function to be executed
19470
+ * @param {Object} options A set of options.
19471
+ * @return {Promise} A promise
19472
+ */
19473
+
19474
+
19475
+ add(asyncFunction, options) {
19476
+ var self = this;
19477
+ return new Promise(function (resolve, reject) {
19478
+ self.queued.push({
19479
+ resolve: resolve,
19480
+ reject: reject,
19481
+ asyncFunction: asyncFunction
19482
+ });
19483
+ self.dequeue();
19484
+ });
19485
+ }
19486
+ /**
19487
+ * Adds all the promises passed as parameters
19488
+ * @param {Function} promises An array of functions that return a promise
19489
+ * @param {Object} options A set of options.
19490
+ * @param {number} options.signal An AbortSignal object that can be used to abort the returned promise
19491
+ * @param {number} options.weight A "weight" of each operation resolving by array of promises
19492
+ * @return {Promise} A promise that succeeds when all the promises passed as options do
19493
+ */
19494
+
19495
+
19496
+ addAll(promises, options) {
19497
+ var addedPromises = promises.map(function (promise) {
19498
+ return this.add(promise, options);
19499
+ }.bind(this));
19500
+ return Promise.all(addedPromises);
19501
+ }
19502
+
19503
+ /**
19504
+ * Dequeues a promise
19505
+ * @return {void}
19506
+ */
19507
+ dequeue() {
19508
+ if (this.queued.length > 0) {
19509
+ var now = new Date(),
19510
+ inc = 1000 / this.requestsPerSecond + 1,
19511
+ elapsed = now - this.lastStartTime;
19512
+
19513
+ if (elapsed >= inc) {
19514
+ this._execute();
19515
+ } else {
19516
+ // we have reached the limit, schedule a dequeue operation
19517
+ setTimeout(function () {
19518
+ this.dequeue();
19519
+ }.bind(this), inc - elapsed);
19520
+ }
19521
+ }
19522
+ }
19523
+ /**
19524
+ * Executes the promise
19525
+ * @private
19526
+ * @return {void}
19527
+ */
19528
+
19529
+
19530
+ async _execute() {
19531
+ this.lastStartTime = new Date();
19532
+ var candidate = this.queued.shift();
19533
+ const f = candidate.asyncFunction;
19534
+
19535
+ try {
19536
+ const r = await f();
19537
+ candidate.resolve(r);
19538
+ } catch (e) {
19539
+ candidate.reject(e);
19540
+ }
19541
+ }
19542
+
19543
+ }
19544
+ /*
19545
+ * The MIT License (MIT)
19546
+ *
19547
+ * Copyright (c) 2014 Broad Institute
19548
+ *
19549
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
19550
+ * of this software and associated documentation files (the "Software"), to deal
19551
+ * in the Software without restriction, including without limitation the rights
19552
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19553
+ * copies of the Software, and to permit persons to whom the Software is
19554
+ * furnished to do so, subject to the following conditions:
19555
+ *
19556
+ * The above copyright notice and this permission notice shall be included in
19557
+ * all copies or substantial portions of the Software.
19558
+ *
19559
+ *
19560
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19561
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19562
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19563
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19564
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19565
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19566
+ * THE SOFTWARE.
19567
+ */
19568
+
19569
+
19570
+ new Throttle({
19571
+ requestsPerSecond: 8
19572
+ });
19573
+
19574
+ class GenericColorPicker extends GenericContainer {
19575
+ constructor({
19576
+ parent,
19577
+ width
19578
+ }) {
19579
+ super({
19580
+ parent,
19581
+ width,
19582
+ border: '1px solid gray'
19583
+ });
19584
+ }
19585
+
19586
+ configure(defaultColors, colorHandlers) {
19587
+ this.colorHandlers = colorHandlers; // active color handler defaults to handler with 'color' as key
19588
+
19589
+ this.setActiveColorHandler('color');
19590
+ this.createSwatches(defaultColors);
19591
+ }
19592
+
19593
+ setActiveColorHandler(option) {
19594
+ this.activeColorHandler = this.colorHandlers[option];
19595
+ }
19596
+
19597
+ createSwatches(defaultColors) {
19598
+ this.container.querySelectorAll('.igv-ui-1_3_0-color-swatch').forEach(swatch => swatch.remove());
19599
+ const hexColorStrings = Object.values(appleCrayonPalette);
19600
+
19601
+ for (let hexColorString of hexColorStrings) {
19602
+ const swatch = div({
19603
+ class: 'igv-ui-1_3_0-color-swatch'
19604
+ });
19605
+ this.container.appendChild(swatch);
19606
+ this.decorateSwatch(swatch, hexColorString);
19607
+ }
19608
+
19609
+ if (defaultColors) {
19610
+ for (let hexColorString of defaultColors) {
19611
+ const swatch = div({
19612
+ class: 'igv-ui-1_3_0-color-swatch'
19613
+ });
19614
+ this.container.appendChild(swatch);
19615
+ this.decorateSwatch(swatch, hexColorString);
19616
+ }
19617
+ }
19618
+ }
19619
+
19620
+ decorateSwatch(swatch, hexColorString) {
19621
+ swatch.style.backgroundColor = hexColorString;
19622
+ swatch.addEventListener('mouseenter', () => swatch.style.borderColor = hexColorString);
19623
+ swatch.addEventListener('mouseleave', () => swatch.style.borderColor = 'white');
19624
+ swatch.addEventListener('click', event => {
19625
+ event.stopPropagation();
19626
+ this.activeColorHandler(hexColorString);
19627
+ });
19628
+ swatch.addEventListener('touchend', event => {
19629
+ event.stopPropagation();
19630
+ this.activeColorHandler(hexColorString);
19631
+ });
19632
+ }
19633
+
19634
+ }
19635
+
19329
19636
  function embedCSS$2() {
19330
- 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';
19331
- var style = document.createElement('style');
19637
+ const style = document.createElement('style');
19332
19638
  style.setAttribute('type', 'text/css');
19333
- style.innerHTML = css;
19639
+ style.setAttribute('title', 'igv-ui-1_3_0.css');
19640
+ style.innerHTML = `.igv-ui-1_3_0-popover {
19641
+ cursor: default;
19642
+ position: absolute;
19643
+ z-index: 2048;
19644
+ border-color: #7F7F7F;
19645
+ border-radius: 4px;
19646
+ border-style: solid;
19647
+ border-width: 1px;
19648
+ font-family: "Open Sans", sans-serif;
19649
+ font-size: small;
19650
+ background-color: white; }
19651
+ .igv-ui-1_3_0-popover > div:first-child {
19652
+ display: flex;
19653
+ flex-direction: row;
19654
+ flex-wrap: nowrap;
19655
+ justify-content: space-between;
19656
+ align-items: center;
19657
+ width: 100%;
19658
+ height: 24px;
19659
+ cursor: move;
19660
+ border-top-left-radius: 4px;
19661
+ border-top-right-radius: 4px;
19662
+ border-bottom-color: #7F7F7F;
19663
+ border-bottom-style: solid;
19664
+ border-bottom-width: thin;
19665
+ background-color: #eee; }
19666
+ .igv-ui-1_3_0-popover > div:first-child > div:first-child {
19667
+ margin-left: 4px; }
19668
+ .igv-ui-1_3_0-popover > div:first-child > div:last-child {
19669
+ margin-right: 4px;
19670
+ height: 12px;
19671
+ width: 12px;
19672
+ color: #7F7F7F; }
19673
+ .igv-ui-1_3_0-popover > div:first-child > div:last-child:hover {
19674
+ cursor: pointer;
19675
+ color: #444; }
19676
+ .igv-ui-1_3_0-popover > div:last-child {
19677
+ overflow-y: auto;
19678
+ overflow-x: hidden;
19679
+ max-height: 400px;
19680
+ max-width: 800px;
19681
+ background-color: white; }
19682
+ .igv-ui-1_3_0-popover > div:last-child > div {
19683
+ -webkit-user-select: text;
19684
+ -moz-user-select: text;
19685
+ -ms-user-select: text;
19686
+ user-select: text;
19687
+ margin-left: 4px;
19688
+ margin-right: 4px;
19689
+ min-width: 220px;
19690
+ overflow-x: hidden;
19691
+ text-overflow: ellipsis;
19692
+ white-space: nowrap; }
19693
+ .igv-ui-1_3_0-popover > div:last-child > div > span {
19694
+ font-weight: bolder; }
19695
+ .igv-ui-1_3_0-popover > div:last-child hr {
19696
+ width: 100%; }
19697
+
19698
+ .igv-ui-1_3_0-alert-dialog-container {
19699
+ box-sizing: content-box;
19700
+ position: absolute;
19701
+ z-index: 2048;
19702
+ top: 50%;
19703
+ left: 50%;
19704
+ width: 400px;
19705
+ height: 200px;
19706
+ border-color: #7F7F7F;
19707
+ border-radius: 4px;
19708
+ border-style: solid;
19709
+ border-width: thin;
19710
+ outline: none;
19711
+ font-family: "Open Sans", sans-serif;
19712
+ font-size: 15px;
19713
+ font-weight: 400;
19714
+ background-color: white;
19715
+ display: flex;
19716
+ flex-flow: column;
19717
+ flex-wrap: nowrap;
19718
+ justify-content: space-between;
19719
+ align-items: center; }
19720
+ .igv-ui-1_3_0-alert-dialog-container > div:first-child {
19721
+ display: flex;
19722
+ flex-flow: row;
19723
+ flex-wrap: nowrap;
19724
+ justify-content: flex-start;
19725
+ align-items: center;
19726
+ width: 100%;
19727
+ height: 24px;
19728
+ cursor: move;
19729
+ border-top-left-radius: 4px;
19730
+ border-top-right-radius: 4px;
19731
+ border-bottom-color: #7F7F7F;
19732
+ border-bottom-style: solid;
19733
+ border-bottom-width: thin;
19734
+ background-color: #eee; }
19735
+ .igv-ui-1_3_0-alert-dialog-container > div:first-child div:first-child {
19736
+ padding-left: 8px; }
19737
+ .igv-ui-1_3_0-alert-dialog-container .igv-ui-1_3_0-alert-dialog-body {
19738
+ -webkit-user-select: text;
19739
+ -moz-user-select: text;
19740
+ -ms-user-select: text;
19741
+ user-select: text;
19742
+ color: #373737;
19743
+ width: 100%;
19744
+ height: calc(100% - 24px - 64px);
19745
+ overflow-y: scroll; }
19746
+ .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 {
19747
+ margin: 16px;
19748
+ width: auto;
19749
+ height: auto;
19750
+ overflow-wrap: break-word;
19751
+ word-break: break-word;
19752
+ background-color: white;
19753
+ border: unset; }
19754
+ .igv-ui-1_3_0-alert-dialog-container > div:last-child {
19755
+ width: 100%;
19756
+ margin-bottom: 10px;
19757
+ background-color: white;
19758
+ display: flex;
19759
+ flex-flow: row;
19760
+ flex-wrap: nowrap;
19761
+ justify-content: center;
19762
+ align-items: center; }
19763
+ .igv-ui-1_3_0-alert-dialog-container > div:last-child div {
19764
+ margin: unset;
19765
+ width: 40px;
19766
+ height: 30px;
19767
+ line-height: 30px;
19768
+ text-align: center;
19769
+ color: white;
19770
+ font-family: "Open Sans", sans-serif;
19771
+ font-size: small;
19772
+ font-weight: 400;
19773
+ border-color: #2B81AF;
19774
+ border-style: solid;
19775
+ border-width: thin;
19776
+ border-radius: 4px;
19777
+ background-color: #2B81AF; }
19778
+ .igv-ui-1_3_0-alert-dialog-container > div:last-child div:hover {
19779
+ cursor: pointer;
19780
+ border-color: #25597f;
19781
+ background-color: #25597f; }
19782
+
19783
+ .igv-ui-1_3_0-color-swatch {
19784
+ position: relative;
19785
+ box-sizing: content-box;
19786
+ display: flex;
19787
+ flex-flow: row;
19788
+ flex-wrap: wrap;
19789
+ justify-content: center;
19790
+ align-items: center;
19791
+ width: 32px;
19792
+ height: 32px;
19793
+ border-style: solid;
19794
+ border-width: 2px;
19795
+ border-color: white;
19796
+ border-radius: 4px; }
19797
+
19798
+ .igv-ui-1_3_0-color-swatch:hover {
19799
+ border-color: dimgray; }
19800
+
19801
+ .igv-ui-1_3_0-colorpicker-menu-close-button {
19802
+ display: flex;
19803
+ flex-flow: row;
19804
+ flex-wrap: nowrap;
19805
+ justify-content: flex-end;
19806
+ align-items: center;
19807
+ width: 100%;
19808
+ height: 32px;
19809
+ margin-top: 4px;
19810
+ margin-bottom: 4px;
19811
+ padding-right: 8px; }
19812
+ .igv-ui-1_3_0-colorpicker-menu-close-button i.fa {
19813
+ display: block;
19814
+ margin-left: 4px;
19815
+ margin-right: 4px;
19816
+ color: #5f5f5f; }
19817
+ .igv-ui-1_3_0-colorpicker-menu-close-button i.fa:hover,
19818
+ .igv-ui-1_3_0-colorpicker-menu-close-button i.fa:focus,
19819
+ .igv-ui-1_3_0-colorpicker-menu-close-button i.fa:active {
19820
+ cursor: pointer;
19821
+ color: #0f0f0f; }
19822
+
19823
+ .igv-ui-1_3_0-generic-dialog-container {
19824
+ box-sizing: content-box;
19825
+ position: fixed;
19826
+ top: 0;
19827
+ left: 0;
19828
+ width: 300px;
19829
+ height: 200px;
19830
+ border-color: #7F7F7F;
19831
+ border-radius: 4px;
19832
+ border-style: solid;
19833
+ border-width: thin;
19834
+ font-family: "Open Sans", sans-serif;
19835
+ font-size: medium;
19836
+ font-weight: 400;
19837
+ z-index: 2048;
19838
+ background-color: white;
19839
+ display: flex;
19840
+ flex-flow: column;
19841
+ flex-wrap: nowrap;
19842
+ justify-content: flex-start;
19843
+ align-items: center; }
19844
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-header {
19845
+ display: flex;
19846
+ flex-flow: row;
19847
+ flex-wrap: nowrap;
19848
+ justify-content: flex-end;
19849
+ align-items: center;
19850
+ width: 100%;
19851
+ height: 24px;
19852
+ cursor: move;
19853
+ border-top-left-radius: 4px;
19854
+ border-top-right-radius: 4px;
19855
+ border-bottom-color: #7F7F7F;
19856
+ border-bottom-style: solid;
19857
+ border-bottom-width: thin;
19858
+ background-color: #eee; }
19859
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-header div {
19860
+ margin-right: 4px;
19861
+ margin-bottom: 2px;
19862
+ height: 12px;
19863
+ width: 12px;
19864
+ color: #7F7F7F; }
19865
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-header div:hover {
19866
+ cursor: pointer;
19867
+ color: #444; }
19868
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-one-liner {
19869
+ color: #373737;
19870
+ width: 95%;
19871
+ height: 24px;
19872
+ line-height: 24px;
19873
+ text-align: left;
19874
+ margin-top: 8px;
19875
+ padding-left: 8px;
19876
+ overflow-wrap: break-word;
19877
+ background-color: white; }
19878
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-label-input {
19879
+ margin-top: 8px;
19880
+ width: 95%;
19881
+ height: 24px;
19882
+ color: #373737;
19883
+ line-height: 24px;
19884
+ padding-left: 8px;
19885
+ background-color: white;
19886
+ display: flex;
19887
+ flex-flow: row;
19888
+ flex-wrap: nowrap;
19889
+ justify-content: flex-start;
19890
+ align-items: center; }
19891
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-label-input div {
19892
+ width: 30%;
19893
+ height: 100%;
19894
+ font-size: 16px;
19895
+ text-align: right;
19896
+ padding-right: 8px;
19897
+ background-color: white; }
19898
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-label-input input {
19899
+ display: block;
19900
+ height: 100%;
19901
+ width: 100%;
19902
+ padding-left: 4px;
19903
+ font-family: "Open Sans", sans-serif;
19904
+ font-weight: 400;
19905
+ color: #373737;
19906
+ text-align: left;
19907
+ outline: none;
19908
+ border-style: solid;
19909
+ border-width: thin;
19910
+ border-color: #7F7F7F;
19911
+ background-color: white; }
19912
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-label-input input {
19913
+ width: 50%;
19914
+ font-size: 16px; }
19915
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-input {
19916
+ margin-top: 8px;
19917
+ width: calc(100% - 16px);
19918
+ height: 24px;
19919
+ color: #373737;
19920
+ line-height: 24px;
19921
+ display: flex;
19922
+ flex-flow: row;
19923
+ flex-wrap: nowrap;
19924
+ justify-content: space-around;
19925
+ align-items: center; }
19926
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-input input {
19927
+ display: block;
19928
+ height: 100%;
19929
+ width: 100%;
19930
+ padding-left: 4px;
19931
+ font-family: "Open Sans", sans-serif;
19932
+ font-weight: 400;
19933
+ color: #373737;
19934
+ text-align: left;
19935
+ outline: none;
19936
+ border-style: solid;
19937
+ border-width: thin;
19938
+ border-color: #7F7F7F;
19939
+ background-color: white; }
19940
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-input input {
19941
+ font-size: 16px; }
19942
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok-cancel {
19943
+ width: 100%;
19944
+ height: 28px;
19945
+ display: flex;
19946
+ flex-flow: row;
19947
+ flex-wrap: nowrap;
19948
+ justify-content: space-around;
19949
+ align-items: center; }
19950
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok-cancel div {
19951
+ margin-top: 32px;
19952
+ color: white;
19953
+ font-family: "Open Sans", sans-serif;
19954
+ font-size: 14px;
19955
+ font-weight: 400;
19956
+ width: 75px;
19957
+ height: 28px;
19958
+ line-height: 28px;
19959
+ text-align: center;
19960
+ border-color: transparent;
19961
+ border-style: solid;
19962
+ border-width: thin;
19963
+ border-radius: 2px; }
19964
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok-cancel div:first-child {
19965
+ margin-left: 32px;
19966
+ margin-right: 0;
19967
+ background-color: #5ea4e0; }
19968
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok-cancel div:last-child {
19969
+ margin-left: 0;
19970
+ margin-right: 32px;
19971
+ background-color: #c4c4c4; }
19972
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok-cancel div:first-child:hover {
19973
+ cursor: pointer;
19974
+ background-color: #3b5c7f; }
19975
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok-cancel div:last-child:hover {
19976
+ cursor: pointer;
19977
+ background-color: #7f7f7f; }
19978
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok {
19979
+ width: 100%;
19980
+ height: 36px;
19981
+ margin-top: 32px;
19982
+ display: flex;
19983
+ flex-flow: row;
19984
+ flex-wrap: nowrap;
19985
+ justify-content: space-around;
19986
+ align-items: center; }
19987
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok div {
19988
+ width: 98px;
19989
+ height: 36px;
19990
+ line-height: 36px;
19991
+ text-align: center;
19992
+ color: white;
19993
+ font-family: "Open Sans", sans-serif;
19994
+ font-size: medium;
19995
+ font-weight: 400;
19996
+ border-color: white;
19997
+ border-style: solid;
19998
+ border-width: thin;
19999
+ border-radius: 4px;
20000
+ background-color: #2B81AF; }
20001
+ .igv-ui-1_3_0-generic-dialog-container .igv-ui-1_3_0-generic-dialog-ok div:hover {
20002
+ cursor: pointer;
20003
+ background-color: #25597f; }
20004
+
20005
+ .igv-ui-1_3_0-generic-container {
20006
+ box-sizing: content-box;
20007
+ position: absolute;
20008
+ z-index: 2048;
20009
+ background-color: white;
20010
+ cursor: pointer;
20011
+ display: flex;
20012
+ flex-direction: row;
20013
+ flex-wrap: wrap;
20014
+ justify-content: flex-start;
20015
+ align-items: center; }
20016
+ .igv-ui-1_3_0-generic-container > div:first-child {
20017
+ cursor: move;
20018
+ display: flex;
20019
+ flex-flow: row;
20020
+ flex-wrap: nowrap;
20021
+ justify-content: flex-end;
20022
+ align-items: center;
20023
+ height: 24px;
20024
+ width: 100%;
20025
+ background-color: #dddddd; }
20026
+ .igv-ui-1_3_0-generic-container > div:first-child > div {
20027
+ display: block;
20028
+ color: #5f5f5f;
20029
+ cursor: pointer;
20030
+ width: 14px;
20031
+ height: 14px;
20032
+ margin-right: 8px;
20033
+ margin-bottom: 4px; }
20034
+
20035
+ .igv-ui-1_3_0-dialog {
20036
+ z-index: 2048;
20037
+ position: fixed;
20038
+ width: fit-content;
20039
+ height: fit-content;
20040
+ display: flex;
20041
+ flex-flow: column;
20042
+ flex-wrap: nowrap;
20043
+ justify-content: flex-start;
20044
+ background-color: white;
20045
+ border-color: #7F7F7F;
20046
+ border-radius: 4px;
20047
+ border-style: solid;
20048
+ border-width: thin;
20049
+ font-family: "Open Sans", sans-serif;
20050
+ font-size: medium;
20051
+ font-weight: 400; }
20052
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-header {
20053
+ display: flex;
20054
+ flex-flow: row;
20055
+ flex-wrap: nowrap;
20056
+ justify-content: flex-end;
20057
+ align-items: center;
20058
+ width: 100%;
20059
+ height: 24px;
20060
+ cursor: move;
20061
+ border-top-left-radius: 4px;
20062
+ border-top-right-radius: 4px;
20063
+ border-bottom-color: #7F7F7F;
20064
+ border-bottom-style: solid;
20065
+ border-bottom-width: thin;
20066
+ background-color: #eee; }
20067
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-header div {
20068
+ margin-right: 4px;
20069
+ margin-bottom: 2px;
20070
+ height: 12px;
20071
+ width: 12px;
20072
+ color: #7F7F7F; }
20073
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-header div:hover {
20074
+ cursor: pointer;
20075
+ color: #444; }
20076
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-one-liner {
20077
+ width: 95%;
20078
+ height: 24px;
20079
+ line-height: 24px;
20080
+ text-align: left;
20081
+ margin: 8px;
20082
+ overflow-wrap: break-word;
20083
+ background-color: white;
20084
+ font-weight: bold; }
20085
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok-cancel {
20086
+ width: 100%;
20087
+ display: flex;
20088
+ flex-flow: row;
20089
+ flex-wrap: nowrap;
20090
+ justify-content: space-around;
20091
+ align-items: center; }
20092
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok-cancel div {
20093
+ margin: 16px;
20094
+ margin-top: 32px;
20095
+ color: white;
20096
+ font-family: "Open Sans", sans-serif;
20097
+ font-size: 14px;
20098
+ font-weight: 400;
20099
+ width: 75px;
20100
+ height: 28px;
20101
+ line-height: 28px;
20102
+ text-align: center;
20103
+ border-color: transparent;
20104
+ border-style: solid;
20105
+ border-width: thin;
20106
+ border-radius: 2px; }
20107
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok-cancel div:first-child {
20108
+ background-color: #5ea4e0; }
20109
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok-cancel div:last-child {
20110
+ background-color: #c4c4c4; }
20111
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok-cancel div:first-child:hover {
20112
+ cursor: pointer;
20113
+ background-color: #3b5c7f; }
20114
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok-cancel div:last-child:hover {
20115
+ cursor: pointer;
20116
+ background-color: #7f7f7f; }
20117
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok {
20118
+ width: 100%;
20119
+ height: 36px;
20120
+ margin-top: 32px;
20121
+ display: flex;
20122
+ flex-flow: row;
20123
+ flex-wrap: nowrap;
20124
+ justify-content: space-around;
20125
+ align-items: center; }
20126
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok div {
20127
+ width: 98px;
20128
+ height: 36px;
20129
+ line-height: 36px;
20130
+ text-align: center;
20131
+ color: white;
20132
+ font-family: "Open Sans", sans-serif;
20133
+ font-size: medium;
20134
+ font-weight: 400;
20135
+ border-color: white;
20136
+ border-style: solid;
20137
+ border-width: thin;
20138
+ border-radius: 4px;
20139
+ background-color: #2B81AF; }
20140
+ .igv-ui-1_3_0-dialog .igv-ui-1_3_0-dialog-ok div:hover {
20141
+ cursor: pointer;
20142
+ background-color: #25597f; }
20143
+
20144
+ .igv-ui-1_3_0-panel, .igv-ui-1_3_0-panel-column, .igv-ui-1_3_0-panel-row {
20145
+ z-index: 2048;
20146
+ background-color: white;
20147
+ font-family: "Open Sans", sans-serif;
20148
+ font-size: medium;
20149
+ font-weight: 400;
20150
+ display: flex;
20151
+ justify-content: flex-start;
20152
+ align-items: flex-start; }
20153
+
20154
+ .igv-ui-1_3_0-panel-column {
20155
+ display: flex;
20156
+ flex-direction: column; }
20157
+
20158
+ .igv-ui-1_3_0-panel-row {
20159
+ display: flex;
20160
+ flex-direction: row; }
20161
+
20162
+ .igv-ui-1_3_0-textbox {
20163
+ background-color: white;
20164
+ font-family: "Open Sans", sans-serif;
20165
+ font-size: medium;
20166
+ font-weight: 400;
20167
+ display: flex;
20168
+ justify-content: flex-start;
20169
+ align-items: flex-start; }
20170
+
20171
+ /*# sourceMappingURL=igv-ui-1_3_0.css.map */
20172
+ `;
19334
20173
  document.head.insertBefore(style, document.head.childNodes[document.head.childNodes.length - 1]);
19335
20174
  }
19336
20175
 
19337
20176
  if (typeof document !== 'undefined') {
19338
- if (!stylesheetExists("igv-ui.css")) {
19339
- // console.log('igv-ui. will call embedCSS() ...');
19340
- embedCSS$2(); // console.log('... done.');
20177
+ if (!stylesheetExists("igv-ui-1_3_0.css")) {
20178
+ embedCSS$2();
19341
20179
  }
19342
20180
 
19343
20181
  function stylesheetExists(stylesheetName) {
@@ -24286,7 +25124,7 @@
24286
25124
  }
24287
25125
  };
24288
25126
 
24289
- const _version = "2.13.0";
25127
+ const _version = "2.13.1";
24290
25128
 
24291
25129
  function version() {
24292
25130
  return _version;
@@ -33900,7 +34738,7 @@
33900
34738
  * @constructor
33901
34739
  */
33902
34740
 
33903
- class StaticFeatureSource$1 {
34741
+ class StaticFeatureSource {
33904
34742
  constructor(config, genome) {
33905
34743
  this.config = config;
33906
34744
  this.genome = genome;
@@ -33962,6 +34800,10 @@
33962
34800
  return this.featureCache.getAllFeatures();
33963
34801
  }
33964
34802
 
34803
+ supportsWholeGenome() {
34804
+ return true;
34805
+ }
34806
+
33965
34807
  }
33966
34808
  /**
33967
34809
  * This function is used to apply properties normally added during parsing to features supplied directly in the
@@ -34019,7 +34861,7 @@
34019
34861
  const format = config.format ? config.format.toLowerCase() : undefined;
34020
34862
 
34021
34863
  if (config.features) {
34022
- return new StaticFeatureSource$1(config, genome);
34864
+ return new StaticFeatureSource(config, genome);
34023
34865
  } else if (bbFormats.has(format)) {
34024
34866
  return new BWSource(config, genome);
34025
34867
  } else if ("tdf" === format) {
@@ -34444,14 +35286,13 @@
34444
35286
  const appleCrayonColorName = 'nickel';
34445
35287
  const ROI_DEFAULT_ALPHA = 2 / 16;
34446
35288
  const ROI_DEFAULT_COLOR = appleCrayonRGBA(appleCrayonColorName, ROI_DEFAULT_ALPHA);
34447
- const ROI_DEFAULT_HEADER_COLOR = 'rgba(0,0,0,0)';
34448
- const ROI_USER_HEADER_DEFINED_COLOR = 'rgba(155,185,129,1)';
35289
+ const ROI_DEFAULT_HEADER_COLOR = 'rgb(190,190,190)';
35290
+ const ROI_USER_HEADER_DEFINED_COLOR = 'rgba(155,185,129)';
34449
35291
  const ROI_USER_DEFINED_COLOR = ROI_DEFAULT_COLOR;
34450
35292
 
34451
35293
  class ROISet {
34452
35294
  constructor(config, genome) {
34453
35295
  this.url = config.url;
34454
- this.isUserDefined = config.isUserDefined;
34455
35296
 
34456
35297
  if (config.name) {
34457
35298
  this.name = config.name;
@@ -34461,10 +35302,10 @@
34461
35302
  this.name = getFilename$1(config.url);
34462
35303
  }
34463
35304
 
34464
- if (config.isUserDefined) {
35305
+ this.isUserDefined = config.isUserDefined;
35306
+
35307
+ if (config.features) {
34465
35308
  this.featureSource = new DynamicFeatureSource(config.features, genome);
34466
- } else if (config.features) {
34467
- this.featureSource = new StaticFeatureSource(config.features, genome);
34468
35309
  } else {
34469
35310
  if (config.format) {
34470
35311
  config.format = config.format.toLowerCase();
@@ -34517,23 +35358,27 @@
34517
35358
 
34518
35359
  toJSON() {
34519
35360
  if (this.url) {
34520
- return '' === this.name ? {
34521
- color: this.color,
34522
- url: this.url
34523
- } : {
35361
+ return {
34524
35362
  name: this.name,
34525
35363
  color: this.color,
34526
- url: this.url
35364
+ url: this.url,
35365
+ isUserDefined: this.isUserDefined
34527
35366
  };
34528
35367
  } else {
34529
- const features = this.featureSource.getAllFeatures();
34530
- return '' === this.name ? {
34531
- color: this.color,
34532
- features: features
34533
- } : {
35368
+ const featureMap = this.featureSource.getAllFeatures();
35369
+ const features = [];
35370
+
35371
+ for (let chr of Object.keys(featureMap)) {
35372
+ for (let f of featureMap[chr]) {
35373
+ features.push(f);
35374
+ }
35375
+ }
35376
+
35377
+ return {
34534
35378
  name: this.name,
34535
35379
  color: this.color,
34536
- features: features
35380
+ features: features,
35381
+ isUserDefined: this.isUserDefined
34537
35382
  };
34538
35383
  }
34539
35384
  }
@@ -34563,38 +35408,8 @@
34563
35408
  width
34564
35409
  };
34565
35410
  }
34566
-
34567
- class StaticFeatureSource {
34568
- constructor(features, genome) {
34569
- this.featureCache = new FeatureCache$1(features, genome);
34570
- this.genome = genome;
34571
- }
34572
-
34573
- getFeatures(_ref) {
34574
- let {
34575
- chr,
34576
- start,
34577
- end
34578
- } = _ref;
34579
-
34580
- if (chr.toLowerCase() === 'all') {
34581
- return computeWGFeatures(this.featureCache.getAllFeatures(), this.genome);
34582
- } else {
34583
- return this.featureCache.queryFeatures(chr, start, end);
34584
- }
34585
- }
34586
-
34587
- getAllFeatures() {
34588
- return this.featureCache.getAllFeatures();
34589
- }
34590
-
34591
- supportsWholeGenome() {
34592
- return true;
34593
- }
34594
-
34595
- }
34596
35411
  /**
34597
- * Special feature source that allows addition of features dynamically, for supporting user-defined genomes
35412
+ * Special feature source that allows addition of features dynamically
34598
35413
  */
34599
35414
 
34600
35415
 
@@ -34619,12 +35434,12 @@
34619
35434
  }
34620
35435
  }
34621
35436
 
34622
- getFeatures(_ref2) {
35437
+ getFeatures(_ref) {
34623
35438
  let {
34624
35439
  chr,
34625
35440
  start,
34626
35441
  end
34627
- } = _ref2;
35442
+ } = _ref;
34628
35443
 
34629
35444
  if (chr.toLowerCase() === 'all') {
34630
35445
  return computeWGFeatures(this.featureMap, this.genome);
@@ -34655,12 +35470,12 @@
34655
35470
  featureList.sort((a, b) => a.start - b.start);
34656
35471
  }
34657
35472
 
34658
- removeFeature(_ref3) {
35473
+ removeFeature(_ref2) {
34659
35474
  let {
34660
35475
  chr,
34661
35476
  start,
34662
35477
  end
34663
- } = _ref3;
35478
+ } = _ref2;
34664
35479
 
34665
35480
  if (this.featureMap[chr]) {
34666
35481
  const match = `${chr}-${start}-${end}`;
@@ -57881,69 +58696,6 @@
57881
58696
  ctx.fillStyle = fillStyle;
57882
58697
  }
57883
58698
 
57884
- class GenericColorPicker extends GenericContainer {
57885
- constructor(_ref) {
57886
- let {
57887
- parent,
57888
- width
57889
- } = _ref;
57890
- super({
57891
- parent,
57892
- width,
57893
- border: '1px solid gray'
57894
- });
57895
- }
57896
-
57897
- configure(defaultColors, colorHandlers) {
57898
- this.colorHandlers = colorHandlers; // active color handler defaults to handler with 'color' as key
57899
-
57900
- this.setActiveColorHandler('color');
57901
- this.createSwatches(defaultColors);
57902
- }
57903
-
57904
- setActiveColorHandler(option) {
57905
- this.activeColorHandler = this.colorHandlers[option];
57906
- }
57907
-
57908
- createSwatches(defaultColors) {
57909
- this.container.querySelectorAll('.igv-ui-color-swatch').forEach(swatch => swatch.remove());
57910
- const hexColorStrings = Object.values(appleCrayonPalette$1);
57911
-
57912
- for (let hexColorString of hexColorStrings) {
57913
- const swatch = div$1({
57914
- class: 'igv-ui-color-swatch'
57915
- });
57916
- this.container.appendChild(swatch);
57917
- this.decorateSwatch(swatch, hexColorString);
57918
- }
57919
-
57920
- if (defaultColors) {
57921
- for (let hexColorString of defaultColors) {
57922
- const swatch = div$1({
57923
- class: 'igv-ui-color-swatch'
57924
- });
57925
- this.container.appendChild(swatch);
57926
- this.decorateSwatch(swatch, hexColorString);
57927
- }
57928
- }
57929
- }
57930
-
57931
- decorateSwatch(swatch, hexColorString) {
57932
- swatch.style.backgroundColor = hexColorString;
57933
- swatch.addEventListener('mouseenter', () => swatch.style.borderColor = hexColorString);
57934
- swatch.addEventListener('mouseleave', () => swatch.style.borderColor = 'white');
57935
- swatch.addEventListener('click', event => {
57936
- event.stopPropagation();
57937
- this.activeColorHandler(hexColorString);
57938
- });
57939
- swatch.addEventListener('touchend', event => {
57940
- event.stopPropagation();
57941
- this.activeColorHandler(hexColorString);
57942
- });
57943
- }
57944
-
57945
- }
57946
-
57947
58699
  /*
57948
58700
  * The MIT License (MIT)
57949
58701
  *
@@ -66870,7 +67622,7 @@
66870
67622
  el.style.left = `${pixelX}px`;
66871
67623
  el.style.width = `${pixelWidth}px`;
66872
67624
  } else {
66873
- const element = this.createRegionElement(browser.columnContainer, pixelTop, pixelX, pixelWidth, roiSet, regionKey);
67625
+ const element = this.createRegionElement(browser.columnContainer, pixelTop, pixelX, pixelWidth, roiSet, regionKey, feature.name);
66874
67626
  columns[i].appendChild(element);
66875
67627
  }
66876
67628
  }
@@ -66878,7 +67630,7 @@
66878
67630
  }
66879
67631
  }
66880
67632
 
66881
- createRegionElement(columnContainer, pixelTop, pixelX, pixelWidth, roiSet, regionKey) {
67633
+ createRegionElement(columnContainer, pixelTop, pixelX, pixelWidth, roiSet, regionKey, name) {
66882
67634
  const regionElement = div$1({
66883
67635
  class: 'igv-roi-region'
66884
67636
  });
@@ -66887,11 +67639,11 @@
66887
67639
  regionElement.style.width = `${pixelWidth}px`;
66888
67640
  regionElement.style.backgroundColor = roiSet.color;
66889
67641
  regionElement.dataset.region = regionKey;
67642
+ const header = div$1();
67643
+ regionElement.appendChild(header);
67644
+ header.style.backgroundColor = roiSet.headerColor;
66890
67645
 
66891
67646
  if (true === roiSet.isUserDefined) {
66892
- const header = div$1();
66893
- regionElement.appendChild(header);
66894
- header.style.backgroundColor = roiSet.headerColor;
66895
67647
  header.addEventListener('click', event => {
66896
67648
  event.preventDefault();
66897
67649
  event.stopPropagation();
@@ -66901,6 +67653,20 @@
66901
67653
  } = translateMouseCoordinates$1(event, columnContainer);
66902
67654
  this.roiMenu.present(x, y, this, columnContainer, regionElement);
66903
67655
  });
67656
+ } else if (name) {
67657
+ header.addEventListener('click', event => {
67658
+ event.preventDefault();
67659
+ event.stopPropagation();
67660
+
67661
+ if (this.popover) {
67662
+ this.popover.dispose();
67663
+ }
67664
+
67665
+ this.popover = new Popover(columnContainer, roiSet.name);
67666
+ this.popover.presentContentWithEvent(event, name);
67667
+ });
67668
+ } else {
67669
+ header.style.pointerEvents = 'none';
66904
67670
  }
66905
67671
 
66906
67672
  return regionElement;
@@ -67957,13 +68723,12 @@
67957
68723
  const roiMenu = new ROIMenu(this, this.columnContainer);
67958
68724
 
67959
68725
  if (session.roi) {
67960
- session.roi.filter(config => config.features && config.isUserDefined).map((c, index) => c.name = undefined);
67961
68726
  const roiSetList = session.roi.map(c => new ROISet(c, this.genome));
67962
68727
  const named = roiSetList.filter(_ref => {
67963
68728
  let {
67964
68729
  name
67965
68730
  } = _ref;
67966
- return name !== undefined;
68731
+ return name !== undefined && name.length > 0;
67967
68732
  });
67968
68733
  const roiTable = new ROITable(this, this.columnContainer, named.length > 0);
67969
68734
  this.roiManager = new ROIManager(this, roiMenu, roiTable, ideogramHeight, roiSetList);