UNPKG

hyperformula

Version:

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

87 lines (86 loc) 3.82 kB
/** * @license * Copyright (c) 2025 Handsoncode. All rights reserved. */ import { SimpleCellAddress } from '../Cell'; import { CellAddress } from '../parser'; import { ColumnAddress } from '../parser/ColumnAddress'; import { RowAddress } from '../parser/RowAddress'; import { Transformer } from './Transformer'; /** * Transformer that reassigns references from a merged sheet into the surviving sheet. */ export declare class RenameSheetTransformer extends Transformer { readonly sheetIdToKeep: number; readonly sheetBeingMerged: number; constructor(sheetIdToKeep: number, sheetBeingMerged: number); /** * Returns id of sheet that survives merge operation. * * @returns {number} sheet identifier. */ get sheet(): number; /** * Sheet merge cannot be undone because original sheet id is lost. * * @returns {boolean} always true to indicate transformation irreversibility. */ isIrreversible(): boolean; /** * Updates cell address sheet when it points to merged sheet. * * @param {T} dependencyAddress - dependency address needing sheet update. * @param {SimpleCellAddress} _formulaAddress - location of formula (unused but required by base class). * @returns {T | false} updated address or false when nothing changes. */ protected transformCellAddress<T extends CellAddress>(dependencyAddress: T, _formulaAddress: SimpleCellAddress): T | false; /** * Updates sheet for both ends of cell range. * * @param {CellAddress} start - start address of range. * @param {CellAddress} end - end address of range. * @param {SimpleCellAddress} _formulaAddress - formula location (unused). * @returns {[CellAddress, CellAddress] | false} updated range tuple or false when unchanged. */ protected transformCellRange(start: CellAddress, end: CellAddress, _formulaAddress: SimpleCellAddress): [CellAddress, CellAddress] | false; /** * Updates sheet for both ends of column range. * * @param {ColumnAddress} start - beginning column of range. * @param {ColumnAddress} end - ending column of range. * @param {SimpleCellAddress} _formulaAddress - formula location (unused). * @returns {[ColumnAddress, ColumnAddress] | false} updated column range or false. */ protected transformColumnRange(start: ColumnAddress, end: ColumnAddress, _formulaAddress: SimpleCellAddress): [ColumnAddress, ColumnAddress] | false; /** * Updates sheet for both ends of row range. * * @param {RowAddress} start - beginning row address. * @param {RowAddress} end - ending row address. * @param {SimpleCellAddress} _formulaAddress - formula location (unused). * @returns {[RowAddress, RowAddress] | false} updated row range or false. */ protected transformRowRange(start: RowAddress, end: RowAddress, _formulaAddress: SimpleCellAddress): [RowAddress, RowAddress] | false; /** * Node addresses are already absolute, so no change is needed. * * @param {SimpleCellAddress} address - node address to inspect. * @returns {SimpleCellAddress} original address unchanged. */ protected fixNodeAddress(address: SimpleCellAddress): SimpleCellAddress; /** * Updates sheet identifier for both range ends if needed. * * @param {T} start - range start address. * @param {T} end - range end address. * @returns {[T, T] | false} tuple with updated addresses or false when no updates happen. */ private transformRange; /** * Replaces sheet id in address when it points to merged sheet. * * @param {T} address - address to update. * @returns {T | false} address with new sheet id or false when no change occurs. */ private updateSheetInAddress; }