/** * Calculates the difference between two ranges. * * @param {Array} range1 - The first range, represented as an array [start1, end1]. * @param {Array} range2 - The second range, represented as an array [start2, end2]. * @returns {Array|null} - Returns an array [lowerBound, upperBound] representing the difference between the two ranges. * Returns null if the second range is entirely within the first range. */ export function rangeDiff(range1, range2) { const [start1, end1] = range1 const [start2, end2] = range2 // Check if the second range is included in the first one if (start1 <= start2 && end1 >= end2) { return null } const lowerBound = Math.max(end1, start2) const upperBound = Math.max(end1, end2) return [lowerBound, upperBound] }