UNPKG

hyperformula-dc

Version:

HyperFormula is a JavaScript engine for efficient processing of spreadsheet-like data and formulas

54 lines (53 loc) 2.2 kB
/** * @license * Copyright (c) 2021 Handsoncode. All rights reserved. */ import { SheetCellAddress, SimpleCellAddress } from '../../Cell'; import { Maybe } from '../../Maybe'; import { ColumnsSpan, RowsSpan } from '../../Span'; import { CellVertex } from '../Vertex'; import { IAddressMappingStrategy } from './IAddressMappingStrategy'; /** * Mapping from cell addresses to vertices * * Uses Array to store addresses, having minimal memory usage for dense sheets and constant set/lookup. */ export declare class DenseStrategy implements IAddressMappingStrategy { private width; private height; /** * Array in which actual data is stored. * * It is created when building the mapping and the size of it is fixed. */ private readonly mapping; /** * @param width - width of the stored sheet * @param height - height of the stored sheet */ constructor(width: number, height: number); /** @inheritDoc */ getCell(address: SheetCellAddress): Maybe<CellVertex>; /** @inheritDoc */ setCell(address: SheetCellAddress, newVertex: CellVertex): void; /** @inheritDoc */ has(address: SheetCellAddress): boolean; /** @inheritDoc */ getHeight(): number; /** @inheritDoc */ getWidth(): number; removeCell(address: SimpleCellAddress): void; addRows(row: number, numberOfRows: number): void; addColumns(column: number, numberOfColumns: number): void; removeRows(removedRows: RowsSpan): void; removeColumns(removedColumns: ColumnsSpan): void; getEntries(sheet: number): IterableIterator<[SimpleCellAddress, CellVertex]>; verticesFromColumn(column: number): IterableIterator<CellVertex>; verticesFromRow(row: number): IterableIterator<CellVertex>; verticesFromColumnsSpan(columnsSpan: ColumnsSpan): IterableIterator<CellVertex>; verticesFromRowsSpan(rowsSpan: RowsSpan): IterableIterator<CellVertex>; entriesFromRowsSpan(rowsSpan: RowsSpan): IterableIterator<[SimpleCellAddress, CellVertex]>; entriesFromColumnsSpan(columnsSpan: ColumnsSpan): IterableIterator<[SimpleCellAddress, CellVertex]>; vertices(): IterableIterator<CellVertex>; private getCellVertex; }