igv 2.13.6 → 2.13.7

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/README.md CHANGED
@@ -12,19 +12,19 @@ Below are examples and a quickstart guide. See the [Wiki](https://github.com/ig
12
12
 
13
13
  # Examples
14
14
 
15
- ***[Alignments](https://igv.org/web/release/2.13.6/examples/cram-vcf.html)***
15
+ ***[Alignments](https://igv.org/web/release/2.13.7/examples/cram-vcf.html)***
16
16
 
17
- ***[Interactions](https://igv.org/web/release/2.13.6/examples/interact.html)***
17
+ ***[Interactions](https://igv.org/web/release/2.13.7/examples/interact.html)***
18
18
 
19
- ***[Copy number](https://igv.org/web/release/2.13.6/examples/copyNumber.html)***
19
+ ***[Copy number](https://igv.org/web/release/2.13.7/examples/copyNumber.html)***
20
20
 
21
- ***[Multiple regions](https://igv.org/web/release/2.13.6/examples/multi-locus.html)***
21
+ ***[Multiple regions](https://igv.org/web/release/2.13.7/examples/multi-locus.html)***
22
22
 
23
- ***[Mutation Annotation Format (MAF)](https://igv.org/web/release/2.13.6/examples/maf-tcga.html)***
23
+ ***[Mutation Annotation Format (MAF)](https://igv.org/web/release/2.13.7/examples/maf-tcga.html)***
24
24
 
25
- ***[Variant color options](https://igv.org/web/release/2.13.6/examples/variant-colors.html)***
25
+ ***[Variant color options](https://igv.org/web/release/2.13.7/examples/variant-colors.html)***
26
26
 
27
- ***[More](https://igv.org/web/release/2.13.6/examples/)***
27
+ ***[More](https://igv.org/web/release/2.13.7/examples/)***
28
28
 
29
29
 
30
30
  # Quickstart
@@ -33,18 +33,18 @@ Below are examples and a quickstart guide. See the [Wiki](https://github.com/ig
33
33
  igv.js consists of a single javascript file with no external dependencies.
34
34
 
35
35
  Pre-built files for ES5 (igv.min.js) and ES6 (igv.esm.min.js)
36
- can be downloaded from [https://cdn.jsdelivr.net/npm/igv@2.13.6/dist/](https://cdn.jsdelivr.net/npm/igv@2.13.6/dist/).
36
+ can be downloaded from [https://cdn.jsdelivr.net/npm/igv@2.13.7/dist/](https://cdn.jsdelivr.net/npm/igv@2.13.7/dist/).
37
37
 
38
38
  To import igv as an ES6 module
39
39
 
40
40
  ```javascript
41
- import igv from "https://cdn.jsdelivr.net/npm/igv@2.13.6/dist/igv.esm.min.js"
41
+ import igv from "https://cdn.jsdelivr.net/npm/igv@2.13.7/dist/igv.esm.min.js"
42
42
  ```
43
43
 
44
44
  Or as a script include (defines the "igv" global)
45
45
 
46
46
  ```html
47
- <script src="https://cdn.jsdelivr.net/npm/igv@2.13.6/dist/igv.min.js"></script>
47
+ <script src="https://cdn.jsdelivr.net/npm/igv@2.13.7/dist/igv.min.js"></script>
48
48
  ```
49
49
 
50
50
  Alternatively you can install with npm
package/dist/igv.esm.js CHANGED
@@ -8482,8 +8482,8 @@ function encode(objectName) {
8482
8482
 
8483
8483
  let result = '';
8484
8484
  objectName.split('').forEach(function(letter) {
8485
- if(encodings$1.has(letter)) {
8486
- result += encodings$1.get(letter);
8485
+ if(encodings$2.has(letter)) {
8486
+ result += encodings$2.get(letter);
8487
8487
  } else {
8488
8488
  result += letter;
8489
8489
  }
@@ -8492,27 +8492,27 @@ function encode(objectName) {
8492
8492
  }
8493
8493
 
8494
8494
  // %23 %24 %25 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3D %3F %40 %5B %5D
8495
- const encodings$1 = new Map();
8496
- encodings$1.set("!", "%21");
8497
- encodings$1.set("#", "%23");
8498
- encodings$1.set("$", "%24");
8499
- encodings$1.set("%", "%25");
8500
- encodings$1.set("&", "%26");
8501
- encodings$1.set("'", "%27");
8502
- encodings$1.set("(", "%28");
8503
- encodings$1.set(")", "%29");
8504
- encodings$1.set("*", "%2A");
8505
- encodings$1.set("+", "%2B");
8506
- encodings$1.set(",", "%2C");
8507
- encodings$1.set("/", "%2F");
8508
- encodings$1.set(":", "%3A");
8509
- encodings$1.set(";", "%3B");
8510
- encodings$1.set("=", "%3D");
8511
- encodings$1.set("?", "%3F");
8512
- encodings$1.set("@", "%40");
8513
- encodings$1.set("[", "%5B");
8514
- encodings$1.set("]", "%5D");
8515
- encodings$1.set(" ", "%20");
8495
+ const encodings$2 = new Map();
8496
+ encodings$2.set("!", "%21");
8497
+ encodings$2.set("#", "%23");
8498
+ encodings$2.set("$", "%24");
8499
+ encodings$2.set("%", "%25");
8500
+ encodings$2.set("&", "%26");
8501
+ encodings$2.set("'", "%27");
8502
+ encodings$2.set("(", "%28");
8503
+ encodings$2.set(")", "%29");
8504
+ encodings$2.set("*", "%2A");
8505
+ encodings$2.set("+", "%2B");
8506
+ encodings$2.set(",", "%2C");
8507
+ encodings$2.set("/", "%2F");
8508
+ encodings$2.set(":", "%3A");
8509
+ encodings$2.set(";", "%3B");
8510
+ encodings$2.set("=", "%3D");
8511
+ encodings$2.set("?", "%3F");
8512
+ encodings$2.set("@", "%40");
8513
+ encodings$2.set("[", "%5B");
8514
+ encodings$2.set("]", "%5D");
8515
+ encodings$2.set(" ", "%20");
8516
8516
 
8517
8517
  // Convenience functions for the gapi oAuth library.
8518
8518
 
@@ -19700,27 +19700,27 @@ function createMenuElements$1(itemList, popover) {
19700
19700
  }
19701
19701
 
19702
19702
  // %23 %24 %25 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3D %3F %40 %5B %5D
19703
- const encodings = new Map();
19704
- encodings.set("!", "%21");
19705
- encodings.set("#", "%23");
19706
- encodings.set("$", "%24");
19707
- encodings.set("%", "%25");
19708
- encodings.set("&", "%26");
19709
- encodings.set("'", "%27");
19710
- encodings.set("(", "%28");
19711
- encodings.set(")", "%29");
19712
- encodings.set("*", "%2A");
19713
- encodings.set("+", "%2B");
19714
- encodings.set(",", "%2C");
19715
- encodings.set("/", "%2F");
19716
- encodings.set(":", "%3A");
19717
- encodings.set(";", "%3B");
19718
- encodings.set("=", "%3D");
19719
- encodings.set("?", "%3F");
19720
- encodings.set("@", "%40");
19721
- encodings.set("[", "%5B");
19722
- encodings.set("]", "%5D");
19723
- encodings.set(" ", "%20");
19703
+ const encodings$1 = new Map();
19704
+ encodings$1.set("!", "%21");
19705
+ encodings$1.set("#", "%23");
19706
+ encodings$1.set("$", "%24");
19707
+ encodings$1.set("%", "%25");
19708
+ encodings$1.set("&", "%26");
19709
+ encodings$1.set("'", "%27");
19710
+ encodings$1.set("(", "%28");
19711
+ encodings$1.set(")", "%29");
19712
+ encodings$1.set("*", "%2A");
19713
+ encodings$1.set("+", "%2B");
19714
+ encodings$1.set(",", "%2C");
19715
+ encodings$1.set("/", "%2F");
19716
+ encodings$1.set(":", "%3A");
19717
+ encodings$1.set(";", "%3B");
19718
+ encodings$1.set("=", "%3D");
19719
+ encodings$1.set("?", "%3F");
19720
+ encodings$1.set("@", "%40");
19721
+ encodings$1.set("[", "%5B");
19722
+ encodings$1.set("]", "%5D");
19723
+ encodings$1.set(" ", "%20");
19724
19724
 
19725
19725
  if (typeof process === 'object' && typeof window === 'undefined') {
19726
19726
  global.atob = function (str) {
@@ -24215,7 +24215,7 @@ const Cytoband = function (start, end, name, typestain) {
24215
24215
  }
24216
24216
  };
24217
24217
 
24218
- const _version = "2.13.6";
24218
+ const _version = "2.13.7";
24219
24219
  function version() {
24220
24220
  return _version
24221
24221
  }
@@ -25949,7 +25949,7 @@ function decode(tokens, header) {
25949
25949
 
25950
25950
  const delim = ('gff3' === format) ? '=' : ' ';
25951
25951
  return new GFFFeature({
25952
- source: tokens[1],
25952
+ source: decodeGFFAttribute(tokens[1]),
25953
25953
  type: tokens[2],
25954
25954
  chr: tokens[0],
25955
25955
  start: parseInt(tokens[3]) - 1,
@@ -26060,7 +26060,7 @@ function parseAttributeString(attributeString, keyValueDelim) {
26060
26060
  const idx = kv.indexOf(keyValueDelim);
26061
26061
  if (idx > 0 && idx < kv.length - 1) {
26062
26062
  const key = kv.substring(0, idx);
26063
- let value = stripQuotes(decodeURIComponent(kv.substring(idx + 1).trim()));
26063
+ let value = stripQuotes(decodeGFFAttribute(kv.substring(idx + 1).trim()));
26064
26064
  attributes.push([key, value]);
26065
26065
  }
26066
26066
  }
@@ -26074,6 +26074,55 @@ function stripQuotes(value) {
26074
26074
  return value
26075
26075
  }
26076
26076
 
26077
+ // GFF3 attributes have specific percent encoding rules, the list below are required, all others are forbidden
26078
+ /*
26079
+ tab (%09)
26080
+ newline (%0A)
26081
+ carriage return (%0D)
26082
+ % percent (%25)
26083
+ control characters (%00 through %1F, %7F)
26084
+ In addition, the following characters have reserved meanings in column 9 and must be escaped when used in other contexts:
26085
+ ; semicolon (%3B)
26086
+ = equals (%3D)
26087
+ & ampersand (%26)
26088
+ , comma (%2C)
26089
+ */
26090
+
26091
+ const encodings = new Map([
26092
+ ["%09", "\t"],
26093
+ ["%0A", "\n"],
26094
+ ["%0D", "\r"],
26095
+ ["%25", "%"],
26096
+ ["%3B", ";"],
26097
+ ["%3D", "="],
26098
+ ["%26", "&"],
26099
+ ["%2C", ","]
26100
+ ]);
26101
+
26102
+ function decodeGFFAttribute(str) {
26103
+
26104
+ if (!str.includes("%")) {
26105
+ return str
26106
+ }
26107
+ let decoded = "";
26108
+ for (let i = 0; i < str.length; i++) {
26109
+
26110
+ if (str.charCodeAt(i) === 37 && i < str.length - 2) {
26111
+ const key = str.substring(i, i + 3);
26112
+ if (encodings.has(key)) {
26113
+ decoded += encodings.get(key);
26114
+ } else {
26115
+ decoded += key;
26116
+ }
26117
+ i += 2;
26118
+ } else {
26119
+ decoded += str.charAt(i);
26120
+ }
26121
+ }
26122
+ return decoded
26123
+
26124
+ }
26125
+
26077
26126
  /**
26078
26127
  * Wrapper class to record a decoding error.
26079
26128
  */
@@ -54209,10 +54258,7 @@ var index = {
54209
54258
  setOauthToken,
54210
54259
  oauth,
54211
54260
  version,
54212
- setApiKey,
54213
- doAutoscale,
54214
- TrackView,
54215
- GenomeUtils
54261
+ setApiKey
54216
54262
  };
54217
54263
 
54218
54264
  export { index as default };