mirror of
https://github.com/overleaf/overleaf.git
synced 2024-12-04 23:15:57 -05:00
25 lines
606 B
TypeScript
25 lines
606 B
TypeScript
|
export class Range {
|
||
|
from: number
|
||
|
to: number
|
||
|
|
||
|
constructor(from: number, to: number) {
|
||
|
this.from = from
|
||
|
this.to = to
|
||
|
}
|
||
|
|
||
|
contains(pos: number, allowBoundaries = true) {
|
||
|
return allowBoundaries
|
||
|
? pos >= this.from && pos <= this.to
|
||
|
: pos > this.from && pos < this.to
|
||
|
}
|
||
|
|
||
|
// Ranges that touch but don't overlap are not considered to intersect
|
||
|
intersects(range: Range) {
|
||
|
return this.contains(range.from, false) || this.contains(range.to, false)
|
||
|
}
|
||
|
|
||
|
touchesOrIntersects(range: Range) {
|
||
|
return this.contains(range.from, true) || this.contains(range.to, true)
|
||
|
}
|
||
|
}
|