hyperformula
Version:
HyperFormula is a JavaScript engine for efficient processing of spreadsheet-like data and formulas
28 lines • 933 B
JavaScript
/**
* @license
* Copyright (c) 2025 Handsoncode. All rights reserved.
*/
import { AbsoluteCellRange } from "./AbsoluteCellRange.mjs";
import { isColOrRowInvalid } from "./Cell.mjs";
import { NamedExpressionDependency } from "./parser/index.mjs";
/**
* Converts dependencies from maybe relative addressing to absolute addressing.
*
* @param deps - list of addresses in R0C0 format
* @param baseAddress - base address with regard to which make a convertion
*/
export const absolutizeDependencies = (deps, baseAddress) => {
return deps.map(dep => dep.absolutize(baseAddress));
};
export const filterDependenciesOutOfScope = deps => {
return deps.filter(dep => {
if (dep instanceof NamedExpressionDependency) {
return true;
}
if (dep instanceof AbsoluteCellRange) {
return !(isColOrRowInvalid(dep.start) || isColOrRowInvalid(dep.end));
} else {
return !isColOrRowInvalid(dep);
}
});
};