UNPKG

@sheetxl/models

Version:

Models - A Headless javascript spreadsheet library.

37 lines 1.37 kB
import { CellCoords, CellRangeCoords } from '@sheetxl/common'; /** * Compares a coords to a range. * Note - This doesn't follow a traditional comparator pattern because it's compare different types. */ export declare const coordsRangeComparator: (isColScan: boolean, coords: CellCoords, range: CellRangeCoords) => number; /** * This class is used for scanning a set of ranges in an efficient way. * The most important aspect of this algo is that the rectangles do not * overlap. * * 1. This will scan ranges along an axis. * 2. If a range spans multiple rows or columns it can be returned multiple times. * 3. This uses cursors to track locations * This uses cursors to track locations */ export declare class CellRangeScanner { private ranges; private isColScan; private currentRangeIndex; private currentRange; private currentScanIndex; private currentValueIndex; private spanRanges; private spanRangeIndex; private currentSpanRange; private nextSpanEnd; constructor(ranges: CellRangeCoords[], isColScan?: boolean); /** * Returns the range that intersect the coords or null if none. * @param coords * @returns CellRangeCoords if found */ nextIntersectRange(coords: CellCoords): CellRangeCoords | null; } export default CellRangeScanner; //# sourceMappingURL=CellRangeScanner.d.ts.map