hyperformula-dc
Version:
HyperFormula is a JavaScript engine for efficient processing of spreadsheet-like data and formulas
90 lines (89 loc) • 5.9 kB
TypeScript
/**
* @license
* Copyright (c) 2021 Handsoncode. All rights reserved.
*/
import { AbsoluteCellRange } from './AbsoluteCellRange';
import { SimpleCellAddress } from './Cell';
import { CellContentParser, RawCellContent } from './CellContentParser';
import { ClipboardOperations } from './ClipboardOperations';
import { Config } from './Config';
import { ContentChanges } from './ContentChanges';
import { DependencyGraph } from './DependencyGraph';
import { LazilyTransformingAstService } from './LazilyTransformingAstService';
import { ColumnSearchStrategy } from './Lookup/SearchStrategy';
import { Maybe } from './Maybe';
import { InternalNamedExpression, NamedExpressionOptions, NamedExpressions } from './NamedExpressions';
import { Operations } from './Operations';
import { ParserWithCaching } from './parser';
import { UndoRedo } from './UndoRedo';
export declare type ColumnRowIndex = [number, number];
export declare class CrudOperations {
readonly operations: Operations;
readonly undoRedo: UndoRedo;
private readonly clipboardOperations;
private readonly dependencyGraph;
private readonly columnSearch;
private readonly parser;
private readonly cellContentParser;
private readonly lazilyTransformingAstService;
private readonly namedExpressions;
private readonly maxRows;
private readonly maxColumns;
constructor(config: Config, operations: Operations, undoRedo: UndoRedo, clipboardOperations: ClipboardOperations, dependencyGraph: DependencyGraph, columnSearch: ColumnSearchStrategy, parser: ParserWithCaching, cellContentParser: CellContentParser, lazilyTransformingAstService: LazilyTransformingAstService, namedExpressions: NamedExpressions);
addRows(sheet: number, ...indexes: ColumnRowIndex[]): void;
removeRows(sheet: number, ...indexes: ColumnRowIndex[]): void;
addColumns(sheet: number, ...indexes: ColumnRowIndex[]): void;
removeColumns(sheet: number, ...indexes: ColumnRowIndex[]): void;
moveCells(sourceLeftCorner: SimpleCellAddress, width: number, height: number, destinationLeftCorner: SimpleCellAddress): void;
moveRows(sheet: number, startRow: number, numberOfRows: number, targetRow: number): void;
moveColumns(sheet: number, startColumn: number, numberOfColumns: number, targetColumn: number): void;
cut(sourceLeftCorner: SimpleCellAddress, width: number, height: number): void;
ensureItIsPossibleToCopy(sourceLeftCorner: SimpleCellAddress, width: number, height: number): void;
copy(sourceLeftCorner: SimpleCellAddress, width: number, height: number): void;
paste(targetLeftCorner: SimpleCellAddress): void;
beginUndoRedoBatchMode(): void;
commitUndoRedoBatchMode(): void;
isClipboardEmpty(): boolean;
clearClipboard(): void;
addSheet(name?: string): string;
removeSheet(sheetId: number): void;
renameSheet(sheetId: number, newName: string): Maybe<string>;
clearSheet(sheetId: number): void;
setCellContents(topLeftCornerAddress: SimpleCellAddress, cellContents: RawCellContent[][] | RawCellContent): void;
setSheetContent(sheetId: number, values: RawCellContent[][]): void;
setRowOrder(sheetId: number, rowMapping: [number, number][]): void;
validateSwapRowIndexes(sheetId: number, rowMapping: [number, number][]): void;
testColumnOrderForArrays(sheetId: number, columnMapping: [number, number][]): void;
setColumnOrder(sheetId: number, columnMapping: [number, number][]): void;
validateSwapColumnIndexes(sheetId: number, columnMapping: [number, number][]): void;
testRowOrderForArrays(sheetId: number, rowMapping: [number, number][]): void;
mappingFromOrder(sheetId: number, newOrder: number[], rowOrColumn: 'row' | 'column'): [number, number][];
private validateRowOrColumnMapping;
undo(): void;
redo(): void;
addNamedExpression(expressionName: string, expression: RawCellContent, sheetId?: number, options?: NamedExpressionOptions): void;
changeNamedExpressionExpression(expressionName: string, sheetId: number | undefined, newExpression: RawCellContent, options?: NamedExpressionOptions): void;
removeNamedExpression(expressionName: string, sheetId?: number): InternalNamedExpression;
ensureItIsPossibleToAddNamedExpression(expressionName: string, expression: RawCellContent, sheetId?: number): void;
ensureItIsPossibleToChangeNamedExpression(expressionName: string, expression: RawCellContent, sheetId?: number): void;
isItPossibleToRemoveNamedExpression(expressionName: string, sheetId?: number): void;
ensureItIsPossibleToAddRows(sheet: number, ...indexes: ColumnRowIndex[]): void;
ensureItIsPossibleToRemoveRows(sheet: number, ...indexes: ColumnRowIndex[]): void;
ensureItIsPossibleToAddColumns(sheet: number, ...indexes: ColumnRowIndex[]): void;
ensureItIsPossibleToRemoveColumns(sheet: number, ...indexes: ColumnRowIndex[]): void;
ensureItIsPossibleToMoveRows(sheet: number, startRow: number, numberOfRows: number, targetRow: number): void;
ensureItIsPossibleToMoveColumns(sheet: number, startColumn: number, numberOfColumns: number, targetColumn: number): void;
ensureItIsPossibleToAddSheet(name: string): void;
ensureItIsPossibleToRenameSheet(sheetId: number, name: string): void;
ensureItIsPossibleToChangeContent(address: SimpleCellAddress): void;
ensureItIsPossibleToChangeCellContents(inputAddress: SimpleCellAddress, content: RawCellContent[][]): void;
ensureItIsPossibleToChangeSheetContents(sheetId: number, content: RawCellContent[][]): void;
ensureRangeInSizeLimits(range: AbsoluteCellRange): void;
isThereSomethingToUndo(): boolean;
isThereSomethingToRedo(): boolean;
getAndClearContentChanges(): ContentChanges;
ensureScopeIdIsValid(scopeId?: number): void;
private get sheetMapping();
private ensureNamedExpressionNameIsValid;
private ensureNamedExpressionIsValid;
}