@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
package/README.md CHANGED
@@ -69,16 +69,6 @@ Tests will automatically be run pre-commit.
69
69
 
70
70
  ## Updating this repo:
71
71
 
72
- ### Teselagen collaborators:
73
-
74
- Commit and push all changes
75
- Sign into npm using the teselagen npm account (npm whoami)
76
-
77
- ```
78
- npm version patch|minor|major
79
- npm publish
80
- ```
81
-
82
72
  ### Outside collaborators:
83
73
 
84
74
  fork and pull request please :)
@@ -0,0 +1,7 @@
1
+ export interface RangeAngles {
2
+ startAngle: number;
3
+ totalAngle: number;
4
+ endAngle: number;
5
+ centerAngle: number;
6
+ locationAngles?: RangeAngles[];
7
+ }
@@ -1 +1,2 @@
1
- export default function adjustRangeToDeletionOfAnotherRange(rangeToBeAdjusted: any, anotherRange: any, maxLength: any): object | null;
1
+ import { Range } from './types';
2
+ export default function adjustRangeToDeletionOfAnotherRange(rangeToBeAdjusted: Range, anotherRange: Range, maxLength: number): Range | null;
@@ -1 +1,2 @@
1
- export default function adjustRangeToInsert(rangeToBeAdjusted: any, insertStart: any, insertLength: any): any;
1
+ import { Range } from './types';
2
+ export default function adjustRangeToInsert(rangeToBeAdjusted: Range, insertStart: number, insertLength: number): Range;
@@ -1 +1,2 @@
1
- export default function adjustRangeToRotation(rangeToBeAdjusted: any, rotateTo: number | undefined, rangeLength: any): any;
1
+ import { Range } from './types';
2
+ export default function adjustRangeToRotation<T extends Range>(rangeToBeAdjusted: T, rotateTo?: number, rangeLength?: number): T;
@@ -1 +1,2 @@
1
- export default function checkIfNonCircularRangesOverlap(range: any, comparisonRange: any): boolean;
1
+ import { Range } from './types';
2
+ export default function checkIfNonCircularRangesOverlap(range: Range, comparisonRange: Range): boolean;
@@ -1 +1,2 @@
1
- export default function checkIfPotentiallyCircularRangesOverlap(range: any, comparisonRange: any): boolean;
1
+ import { Range } from './types';
2
+ export default function checkIfPotentiallyCircularRangesOverlap(range: Range, comparisonRange: Range): boolean;
@@ -1 +1,2 @@
1
- export default function collapseOverlapsGeneratedFromRangeComparisonIfPossible(overlaps: any, sequenceLength: any, optionalOriginalRange: any): any;
1
+ import { Range } from './types';
2
+ export default function collapseOverlapsGeneratedFromRangeComparisonIfPossible(overlaps: Range[], sequenceLength: number, optionalOriginalRange?: Range): Range[];
@@ -1 +1,10 @@
1
- export default function convertRangeIndices(range: any, inputType: any, outputType: any): any;
1
+ import { Range } from './types';
2
+ interface RangeIndicesOptions {
3
+ inclusive1BasedStart?: boolean;
4
+ inclusive1BasedEnd?: boolean;
5
+ }
6
+ export default function convertRangeIndices(range: Range, inputType?: RangeIndicesOptions, outputType?: RangeIndicesOptions): Range & {
7
+ start: number;
8
+ end: number;
9
+ };
10
+ export {};
@@ -1 +1,5 @@
1
- export default function convertRangeTo0Based(range: any): any;
1
+ import { Range } from './types';
2
+ export default function convertRangeTo0Based(range: Range): Range & {
3
+ start: number;
4
+ end: number;
5
+ };
@@ -1 +1,5 @@
1
- export default function convertRangeTo1Based(range: any): any;
1
+ import { Range } from './types';
2
+ export default function convertRangeTo1Based(range: Range): Range & {
3
+ start: number;
4
+ end: number;
5
+ };
@@ -1 +1,2 @@
1
- export default function doesRangeSpanEntireSequence(range: any, sequenceLength: any): true | undefined;
1
+ import { Range } from './types';
2
+ export default function doesRangeSpanEntireSequence(range: Range, sequenceLength: number): boolean;
@@ -1 +1,2 @@
1
- export default function doesRangeSpanOrigin(range: any): boolean;
1
+ import { Range } from './types';
2
+ export default function doesRangeSpanOrigin(range: Range): boolean;
@@ -1,4 +1,5 @@
1
- export default function expandOrContractCircularRangeToPosition(range: any, position: any, maxLength: any): {
2
- newRange: any;
1
+ import { Range } from './types';
2
+ export default function expandOrContractCircularRangeToPosition(range: Range, position: number, maxLength: number): {
3
+ newRange: Range;
3
4
  endMoved: boolean;
4
5
  };
@@ -1,4 +1,5 @@
1
- export default function expandOrContractNonCircularRangeToPosition(range: any, position: any): {
2
- newRange: any;
1
+ import { Range } from './types';
2
+ export default function expandOrContractNonCircularRangeToPosition(range: Range, position: number): {
3
+ newRange: Range;
3
4
  endMoved: boolean;
4
5
  };
@@ -1 +1,5 @@
1
- export default function expandOrContractRangeByLength(range: any, shiftBy: any, shiftStart: any, sequenceLength: any): any;
1
+ import { Range } from './types';
2
+ export default function expandOrContractRangeByLength(range: Range, shiftBy: number, shiftStart: boolean, sequenceLength: number): Range & {
3
+ start: number;
4
+ end: number;
5
+ };
@@ -1,4 +1,5 @@
1
- export default function expandOrContractRangeToPosition(range: any, position: any, maxLength: any): {
2
- newRange: any;
1
+ import { Range } from './types';
2
+ export default function expandOrContractRangeToPosition(range: Range, position: number, maxLength: number): {
3
+ newRange: Range;
3
4
  endMoved: boolean;
4
5
  };
@@ -1 +1,5 @@
1
- export default function flipRelativeRange(innerRange: any, outerRange: any, sequenceLength: any): any;
1
+ import { Range } from './types';
2
+ export default function flipRelativeRange(innerRange: Range, outerRange: Range, sequenceLength: number): Range & {
3
+ start: number;
4
+ end: number;
5
+ };
@@ -1,4 +1,4 @@
1
- export default function generateRandomRange(minStart: any, maxEnd: any, maxLength: any): {
2
- start: any;
3
- end: any;
1
+ export default function generateRandomRange(minStart: number, maxEnd: number, maxLength: number): {
2
+ start: number;
3
+ end: number;
4
4
  };
@@ -1 +1,2 @@
1
- export default function getAnnotationRangeType(annotationRange: any, enclosingRangeType: any, forward: any): "end" | "beginningAndEnd" | "start" | "middle";
1
+ import { Range } from './types';
2
+ export default function getAnnotationRangeType(annotationRange: Range, enclosingRangeType: Range, forward: boolean): "end" | "beginningAndEnd" | "start" | "middle";
@@ -1 +1,2 @@
1
- export default function getEachPositionInRangeAsArray(range: any, rangeMax: any): any[];
1
+ import { Range } from './types';
2
+ export default function getEachPositionInRangeAsArray(range: Range, rangeMax: number): number[];
@@ -1 +1,2 @@
1
- export default function getLengthOfOverlappingRegionsBetweenTwoRanges(rangeA: any, rangeB: any, maxLength: any): any;
1
+ import { Range } from './types';
2
+ export default function getLengthOfOverlappingRegionsBetweenTwoRanges(rangeA: Range, rangeB: Range, maxLength: number): number;
@@ -1 +1,2 @@
1
- export default function getMiddleOfRange(range: any, rangeMax: any): any;
1
+ import { Range } from './types';
2
+ export default function getMiddleOfRange(range: Range, rangeMax: number): number;
@@ -1,4 +1,5 @@
1
- export default function getOverlapOfNonCircularRanges(rangeA: any, rangeB: any): {
2
- start: any;
3
- end: any;
4
- } | undefined;
1
+ import { Range } from './types';
2
+ export default function getOverlapOfNonCircularRanges(rangeA: Range, rangeB: Range): {
3
+ start: number;
4
+ end: number;
5
+ } | null;
@@ -1 +1,2 @@
1
- export default function getOverlapsOfPotentiallyCircularRanges(rangeA: any, rangeB: any, maxRangeLength: any, joinIfPossible: any): any[];
1
+ import { Range } from './types';
2
+ export default function getOverlapsOfPotentiallyCircularRanges(rangeA: Range, rangeB: Range, maxRangeLength: number, joinIfPossible?: boolean): Range[];
@@ -1 +1 @@
1
- export default function getPositionFromAngle(angle: any, rangeMax: any, isInBetweenPositions: any): number;
1
+ export default function getPositionFromAngle(angle: number, rangeMax: number, isInBetweenPositions?: boolean): number;
@@ -1,7 +1,3 @@
1
- export default function getRangeAngles(range: any, rangeMax: any): {
2
- startAngle: number;
3
- totalAngle: number;
4
- endAngle: number;
5
- centerAngle: number;
6
- locationAngles: any;
7
- };
1
+ import { Range } from './types';
2
+ import { RangeAngles } from './RangeAngles';
3
+ export default function getRangeAngles(range: Range, rangeMax: number): RangeAngles;
@@ -1,2 +1,6 @@
1
- declare const _default: (...args: any[]) => any;
1
+ import { Range } from './types';
2
+ declare const _default: (range: Range, rangeMax: number, options?: {
3
+ inclusive1BasedEnd?: boolean;
4
+ inclusive1BasedStart?: boolean;
5
+ } | undefined) => number;
2
6
  export default _default;
@@ -1 +1,2 @@
1
- export default function getRangesBetweenTwoRanges(range1: any, range2: any): any[];
1
+ import { Range } from './types';
2
+ export default function getRangesBetweenTwoRanges(range1: Range, range2: Range): Range[];
@@ -1 +1,3 @@
1
- export default function getSequenceWithinRange(range: any, sequence: any): any;
1
+ import { Range } from './types';
2
+ export default function getSequenceWithinRange(range: Range, sequence: string): string;
3
+ export default function getSequenceWithinRange<T>(range: Range, sequence: T[]): T[];
@@ -1 +1 @@
1
- export default function getShortestDistanceBetweenTwoPositions(position1: any, position2: any, sequenceLength: any): number;
1
+ export default function getShortestDistanceBetweenTwoPositions(position1: number, position2: number, sequenceLength: number): number;
@@ -1 +1,2 @@
1
- export default function getYOffsetForPotentiallyCircularRange(range: any, YOffsetLevelsWithRanges: any, assignYOffsetToRange: any): any;
1
+ import { Range } from './types';
2
+ export default function getYOffsetForPotentiallyCircularRange(range: Range, YOffsetLevelsWithRanges: Range[][], assignYOffsetToRange: boolean): number;
@@ -1,4 +1,5 @@
1
- export default function getYOffsetsForPotentiallyCircularRanges(ranges: any, assignYOffsetToRange: any): {
2
- yOffsets: any[];
1
+ import { Range } from './types';
2
+ export default function getYOffsetsForPotentiallyCircularRanges(ranges: Range[], assignYOffsetToRange: boolean): {
3
+ yOffsets: number[];
3
4
  maxYOffset: number;
4
5
  };
@@ -1 +1,2 @@
1
- export default function getZeroedRangeOverlaps(annotation: any, selection: any, sequenceLength: any): any;
1
+ import { Range } from './types';
2
+ export default function getZeroedRangeOverlaps(annotation: Range, selection: Range, sequenceLength: number): Range[];
package/index.cjs CHANGED
@@ -1566,9 +1566,10 @@ function getOverlapOfNonCircularRanges(rangeA, rangeB) {
1566
1566
  }
1567
1567
  }
1568
1568
  }
1569
+ return null;
1569
1570
  }
1570
1571
  __name(getOverlapOfNonCircularRanges, "getOverlapOfNonCircularRanges");
1571
- function getOverlapsOfPotentiallyCircularRanges(rangeA, rangeB, maxRangeLength, joinIfPossible) {
1572
+ function getOverlapsOfPotentiallyCircularRanges(rangeA, rangeB, maxRangeLength, joinIfPossible = false) {
1572
1573
  const normalizedRangeA = splitRangeIntoTwoPartsIfItIsCircular(
1573
1574
  rangeA,
1574
1575
  maxRangeLength
@@ -1599,8 +1600,11 @@ function getOverlapsOfPotentiallyCircularRanges(rangeA, rangeB, maxRangeLength,
1599
1600
  joinedOverlap.start = o.start;
1600
1601
  return [];
1601
1602
  }
1603
+ return [o];
1602
1604
  });
1603
- overlaps.push(joinedOverlap);
1605
+ if (Object.keys(joinedOverlap).length > 0) {
1606
+ overlaps.push(joinedOverlap);
1607
+ }
1604
1608
  }
1605
1609
  return overlaps;
1606
1610
  }
@@ -1673,10 +1677,7 @@ function trimRangeByAnotherRange(rangeToBeTrimmed, trimmingRange, sequenceLength
1673
1677
  if (!overlaps.length) {
1674
1678
  return rangeToBeTrimmed;
1675
1679
  }
1676
- const splitRangesToBeTrimmed = splitRangeIntoTwoPartsIfItIsCircular(
1677
- rangeToBeTrimmed,
1678
- sequenceLength
1679
- );
1680
+ const splitRangesToBeTrimmed = splitRangeIntoTwoPartsIfItIsCircular(rangeToBeTrimmed, sequenceLength);
1680
1681
  splitRangesToBeTrimmed.forEach(function(nonCircularRangeToBeTrimmed, index) {
1681
1682
  overlaps.forEach(function(overlap) {
1682
1683
  if (nonCircularRangeToBeTrimmed) {
@@ -1719,6 +1720,7 @@ function trimRangeByAnotherRange(rangeToBeTrimmed, trimmingRange, sequenceLength
1719
1720
  end: outputTrimmedRange.end
1720
1721
  });
1721
1722
  }
1723
+ return void 0;
1722
1724
  }
1723
1725
  __name(trimRangeByAnotherRange, "trimRangeByAnotherRange");
1724
1726
  function adjustRangeToDeletionOfAnotherRange(rangeToBeAdjusted, anotherRange, maxLength) {
@@ -1865,11 +1867,10 @@ function collapseOverlapsGeneratedFromRangeComparisonIfPossible(overlaps, sequen
1865
1867
  }
1866
1868
  }
1867
1869
  }
1870
+ return overlaps;
1868
1871
  }
1869
1872
  __name(collapseOverlapsGeneratedFromRangeComparisonIfPossible, "collapseOverlapsGeneratedFromRangeComparisonIfPossible");
1870
- function convertRangeIndices(range, inputType, outputType) {
1871
- inputType = inputType || {};
1872
- outputType = outputType || {};
1873
+ function convertRangeIndices(range, inputType = {}, outputType = {}) {
1873
1874
  return assign({}, range, {
1874
1875
  start: Number(range.start) + (inputType.inclusive1BasedStart ? outputType.inclusive1BasedStart ? 0 : -1 : outputType.inclusive1BasedStart ? 1 : 0),
1875
1876
  end: Number(range.end) + (inputType.inclusive1BasedEnd ? outputType.inclusive1BasedEnd ? 0 : -1 : outputType.inclusive1BasedEnd ? 1 : 0)
@@ -1892,25 +1893,32 @@ function convertRangeTo1Based(range) {
1892
1893
  }
1893
1894
  __name(convertRangeTo1Based, "convertRangeTo1Based");
1894
1895
  function provideInclusiveOptions(funToWrap) {
1895
- return function() {
1896
- const args = Array.prototype.slice.call(arguments);
1896
+ return function(...args) {
1897
1897
  const options = args[args.length - 1];
1898
1898
  if (options && (options.inclusive1BasedEnd || options.inclusive1BasedStart)) {
1899
1899
  args.forEach(function(arg, index) {
1900
- if (arg && arg.start > -1 && options.inclusive1BasedStart) {
1901
- args[index] = assign(arg, { start: arg.start - 1 });
1900
+ const potentialRange = arg;
1901
+ if (potentialRange && typeof potentialRange.start === "number" && potentialRange.start > -1 && options.inclusive1BasedStart) {
1902
+ args[index] = assign(potentialRange, {
1903
+ start: potentialRange.start - 1
1904
+ });
1902
1905
  }
1903
- if (arg && arg.end > -1 && options.inclusive1BasedEnd) {
1904
- args[index] = assign(arg, { end: arg.end - 1 });
1906
+ if (potentialRange && typeof potentialRange.end === "number" && potentialRange.end > -1 && options.inclusive1BasedEnd) {
1907
+ args[index] = assign(potentialRange, {
1908
+ end: potentialRange.end - 1
1909
+ });
1905
1910
  }
1906
1911
  });
1907
1912
  }
1908
1913
  let returnVal = funToWrap.apply(this, args);
1909
- if (returnVal && returnVal.start > -1 && options && options.inclusive1BasedStart) {
1910
- returnVal = assign(returnVal, { start: returnVal.start + 1 });
1914
+ const potentialReturn = returnVal;
1915
+ if (potentialReturn && typeof potentialReturn.start === "number" && potentialReturn.start > -1 && options && options.inclusive1BasedStart) {
1916
+ returnVal = assign(potentialReturn, {
1917
+ start: potentialReturn.start + 1
1918
+ });
1911
1919
  }
1912
- if (returnVal && returnVal.end > -1 && options && options.inclusive1BasedEnd) {
1913
- returnVal = assign(returnVal, { end: returnVal.end + 1 });
1920
+ if (potentialReturn && typeof potentialReturn.end === "number" && potentialReturn.end > -1 && options && options.inclusive1BasedEnd) {
1921
+ returnVal = assign(potentialReturn, { end: potentialReturn.end + 1 });
1914
1922
  }
1915
1923
  return returnVal;
1916
1924
  };
@@ -1931,9 +1939,10 @@ function getRangeLength$1(range, rangeMax) {
1931
1939
  }
1932
1940
  __name(getRangeLength$1, "getRangeLength$1");
1933
1941
  function doesRangeSpanEntireSequence(range, sequenceLength) {
1934
- if (getRangeLength(range) === sequenceLength) {
1942
+ if (getRangeLength(range, sequenceLength) === sequenceLength) {
1935
1943
  return true;
1936
1944
  }
1945
+ return false;
1937
1946
  }
1938
1947
  __name(doesRangeSpanEntireSequence, "doesRangeSpanEntireSequence");
1939
1948
  function isRangeWithinRange(rangeToCheck, containingRange, maxLength) {
@@ -1967,6 +1976,9 @@ function isRangeOrPositionWithinRange(rangeOrPositionToCheck, containingRange, m
1967
1976
  return false;
1968
1977
  }
1969
1978
  if (isObject(rangeOrPositionToCheck)) {
1979
+ if (typeof rangeOrPositionToCheck.start !== "number") {
1980
+ return false;
1981
+ }
1970
1982
  return isRangeWithinRange(
1971
1983
  rangeOrPositionToCheck,
1972
1984
  containingRange,
@@ -1987,7 +1999,7 @@ function doesRangeSpanOrigin(range) {
1987
1999
  return range.start > range.end;
1988
2000
  }
1989
2001
  __name(doesRangeSpanOrigin, "doesRangeSpanOrigin");
1990
- function normalizePositionByRangeLength(pPosition, sequenceLength, isInBetweenPositions) {
2002
+ function normalizePositionByRangeLength(pPosition, sequenceLength, isInBetweenPositions = false) {
1991
2003
  let position = pPosition;
1992
2004
  if (position < 0) {
1993
2005
  position += sequenceLength;
@@ -2079,10 +2091,7 @@ function expandOrContractRangeToPosition(range, position, maxLength) {
2079
2091
  if (range.start > range.end) {
2080
2092
  return expandOrContractCircularRangeToPosition(range, position, maxLength);
2081
2093
  } else {
2082
- return expandOrContractNonCircularRangeToPosition(
2083
- range,
2084
- position
2085
- );
2094
+ return expandOrContractNonCircularRangeToPosition(range, position);
2086
2095
  }
2087
2096
  }
2088
2097
  __name(expandOrContractRangeToPosition, "expandOrContractRangeToPosition");
@@ -2340,15 +2349,19 @@ function getRangesBetweenTwoRanges(range1, range2) {
2340
2349
  }
2341
2350
  __name(getRangesBetweenTwoRanges, "getRangesBetweenTwoRanges");
2342
2351
  function getSequenceWithinRange(range, sequence) {
2343
- if (range.start < 0 || range.end < 0) return "";
2352
+ if (range.start < 0 || range.end < 0) {
2353
+ if (typeof sequence === "string") return "";
2354
+ return [];
2355
+ }
2344
2356
  if (range.start > range.end) {
2345
- let subSequence = sequence.slice(range.start, sequence.length);
2357
+ const subSequence = sequence.slice(range.start, sequence.length);
2346
2358
  if (typeof subSequence === "string") {
2347
- subSequence += sequence.slice(0, range.end + 1);
2359
+ return subSequence + sequence.slice(0, range.end + 1);
2348
2360
  } else {
2349
- subSequence = subSequence.concat(sequence.slice(0, range.end + 1));
2361
+ return subSequence.concat(
2362
+ sequence.slice(0, range.end + 1)
2363
+ );
2350
2364
  }
2351
- return subSequence;
2352
2365
  } else {
2353
2366
  return sequence.slice(range.start, range.end + 1);
2354
2367
  }
@@ -2366,7 +2379,7 @@ function getShortestDistanceBetweenTwoPositions(position1, position2, sequenceLe
2366
2379
  }
2367
2380
  __name(getShortestDistanceBetweenTwoPositions, "getShortestDistanceBetweenTwoPositions");
2368
2381
  function getYOffsetForPotentiallyCircularRange(range, YOffsetLevelsWithRanges, assignYOffsetToRange) {
2369
- let yOffset = [];
2382
+ let yOffset = 0;
2370
2383
  const openYOffsetFound = YOffsetLevelsWithRanges.some(
2371
2384
  function(rangesAlreadyAddedToYOffset, index) {
2372
2385
  const rangeBlocked = rangesAlreadyAddedToYOffset.some(
@@ -2416,21 +2429,20 @@ function getYOffsetsForPotentiallyCircularRanges(ranges, assignYOffsetToRange) {
2416
2429
  __name(getYOffsetsForPotentiallyCircularRanges, "getYOffsetsForPotentiallyCircularRanges");
2417
2430
  const invertRange = provideInclusiveOptions(invertRange$1);
2418
2431
  function invertRange$1(rangeOrCaret, rangeMax) {
2419
- if (rangeOrCaret.start > -1) {
2432
+ if (typeof rangeOrCaret !== "number" && rangeOrCaret.start > -1) {
2420
2433
  const start = rangeOrCaret.end + 1;
2421
2434
  const end = rangeOrCaret.start - 1;
2422
2435
  return {
2423
2436
  start: normalizePositionByRangeLength(start, rangeMax, false),
2424
2437
  end: normalizePositionByRangeLength(end, rangeMax, false)
2425
2438
  };
2426
- } else {
2427
- if (rangeOrCaret > -1) {
2428
- return {
2429
- start: normalizePositionByRangeLength(rangeOrCaret, rangeMax, false),
2430
- end: normalizePositionByRangeLength(rangeOrCaret - 1, rangeMax, false)
2431
- };
2432
- }
2439
+ } else if (typeof rangeOrCaret === "number" && rangeOrCaret > -1) {
2440
+ return {
2441
+ start: normalizePositionByRangeLength(rangeOrCaret, rangeMax, false),
2442
+ end: normalizePositionByRangeLength(rangeOrCaret - 1, rangeMax, false)
2443
+ };
2433
2444
  }
2445
+ return void 0;
2434
2446
  }
2435
2447
  __name(invertRange$1, "invertRange$1");
2436
2448
  function isPositionCloserToRangeStartThanRangeEnd(position, range, maxLength) {
@@ -2498,9 +2510,10 @@ function zeroSubrangeByContainerRange(subRange, containerRange, sequenceLength)
2498
2510
  "subRange must be fully contained by containerRange! Otherwise this function does not make sense"
2499
2511
  );
2500
2512
  }
2501
- const newSubrange = {};
2502
- newSubrange.start = subRange.start - containerRange.start;
2503
- newSubrange.end = subRange.end - containerRange.start;
2513
+ const newSubrange = {
2514
+ start: subRange.start - containerRange.start,
2515
+ end: subRange.end - containerRange.start
2516
+ };
2504
2517
  if (newSubrange.start < 0) {
2505
2518
  newSubrange.start += sequenceLength;
2506
2519
  }
@@ -2511,10 +2524,10 @@ function zeroSubrangeByContainerRange(subRange, containerRange, sequenceLength)
2511
2524
  }
2512
2525
  __name(zeroSubrangeByContainerRange, "zeroSubrangeByContainerRange");
2513
2526
  function adjustRangeToRotation(rangeToBeAdjusted, rotateTo = 0, rangeLength) {
2514
- const mod = rangeLength ? modulo : identity;
2527
+ const mod = /* @__PURE__ */ __name((n) => rangeLength ? modulo(n, rangeLength) : n, "mod");
2515
2528
  const newRange = assign({}, rangeToBeAdjusted, {
2516
- start: mod(rangeToBeAdjusted.start - (rotateTo || 0), rangeLength),
2517
- end: mod(rangeToBeAdjusted.end - (rotateTo || 0), rangeLength)
2529
+ start: mod(rangeToBeAdjusted.start - (rotateTo || 0)),
2530
+ end: mod(rangeToBeAdjusted.end - (rotateTo || 0))
2518
2531
  });
2519
2532
  return newRange;
2520
2533
  }
package/index.d.ts CHANGED
@@ -50,3 +50,4 @@ export { default as zeroSubrangeByContainerRange } from './zeroSubrangeByContain
50
50
  export { default as adjustRangeToRotation } from './adjustRangeToRotation';
51
51
  export { default as getZeroedRangeOverlaps } from './getZeroedRangeOverlaps';
52
52
  export { default as trimAnnStartEndToFitSeqLength } from './trimAnnStartEndToFitSeqLength';
53
+ export * from './types';