overleaf/services/web/frontend/js/features/source-editor/utils/range.ts
Tim Down 7f37ba737c Move source editor out of module (#12457)
* Update Copybara options in preparation for open-sourcing the source editor

* Move files

* Update paths

* Remove source-editor module and checks for its existence

* Explicitly mention CM6 license in files that contain code adapted from CM6

GitOrigin-RevId: 89b7cc2b409db01ad103198ccbd1b126ab56349b
2023-04-13 08:40:56 +00:00

24 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)
}
}