hyperformula
Version:
HyperFormula is a JavaScript engine for efficient processing of spreadsheet-like data and formulas
48 lines (46 loc) • 1.36 kB
JavaScript
;
exports.__esModule = true;
exports.RemoveSheetTransformer = void 0;
var _Cell = require("../Cell");
var _Transformer = require("./Transformer");
/**
* @license
* Copyright (c) 2025 Handsoncode. All rights reserved.
*/
class RemoveSheetTransformer extends _Transformer.Transformer {
constructor(sheet) {
super();
this.sheet = sheet;
}
isIrreversible() {
return true;
}
performEagerTransformations(graph, _parser) {
for (const node of graph.arrayFormulaNodes()) {
const [newAst] = this.transformSingleAst(node.getFormula(graph.lazilyTransformingAstService), node.getAddress(graph.lazilyTransformingAstService));
node.setFormula(newAst);
}
}
fixNodeAddress(address) {
return address;
}
transformCellAddress(dependencyAddress, _formulaAddress) {
return this.transformAddress(dependencyAddress);
}
transformCellRange(start, _end, _formulaAddress) {
return this.transformAddress(start);
}
transformColumnRange(start, _end, _formulaAddress) {
return this.transformAddress(start);
}
transformRowRange(start, _end, _formulaAddress) {
return this.transformAddress(start);
}
transformAddress(address) {
if (address.sheet === this.sheet) {
return _Cell.ErrorType.REF;
}
return false;
}
}
exports.RemoveSheetTransformer = RemoveSheetTransformer;