@teselagen/range-utils 0.3.13 → 0.3.14-beta.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.
@@ -1 +1 @@
1
- export default function adjustRangeToDeletionOfAnotherRange(rangeToBeAdjusted: any, anotherRange: any, maxLength: any): object;
1
+ export default function adjustRangeToDeletionOfAnotherRange(rangeToBeAdjusted: any, anotherRange: any, maxLength: any): object | null;
package/index.cjs CHANGED
@@ -87,7 +87,6 @@ function arrayMap(array, iteratee) {
87
87
  }
88
88
  __name(arrayMap, "arrayMap");
89
89
  var isArray = Array.isArray;
90
- var INFINITY$1 = 1 / 0;
91
90
  var symbolProto$2 = Symbol$1 ? Symbol$1.prototype : void 0, symbolToString = symbolProto$2 ? symbolProto$2.toString : void 0;
92
91
  function baseToString(value) {
93
92
  if (typeof value == "string") {
@@ -100,7 +99,7 @@ function baseToString(value) {
100
99
  return symbolToString ? symbolToString.call(value) : "";
101
100
  }
102
101
  var result = value + "";
103
- return result == "0" && 1 / value == -INFINITY$1 ? "-0" : result;
102
+ return result == "0" && 1 / value == -Infinity ? "-0" : result;
104
103
  }
105
104
  __name(baseToString, "baseToString");
106
105
  function isObject(value) {
@@ -773,13 +772,12 @@ function castPath(value, object) {
773
772
  return isKey(value, object) ? [value] : stringToPath(toString(value));
774
773
  }
775
774
  __name(castPath, "castPath");
776
- var INFINITY = 1 / 0;
777
775
  function toKey(value) {
778
776
  if (typeof value == "string" || isSymbol(value)) {
779
777
  return value;
780
778
  }
781
779
  var result = value + "";
782
- return result == "0" && 1 / value == -INFINITY ? "-0" : result;
780
+ return result == "0" && 1 / value == -Infinity ? "-0" : result;
783
781
  }
784
782
  __name(toKey, "toKey");
785
783
  function baseGet(object, path) {
@@ -1538,8 +1536,7 @@ function flatMap(collection, iteratee) {
1538
1536
  __name(flatMap, "flatMap");
1539
1537
  function getOverlapOfNonCircularRanges(rangeA, rangeB) {
1540
1538
  if (rangeA.start < rangeB.start) {
1541
- if (rangeA.end < rangeB.start)
1542
- ;
1539
+ if (rangeA.end < rangeB.start) ;
1543
1540
  else {
1544
1541
  if (rangeA.end < rangeB.end) {
1545
1542
  return {
@@ -1554,8 +1551,7 @@ function getOverlapOfNonCircularRanges(rangeA, rangeB) {
1554
1551
  }
1555
1552
  }
1556
1553
  } else {
1557
- if (rangeA.start > rangeB.end)
1558
- ;
1554
+ if (rangeA.start > rangeB.end) ;
1559
1555
  else {
1560
1556
  if (rangeA.end < rangeB.end) {
1561
1557
  return {
@@ -1634,8 +1630,7 @@ function trimNonCicularRangeByAnotherNonCircularRange(rangeToBeTrimmed, trimming
1634
1630
  }
1635
1631
  }
1636
1632
  } else {
1637
- if (rangeToBeTrimmed.end <= trimmingRange.end)
1638
- ;
1633
+ if (rangeToBeTrimmed.end <= trimmingRange.end) ;
1639
1634
  else {
1640
1635
  if (rangeToBeTrimmed.start > trimmingRange.end) {
1641
1636
  outputTrimmedRange = {
@@ -1702,8 +1697,7 @@ function trimRangeByAnotherRange(rangeToBeTrimmed, trimmingRange, sequenceLength
1702
1697
  }
1703
1698
  );
1704
1699
  let outputTrimmedRange;
1705
- if (outputSplitRanges.length < 0)
1706
- ;
1700
+ if (outputSplitRanges.length < 0) ;
1707
1701
  else if (outputSplitRanges.length === 1) {
1708
1702
  outputTrimmedRange = outputSplitRanges[0];
1709
1703
  } else if (outputSplitRanges.length === 2) {
@@ -1733,32 +1727,31 @@ function adjustRangeToDeletionOfAnotherRange(rangeToBeAdjusted, anotherRange, ma
1733
1727
  anotherRange,
1734
1728
  maxLength
1735
1729
  );
1736
- if (trimmedRange) {
1737
- const nonCircularDeletionRanges = splitRangeIntoTwoPartsIfItIsCircular(
1738
- anotherRange,
1739
- maxLength
1740
- );
1741
- nonCircularDeletionRanges.forEach(function(nonCircularDeletionRange) {
1742
- const deletionLength = nonCircularDeletionRange.end - nonCircularDeletionRange.start + 1;
1743
- if (trimmedRange.start > trimmedRange.end) {
1744
- if (nonCircularDeletionRange.start < trimmedRange.end) {
1745
- trimmedRange.start -= deletionLength;
1746
- trimmedRange.end -= deletionLength;
1747
- } else if (nonCircularDeletionRange.start < trimmedRange.start) {
1748
- trimmedRange.start -= deletionLength;
1749
- } else
1750
- ;
1751
- } else {
1752
- if (nonCircularDeletionRange.start < trimmedRange.start) {
1753
- trimmedRange.start -= deletionLength;
1754
- trimmedRange.end -= deletionLength;
1755
- } else if (nonCircularDeletionRange.start < trimmedRange.end) {
1756
- trimmedRange.end -= deletionLength;
1757
- } else
1758
- ;
1759
- }
1760
- });
1730
+ if (!trimmedRange) {
1731
+ return null;
1761
1732
  }
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
+ });
1762
1755
  return trimmedRange;
1763
1756
  }
1764
1757
  __name(adjustRangeToDeletionOfAnotherRange, "adjustRangeToDeletionOfAnotherRange");
@@ -1949,8 +1942,7 @@ function isRangeWithinRange(rangeToCheck, containingRange, maxLength) {
1949
1942
  containingRange,
1950
1943
  maxLength
1951
1944
  );
1952
- if (ranges === null)
1953
- return false;
1945
+ if (ranges === null) return false;
1954
1946
  return !ranges;
1955
1947
  }
1956
1948
  __name(isRangeWithinRange, "isRangeWithinRange");
@@ -2348,8 +2340,7 @@ function getRangesBetweenTwoRanges(range1, range2) {
2348
2340
  }
2349
2341
  __name(getRangesBetweenTwoRanges, "getRangesBetweenTwoRanges");
2350
2342
  function getSequenceWithinRange(range, sequence) {
2351
- if (range.start < 0 || range.end < 0)
2352
- return "";
2343
+ if (range.start < 0 || range.end < 0) return "";
2353
2344
  if (range.start > range.end) {
2354
2345
  let subSequence = sequence.slice(range.start, sequence.length);
2355
2346
  if (typeof subSequence === "string") {
@@ -2388,8 +2379,7 @@ function getYOffsetForPotentiallyCircularRange(range, YOffsetLevelsWithRanges, a
2388
2379
  );
2389
2380
  if (!rangeBlocked) {
2390
2381
  yOffset = index;
2391
- if (assignYOffsetToRange)
2392
- range.yOffset = index;
2382
+ if (assignYOffsetToRange) range.yOffset = index;
2393
2383
  rangesAlreadyAddedToYOffset.push(range);
2394
2384
  return true;
2395
2385
  }
@@ -2398,8 +2388,7 @@ function getYOffsetForPotentiallyCircularRange(range, YOffsetLevelsWithRanges, a
2398
2388
  );
2399
2389
  if (!openYOffsetFound) {
2400
2390
  yOffset = YOffsetLevelsWithRanges.length;
2401
- if (assignYOffsetToRange)
2402
- range.yOffset = YOffsetLevelsWithRanges.length;
2391
+ if (assignYOffsetToRange) range.yOffset = YOffsetLevelsWithRanges.length;
2403
2392
  }
2404
2393
  return yOffset;
2405
2394
  }
@@ -2419,8 +2408,7 @@ function getYOffsetsForPotentiallyCircularRanges(ranges, assignYOffsetToRange) {
2419
2408
  maxYOffset = yOffset;
2420
2409
  }
2421
2410
  range.yOffset = yOffset;
2422
- if (!yOffsetLevels[yOffset])
2423
- yOffsetLevels[yOffset] = [];
2411
+ if (!yOffsetLevels[yOffset]) yOffsetLevels[yOffset] = [];
2424
2412
  yOffsetLevels[yOffset].push(range);
2425
2413
  });
2426
2414
  return { yOffsets, maxYOffset };
package/index.js CHANGED
@@ -85,7 +85,6 @@ function arrayMap(array, iteratee) {
85
85
  }
86
86
  __name(arrayMap, "arrayMap");
87
87
  var isArray = Array.isArray;
88
- var INFINITY$1 = 1 / 0;
89
88
  var symbolProto$2 = Symbol$1 ? Symbol$1.prototype : void 0, symbolToString = symbolProto$2 ? symbolProto$2.toString : void 0;
90
89
  function baseToString(value) {
91
90
  if (typeof value == "string") {
@@ -98,7 +97,7 @@ function baseToString(value) {
98
97
  return symbolToString ? symbolToString.call(value) : "";
99
98
  }
100
99
  var result = value + "";
101
- return result == "0" && 1 / value == -INFINITY$1 ? "-0" : result;
100
+ return result == "0" && 1 / value == -Infinity ? "-0" : result;
102
101
  }
103
102
  __name(baseToString, "baseToString");
104
103
  function isObject(value) {
@@ -771,13 +770,12 @@ function castPath(value, object) {
771
770
  return isKey(value, object) ? [value] : stringToPath(toString(value));
772
771
  }
773
772
  __name(castPath, "castPath");
774
- var INFINITY = 1 / 0;
775
773
  function toKey(value) {
776
774
  if (typeof value == "string" || isSymbol(value)) {
777
775
  return value;
778
776
  }
779
777
  var result = value + "";
780
- return result == "0" && 1 / value == -INFINITY ? "-0" : result;
778
+ return result == "0" && 1 / value == -Infinity ? "-0" : result;
781
779
  }
782
780
  __name(toKey, "toKey");
783
781
  function baseGet(object, path) {
@@ -1536,8 +1534,7 @@ function flatMap(collection, iteratee) {
1536
1534
  __name(flatMap, "flatMap");
1537
1535
  function getOverlapOfNonCircularRanges(rangeA, rangeB) {
1538
1536
  if (rangeA.start < rangeB.start) {
1539
- if (rangeA.end < rangeB.start)
1540
- ;
1537
+ if (rangeA.end < rangeB.start) ;
1541
1538
  else {
1542
1539
  if (rangeA.end < rangeB.end) {
1543
1540
  return {
@@ -1552,8 +1549,7 @@ function getOverlapOfNonCircularRanges(rangeA, rangeB) {
1552
1549
  }
1553
1550
  }
1554
1551
  } else {
1555
- if (rangeA.start > rangeB.end)
1556
- ;
1552
+ if (rangeA.start > rangeB.end) ;
1557
1553
  else {
1558
1554
  if (rangeA.end < rangeB.end) {
1559
1555
  return {
@@ -1632,8 +1628,7 @@ function trimNonCicularRangeByAnotherNonCircularRange(rangeToBeTrimmed, trimming
1632
1628
  }
1633
1629
  }
1634
1630
  } else {
1635
- if (rangeToBeTrimmed.end <= trimmingRange.end)
1636
- ;
1631
+ if (rangeToBeTrimmed.end <= trimmingRange.end) ;
1637
1632
  else {
1638
1633
  if (rangeToBeTrimmed.start > trimmingRange.end) {
1639
1634
  outputTrimmedRange = {
@@ -1700,8 +1695,7 @@ function trimRangeByAnotherRange(rangeToBeTrimmed, trimmingRange, sequenceLength
1700
1695
  }
1701
1696
  );
1702
1697
  let outputTrimmedRange;
1703
- if (outputSplitRanges.length < 0)
1704
- ;
1698
+ if (outputSplitRanges.length < 0) ;
1705
1699
  else if (outputSplitRanges.length === 1) {
1706
1700
  outputTrimmedRange = outputSplitRanges[0];
1707
1701
  } else if (outputSplitRanges.length === 2) {
@@ -1731,32 +1725,31 @@ function adjustRangeToDeletionOfAnotherRange(rangeToBeAdjusted, anotherRange, ma
1731
1725
  anotherRange,
1732
1726
  maxLength
1733
1727
  );
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
- });
1728
+ if (!trimmedRange) {
1729
+ return null;
1759
1730
  }
1731
+ const nonCircularDeletionRanges = splitRangeIntoTwoPartsIfItIsCircular(
1732
+ anotherRange,
1733
+ maxLength
1734
+ );
1735
+ nonCircularDeletionRanges.forEach(function(nonCircularDeletionRange) {
1736
+ const deletionLength = nonCircularDeletionRange.end - nonCircularDeletionRange.start + 1;
1737
+ if (trimmedRange.start > trimmedRange.end) {
1738
+ if (nonCircularDeletionRange.start < trimmedRange.end) {
1739
+ trimmedRange.start -= deletionLength;
1740
+ trimmedRange.end -= deletionLength;
1741
+ } else if (nonCircularDeletionRange.start < trimmedRange.start) {
1742
+ trimmedRange.start -= deletionLength;
1743
+ } else ;
1744
+ } else {
1745
+ if (nonCircularDeletionRange.start < trimmedRange.start) {
1746
+ trimmedRange.start -= deletionLength;
1747
+ trimmedRange.end -= deletionLength;
1748
+ } else if (nonCircularDeletionRange.start < trimmedRange.end) {
1749
+ trimmedRange.end -= deletionLength;
1750
+ } else ;
1751
+ }
1752
+ });
1760
1753
  return trimmedRange;
1761
1754
  }
1762
1755
  __name(adjustRangeToDeletionOfAnotherRange, "adjustRangeToDeletionOfAnotherRange");
@@ -1947,8 +1940,7 @@ function isRangeWithinRange(rangeToCheck, containingRange, maxLength) {
1947
1940
  containingRange,
1948
1941
  maxLength
1949
1942
  );
1950
- if (ranges === null)
1951
- return false;
1943
+ if (ranges === null) return false;
1952
1944
  return !ranges;
1953
1945
  }
1954
1946
  __name(isRangeWithinRange, "isRangeWithinRange");
@@ -2346,8 +2338,7 @@ function getRangesBetweenTwoRanges(range1, range2) {
2346
2338
  }
2347
2339
  __name(getRangesBetweenTwoRanges, "getRangesBetweenTwoRanges");
2348
2340
  function getSequenceWithinRange(range, sequence) {
2349
- if (range.start < 0 || range.end < 0)
2350
- return "";
2341
+ if (range.start < 0 || range.end < 0) return "";
2351
2342
  if (range.start > range.end) {
2352
2343
  let subSequence = sequence.slice(range.start, sequence.length);
2353
2344
  if (typeof subSequence === "string") {
@@ -2386,8 +2377,7 @@ function getYOffsetForPotentiallyCircularRange(range, YOffsetLevelsWithRanges, a
2386
2377
  );
2387
2378
  if (!rangeBlocked) {
2388
2379
  yOffset = index;
2389
- if (assignYOffsetToRange)
2390
- range.yOffset = index;
2380
+ if (assignYOffsetToRange) range.yOffset = index;
2391
2381
  rangesAlreadyAddedToYOffset.push(range);
2392
2382
  return true;
2393
2383
  }
@@ -2396,8 +2386,7 @@ function getYOffsetForPotentiallyCircularRange(range, YOffsetLevelsWithRanges, a
2396
2386
  );
2397
2387
  if (!openYOffsetFound) {
2398
2388
  yOffset = YOffsetLevelsWithRanges.length;
2399
- if (assignYOffsetToRange)
2400
- range.yOffset = YOffsetLevelsWithRanges.length;
2389
+ if (assignYOffsetToRange) range.yOffset = YOffsetLevelsWithRanges.length;
2401
2390
  }
2402
2391
  return yOffset;
2403
2392
  }
@@ -2417,8 +2406,7 @@ function getYOffsetsForPotentiallyCircularRanges(ranges, assignYOffsetToRange) {
2417
2406
  maxYOffset = yOffset;
2418
2407
  }
2419
2408
  range.yOffset = yOffset;
2420
- if (!yOffsetLevels[yOffset])
2421
- yOffsetLevels[yOffset] = [];
2409
+ if (!yOffsetLevels[yOffset]) yOffsetLevels[yOffset] = [];
2422
2410
  yOffsetLevels[yOffset].push(range);
2423
2411
  });
2424
2412
  return { yOffsets, maxYOffset };
package/index.umd.cjs CHANGED
@@ -89,7 +89,6 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
89
89
  }
90
90
  __name(arrayMap, "arrayMap");
91
91
  var isArray = Array.isArray;
92
- var INFINITY$1 = 1 / 0;
93
92
  var symbolProto$2 = Symbol$1 ? Symbol$1.prototype : void 0, symbolToString = symbolProto$2 ? symbolProto$2.toString : void 0;
94
93
  function baseToString(value) {
95
94
  if (typeof value == "string") {
@@ -102,7 +101,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
102
101
  return symbolToString ? symbolToString.call(value) : "";
103
102
  }
104
103
  var result = value + "";
105
- return result == "0" && 1 / value == -INFINITY$1 ? "-0" : result;
104
+ return result == "0" && 1 / value == -Infinity ? "-0" : result;
106
105
  }
107
106
  __name(baseToString, "baseToString");
108
107
  function isObject(value) {
@@ -775,13 +774,12 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
775
774
  return isKey(value, object) ? [value] : stringToPath(toString(value));
776
775
  }
777
776
  __name(castPath, "castPath");
778
- var INFINITY = 1 / 0;
779
777
  function toKey(value) {
780
778
  if (typeof value == "string" || isSymbol(value)) {
781
779
  return value;
782
780
  }
783
781
  var result = value + "";
784
- return result == "0" && 1 / value == -INFINITY ? "-0" : result;
782
+ return result == "0" && 1 / value == -Infinity ? "-0" : result;
785
783
  }
786
784
  __name(toKey, "toKey");
787
785
  function baseGet(object, path) {
@@ -1540,8 +1538,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
1540
1538
  __name(flatMap, "flatMap");
1541
1539
  function getOverlapOfNonCircularRanges(rangeA, rangeB) {
1542
1540
  if (rangeA.start < rangeB.start) {
1543
- if (rangeA.end < rangeB.start)
1544
- ;
1541
+ if (rangeA.end < rangeB.start) ;
1545
1542
  else {
1546
1543
  if (rangeA.end < rangeB.end) {
1547
1544
  return {
@@ -1556,8 +1553,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
1556
1553
  }
1557
1554
  }
1558
1555
  } else {
1559
- if (rangeA.start > rangeB.end)
1560
- ;
1556
+ if (rangeA.start > rangeB.end) ;
1561
1557
  else {
1562
1558
  if (rangeA.end < rangeB.end) {
1563
1559
  return {
@@ -1636,8 +1632,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
1636
1632
  }
1637
1633
  }
1638
1634
  } else {
1639
- if (rangeToBeTrimmed.end <= trimmingRange.end)
1640
- ;
1635
+ if (rangeToBeTrimmed.end <= trimmingRange.end) ;
1641
1636
  else {
1642
1637
  if (rangeToBeTrimmed.start > trimmingRange.end) {
1643
1638
  outputTrimmedRange = {
@@ -1704,8 +1699,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
1704
1699
  }
1705
1700
  );
1706
1701
  let outputTrimmedRange;
1707
- if (outputSplitRanges.length < 0)
1708
- ;
1702
+ if (outputSplitRanges.length < 0) ;
1709
1703
  else if (outputSplitRanges.length === 1) {
1710
1704
  outputTrimmedRange = outputSplitRanges[0];
1711
1705
  } else if (outputSplitRanges.length === 2) {
@@ -1735,32 +1729,31 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
1735
1729
  anotherRange,
1736
1730
  maxLength
1737
1731
  );
1738
- if (trimmedRange) {
1739
- const nonCircularDeletionRanges = splitRangeIntoTwoPartsIfItIsCircular(
1740
- anotherRange,
1741
- maxLength
1742
- );
1743
- nonCircularDeletionRanges.forEach(function(nonCircularDeletionRange) {
1744
- const deletionLength = nonCircularDeletionRange.end - nonCircularDeletionRange.start + 1;
1745
- if (trimmedRange.start > trimmedRange.end) {
1746
- if (nonCircularDeletionRange.start < trimmedRange.end) {
1747
- trimmedRange.start -= deletionLength;
1748
- trimmedRange.end -= deletionLength;
1749
- } else if (nonCircularDeletionRange.start < trimmedRange.start) {
1750
- trimmedRange.start -= deletionLength;
1751
- } else
1752
- ;
1753
- } else {
1754
- if (nonCircularDeletionRange.start < trimmedRange.start) {
1755
- trimmedRange.start -= deletionLength;
1756
- trimmedRange.end -= deletionLength;
1757
- } else if (nonCircularDeletionRange.start < trimmedRange.end) {
1758
- trimmedRange.end -= deletionLength;
1759
- } else
1760
- ;
1761
- }
1762
- });
1732
+ if (!trimmedRange) {
1733
+ return null;
1763
1734
  }
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
+ } else {
1749
+ if (nonCircularDeletionRange.start < trimmedRange.start) {
1750
+ trimmedRange.start -= deletionLength;
1751
+ trimmedRange.end -= deletionLength;
1752
+ } else if (nonCircularDeletionRange.start < trimmedRange.end) {
1753
+ trimmedRange.end -= deletionLength;
1754
+ } else ;
1755
+ }
1756
+ });
1764
1757
  return trimmedRange;
1765
1758
  }
1766
1759
  __name(adjustRangeToDeletionOfAnotherRange, "adjustRangeToDeletionOfAnotherRange");
@@ -1951,8 +1944,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
1951
1944
  containingRange,
1952
1945
  maxLength
1953
1946
  );
1954
- if (ranges === null)
1955
- return false;
1947
+ if (ranges === null) return false;
1956
1948
  return !ranges;
1957
1949
  }
1958
1950
  __name(isRangeWithinRange, "isRangeWithinRange");
@@ -2350,8 +2342,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
2350
2342
  }
2351
2343
  __name(getRangesBetweenTwoRanges, "getRangesBetweenTwoRanges");
2352
2344
  function getSequenceWithinRange(range, sequence) {
2353
- if (range.start < 0 || range.end < 0)
2354
- return "";
2345
+ if (range.start < 0 || range.end < 0) return "";
2355
2346
  if (range.start > range.end) {
2356
2347
  let subSequence = sequence.slice(range.start, sequence.length);
2357
2348
  if (typeof subSequence === "string") {
@@ -2390,8 +2381,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
2390
2381
  );
2391
2382
  if (!rangeBlocked) {
2392
2383
  yOffset = index;
2393
- if (assignYOffsetToRange)
2394
- range.yOffset = index;
2384
+ if (assignYOffsetToRange) range.yOffset = index;
2395
2385
  rangesAlreadyAddedToYOffset.push(range);
2396
2386
  return true;
2397
2387
  }
@@ -2400,8 +2390,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
2400
2390
  );
2401
2391
  if (!openYOffsetFound) {
2402
2392
  yOffset = YOffsetLevelsWithRanges.length;
2403
- if (assignYOffsetToRange)
2404
- range.yOffset = YOffsetLevelsWithRanges.length;
2393
+ if (assignYOffsetToRange) range.yOffset = YOffsetLevelsWithRanges.length;
2405
2394
  }
2406
2395
  return yOffset;
2407
2396
  }
@@ -2421,8 +2410,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
2421
2410
  maxYOffset = yOffset;
2422
2411
  }
2423
2412
  range.yOffset = yOffset;
2424
- if (!yOffsetLevels[yOffset])
2425
- yOffsetLevels[yOffset] = [];
2413
+ if (!yOffsetLevels[yOffset]) yOffsetLevels[yOffset] = [];
2426
2414
  yOffsetLevels[yOffset].push(range);
2427
2415
  });
2428
2416
  return { yOffsets, maxYOffset };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teselagen/range-utils",
3
- "version": "0.3.13",
3
+ "version": "0.3.14-beta.1",
4
4
  "type": "module",
5
5
  "dependencies": {
6
6
  "lodash-es": "^4.17.21"
@@ -17,37 +17,40 @@ export default function adjustRangeToDeletionOfAnotherRange(
17
17
  anotherRange,
18
18
  maxLength
19
19
  );
20
- if (trimmedRange) {
21
- //if there is a range left after being trimmed, adjust it by the deleted anotherRange
22
- //we can make some awesome logical simplifications because we know that the two ranges do not overlap (since we've already trimmed the rangeToBeAdjusted)
23
- const nonCircularDeletionRanges = splitRangeIntoTwoPartsIfItIsCircular(
24
- anotherRange,
25
- maxLength
26
- );
27
- nonCircularDeletionRanges.forEach(function (nonCircularDeletionRange) {
28
- const deletionLength =
29
- nonCircularDeletionRange.end - nonCircularDeletionRange.start + 1;
30
- if (trimmedRange.start > trimmedRange.end) {
31
- //the trimmed range is circular
32
- if (nonCircularDeletionRange.start < trimmedRange.end) {
33
- trimmedRange.start -= deletionLength;
34
- trimmedRange.end -= deletionLength;
35
- } else if (nonCircularDeletionRange.start < trimmedRange.start) {
36
- trimmedRange.start -= deletionLength;
37
- } else {
38
- //do nothing
39
- }
20
+ if (!trimmedRange) {
21
+ return null; // Explicitly return null when range is completely trimmed
22
+ }
23
+
24
+ //if there is a range left after being trimmed, adjust it by the deleted anotherRange
25
+ //we can make some awesome logical simplifications because we know that the two ranges do not overlap (since we've already trimmed the rangeToBeAdjusted)
26
+ const nonCircularDeletionRanges = splitRangeIntoTwoPartsIfItIsCircular(
27
+ anotherRange,
28
+ maxLength
29
+ );
30
+ nonCircularDeletionRanges.forEach(function (nonCircularDeletionRange) {
31
+ const deletionLength =
32
+ nonCircularDeletionRange.end - nonCircularDeletionRange.start + 1;
33
+ if (trimmedRange.start > trimmedRange.end) {
34
+ //the trimmed range is circular
35
+ if (nonCircularDeletionRange.start < trimmedRange.end) {
36
+ trimmedRange.start -= deletionLength;
37
+ trimmedRange.end -= deletionLength;
38
+ } else if (nonCircularDeletionRange.start < trimmedRange.start) {
39
+ trimmedRange.start -= deletionLength;
40
40
  } else {
41
- if (nonCircularDeletionRange.start < trimmedRange.start) {
42
- trimmedRange.start -= deletionLength;
43
- trimmedRange.end -= deletionLength;
44
- } else if (nonCircularDeletionRange.start < trimmedRange.end) {
45
- trimmedRange.end -= deletionLength;
46
- } else {
47
- //do nothing
48
- }
41
+ //do nothing
49
42
  }
50
- });
51
- }
43
+ } else {
44
+ if (nonCircularDeletionRange.start < trimmedRange.start) {
45
+ trimmedRange.start -= deletionLength;
46
+ trimmedRange.end -= deletionLength;
47
+ } else if (nonCircularDeletionRange.start < trimmedRange.end) {
48
+ trimmedRange.end -= deletionLength;
49
+ } else {
50
+ //do nothing
51
+ }
52
+ }
53
+ });
54
+
52
55
  return trimmedRange;
53
56
  }
@@ -1,5 +1,5 @@
1
1
  import convertRangeIndices from "./convertRangeIndices";
2
- import chai from "chai";
2
+ import * as chai from "chai";
3
3
  chai.should();
4
4
  describe("convertRangeIndices", function () {
5
5
  it("should correctly convert various types of ranges", function () {
@@ -1,5 +1,5 @@
1
1
  import expandOrContractRangeByLength from "./expandOrContractRangeByLength";
2
- import chai from "chai";
2
+ import * as chai from "chai";
3
3
  chai.should();
4
4
 
5
5
  describe("expandOrContractRangeByLength", function () {
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable no-var*/
2
2
  import flipContainedRange from "./flipContainedRange";
3
3
 
4
- import chai from "chai";
4
+ import * as chai from "chai";
5
5
  chai.should();
6
6
 
7
7
  describe("flipContainedRange", function () {
@@ -1,6 +1,6 @@
1
1
  import getRangeLength from "./getRangeLength";
2
2
  import generateRandomRange from "./generateRandomRange";
3
- import chai from "chai";
3
+ import * as chai from "chai";
4
4
  chai.should();
5
5
 
6
6
  describe("generateRandomRange", function () {
@@ -1,5 +1,5 @@
1
1
  import getAnnotationRangeType from "./getAnnotationRangeType";
2
- import chai from "chai";
2
+ import * as chai from "chai";
3
3
  chai.should();
4
4
 
5
5
  describe("getAnnotationRangeType", function () {
@@ -1,5 +1,5 @@
1
1
  import invertRange from "./invertRange";
2
- import chai from "chai";
2
+ import * as chai from "chai";
3
3
  chai.should();
4
4
  describe("invertRange", function () {
5
5
  it("should invert a non-circular range", function () {