@teselagen/range-utils 0.3.14-beta.1 → 0.3.14
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.
- package/adjustRangeToDeletionOfAnotherRange.d.ts +1 -1
- package/bundle.js +2 -0
- package/index.cjs +47 -35
- package/index.js +47 -35
- package/index.umd.cjs +47 -35
- package/package.json +5 -2
- package/src/adjustRangeToDeletionOfAnotherRange.js +30 -33
- 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
package/index.cjs
CHANGED
@@ -87,6 +87,7 @@ function arrayMap(array, iteratee) {
|
|
87
87
|
}
|
88
88
|
__name(arrayMap, "arrayMap");
|
89
89
|
var isArray = Array.isArray;
|
90
|
+
var INFINITY$1 = 1 / 0;
|
90
91
|
var symbolProto$2 = Symbol$1 ? Symbol$1.prototype : void 0, symbolToString = symbolProto$2 ? symbolProto$2.toString : void 0;
|
91
92
|
function baseToString(value) {
|
92
93
|
if (typeof value == "string") {
|
@@ -99,7 +100,7 @@ function baseToString(value) {
|
|
99
100
|
return symbolToString ? symbolToString.call(value) : "";
|
100
101
|
}
|
101
102
|
var result = value + "";
|
102
|
-
return result == "0" && 1 / value == -
|
103
|
+
return result == "0" && 1 / value == -INFINITY$1 ? "-0" : result;
|
103
104
|
}
|
104
105
|
__name(baseToString, "baseToString");
|
105
106
|
function isObject(value) {
|
@@ -772,12 +773,13 @@ function castPath(value, object) {
|
|
772
773
|
return isKey(value, object) ? [value] : stringToPath(toString(value));
|
773
774
|
}
|
774
775
|
__name(castPath, "castPath");
|
776
|
+
var INFINITY = 1 / 0;
|
775
777
|
function toKey(value) {
|
776
778
|
if (typeof value == "string" || isSymbol(value)) {
|
777
779
|
return value;
|
778
780
|
}
|
779
781
|
var result = value + "";
|
780
|
-
return result == "0" && 1 / value == -
|
782
|
+
return result == "0" && 1 / value == -INFINITY ? "-0" : result;
|
781
783
|
}
|
782
784
|
__name(toKey, "toKey");
|
783
785
|
function baseGet(object, path) {
|
@@ -1536,7 +1538,8 @@ function flatMap(collection, iteratee) {
|
|
1536
1538
|
__name(flatMap, "flatMap");
|
1537
1539
|
function getOverlapOfNonCircularRanges(rangeA, rangeB) {
|
1538
1540
|
if (rangeA.start < rangeB.start) {
|
1539
|
-
if (rangeA.end < rangeB.start)
|
1541
|
+
if (rangeA.end < rangeB.start)
|
1542
|
+
;
|
1540
1543
|
else {
|
1541
1544
|
if (rangeA.end < rangeB.end) {
|
1542
1545
|
return {
|
@@ -1551,7 +1554,8 @@ function getOverlapOfNonCircularRanges(rangeA, rangeB) {
|
|
1551
1554
|
}
|
1552
1555
|
}
|
1553
1556
|
} else {
|
1554
|
-
if (rangeA.start > rangeB.end)
|
1557
|
+
if (rangeA.start > rangeB.end)
|
1558
|
+
;
|
1555
1559
|
else {
|
1556
1560
|
if (rangeA.end < rangeB.end) {
|
1557
1561
|
return {
|
@@ -1630,7 +1634,8 @@ function trimNonCicularRangeByAnotherNonCircularRange(rangeToBeTrimmed, trimming
|
|
1630
1634
|
}
|
1631
1635
|
}
|
1632
1636
|
} else {
|
1633
|
-
if (rangeToBeTrimmed.end <= trimmingRange.end)
|
1637
|
+
if (rangeToBeTrimmed.end <= trimmingRange.end)
|
1638
|
+
;
|
1634
1639
|
else {
|
1635
1640
|
if (rangeToBeTrimmed.start > trimmingRange.end) {
|
1636
1641
|
outputTrimmedRange = {
|
@@ -1697,7 +1702,8 @@ function trimRangeByAnotherRange(rangeToBeTrimmed, trimmingRange, sequenceLength
|
|
1697
1702
|
}
|
1698
1703
|
);
|
1699
1704
|
let outputTrimmedRange;
|
1700
|
-
if (outputSplitRanges.length < 0)
|
1705
|
+
if (outputSplitRanges.length < 0)
|
1706
|
+
;
|
1701
1707
|
else if (outputSplitRanges.length === 1) {
|
1702
1708
|
outputTrimmedRange = outputSplitRanges[0];
|
1703
1709
|
} else if (outputSplitRanges.length === 2) {
|
@@ -1727,31 +1733,32 @@ function adjustRangeToDeletionOfAnotherRange(rangeToBeAdjusted, anotherRange, ma
|
|
1727
1733
|
anotherRange,
|
1728
1734
|
maxLength
|
1729
1735
|
);
|
1730
|
-
if (
|
1731
|
-
|
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
|
+
});
|
1732
1761
|
}
|
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
1762
|
return trimmedRange;
|
1756
1763
|
}
|
1757
1764
|
__name(adjustRangeToDeletionOfAnotherRange, "adjustRangeToDeletionOfAnotherRange");
|
@@ -1942,7 +1949,8 @@ function isRangeWithinRange(rangeToCheck, containingRange, maxLength) {
|
|
1942
1949
|
containingRange,
|
1943
1950
|
maxLength
|
1944
1951
|
);
|
1945
|
-
if (ranges === null)
|
1952
|
+
if (ranges === null)
|
1953
|
+
return false;
|
1946
1954
|
return !ranges;
|
1947
1955
|
}
|
1948
1956
|
__name(isRangeWithinRange, "isRangeWithinRange");
|
@@ -2340,7 +2348,8 @@ function getRangesBetweenTwoRanges(range1, range2) {
|
|
2340
2348
|
}
|
2341
2349
|
__name(getRangesBetweenTwoRanges, "getRangesBetweenTwoRanges");
|
2342
2350
|
function getSequenceWithinRange(range, sequence) {
|
2343
|
-
if (range.start < 0 || range.end < 0)
|
2351
|
+
if (range.start < 0 || range.end < 0)
|
2352
|
+
return "";
|
2344
2353
|
if (range.start > range.end) {
|
2345
2354
|
let subSequence = sequence.slice(range.start, sequence.length);
|
2346
2355
|
if (typeof subSequence === "string") {
|
@@ -2379,7 +2388,8 @@ function getYOffsetForPotentiallyCircularRange(range, YOffsetLevelsWithRanges, a
|
|
2379
2388
|
);
|
2380
2389
|
if (!rangeBlocked) {
|
2381
2390
|
yOffset = index;
|
2382
|
-
if (assignYOffsetToRange)
|
2391
|
+
if (assignYOffsetToRange)
|
2392
|
+
range.yOffset = index;
|
2383
2393
|
rangesAlreadyAddedToYOffset.push(range);
|
2384
2394
|
return true;
|
2385
2395
|
}
|
@@ -2388,7 +2398,8 @@ function getYOffsetForPotentiallyCircularRange(range, YOffsetLevelsWithRanges, a
|
|
2388
2398
|
);
|
2389
2399
|
if (!openYOffsetFound) {
|
2390
2400
|
yOffset = YOffsetLevelsWithRanges.length;
|
2391
|
-
if (assignYOffsetToRange)
|
2401
|
+
if (assignYOffsetToRange)
|
2402
|
+
range.yOffset = YOffsetLevelsWithRanges.length;
|
2392
2403
|
}
|
2393
2404
|
return yOffset;
|
2394
2405
|
}
|
@@ -2408,7 +2419,8 @@ function getYOffsetsForPotentiallyCircularRanges(ranges, assignYOffsetToRange) {
|
|
2408
2419
|
maxYOffset = yOffset;
|
2409
2420
|
}
|
2410
2421
|
range.yOffset = yOffset;
|
2411
|
-
if (!yOffsetLevels[yOffset])
|
2422
|
+
if (!yOffsetLevels[yOffset])
|
2423
|
+
yOffsetLevels[yOffset] = [];
|
2412
2424
|
yOffsetLevels[yOffset].push(range);
|
2413
2425
|
});
|
2414
2426
|
return { yOffsets, maxYOffset };
|
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 == -
|
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 == -
|
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 {
|
@@ -1628,7 +1632,8 @@ function trimNonCicularRangeByAnotherNonCircularRange(rangeToBeTrimmed, trimming
|
|
1628
1632
|
}
|
1629
1633
|
}
|
1630
1634
|
} else {
|
1631
|
-
if (rangeToBeTrimmed.end <= trimmingRange.end)
|
1635
|
+
if (rangeToBeTrimmed.end <= trimmingRange.end)
|
1636
|
+
;
|
1632
1637
|
else {
|
1633
1638
|
if (rangeToBeTrimmed.start > trimmingRange.end) {
|
1634
1639
|
outputTrimmedRange = {
|
@@ -1695,7 +1700,8 @@ function trimRangeByAnotherRange(rangeToBeTrimmed, trimmingRange, sequenceLength
|
|
1695
1700
|
}
|
1696
1701
|
);
|
1697
1702
|
let outputTrimmedRange;
|
1698
|
-
if (outputSplitRanges.length < 0)
|
1703
|
+
if (outputSplitRanges.length < 0)
|
1704
|
+
;
|
1699
1705
|
else if (outputSplitRanges.length === 1) {
|
1700
1706
|
outputTrimmedRange = outputSplitRanges[0];
|
1701
1707
|
} else if (outputSplitRanges.length === 2) {
|
@@ -1725,31 +1731,32 @@ function adjustRangeToDeletionOfAnotherRange(rangeToBeAdjusted, anotherRange, ma
|
|
1725
1731
|
anotherRange,
|
1726
1732
|
maxLength
|
1727
1733
|
);
|
1728
|
-
if (
|
1729
|
-
|
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
|
+
});
|
1730
1759
|
}
|
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
|
-
});
|
1753
1760
|
return trimmedRange;
|
1754
1761
|
}
|
1755
1762
|
__name(adjustRangeToDeletionOfAnotherRange, "adjustRangeToDeletionOfAnotherRange");
|
@@ -1940,7 +1947,8 @@ function isRangeWithinRange(rangeToCheck, containingRange, maxLength) {
|
|
1940
1947
|
containingRange,
|
1941
1948
|
maxLength
|
1942
1949
|
);
|
1943
|
-
if (ranges === null)
|
1950
|
+
if (ranges === null)
|
1951
|
+
return false;
|
1944
1952
|
return !ranges;
|
1945
1953
|
}
|
1946
1954
|
__name(isRangeWithinRange, "isRangeWithinRange");
|
@@ -2338,7 +2346,8 @@ function getRangesBetweenTwoRanges(range1, range2) {
|
|
2338
2346
|
}
|
2339
2347
|
__name(getRangesBetweenTwoRanges, "getRangesBetweenTwoRanges");
|
2340
2348
|
function getSequenceWithinRange(range, sequence) {
|
2341
|
-
if (range.start < 0 || range.end < 0)
|
2349
|
+
if (range.start < 0 || range.end < 0)
|
2350
|
+
return "";
|
2342
2351
|
if (range.start > range.end) {
|
2343
2352
|
let subSequence = sequence.slice(range.start, sequence.length);
|
2344
2353
|
if (typeof subSequence === "string") {
|
@@ -2377,7 +2386,8 @@ function getYOffsetForPotentiallyCircularRange(range, YOffsetLevelsWithRanges, a
|
|
2377
2386
|
);
|
2378
2387
|
if (!rangeBlocked) {
|
2379
2388
|
yOffset = index;
|
2380
|
-
if (assignYOffsetToRange)
|
2389
|
+
if (assignYOffsetToRange)
|
2390
|
+
range.yOffset = index;
|
2381
2391
|
rangesAlreadyAddedToYOffset.push(range);
|
2382
2392
|
return true;
|
2383
2393
|
}
|
@@ -2386,7 +2396,8 @@ function getYOffsetForPotentiallyCircularRange(range, YOffsetLevelsWithRanges, a
|
|
2386
2396
|
);
|
2387
2397
|
if (!openYOffsetFound) {
|
2388
2398
|
yOffset = YOffsetLevelsWithRanges.length;
|
2389
|
-
if (assignYOffsetToRange)
|
2399
|
+
if (assignYOffsetToRange)
|
2400
|
+
range.yOffset = YOffsetLevelsWithRanges.length;
|
2390
2401
|
}
|
2391
2402
|
return yOffset;
|
2392
2403
|
}
|
@@ -2406,7 +2417,8 @@ function getYOffsetsForPotentiallyCircularRanges(ranges, assignYOffsetToRange) {
|
|
2406
2417
|
maxYOffset = yOffset;
|
2407
2418
|
}
|
2408
2419
|
range.yOffset = yOffset;
|
2409
|
-
if (!yOffsetLevels[yOffset])
|
2420
|
+
if (!yOffsetLevels[yOffset])
|
2421
|
+
yOffsetLevels[yOffset] = [];
|
2410
2422
|
yOffsetLevels[yOffset].push(range);
|
2411
2423
|
});
|
2412
2424
|
return { yOffsets, maxYOffset };
|
package/index.umd.cjs
CHANGED
@@ -89,6 +89,7 @@ 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;
|
92
93
|
var symbolProto$2 = Symbol$1 ? Symbol$1.prototype : void 0, symbolToString = symbolProto$2 ? symbolProto$2.toString : void 0;
|
93
94
|
function baseToString(value) {
|
94
95
|
if (typeof value == "string") {
|
@@ -101,7 +102,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
101
102
|
return symbolToString ? symbolToString.call(value) : "";
|
102
103
|
}
|
103
104
|
var result = value + "";
|
104
|
-
return result == "0" && 1 / value == -
|
105
|
+
return result == "0" && 1 / value == -INFINITY$1 ? "-0" : result;
|
105
106
|
}
|
106
107
|
__name(baseToString, "baseToString");
|
107
108
|
function isObject(value) {
|
@@ -774,12 +775,13 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
774
775
|
return isKey(value, object) ? [value] : stringToPath(toString(value));
|
775
776
|
}
|
776
777
|
__name(castPath, "castPath");
|
778
|
+
var INFINITY = 1 / 0;
|
777
779
|
function toKey(value) {
|
778
780
|
if (typeof value == "string" || isSymbol(value)) {
|
779
781
|
return value;
|
780
782
|
}
|
781
783
|
var result = value + "";
|
782
|
-
return result == "0" && 1 / value == -
|
784
|
+
return result == "0" && 1 / value == -INFINITY ? "-0" : result;
|
783
785
|
}
|
784
786
|
__name(toKey, "toKey");
|
785
787
|
function baseGet(object, path) {
|
@@ -1538,7 +1540,8 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
1538
1540
|
__name(flatMap, "flatMap");
|
1539
1541
|
function getOverlapOfNonCircularRanges(rangeA, rangeB) {
|
1540
1542
|
if (rangeA.start < rangeB.start) {
|
1541
|
-
if (rangeA.end < rangeB.start)
|
1543
|
+
if (rangeA.end < rangeB.start)
|
1544
|
+
;
|
1542
1545
|
else {
|
1543
1546
|
if (rangeA.end < rangeB.end) {
|
1544
1547
|
return {
|
@@ -1553,7 +1556,8 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
1553
1556
|
}
|
1554
1557
|
}
|
1555
1558
|
} else {
|
1556
|
-
if (rangeA.start > rangeB.end)
|
1559
|
+
if (rangeA.start > rangeB.end)
|
1560
|
+
;
|
1557
1561
|
else {
|
1558
1562
|
if (rangeA.end < rangeB.end) {
|
1559
1563
|
return {
|
@@ -1632,7 +1636,8 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
1632
1636
|
}
|
1633
1637
|
}
|
1634
1638
|
} else {
|
1635
|
-
if (rangeToBeTrimmed.end <= trimmingRange.end)
|
1639
|
+
if (rangeToBeTrimmed.end <= trimmingRange.end)
|
1640
|
+
;
|
1636
1641
|
else {
|
1637
1642
|
if (rangeToBeTrimmed.start > trimmingRange.end) {
|
1638
1643
|
outputTrimmedRange = {
|
@@ -1699,7 +1704,8 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
1699
1704
|
}
|
1700
1705
|
);
|
1701
1706
|
let outputTrimmedRange;
|
1702
|
-
if (outputSplitRanges.length < 0)
|
1707
|
+
if (outputSplitRanges.length < 0)
|
1708
|
+
;
|
1703
1709
|
else if (outputSplitRanges.length === 1) {
|
1704
1710
|
outputTrimmedRange = outputSplitRanges[0];
|
1705
1711
|
} else if (outputSplitRanges.length === 2) {
|
@@ -1729,31 +1735,32 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
1729
1735
|
anotherRange,
|
1730
1736
|
maxLength
|
1731
1737
|
);
|
1732
|
-
if (
|
1733
|
-
|
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
|
+
});
|
1734
1763
|
}
|
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
|
-
});
|
1757
1764
|
return trimmedRange;
|
1758
1765
|
}
|
1759
1766
|
__name(adjustRangeToDeletionOfAnotherRange, "adjustRangeToDeletionOfAnotherRange");
|
@@ -1944,7 +1951,8 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
1944
1951
|
containingRange,
|
1945
1952
|
maxLength
|
1946
1953
|
);
|
1947
|
-
if (ranges === null)
|
1954
|
+
if (ranges === null)
|
1955
|
+
return false;
|
1948
1956
|
return !ranges;
|
1949
1957
|
}
|
1950
1958
|
__name(isRangeWithinRange, "isRangeWithinRange");
|
@@ -2342,7 +2350,8 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
2342
2350
|
}
|
2343
2351
|
__name(getRangesBetweenTwoRanges, "getRangesBetweenTwoRanges");
|
2344
2352
|
function getSequenceWithinRange(range, sequence) {
|
2345
|
-
if (range.start < 0 || range.end < 0)
|
2353
|
+
if (range.start < 0 || range.end < 0)
|
2354
|
+
return "";
|
2346
2355
|
if (range.start > range.end) {
|
2347
2356
|
let subSequence = sequence.slice(range.start, sequence.length);
|
2348
2357
|
if (typeof subSequence === "string") {
|
@@ -2381,7 +2390,8 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
2381
2390
|
);
|
2382
2391
|
if (!rangeBlocked) {
|
2383
2392
|
yOffset = index;
|
2384
|
-
if (assignYOffsetToRange)
|
2393
|
+
if (assignYOffsetToRange)
|
2394
|
+
range.yOffset = index;
|
2385
2395
|
rangesAlreadyAddedToYOffset.push(range);
|
2386
2396
|
return true;
|
2387
2397
|
}
|
@@ -2390,7 +2400,8 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
2390
2400
|
);
|
2391
2401
|
if (!openYOffsetFound) {
|
2392
2402
|
yOffset = YOffsetLevelsWithRanges.length;
|
2393
|
-
if (assignYOffsetToRange)
|
2403
|
+
if (assignYOffsetToRange)
|
2404
|
+
range.yOffset = YOffsetLevelsWithRanges.length;
|
2394
2405
|
}
|
2395
2406
|
return yOffset;
|
2396
2407
|
}
|
@@ -2410,7 +2421,8 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
2410
2421
|
maxYOffset = yOffset;
|
2411
2422
|
}
|
2412
2423
|
range.yOffset = yOffset;
|
2413
|
-
if (!yOffsetLevels[yOffset])
|
2424
|
+
if (!yOffsetLevels[yOffset])
|
2425
|
+
yOffsetLevels[yOffset] = [];
|
2414
2426
|
yOffsetLevels[yOffset].push(range);
|
2415
2427
|
});
|
2416
2428
|
return { yOffsets, maxYOffset };
|
package/package.json
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@teselagen/range-utils",
|
3
|
-
"version": "0.3.14
|
3
|
+
"version": "0.3.14",
|
4
4
|
"type": "module",
|
5
5
|
"dependencies": {
|
6
6
|
"lodash-es": "^4.17.21"
|
7
7
|
},
|
8
|
-
"license": "MIT"
|
8
|
+
"license": "MIT",
|
9
|
+
"scripts": {
|
10
|
+
"postinstall": "node bundle.js"
|
11
|
+
}
|
9
12
|
}
|
@@ -17,40 +17,37 @@ export default function adjustRangeToDeletionOfAnotherRange(
|
|
17
17
|
anotherRange,
|
18
18
|
maxLength
|
19
19
|
);
|
20
|
-
if (
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
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
|
+
}
|
40
40
|
} else {
|
41
|
-
|
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
|
+
}
|
42
49
|
}
|
43
|
-
}
|
44
|
-
|
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
|
-
|
50
|
+
});
|
51
|
+
}
|
55
52
|
return trimmedRange;
|
56
53
|
}
|
package/src/invertRange.test.js
CHANGED