hyperformula
Version:
HyperFormula is a JavaScript engine for efficient processing of spreadsheet-like data and formulas
41 lines (39 loc) • 1.34 kB
JavaScript
;
exports.__esModule = true;
exports.FormulaTextPlugin = void 0;
var _Cell = require("../../Cell");
var _errorMessage = require("../../error-message");
var _index = require("../index");
var _FunctionPlugin = require("./FunctionPlugin");
/**
* @license
* Copyright (c) 2025 Handsoncode. All rights reserved.
*/
class FormulaTextPlugin extends _index.FunctionPlugin {
/**
* Corresponds to FORMULATEXT(value)
*
* Returns a formula in a given cell as a string.
*
* @param ast
* @param state
*/
formulatext(ast, state) {
return this.runFunctionWithReferenceArgument(ast.args, state, this.metadata('FORMULATEXT'), () => new _Cell.CellError(_Cell.ErrorType.NA, _errorMessage.ErrorMessage.WrongArgNumber), cellReference => {
var _a;
return (_a = this.serialization.getCellFormula(cellReference)) !== null && _a !== void 0 ? _a : new _Cell.CellError(_Cell.ErrorType.NA, _errorMessage.ErrorMessage.Formula);
});
}
}
exports.FormulaTextPlugin = FormulaTextPlugin;
FormulaTextPlugin.implementedFunctions = {
'FORMULATEXT': {
method: 'formulatext',
parameters: [{
argumentType: _FunctionPlugin.FunctionArgumentType.NOERROR
}],
doesNotNeedArgumentsToBeComputed: true,
isDependentOnSheetStructureChange: true,
vectorizationForbidden: true
}
};