@teselagen/range-utils 0.3.14-beta.3 → 0.3.15

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.

Potentially problematic release.


This version of @teselagen/range-utils might be problematic. Click here for more details.

Files changed (128) hide show
  1. package/adjustRangeToDeletionOfAnotherRange.d.ts +1 -2
  2. package/adjustRangeToInsert.d.ts +1 -2
  3. package/adjustRangeToRotation.d.ts +1 -5
  4. package/bundle.js +2 -0
  5. package/checkIfNonCircularRangesOverlap.d.ts +1 -2
  6. package/checkIfPotentiallyCircularRangesOverlap.d.ts +1 -2
  7. package/collapseOverlapsGeneratedFromRangeComparisonIfPossible.d.ts +1 -2
  8. package/convertRangeIndices.d.ts +1 -10
  9. package/convertRangeTo0Based.d.ts +1 -5
  10. package/convertRangeTo1Based.d.ts +1 -5
  11. package/doesRangeSpanEntireSequence.d.ts +1 -2
  12. package/doesRangeSpanOrigin.d.ts +1 -2
  13. package/expandOrContractCircularRangeToPosition.d.ts +2 -3
  14. package/expandOrContractNonCircularRangeToPosition.d.ts +2 -3
  15. package/expandOrContractRangeByLength.d.ts +1 -5
  16. package/expandOrContractRangeToPosition.d.ts +2 -3
  17. package/flipContainedRange.d.ts +1 -5
  18. package/generateRandomRange.d.ts +3 -3
  19. package/getAnnotationRangeType.d.ts +1 -2
  20. package/getEachPositionInRangeAsArray.d.ts +1 -2
  21. package/getLengthOfOverlappingRegionsBetweenTwoRanges.d.ts +1 -2
  22. package/getMiddleOfRange.d.ts +1 -2
  23. package/getOverlapOfNonCircularRanges.d.ts +4 -5
  24. package/getOverlapsOfPotentiallyCircularRanges.d.ts +1 -2
  25. package/getPositionFromAngle.d.ts +1 -1
  26. package/getRangeAngles.d.ts +7 -3
  27. package/getRangeLength.d.ts +1 -5
  28. package/getRangesBetweenTwoRanges.d.ts +1 -2
  29. package/getSequenceWithinRange.d.ts +1 -2
  30. package/getShortestDistanceBetweenTwoPositions.d.ts +1 -1
  31. package/getYOffsetForPotentiallyCircularRange.d.ts +1 -2
  32. package/getYOffsetsForPotentiallyCircularRanges.d.ts +2 -3
  33. package/getZeroedRangeOverlaps.d.ts +1 -2
  34. package/index.cjs +88 -87
  35. package/index.d.ts +0 -1
  36. package/index.js +88 -87
  37. package/index.umd.cjs +88 -87
  38. package/invertRange.d.ts +1 -5
  39. package/isPositionCloserToRangeStartThanRangeEnd.d.ts +1 -2
  40. package/isPositionWithinRange.d.ts +2 -3
  41. package/isRangeOrPositionWithinRange.d.ts +1 -2
  42. package/isRangeWithinRange.d.ts +1 -2
  43. package/loopEachPositionInRange.d.ts +1 -2
  44. package/modulatePositionByRange.d.ts +1 -2
  45. package/modulateRangeBySequenceLength.d.ts +1 -8
  46. package/normalizePositionByRangeLength.d.ts +1 -1
  47. package/normalizePositionByRangeLength1Based.d.ts +1 -1
  48. package/normalizeRange.d.ts +1 -5
  49. package/package.json +5 -10
  50. package/provideInclusiveOptions.d.ts +1 -6
  51. package/reversePositionInRange.d.ts +1 -1
  52. package/splitRangeIntoTwoPartsIfItIsCircular.d.ts +3 -4
  53. package/src/adjustRangeToDeletionOfAnotherRange.js +30 -33
  54. package/src/convertRangeIndices.test.js +1 -1
  55. package/src/expandOrContractRangeByLength.test.js +1 -1
  56. package/src/flipContainedRange.test.js +1 -1
  57. package/src/generateRandomRange.test.js +1 -1
  58. package/src/getAnnotationRangeType.test.js +1 -1
  59. package/src/invertRange.test.js +1 -1
  60. package/translateRange.d.ts +1 -5
  61. package/trimAnnStartEndToFitSeqLength.d.ts +1 -1
  62. package/trimNonCicularRangeByAnotherNonCircularRange.d.ts +4 -2
  63. package/trimNumberToFitWithin0ToAnotherNumber.d.ts +1 -1
  64. package/trimRangeByAnotherRange.d.ts +1 -2
  65. package/zeroSubrangeByContainerRange.d.ts +1 -2
  66. package/RangeAngles.d.ts +0 -7
  67. package/src/RangeAngles.ts +0 -9
  68. package/src/adjustRangeToDeletionOfAnotherRange.ts +0 -57
  69. package/src/adjustRangeToInsert.ts +0 -32
  70. package/src/adjustRangeToRotation.ts +0 -23
  71. package/src/checkIfNonCircularRangesOverlap.ts +0 -35
  72. package/src/checkIfPotentiallyCircularRangesOverlap.ts +0 -28
  73. package/src/collapseOverlapsGeneratedFromRangeComparisonIfPossible.ts +0 -81
  74. package/src/convertRangeIndices.ts +0 -34
  75. package/src/convertRangeTo0Based.ts +0 -9
  76. package/src/convertRangeTo1Based.ts +0 -10
  77. package/src/doesRangeSpanEntireSequence.ts +0 -12
  78. package/src/doesRangeSpanOrigin.ts +0 -5
  79. package/src/expandOrContractCircularRangeToPosition.ts +0 -50
  80. package/src/expandOrContractNonCircularRangeToPosition.ts +0 -30
  81. package/src/expandOrContractRangeByLength.ts +0 -18
  82. package/src/expandOrContractRangeToPosition.ts +0 -16
  83. package/src/flipContainedRange.ts +0 -156
  84. package/src/generateRandomRange.ts +0 -26
  85. package/src/getAnnotationRangeType.ts +0 -30
  86. package/src/getEachPositionInRangeAsArray.ts +0 -19
  87. package/src/getLengthOfOverlappingRegionsBetweenTwoRanges.ts +0 -18
  88. package/src/getMiddleOfRange.ts +0 -11
  89. package/src/getOverlapOfNonCircularRanges.ts +0 -41
  90. package/src/getOverlapsOfPotentiallyCircularRanges.ts +0 -60
  91. package/src/getPositionFromAngle.ts +0 -12
  92. package/src/getRangeAngles.ts +0 -38
  93. package/src/getRangeLength.test.ts +0 -30
  94. package/src/getRangeLength.ts +0 -17
  95. package/src/getRangesBetweenTwoRanges.ts +0 -42
  96. package/src/getSequenceWithinRange.test.ts +0 -47
  97. package/src/getSequenceWithinRange.ts +0 -24
  98. package/src/getShortestDistanceBetweenTwoPositions.test.ts +0 -12
  99. package/src/getShortestDistanceBetweenTwoPositions.ts +0 -16
  100. package/src/getYOffsetForPotentiallyCircularRange.ts +0 -37
  101. package/src/getYOffsetsForPotentiallyCircularRanges.test.ts +0 -17
  102. package/src/getYOffsetsForPotentiallyCircularRanges.ts +0 -28
  103. package/src/getZeroedRangeOverlaps.test.ts +0 -65
  104. package/src/getZeroedRangeOverlaps.ts +0 -33
  105. package/src/index.test.ts +0 -39
  106. package/src/index.ts +0 -53
  107. package/src/invertRange.ts +0 -25
  108. package/src/isPositionCloserToRangeStartThanRangeEnd.ts +0 -22
  109. package/src/isPositionWithinRange.ts +0 -40
  110. package/src/isRangeOrPositionWithinRange.ts +0 -40
  111. package/src/isRangeWithinRange.ts +0 -18
  112. package/src/loopEachPositionInRange.ts +0 -11
  113. package/src/modulatePositionByRange.ts +0 -15
  114. package/src/modulateRangeBySequenceLength.ts +0 -13
  115. package/src/normalizePositionByRangeLength.ts +0 -24
  116. package/src/normalizePositionByRangeLength1Based.ts +0 -9
  117. package/src/normalizeRange.ts +0 -12
  118. package/src/provideInclusiveOptions.ts +0 -79
  119. package/src/reversePositionInRange.ts +0 -17
  120. package/src/splitRangeIntoTwoPartsIfItIsCircular.ts +0 -36
  121. package/src/translateRange.ts +0 -21
  122. package/src/trimAnnStartEndToFitSeqLength.ts +0 -9
  123. package/src/trimNonCicularRangeByAnotherNonCircularRange.ts +0 -63
  124. package/src/trimNumberToFitWithin0ToAnotherNumber.ts +0 -15
  125. package/src/trimRangeByAnotherRange.ts +0 -103
  126. package/src/types.ts +0 -12
  127. package/src/zeroSubrangeByContainerRange.ts +0 -49
  128. package/types.d.ts +0 -12
