@teselagen/range-utils 0.3.18 → 0.3.20-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.
Files changed (164) hide show
  1. package/README.md +0 -10
  2. package/RangeAngles.d.ts +7 -0
  3. package/adjustRangeToDeletionOfAnotherRange.d.ts +2 -1
  4. package/adjustRangeToInsert.d.ts +2 -1
  5. package/adjustRangeToRotation.d.ts +2 -1
  6. package/checkIfNonCircularRangesOverlap.d.ts +2 -1
  7. package/checkIfPotentiallyCircularRangesOverlap.d.ts +2 -1
  8. package/collapseOverlapsGeneratedFromRangeComparisonIfPossible.d.ts +2 -1
  9. package/convertRangeIndices.d.ts +10 -1
  10. package/convertRangeTo0Based.d.ts +5 -1
  11. package/convertRangeTo1Based.d.ts +5 -1
  12. package/doesRangeSpanEntireSequence.d.ts +2 -1
  13. package/doesRangeSpanOrigin.d.ts +2 -1
  14. package/expandOrContractCircularRangeToPosition.d.ts +3 -2
  15. package/expandOrContractNonCircularRangeToPosition.d.ts +3 -2
  16. package/expandOrContractRangeByLength.d.ts +5 -1
  17. package/expandOrContractRangeToPosition.d.ts +3 -2
  18. package/flipContainedRange.d.ts +5 -1
  19. package/generateRandomRange.d.ts +3 -3
  20. package/getAnnotationRangeType.d.ts +2 -1
  21. package/getEachPositionInRangeAsArray.d.ts +2 -1
  22. package/getLengthOfOverlappingRegionsBetweenTwoRanges.d.ts +2 -1
  23. package/getMiddleOfRange.d.ts +2 -1
  24. package/getOverlapOfNonCircularRanges.d.ts +5 -4
  25. package/getOverlapsOfPotentiallyCircularRanges.d.ts +2 -1
  26. package/getPositionFromAngle.d.ts +1 -1
  27. package/getRangeAngles.d.ts +3 -7
  28. package/getRangeLength.d.ts +5 -1
  29. package/getRangesBetweenTwoRanges.d.ts +2 -1
  30. package/getSequenceWithinRange.d.ts +3 -1
  31. package/getShortestDistanceBetweenTwoPositions.d.ts +1 -1
  32. package/getYOffsetForPotentiallyCircularRange.d.ts +2 -1
  33. package/getYOffsetsForPotentiallyCircularRanges.d.ts +3 -2
  34. package/getZeroedRangeOverlaps.d.ts +2 -1
  35. package/index.cjs +58 -45
  36. package/index.d.ts +1 -0
  37. package/index.js +58 -45
  38. package/index.umd.cjs +58 -45
  39. package/invertRange.d.ts +5 -1
  40. package/isPositionCloserToRangeStartThanRangeEnd.d.ts +2 -1
  41. package/isPositionWithinRange.d.ts +3 -2
  42. package/isRangeOrPositionWithinRange.d.ts +2 -1
  43. package/isRangeWithinRange.d.ts +2 -1
  44. package/loopEachPositionInRange.d.ts +2 -1
  45. package/modulatePositionByRange.d.ts +2 -1
  46. package/modulateRangeBySequenceLength.d.ts +8 -1
  47. package/normalizePositionByRangeLength.d.ts +1 -1
  48. package/normalizePositionByRangeLength1Based.d.ts +1 -1
  49. package/normalizeRange.d.ts +5 -1
  50. package/package.json +10 -2
  51. package/provideInclusiveOptions.d.ts +6 -1
  52. package/reversePositionInRange.d.ts +1 -1
  53. package/splitRangeIntoTwoPartsIfItIsCircular.d.ts +4 -3
  54. package/src/RangeAngles.ts +9 -0
  55. package/src/{adjustRangeToDeletionOfAnotherRange.js → adjustRangeToDeletionOfAnotherRange.ts} +4 -7
  56. package/src/{adjustRangeToInsert.js → adjustRangeToInsert.ts} +4 -4
  57. package/src/adjustRangeToRotation.ts +22 -0
  58. package/src/{checkIfNonCircularRangesOverlap.js → checkIfNonCircularRangesOverlap.ts} +5 -4
  59. package/src/{checkIfPotentiallyCircularRangesOverlap.js → checkIfPotentiallyCircularRangesOverlap.ts} +4 -4
  60. package/src/{collapseOverlapsGeneratedFromRangeComparisonIfPossible.js → collapseOverlapsGeneratedFromRangeComparisonIfPossible.ts} +7 -4
  61. package/src/{convertRangeIndices.js → convertRangeIndices.ts} +11 -3
  62. package/src/{convertRangeTo0Based.js → convertRangeTo0Based.ts} +2 -1
  63. package/src/{convertRangeTo1Based.js → convertRangeTo1Based.ts} +2 -1
  64. package/src/doesRangeSpanEntireSequence.ts +12 -0
  65. package/src/doesRangeSpanOrigin.ts +5 -0
  66. package/src/{expandOrContractCircularRangeToPosition.js → expandOrContractCircularRangeToPosition.ts} +5 -3
  67. package/src/{expandOrContractNonCircularRangeToPosition.js → expandOrContractNonCircularRangeToPosition.ts} +4 -2
  68. package/src/{expandOrContractRangeByLength.js → expandOrContractRangeByLength.ts} +5 -4
  69. package/src/{expandOrContractRangeToPosition.js → expandOrContractRangeToPosition.ts} +6 -8
  70. package/src/{flipContainedRange.js → flipContainedRange.ts} +18 -8
  71. package/src/{generateRandomRange.js → generateRandomRange.ts} +6 -2
  72. package/src/{getAnnotationRangeType.js → getAnnotationRangeType.ts} +5 -3
  73. package/src/{getEachPositionInRangeAsArray.js → getEachPositionInRangeAsArray.ts} +6 -2
  74. package/src/{getLengthOfOverlappingRegionsBetweenTwoRanges.js → getLengthOfOverlappingRegionsBetweenTwoRanges.ts} +4 -3
  75. package/src/{getMiddleOfRange.js → getMiddleOfRange.ts} +2 -1
  76. package/src/{getOverlapOfNonCircularRanges.js → getOverlapOfNonCircularRanges.ts} +7 -1
  77. package/src/{getOverlapsOfPotentiallyCircularRanges.js → getOverlapsOfPotentiallyCircularRanges.ts} +13 -7
  78. package/src/{getPositionFromAngle.js → getPositionFromAngle.ts} +3 -3
  79. package/src/{getRangeAngles.js → getRangeAngles.ts} +8 -3
  80. package/src/{getRangeLength.js → getRangeLength.ts} +4 -1
  81. package/src/{getRangesBetweenTwoRanges.js → getRangesBetweenTwoRanges.ts} +7 -2
  82. package/src/getSequenceWithinRange.ts +33 -0
  83. package/src/{getShortestDistanceBetweenTwoPositions.js → getShortestDistanceBetweenTwoPositions.ts} +3 -3
  84. package/src/{getYOffsetForPotentiallyCircularRange.js → getYOffsetForPotentiallyCircularRange.ts} +5 -4
  85. package/src/getYOffsetsForPotentiallyCircularRanges.test.ts +17 -0
  86. package/src/{getYOffsetsForPotentiallyCircularRanges.js → getYOffsetsForPotentiallyCircularRanges.ts} +5 -4
  87. package/src/{getZeroedRangeOverlaps.test.js → getZeroedRangeOverlaps.test.ts} +5 -15
  88. package/src/{getZeroedRangeOverlaps.js → getZeroedRangeOverlaps.ts} +4 -3
  89. package/src/{index.test.js → index.test.ts} +11 -3
  90. package/src/{index.js → index.ts} +1 -0
  91. package/src/invertRange.ts +25 -0
  92. package/src/{isPositionCloserToRangeStartThanRangeEnd.js → isPositionCloserToRangeStartThanRangeEnd.ts} +5 -3
  93. package/src/{isPositionWithinRange.js → isPositionWithinRange.ts} +14 -5
  94. package/src/{isRangeOrPositionWithinRange.js → isRangeOrPositionWithinRange.ts} +11 -6
  95. package/src/{isRangeWithinRange.js → isRangeWithinRange.ts} +5 -3
  96. package/src/loopEachPositionInRange.ts +11 -0
  97. package/src/{modulatePositionByRange.js → modulatePositionByRange.ts} +6 -1
  98. package/src/{modulateRangeBySequenceLength.js → modulateRangeBySequenceLength.ts} +3 -1
  99. package/src/{normalizePositionByRangeLength.js → normalizePositionByRangeLength.ts} +7 -7
  100. package/src/{normalizePositionByRangeLength1Based.js → normalizePositionByRangeLength1Based.ts} +3 -2
  101. package/src/{normalizeRange.js → normalizeRange.ts} +2 -1
  102. package/src/provideInclusiveOptions.ts +79 -0
  103. package/src/{reversePositionInRange.js → reversePositionInRange.ts} +4 -4
  104. package/src/{splitRangeIntoTwoPartsIfItIsCircular.js → splitRangeIntoTwoPartsIfItIsCircular.ts} +5 -4
  105. package/src/{translateRange.js → translateRange.ts} +5 -3
  106. package/src/{trimAnnStartEndToFitSeqLength.js → trimAnnStartEndToFitSeqLength.ts} +2 -2
  107. package/src/{trimNonCicularRangeByAnotherNonCircularRange.js → trimNonCicularRangeByAnotherNonCircularRange.ts} +6 -4
  108. package/src/{trimNumberToFitWithin0ToAnotherNumber.js → trimNumberToFitWithin0ToAnotherNumber.ts} +3 -4
  109. package/src/{trimRangeByAnotherRange.js → trimRangeByAnotherRange.ts} +9 -9
  110. package/src/types.ts +12 -0
  111. package/src/{zeroSubrangeByContainerRange.js → zeroSubrangeByContainerRange.ts} +10 -8
  112. package/translateRange.d.ts +5 -1
  113. package/trimAnnStartEndToFitSeqLength.d.ts +1 -1
  114. package/trimNonCicularRangeByAnotherNonCircularRange.d.ts +2 -4
  115. package/trimNumberToFitWithin0ToAnotherNumber.d.ts +1 -1
  116. package/trimRangeByAnotherRange.d.ts +2 -1
  117. package/types.d.ts +12 -0
  118. package/zeroSubrangeByContainerRange.d.ts +2 -1
  119. package/adjustRangeToDeletionOfAnotherRange.test.d.ts +0 -1
  120. package/adjustRangeToInsert.test.d.ts +0 -1
  121. package/adjustRangeToRotation.test.d.ts +0 -1
  122. package/checkIfNonCircularRangesOverlap.test.d.ts +0 -1
  123. package/checkIfPotentiallyCircularRangesOverlap.test.d.ts +0 -1
  124. package/collapseOverlapsGeneratedFromRangeComparisonIfPossible.test.d.ts +0 -1
  125. package/convertRangeIndices.test.d.ts +0 -1
  126. package/expandOrContractRangeByLength.test.d.ts +0 -1
  127. package/flipContainedRange.test.d.ts +0 -1
  128. package/generateRandomRange.test.d.ts +0 -1
  129. package/getAnnotationRangeType.test.d.ts +0 -1
  130. package/getEachPositionInRangeAsArray.test.d.ts +0 -1
  131. package/getLengthOfOverlappingRegionsBetweenTwoRanges.test.d.ts +0 -1
  132. package/getMiddleOfRange.test.d.ts +0 -1
  133. package/getOverlapsOfPotentiallyCircularRanges.test.d.ts +0 -1
  134. package/getRangeAngles.test.d.ts +0 -1
  135. package/getRangeLength.test.d.ts +0 -1
  136. package/getSequenceWithinRange.test.d.ts +0 -1
  137. package/getShortestDistanceBetweenTwoPositions.test.d.ts +0 -1
  138. package/getYOffsetsForPotentiallyCircularRanges.test.d.ts +0 -1
  139. package/getZeroedRangeOverlaps.test.d.ts +0 -1
  140. package/index.test.d.ts +0 -1
  141. package/invertRange.test.d.ts +0 -1
  142. package/isPositionCloserToRangeStartThanRangeEnd.test.d.ts +0 -1
  143. package/isRangeOrPositionWithinRange.test.d.ts +0 -1
  144. package/modulatePositionByRange.test.d.ts +0 -1
  145. package/modulateRangeBySequenceLength.test.d.ts +0 -1
  146. package/normalizePositionByRangeLength.test.d.ts +0 -1
  147. package/normalizePositionByRangeLength1Based.test.d.ts +0 -1
  148. package/normalizeRange.test.d.ts +0 -1
  149. package/splitRangeIntoTwoPartsIfItIsCircular.test.d.ts +0 -1
  150. package/src/adjustRangeToRotation.js +0 -23
  151. package/src/doesRangeSpanEntireSequence.js +0 -7
  152. package/src/doesRangeSpanOrigin.js +0 -3
  153. package/src/getSequenceWithinRange.js +0 -17
  154. package/src/getYOffsetsForPotentiallyCircularRanges.test.js +0 -42
  155. package/src/invertRange.js +0 -21
  156. package/src/loopEachPositionInRange.js +0 -5
  157. package/src/provideInclusiveOptions.js +0 -39
  158. package/translateRange.test.d.ts +0 -1
  159. package/trimAnnStartEndToFitSeqLength.test.d.ts +0 -1
  160. package/trimRangeByAnotherRange.test.d.ts +0 -1
  161. package/zeroSubrangeByContainerRange.test.d.ts +0 -1
  162. /package/src/{getRangeLength.test.js → getRangeLength.test.ts} +0 -0
  163. /package/src/{getSequenceWithinRange.test.js → getSequenceWithinRange.test.ts} +0 -0
  164. /package/src/{getShortestDistanceBetweenTwoPositions.test.js → getShortestDistanceBetweenTwoPositions.test.ts} +0 -0
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
package/index.test.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,23 +0,0 @@
1
- import { assign } from "lodash-es";
2
-
3
- import { identity } from "lodash-es";
4
-
5
- export default function adjustRangeToRotation(
6
- rangeToBeAdjusted,
7
- rotateTo = 0,
8
- rangeLength
9
- ) {
10
- // ac.throw([ac.range, ac.posInt, ac.posInt], arguments);
11
- const mod = rangeLength ? modulo : identity;
12
-
13
- const newRange = assign({}, rangeToBeAdjusted, {
14
- start: mod(rangeToBeAdjusted.start - (rotateTo || 0), rangeLength),
15
- end: mod(rangeToBeAdjusted.end - (rotateTo || 0), rangeLength)
16
- });
17
-
18
- return newRange;
19
- }
20
-
21
- function modulo(n, m) {
22
- return ((n % m) + m) % m;
23
- }
@@ -1,7 +0,0 @@
1
- import getRangeLength from "./getRangeLength";
2
-
3
- export default function doesRangeSpanEntireSequence(range, sequenceLength) {
4
- if (getRangeLength(range) === sequenceLength) {
5
- return true;
6
- }
7
- }
@@ -1,3 +0,0 @@
1
- export default function doesRangeSpanOrigin(range) {
2
- return range.start > range.end;
3
- }
@@ -1,17 +0,0 @@
1
- //
2
- export default function getSequenceWithinRange(range, sequence) {
3
- // ac.throw([ac.range, ac.oneOfType([ac.array, ac.string])], arguments);
4
- if (range.start < 0 || range.end < 0) return "";
5
- if (range.start > range.end) {
6
- //circular range
7
- let subSequence = sequence.slice(range.start, sequence.length);
8
- if (typeof subSequence === "string") {
9
- subSequence += sequence.slice(0, range.end + 1);
10
- } else {
11
- subSequence = subSequence.concat(sequence.slice(0, range.end + 1));
12
- }
13
- return subSequence;
14
- } else {
15
- return sequence.slice(range.start, range.end + 1);
16
- }
17
- }
@@ -1,42 +0,0 @@
1
- import { expect } from "chai";
2
- import getYOffsetsForPotentiallyCircularRanges from "./getYOffsetsForPotentiallyCircularRanges.js";
3
- describe("getYOffsetsForPotentiallyCircularRanges", function () {
4
- it("returns correct yOffset for overlapping ranges", function () {
5
- expect(
6
- getYOffsetsForPotentiallyCircularRanges([
7
- {
8
- start: 5,
9
- end: 100
10
- },
11
- {
12
- start: 50,
13
- end: 50
14
- }
15
- ])
16
- ).to.deep.equal({ yOffsets: [0, 1], maxYOffset: 1 });
17
- expect(
18
- getYOffsetsForPotentiallyCircularRanges([
19
- {
20
- start: 5,
21
- end: 100
22
- },
23
- {
24
- start: 50,
25
- end: 50
26
- },
27
- {
28
- start: 50,
29
- end: 50
30
- },
31
- {
32
- start: 150,
33
- end: 4
34
- },
35
- {
36
- start: 150,
37
- end: 150
38
- }
39
- ])
40
- ).to.deep.equal({ yOffsets: [0, 1, 2, 0, 1], maxYOffset: 2 });
41
- });
42
- });
@@ -1,21 +0,0 @@
1
- import normalizePositionByRangeLength from "./normalizePositionByRangeLength";
2
- import provideInclusiveOptions from "./provideInclusiveOptions";
3
- export default provideInclusiveOptions(invertRange);
4
-
5
- function invertRange(rangeOrCaret, rangeMax) {
6
- if (rangeOrCaret.start > -1) {
7
- const start = rangeOrCaret.end + 1;
8
- const end = rangeOrCaret.start - 1;
9
- return {
10
- start: normalizePositionByRangeLength(start, rangeMax, false),
11
- end: normalizePositionByRangeLength(end, rangeMax, false)
12
- };
13
- } else {
14
- if (rangeOrCaret > -1) {
15
- return {
16
- start: normalizePositionByRangeLength(rangeOrCaret, rangeMax, false),
17
- end: normalizePositionByRangeLength(rangeOrCaret - 1, rangeMax, false)
18
- };
19
- }
20
- }
21
- }
@@ -1,5 +0,0 @@
1
- import getEachPositionInRangeAsArray from "./getEachPositionInRangeAsArray";
2
-
3
- export default function loopEachPositionInRange(range, rangeMax, func) {
4
- getEachPositionInRangeAsArray(range, rangeMax).map(func);
5
- }
@@ -1,39 +0,0 @@
1
- import { assign } from "lodash-es";
2
-
3
- export default function provideInclusiveOptions(funToWrap) {
4
- return function () {
5
- const args = Array.prototype.slice.call(arguments);
6
- const options = args[args.length - 1];
7
- if (
8
- options &&
9
- (options.inclusive1BasedEnd || options.inclusive1BasedStart)
10
- ) {
11
- args.forEach(function (arg, index) {
12
- if (arg && arg.start > -1 && options.inclusive1BasedStart) {
13
- args[index] = assign(arg, { start: arg.start - 1 });
14
- }
15
- if (arg && arg.end > -1 && options.inclusive1BasedEnd) {
16
- args[index] = assign(arg, { end: arg.end - 1 });
17
- }
18
- });
19
- }
20
- let returnVal = funToWrap.apply(this, args);
21
- if (
22
- returnVal &&
23
- returnVal.start > -1 &&
24
- options &&
25
- options.inclusive1BasedStart
26
- ) {
27
- returnVal = assign(returnVal, { start: returnVal.start + 1 });
28
- }
29
- if (
30
- returnVal &&
31
- returnVal.end > -1 &&
32
- options &&
33
- options.inclusive1BasedEnd
34
- ) {
35
- returnVal = assign(returnVal, { end: returnVal.end + 1 });
36
- }
37
- return returnVal;
38
- };
39
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};