@teselagen/range-utils 0.3.12 → 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.
- package/adjustRangeToDeletionOfAnotherRange.d.ts +1 -1
- package/index.cjs +35 -47
- package/index.js +35 -47
- package/index.umd.cjs +35 -47
- package/package.json +1 -1
- package/src/adjustRangeToDeletionOfAnotherRange.js +33 -30
- package/src/convertRangeIndices.test.js +1 -1
- package/src/expandOrContractRangeByLength.test.js +1 -1
- package/src/flipContainedRange.test.js +1 -1
- package/src/generateRandomRange.test.js +1 -1
- package/src/getAnnotationRangeType.test.js +1 -1
- package/src/invertRange.test.js +1 -1
@@ -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 == -
|
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 == -
|
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
|
-
|
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 == -
|
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 == -
|
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
|
-
|
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 == -
|
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 == -
|
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
|
-
|
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
@@ -17,37 +17,40 @@ export default function adjustRangeToDeletionOfAnotherRange(
|
|
17
17
|
anotherRange,
|
18
18
|
maxLength
|
19
19
|
);
|
20
|
-
if (trimmedRange) {
|
21
|
-
//
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
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
|
-
|
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
|
}
|
package/src/invertRange.test.js
CHANGED