package/index.js CHANGED
@@ -85,6 +85,7 @@ function arrayMap(array, iteratee) {
85
85
  }
86
86
  __name(arrayMap, "arrayMap");
87
87
  var isArray = Array.isArray;
88
+ var INFINITY$1 = 1 / 0;
88
89
  var symbolProto$2 = Symbol$1 ? Symbol$1.prototype : void 0, symbolToString = symbolProto$2 ? symbolProto$2.toString : void 0;
89
90
  function baseToString(value) {
90
91
  if (typeof value == "string") {
@@ -97,7 +98,7 @@ function baseToString(value) {
97
98
  return symbolToString ? symbolToString.call(value) : "";
98
99
  }
99
100
  var result = value + "";
100
- return result == "0" && 1 / value == -Infinity ? "-0" : result;
101
+ return result == "0" && 1 / value == -INFINITY$1 ? "-0" : result;
101
102
  }
102
103
  __name(baseToString, "baseToString");
103
104
  function isObject(value) {
@@ -770,12 +771,13 @@ function castPath(value, object) {
770
771
  return isKey(value, object) ? [value] : stringToPath(toString(value));
771
772
  }
772
773
  __name(castPath, "castPath");
774
+ var INFINITY = 1 / 0;
773
775
  function toKey(value) {
774
776
  if (typeof value == "string" || isSymbol(value)) {
775
777
  return value;
776
778
  }
777
779
  var result = value + "";
778
- return result == "0" && 1 / value == -Infinity ? "-0" : result;
780
+ return result == "0" && 1 / value == -INFINITY ? "-0" : result;
779
781
  }
780
782
  __name(toKey, "toKey");
781
783
  function baseGet(object, path) {
@@ -1534,7 +1536,8 @@ function flatMap(collection, iteratee) {
1534
1536
  __name(flatMap, "flatMap");
1535
1537
  function getOverlapOfNonCircularRanges(rangeA, rangeB) {
1536
1538
  if (rangeA.start < rangeB.start) {
1537
- if (rangeA.end < rangeB.start) ;
1539
+ if (rangeA.end < rangeB.start)
1540
+ ;
1538
1541
  else {
1539
1542
  if (rangeA.end < rangeB.end) {
1540
1543
  return {
@@ -1549,7 +1552,8 @@ function getOverlapOfNonCircularRanges(rangeA, rangeB) {
1549
1552
  }
1550
1553
  }
1551
1554
  } else {
1552
- if (rangeA.start > rangeB.end) ;
1555
+ if (rangeA.start > rangeB.end)
1556
+ ;
1553
1557
  else {
1554
1558
  if (rangeA.end < rangeB.end) {
1555
1559
  return {
@@ -1564,10 +1568,9 @@ function getOverlapOfNonCircularRanges(rangeA, rangeB) {
1564
1568
  }
1565
1569
  }
1566
1570
  }
1567
- return null;
1568
1571
  }
1569
1572
  __name(getOverlapOfNonCircularRanges, "getOverlapOfNonCircularRanges");
1570
- function getOverlapsOfPotentiallyCircularRanges(rangeA, rangeB, maxRangeLength, joinIfPossible = false) {
1573
+ function getOverlapsOfPotentiallyCircularRanges(rangeA, rangeB, maxRangeLength, joinIfPossible) {
1571
1574
  const normalizedRangeA = splitRangeIntoTwoPartsIfItIsCircular(
1572
1575
  rangeA,
1573
1576
  maxRangeLength
@@ -1598,11 +1601,8 @@ function getOverlapsOfPotentiallyCircularRanges(rangeA, rangeB, maxRangeLength,
1598
1601
  joinedOverlap.start = o.start;
1599
1602
  return [];
1600
1603
  }
1601
- return [o];
1602
1604
  });
1603
- if (Object.keys(joinedOverlap).length > 0) {
1604
- overlaps.push(joinedOverlap);
1605
- }
1605
+ overlaps.push(joinedOverlap);
1606
1606
  }
1607
1607
  return overlaps;
1608
1608
  }
@@ -1632,7 +1632,8 @@ function trimNonCicularRangeByAnotherNonCircularRange(rangeToBeTrimmed, trimming
1632
1632
  }
1633
1633
  }
1634
1634
  } else {
1635
- if (rangeToBeTrimmed.end <= trimmingRange.end) ;
1635
+ if (rangeToBeTrimmed.end <= trimmingRange.end)
1636
+ ;
1636
1637
  else {
1637
1638
  if (rangeToBeTrimmed.start > trimmingRange.end) {
1638
1639
  outputTrimmedRange = {
@@ -1675,7 +1676,10 @@ function trimRangeByAnotherRange(rangeToBeTrimmed, trimmingRange, sequenceLength
1675
1676
  if (!overlaps.length) {
1676
1677
  return rangeToBeTrimmed;
1677
1678
  }
1678
- const splitRangesToBeTrimmed = splitRangeIntoTwoPartsIfItIsCircular(rangeToBeTrimmed, sequenceLength);
1679
+ const splitRangesToBeTrimmed = splitRangeIntoTwoPartsIfItIsCircular(
1680
+ rangeToBeTrimmed,
1681
+ sequenceLength
1682
+ );
1679
1683
  splitRangesToBeTrimmed.forEach(function(nonCircularRangeToBeTrimmed, index) {
1680
1684
  overlaps.forEach(function(overlap) {
1681
1685
  if (nonCircularRangeToBeTrimmed) {
@@ -1696,7 +1700,8 @@ function trimRangeByAnotherRange(rangeToBeTrimmed, trimmingRange, sequenceLength
1696
1700
  }
1697
1701
  );
1698
1702
  let outputTrimmedRange;
1699
- if (outputSplitRanges.length < 0) ;
1703
+ if (outputSplitRanges.length < 0)
1704
+ ;
1700
1705
  else if (outputSplitRanges.length === 1) {
1701
1706
  outputTrimmedRange = outputSplitRanges[0];
1702
1707
  } else if (outputSplitRanges.length === 2) {
@@ -1718,7 +1723,6 @@ function trimRangeByAnotherRange(rangeToBeTrimmed, trimmingRange, sequenceLength
1718
1723
  end: outputTrimmedRange.end
1719
1724
  });
1720
1725
  }
1721
- return void 0;
1722
1726
  }
1723
1727
  __name(trimRangeByAnotherRange, "trimRangeByAnotherRange");
1724
1728
  function adjustRangeToDeletionOfAnotherRange(rangeToBeAdjusted, anotherRange, maxLength) {
@@ -1727,31 +1731,32 @@ function adjustRangeToDeletionOfAnotherRange(rangeToBeAdjusted, anotherRange, ma
1727
1731
  anotherRange,
1728
1732
  maxLength
1729
1733
  );
1730
- if (!trimmedRange) {
1731
- return null;
1734
+ if (trimmedRange) {
1735
+ const nonCircularDeletionRanges = splitRangeIntoTwoPartsIfItIsCircular(
1736
+ anotherRange,
1737
+ maxLength
1738
+ );
1739
+ nonCircularDeletionRanges.forEach(function(nonCircularDeletionRange) {
1740
+ const deletionLength = nonCircularDeletionRange.end - nonCircularDeletionRange.start + 1;
1741
+ if (trimmedRange.start > trimmedRange.end) {
1742
+ if (nonCircularDeletionRange.start < trimmedRange.end) {
1743
+ trimmedRange.start -= deletionLength;
1744
+ trimmedRange.end -= deletionLength;
1745
+ } else if (nonCircularDeletionRange.start < trimmedRange.start) {
1746
+ trimmedRange.start -= deletionLength;
1747
+ } else
1748
+ ;
1749
+ } else {
1750
+ if (nonCircularDeletionRange.start < trimmedRange.start) {
1751
+ trimmedRange.start -= deletionLength;
1752
+ trimmedRange.end -= deletionLength;
1753
+ } else if (nonCircularDeletionRange.start < trimmedRange.end) {
1754
+ trimmedRange.end -= deletionLength;
1755
+ } else
1756
+ ;
1757
+ }
1758
+ });
1732
1759
  }
1733
- const nonCircularDeletionRanges = splitRangeIntoTwoPartsIfItIsCircular(
1734
- anotherRange,
1735
- maxLength
1736
- );
1737
- nonCircularDeletionRanges.forEach(function(nonCircularDeletionRange) {
1738
- const deletionLength = nonCircularDeletionRange.end - nonCircularDeletionRange.start + 1;
1739
- if (trimmedRange.start > trimmedRange.end) {
1740
- if (nonCircularDeletionRange.start < trimmedRange.end) {
1741
- trimmedRange.start -= deletionLength;
1742
- trimmedRange.end -= deletionLength;
1743
- } else if (nonCircularDeletionRange.start < trimmedRange.start) {
1744
- trimmedRange.start -= deletionLength;
1745
- } else ;
1746
- } else {
1747
- if (nonCircularDeletionRange.start < trimmedRange.start) {
1748
- trimmedRange.start -= deletionLength;
1749
- trimmedRange.end -= deletionLength;
1750
- } else if (nonCircularDeletionRange.start < trimmedRange.end) {
1751
- trimmedRange.end -= deletionLength;
1752
- } else ;
1753
- }
1754
- });
1755
1760
  return trimmedRange;
1756
1761
  }
1757
1762
  __name(adjustRangeToDeletionOfAnotherRange, "adjustRangeToDeletionOfAnotherRange");
@@ -1865,10 +1870,11 @@ function collapseOverlapsGeneratedFromRangeComparisonIfPossible(overlaps, sequen
1865
1870
  }
1866
1871
  }
1867
1872
  }
1868
- return overlaps;
1869
1873
  }
1870
1874
  __name(collapseOverlapsGeneratedFromRangeComparisonIfPossible, "collapseOverlapsGeneratedFromRangeComparisonIfPossible");
1871
- function convertRangeIndices(range, inputType = {}, outputType = {}) {
1875
+ function convertRangeIndices(range, inputType, outputType) {
1876
+ inputType = inputType || {};
1877
+ outputType = outputType || {};
1872
1878
  return assign({}, range, {
1873
1879
  start: Number(range.start) + (inputType.inclusive1BasedStart ? outputType.inclusive1BasedStart ? 0 : -1 : outputType.inclusive1BasedStart ? 1 : 0),
1874
1880
  end: Number(range.end) + (inputType.inclusive1BasedEnd ? outputType.inclusive1BasedEnd ? 0 : -1 : outputType.inclusive1BasedEnd ? 1 : 0)
@@ -1891,32 +1897,25 @@ function convertRangeTo1Based(range) {
1891
1897
  }
1892
1898
  __name(convertRangeTo1Based, "convertRangeTo1Based");
1893
1899
  function provideInclusiveOptions(funToWrap) {
1894
- return function(...args) {
1900
+ return function() {
1901
+ const args = Array.prototype.slice.call(arguments);
1895
1902
  const options = args[args.length - 1];
1896
1903
  if (options && (options.inclusive1BasedEnd || options.inclusive1BasedStart)) {
1897
1904
  args.forEach(function(arg, index) {
1898
- const potentialRange = arg;
1899
- if (potentialRange && typeof potentialRange.start === "number" && potentialRange.start > -1 && options.inclusive1BasedStart) {
1900
- args[index] = assign(potentialRange, {
1901
- start: potentialRange.start - 1
1902
- });
1905
+ if (arg && arg.start > -1 && options.inclusive1BasedStart) {
1906
+ args[index] = assign(arg, { start: arg.start - 1 });
1903
1907
  }
1904
- if (potentialRange && typeof potentialRange.end === "number" && potentialRange.end > -1 && options.inclusive1BasedEnd) {
1905
- args[index] = assign(potentialRange, {
1906
- end: potentialRange.end - 1
1907
- });
1908
+ if (arg && arg.end > -1 && options.inclusive1BasedEnd) {
1909
+ args[index] = assign(arg, { end: arg.end - 1 });
1908
1910
  }
1909
1911
  });
1910
1912
  }
1911
1913
  let returnVal = funToWrap.apply(this, args);
1912
- const potentialReturn = returnVal;
1913
- if (potentialReturn && typeof potentialReturn.start === "number" && potentialReturn.start > -1 && options && options.inclusive1BasedStart) {
1914
- returnVal = assign(potentialReturn, {
1915
- start: potentialReturn.start + 1
1916
- });
1914
+ if (returnVal && returnVal.start > -1 && options && options.inclusive1BasedStart) {
1915
+ returnVal = assign(returnVal, { start: returnVal.start + 1 });
1917
1916
  }
1918
- if (potentialReturn && typeof potentialReturn.end === "number" && potentialReturn.end > -1 && options && options.inclusive1BasedEnd) {
1919
- returnVal = assign(potentialReturn, { end: potentialReturn.end + 1 });
1917
+ if (returnVal && returnVal.end > -1 && options && options.inclusive1BasedEnd) {
1918
+ returnVal = assign(returnVal, { end: returnVal.end + 1 });
1920
1919
  }
1921
1920
  return returnVal;
1922
1921
  };
@@ -1937,10 +1936,9 @@ function getRangeLength$1(range, rangeMax) {
1937
1936
  }
1938
1937
  __name(getRangeLength$1, "getRangeLength$1");
1939
1938
  function doesRangeSpanEntireSequence(range, sequenceLength) {
1940
- if (getRangeLength(range, sequenceLength) === sequenceLength) {
1939
+ if (getRangeLength(range) === sequenceLength) {
1941
1940
  return true;
1942
1941
  }
1943
- return false;
1944
1942
  }
1945
1943
  __name(doesRangeSpanEntireSequence, "doesRangeSpanEntireSequence");
1946
1944
  function isRangeWithinRange(rangeToCheck, containingRange, maxLength) {
@@ -1949,7 +1947,8 @@ function isRangeWithinRange(rangeToCheck, containingRange, maxLength) {
1949
1947
  containingRange,
1950
1948
  maxLength
1951
1949
  );
1952
- if (ranges === null) return false;
1950
+ if (ranges === null)
1951
+ return false;
1953
1952
  return !ranges;
1954
1953
  }
1955
1954
  __name(isRangeWithinRange, "isRangeWithinRange");
@@ -1974,9 +1973,6 @@ function isRangeOrPositionWithinRange(rangeOrPositionToCheck, containingRange, m
1974
1973
  return false;
1975
1974
  }
1976
1975
  if (isObject(rangeOrPositionToCheck)) {
1977
- if (typeof rangeOrPositionToCheck.start !== "number") {
1978
- return false;
1979
- }
1980
1976
  return isRangeWithinRange(
1981
1977
  rangeOrPositionToCheck,
1982
1978
  containingRange,
@@ -1997,7 +1993,7 @@ function doesRangeSpanOrigin(range) {
1997
1993
  return range.start > range.end;
1998
1994
  }
1999
1995
  __name(doesRangeSpanOrigin, "doesRangeSpanOrigin");
2000
- function normalizePositionByRangeLength(pPosition, sequenceLength, isInBetweenPositions = false) {
1996
+ function normalizePositionByRangeLength(pPosition, sequenceLength, isInBetweenPositions) {
2001
1997
  let position = pPosition;
2002
1998
  if (position < 0) {
2003
1999
  position += sequenceLength;
@@ -2089,7 +2085,10 @@ function expandOrContractRangeToPosition(range, position, maxLength) {
2089
2085
  if (range.start > range.end) {
2090
2086
  return expandOrContractCircularRangeToPosition(range, position, maxLength);
2091
2087
  } else {
2092
- return expandOrContractNonCircularRangeToPosition(range, position);
2088
+ return expandOrContractNonCircularRangeToPosition(
2089
+ range,
2090
+ position
2091
+ );
2093
2092
  }
2094
2093
  }
2095
2094
  __name(expandOrContractRangeToPosition, "expandOrContractRangeToPosition");
@@ -2347,15 +2346,14 @@ function getRangesBetweenTwoRanges(range1, range2) {
2347
2346
  }
2348
2347
  __name(getRangesBetweenTwoRanges, "getRangesBetweenTwoRanges");
2349
2348
  function getSequenceWithinRange(range, sequence) {
2350
- if (range.start < 0 || range.end < 0) return "";
2349
+ if (range.start < 0 || range.end < 0)
2350
+ return "";
2351
2351
  if (range.start > range.end) {
2352
2352
  let subSequence = sequence.slice(range.start, sequence.length);
2353
2353
  if (typeof subSequence === "string") {
2354
2354
  subSequence += sequence.slice(0, range.end + 1);
2355
2355
  } else {
2356
- subSequence = subSequence.concat(
2357
- sequence.slice(0, range.end + 1)
2358
- );
2356
+ subSequence = subSequence.concat(sequence.slice(0, range.end + 1));
2359
2357
  }
2360
2358
  return subSequence;
2361
2359
  } else {
@@ -2375,7 +2373,7 @@ function getShortestDistanceBetweenTwoPositions(position1, position2, sequenceLe
2375
2373
  }
2376
2374
  __name(getShortestDistanceBetweenTwoPositions, "getShortestDistanceBetweenTwoPositions");
2377
2375
  function getYOffsetForPotentiallyCircularRange(range, YOffsetLevelsWithRanges, assignYOffsetToRange) {
2378
- let yOffset = 0;
2376
+ let yOffset = [];
2379
2377
  const openYOffsetFound = YOffsetLevelsWithRanges.some(
2380
2378
  function(rangesAlreadyAddedToYOffset, index) {
2381
2379
  const rangeBlocked = rangesAlreadyAddedToYOffset.some(
@@ -2388,7 +2386,8 @@ function getYOffsetForPotentiallyCircularRange(range, YOffsetLevelsWithRanges, a
2388
2386
  );
2389
2387
  if (!rangeBlocked) {
2390
2388
  yOffset = index;
2391
- if (assignYOffsetToRange) range.yOffset = index;
2389
+ if (assignYOffsetToRange)
2390
+ range.yOffset = index;
2392
2391
  rangesAlreadyAddedToYOffset.push(range);
2393
2392
  return true;
2394
2393
  }
@@ -2397,7 +2396,8 @@ function getYOffsetForPotentiallyCircularRange(range, YOffsetLevelsWithRanges, a
2397
2396
  );
2398
2397
  if (!openYOffsetFound) {
2399
2398
  yOffset = YOffsetLevelsWithRanges.length;
2400
- if (assignYOffsetToRange) range.yOffset = YOffsetLevelsWithRanges.length;
2399
+ if (assignYOffsetToRange)
2400
+ range.yOffset = YOffsetLevelsWithRanges.length;
2401
2401
  }
2402
2402
  return yOffset;
2403
2403
  }
@@ -2417,7 +2417,8 @@ function getYOffsetsForPotentiallyCircularRanges(ranges, assignYOffsetToRange) {
2417
2417
  maxYOffset = yOffset;
2418
2418
  }
2419
2419
  range.yOffset = yOffset;
2420
- if (!yOffsetLevels[yOffset]) yOffsetLevels[yOffset] = [];
2420
+ if (!yOffsetLevels[yOffset])
2421
+ yOffsetLevels[yOffset] = [];
2421
2422
  yOffsetLevels[yOffset].push(range);
2422
2423
  });
2423
2424
  return { yOffsets, maxYOffset };
@@ -2425,20 +2426,21 @@ function getYOffsetsForPotentiallyCircularRanges(ranges, assignYOffsetToRange) {
2425
2426
  __name(getYOffsetsForPotentiallyCircularRanges, "getYOffsetsForPotentiallyCircularRanges");
2426
2427
  const invertRange = provideInclusiveOptions(invertRange$1);
2427
2428
  function invertRange$1(rangeOrCaret, rangeMax) {
2428
- if (typeof rangeOrCaret !== "number" && rangeOrCaret.start > -1) {
2429
+ if (rangeOrCaret.start > -1) {
2429
2430
  const start = rangeOrCaret.end + 1;
2430
2431
  const end = rangeOrCaret.start - 1;
2431
2432
  return {
2432
2433
  start: normalizePositionByRangeLength(start, rangeMax, false),
2433
2434
  end: normalizePositionByRangeLength(end, rangeMax, false)
2434
2435
  };
2435
- } else if (typeof rangeOrCaret === "number" && rangeOrCaret > -1) {
2436
- return {
2437
- start: normalizePositionByRangeLength(rangeOrCaret, rangeMax, false),
2438
- end: normalizePositionByRangeLength(rangeOrCaret - 1, rangeMax, false)
2439
- };
2436
+ } else {
2437
+ if (rangeOrCaret > -1) {
2438
+ return {
2439
+ start: normalizePositionByRangeLength(rangeOrCaret, rangeMax, false),
2440
+ end: normalizePositionByRangeLength(rangeOrCaret - 1, rangeMax, false)
2441
+ };
2442
+ }
2440
2443
  }
2441
- return void 0;
2442
2444
  }
2443
2445
  __name(invertRange$1, "invertRange$1");
2444
2446
  function isPositionCloserToRangeStartThanRangeEnd(position, range, maxLength) {
@@ -2506,10 +2508,9 @@ function zeroSubrangeByContainerRange(subRange, containerRange, sequenceLength)
2506
2508
  "subRange must be fully contained by containerRange! Otherwise this function does not make sense"
2507
2509
  );
2508
2510
  }
2509
- const newSubrange = {
2510
- start: subRange.start - containerRange.start,
2511
- end: subRange.end - containerRange.start
2512
- };
2511
+ const newSubrange = {};
2512
+ newSubrange.start = subRange.start - containerRange.start;
2513
+ newSubrange.end = subRange.end - containerRange.start;
2513
2514
  if (newSubrange.start < 0) {
2514
2515
  newSubrange.start += sequenceLength;
2515
2516
  }
@@ -2520,10 +2521,10 @@ function zeroSubrangeByContainerRange(subRange, containerRange, sequenceLength)
2520
2521
  }
2521
2522
  __name(zeroSubrangeByContainerRange, "zeroSubrangeByContainerRange");
2522
2523
  function adjustRangeToRotation(rangeToBeAdjusted, rotateTo = 0, rangeLength) {
2523
- const mod = /* @__PURE__ */ __name((n) => rangeLength ? modulo(n, rangeLength) : n, "mod");
2524
+ const mod = rangeLength ? modulo : identity;
2524
2525
  const newRange = assign({}, rangeToBeAdjusted, {
2525
- start: mod(rangeToBeAdjusted.start - (rotateTo || 0)),
2526
- end: mod(rangeToBeAdjusted.end - (rotateTo || 0))
2526
+ start: mod(rangeToBeAdjusted.start - (rotateTo || 0), rangeLength),
2527
+ end: mod(rangeToBeAdjusted.end - (rotateTo || 0), rangeLength)
2527
2528
  });
2528
2529
  return newRange;
2529
2530
  }