name:
src/main/js/formulas/math/ADD.ts
-rw-r--r--
1011
1import { F7Exception } from "../../errors/F7Exception";
2import { SheetColumnRowKey } from "../../models/common/SheetColumnRowKey";
3import { Complex } from "../../models/common/Types";
4import { Converters } from "../../utils/Converters";
5import { AbstractFormula } from "../AbstractFormula";
6import { FormulaName } from "../FormulaName";
7
8export class ADD extends AbstractFormula {
9 static SELF: ADD = new ADD();
10 NAME = FormulaName.ADD;
11
12 internal(origin: SheetColumnRowKey, ...values: Array<Complex>) {
13 AbstractFormula.checkLength(values.length, 2, this.NAME);
14 const first = Converters.first(this.collateralLookup(origin, values[0]));
15 const second = Converters.first(this.collateralLookup(origin, values[1]));
16 if (first instanceof F7Exception) {
17 return first;
18 }
19 if (second instanceof F7Exception) {
20 return second;
21 }
22 const firstNumber = Converters.toNumber(first);
23 const secondNumber = Converters.toNumber(second);
24 return firstNumber + secondNumber;
25 }
26}