name:
src/main/js/formulas/logic/IF.ts
-rw-r--r--
827
1import { SheetColumnRowKey } from "../../models/common/SheetColumnRowKey";
2import { Complex } from "../../models/common/Types";
3import { Converters } from "../../utils/Converters";
4import { AbstractFormula } from "../AbstractFormula";
5import { FormulaName } from "../FormulaName";
6
7export class IF extends AbstractFormula {
8 static SELF: IF = new IF();
9 NAME = FormulaName.LT;
10
11 internal(origin: SheetColumnRowKey, ...values: Array<Complex>) {
12 AbstractFormula.checkLength(values.length, 3, this.NAME);
13 const logicalExpression = Converters.toBoolean(
14 Converters.first(this.collateralLookup(origin, values[0]))
15 );
16 if (logicalExpression === true) {
17 return Converters.first(this.collateralLookup(origin, values[1]));
18 }
19 return Converters.first(this.collateralLookup(origin, values[2]));
20 }
21}