-
Notifications
You must be signed in to change notification settings - Fork 164
Expand file tree
/
Copy pathAddressMappingStrategy.ts
More file actions
74 lines (54 loc) · 1.95 KB
/
Copy pathAddressMappingStrategy.ts
File metadata and controls
74 lines (54 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/**
* @license
* Copyright (c) 2025 Handsoncode. All rights reserved.
*/
import {SheetCellAddress, SimpleCellAddress} from '../../Cell'
import {Maybe} from '../../Maybe'
import {ColumnsSpan, RowsSpan} from '../../Span'
import {CellVertex} from '../CellVertex'
export type AddressMappingStrategyConstructor = new (width: number, height: number) => AddressMappingStrategy
/**
* Interface for mapping from sheet addresses to vertices.
*/
export interface AddressMappingStrategy {
/**
* Returns cell content
*
* @param address - cell address
*/
getCell(address: SheetCellAddress): Maybe<CellVertex>,
/**
* Set vertex for given address
*
* @param address - cell address
* @param newVertex - vertex to associate with address
*/
setCell(address: SheetCellAddress, newVertex: CellVertex): void,
removeCell(address: SimpleCellAddress): void,
/**
* Returns whether the address is present or not
*
* @param address - address
*/
has(address: SheetCellAddress): boolean,
/**
* Returns height of stored sheet
*/
getHeight(): number,
/**
* Returns width of stored sheet
*/
getWidth(): number,
addRows(row: number, numberOfRows: number): void,
removeRows(removedRows: RowsSpan): void,
addColumns(column: number, numberOfColumns: number): 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>,
}