igv 3.5.1 → 3.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/igv.js CHANGED
@@ -27017,14 +27017,14 @@
27017
27017
  if (phase) {
27018
27018
  stringA = sequenceInterval.getSequence(phaseExtentStart, phaseExtentEnd);
27019
27019
 
27020
- if (undefined === stringA) {
27020
+ if (!stringA) {
27021
27021
  return undefined
27022
27022
  }
27023
27023
 
27024
27024
  [ss, ee] = [getEonStart(riteExon), getEonStart(riteExon) + (3 - phase)];
27025
27025
  stringB = sequenceInterval.getSequence(ss, ee);
27026
27026
 
27027
- if (undefined === stringB) {
27027
+ if (!stringB) {
27028
27028
  return undefined
27029
27029
  }
27030
27030
 
@@ -27036,7 +27036,7 @@
27036
27036
  if (remainder) {
27037
27037
  stringB = sequenceInterval.getSequence(remainder.start, remainder.end);
27038
27038
 
27039
- if (undefined === stringB) {
27039
+ if (!stringB) {
27040
27040
  return undefined
27041
27041
  }
27042
27042
 
@@ -27044,7 +27044,7 @@
27044
27044
  const leftEnd = getExonEnd(leftExon);
27045
27045
  stringA = sequenceInterval.getSequence(leftEnd - leftPhase, leftEnd);
27046
27046
 
27047
- if (undefined === stringA) {
27047
+ if (!stringA) {
27048
27048
  return undefined
27049
27049
  }
27050
27050
 
@@ -42831,6 +42831,49 @@
42831
42831
  const end = Number.parseInt(se[1].replace(/,/g, ""));
42832
42832
  return new Locus({chr, start, end})
42833
42833
  }
42834
+
42835
+ /**
42836
+ * Return true if the locus string represents a single base, e.g. "chr1:12345" or "chr1:12345-12345"
42837
+ * @param locus
42838
+ * @returns {boolean}
42839
+ */
42840
+ static isSingleBaseLocusString(locus) {
42841
+
42842
+ if (!locus || typeof locus !== 'string') {
42843
+ return false
42844
+ }
42845
+
42846
+ const parts = locus.split(':');
42847
+ if (parts.length <= 1) {
42848
+ return false
42849
+ }
42850
+
42851
+ const range = parts[1].replace(/,/g, '');
42852
+ if (!range) {
42853
+ return false
42854
+ }
42855
+
42856
+ const rangeParts = range.split('-');
42857
+ const startString = rangeParts[0];
42858
+ const start = parseInt(startString, 10);
42859
+
42860
+ if (String(start) !== startString || !Number.isInteger(start)) {
42861
+ return false
42862
+ }
42863
+
42864
+ if (rangeParts.length === 1) {
42865
+ return true
42866
+ }
42867
+
42868
+ const endString = rangeParts[1];
42869
+ const end = parseInt(endString, 10);
42870
+
42871
+ if (String(end) !== endString || !Number.isInteger(end)) {
42872
+ return false
42873
+ }
42874
+
42875
+ return start === end
42876
+ }
42834
42877
  }
42835
42878
 
42836
42879
  /*!
@@ -66986,7 +67029,7 @@ ${indent}columns: ${matrix.columns}
66986
67029
  })
66987
67030
  }
66988
67031
 
66989
- const _version = "3.5.1";
67032
+ const _version = "3.5.2";
66990
67033
  function version() {
66991
67034
  return _version
66992
67035
  }
@@ -74241,6 +74284,12 @@ ${indent}columns: ${matrix.columns}
74241
74284
 
74242
74285
  await this.loadTrackList(nonLocalTrackConfigurations);
74243
74286
 
74287
+ // If an initial locus is defined and represents a single basedo a "search" here. This will force micro
74288
+ // adjustments after width of track column(s) is known. This can be an issue when the center gide is shown
74289
+ // Without this adjustment the single base would be off center by a few pixels.
74290
+ if (session.locus && Locus.isSingleBaseLocusString(session.locus)) {
74291
+ await this.search(session.locus);
74292
+ }
74244
74293
  }
74245
74294
 
74246
74295
  cleanHouseForSession() {