@ricsam/formula-engine 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +100 -0
- package/dist/cjs/core/ast-traverser.cjs +124 -0
- package/dist/cjs/core/ast-traverser.cjs.map +10 -0
- package/dist/cjs/core/autofill-utils.cjs +304 -0
- package/dist/cjs/core/autofill-utils.cjs.map +10 -0
- package/dist/cjs/core/engine.cjs +390 -0
- package/dist/cjs/core/engine.cjs.map +10 -0
- package/dist/cjs/core/managers/cache-manager.cjs +58 -0
- package/dist/cjs/core/managers/cache-manager.cjs.map +10 -0
- package/dist/cjs/core/managers/dependency-manager.cjs +620 -0
- package/dist/cjs/core/managers/dependency-manager.cjs.map +10 -0
- package/dist/cjs/core/managers/dependency-node.cjs +24 -0
- package/dist/cjs/core/managers/dependency-node.cjs.map +9 -0
- package/dist/cjs/core/managers/evaluation-manager.cjs +433 -0
- package/dist/cjs/core/managers/evaluation-manager.cjs.map +10 -0
- package/dist/cjs/core/managers/event-manager.cjs +49 -0
- package/dist/cjs/core/managers/event-manager.cjs.map +10 -0
- package/dist/cjs/core/managers/frontier-dependency-manager.cjs +181 -0
- package/dist/cjs/core/managers/frontier-dependency-manager.cjs.map +10 -0
- package/dist/cjs/core/managers/index.cjs +49 -0
- package/dist/cjs/core/managers/index.cjs.map +10 -0
- package/dist/cjs/core/managers/isDependencyNode.cjs +44 -0
- package/dist/cjs/core/managers/isDependencyNode.cjs.map +10 -0
- package/dist/cjs/core/managers/named-expression-manager.cjs +379 -0
- package/dist/cjs/core/managers/named-expression-manager.cjs.map +10 -0
- package/dist/cjs/core/managers/range-eval-order-builder.cjs +644 -0
- package/dist/cjs/core/managers/range-eval-order-builder.cjs.map +10 -0
- package/dist/cjs/core/managers/table-manager.cjs +254 -0
- package/dist/cjs/core/managers/table-manager.cjs.map +10 -0
- package/dist/cjs/core/managers/workbook-manager.cjs +474 -0
- package/dist/cjs/core/managers/workbook-manager.cjs.map +10 -0
- package/dist/cjs/core/map-serializer.cjs +69 -0
- package/dist/cjs/core/map-serializer.cjs.map +10 -0
- package/dist/cjs/core/named-expression-renamer.cjs +88 -0
- package/dist/cjs/core/named-expression-renamer.cjs.map +10 -0
- package/dist/cjs/core/sheet-renamer.cjs +89 -0
- package/dist/cjs/core/sheet-renamer.cjs.map +10 -0
- package/dist/cjs/core/sheet-utils.cjs +39 -0
- package/dist/cjs/core/sheet-utils.cjs.map +10 -0
- package/dist/cjs/core/table-renamer.cjs +88 -0
- package/dist/cjs/core/table-renamer.cjs.map +10 -0
- package/dist/cjs/core/types.cjs +48 -0
- package/dist/cjs/core/types.cjs.map +10 -0
- package/dist/cjs/core/utils/range-serializer.cjs +65 -0
- package/dist/cjs/core/utils/range-serializer.cjs.map +10 -0
- package/dist/cjs/core/utils/spreadsheet-visualizer.cjs +142 -0
- package/dist/cjs/core/utils/spreadsheet-visualizer.cjs.map +10 -0
- package/dist/cjs/core/utils.cjs +434 -0
- package/dist/cjs/core/utils.cjs.map +10 -0
- package/dist/cjs/core/workbook-renamer.cjs +106 -0
- package/dist/cjs/core/workbook-renamer.cjs.map +10 -0
- package/dist/cjs/debug/flags.cjs +47 -0
- package/dist/cjs/debug/flags.cjs.map +10 -0
- package/dist/cjs/evaluator/arithmetic/add/add.cjs +82 -0
- package/dist/cjs/evaluator/arithmetic/add/add.cjs.map +10 -0
- package/dist/cjs/evaluator/arithmetic/divide/divide.cjs +107 -0
- package/dist/cjs/evaluator/arithmetic/divide/divide.cjs.map +10 -0
- package/dist/cjs/evaluator/arithmetic/multiply/multiply.cjs +93 -0
- package/dist/cjs/evaluator/arithmetic/multiply/multiply.cjs.map +10 -0
- package/dist/cjs/evaluator/arithmetic/power/power.cjs +125 -0
- package/dist/cjs/evaluator/arithmetic/power/power.cjs.map +10 -0
- package/dist/cjs/evaluator/arithmetic/subtract/subtract.cjs +84 -0
- package/dist/cjs/evaluator/arithmetic/subtract/subtract.cjs.map +10 -0
- package/dist/cjs/evaluator/comparison/equals.cjs +64 -0
- package/dist/cjs/evaluator/comparison/equals.cjs.map +10 -0
- package/dist/cjs/evaluator/comparison/greater-than-or-equal.cjs +61 -0
- package/dist/cjs/evaluator/comparison/greater-than-or-equal.cjs.map +10 -0
- package/dist/cjs/evaluator/comparison/greater-than.cjs +61 -0
- package/dist/cjs/evaluator/comparison/greater-than.cjs.map +10 -0
- package/dist/cjs/evaluator/comparison/less-than-or-equal.cjs +69 -0
- package/dist/cjs/evaluator/comparison/less-than-or-equal.cjs.map +10 -0
- package/dist/cjs/evaluator/comparison/less-than.cjs +68 -0
- package/dist/cjs/evaluator/comparison/less-than.cjs.map +10 -0
- package/dist/cjs/evaluator/comparison/not-equals.cjs +53 -0
- package/dist/cjs/evaluator/comparison/not-equals.cjs.map +10 -0
- package/dist/cjs/evaluator/concatenation/concatenate.cjs +72 -0
- package/dist/cjs/evaluator/concatenation/concatenate.cjs.map +10 -0
- package/dist/cjs/evaluator/dependency-nodes/ast-evaluation-node.cjs +58 -0
- package/dist/cjs/evaluator/dependency-nodes/ast-evaluation-node.cjs.map +10 -0
- package/dist/cjs/evaluator/dependency-nodes/base-eval-node.cjs +112 -0
- package/dist/cjs/evaluator/dependency-nodes/base-eval-node.cjs.map +10 -0
- package/dist/cjs/evaluator/dependency-nodes/cell-value-node.cjs +54 -0
- package/dist/cjs/evaluator/dependency-nodes/cell-value-node.cjs.map +10 -0
- package/dist/cjs/evaluator/dependency-nodes/empty-cell-evaluation-node.cjs +108 -0
- package/dist/cjs/evaluator/dependency-nodes/empty-cell-evaluation-node.cjs.map +10 -0
- package/dist/cjs/evaluator/dependency-nodes/spill-meta-node.cjs +50 -0
- package/dist/cjs/evaluator/dependency-nodes/spill-meta-node.cjs.map +10 -0
- package/dist/cjs/evaluator/evaluate-scalar-operator.cjs +254 -0
- package/dist/cjs/evaluator/evaluate-scalar-operator.cjs.map +10 -0
- package/dist/cjs/evaluator/evaluation-context.cjs +154 -0
- package/dist/cjs/evaluator/evaluation-context.cjs.map +10 -0
- package/dist/cjs/evaluator/evaluation-error.cjs +75 -0
- package/dist/cjs/evaluator/evaluation-error.cjs.map +10 -0
- package/dist/cjs/evaluator/formula-evaluator.cjs +797 -0
- package/dist/cjs/evaluator/formula-evaluator.cjs.map +10 -0
- package/dist/cjs/evaluator/range-evaluation-node.cjs +88 -0
- package/dist/cjs/evaluator/range-evaluation-node.cjs.map +10 -0
- package/dist/cjs/functions/_template/template.cjs +42 -0
- package/dist/cjs/functions/_template/template.cjs.map +10 -0
- package/dist/cjs/functions/array/sequence/sequence.cjs +315 -0
- package/dist/cjs/functions/array/sequence/sequence.cjs.map +10 -0
- package/dist/cjs/functions/criteria-parser.cjs +217 -0
- package/dist/cjs/functions/criteria-parser.cjs.map +10 -0
- package/dist/cjs/functions/criteria-utils.cjs +291 -0
- package/dist/cjs/functions/criteria-utils.cjs.map +10 -0
- package/dist/cjs/functions/function-utils.cjs +63 -0
- package/dist/cjs/functions/function-utils.cjs.map +10 -0
- package/dist/cjs/functions/index.cjs +125 -0
- package/dist/cjs/functions/index.cjs.map +10 -0
- package/dist/cjs/functions/information/cell/cell.cjs +196 -0
- package/dist/cjs/functions/information/cell/cell.cjs.map +10 -0
- package/dist/cjs/functions/information/column/column.cjs +144 -0
- package/dist/cjs/functions/information/column/column.cjs.map +10 -0
- package/dist/cjs/functions/information/row/row.cjs +150 -0
- package/dist/cjs/functions/information/row/row.cjs.map +10 -0
- package/dist/cjs/functions/logical/and/and.cjs +112 -0
- package/dist/cjs/functions/logical/and/and.cjs.map +10 -0
- package/dist/cjs/functions/logical/if/if.cjs +195 -0
- package/dist/cjs/functions/logical/if/if.cjs.map +10 -0
- package/dist/cjs/functions/logical/iferror/iferror.cjs +126 -0
- package/dist/cjs/functions/logical/iferror/iferror.cjs.map +10 -0
- package/dist/cjs/functions/logical/or/or.cjs +112 -0
- package/dist/cjs/functions/logical/or/or.cjs.map +10 -0
- package/dist/cjs/functions/lookup/count/count-utils.cjs +65 -0
- package/dist/cjs/functions/lookup/count/count-utils.cjs.map +10 -0
- package/dist/cjs/functions/lookup/count/count.cjs +48 -0
- package/dist/cjs/functions/lookup/count/count.cjs.map +10 -0
- package/dist/cjs/functions/lookup/count/countif.cjs +94 -0
- package/dist/cjs/functions/lookup/count/countif.cjs.map +10 -0
- package/dist/cjs/functions/lookup/count/countifs.cjs +63 -0
- package/dist/cjs/functions/lookup/count/countifs.cjs.map +10 -0
- package/dist/cjs/functions/lookup/index-lookup/index-lookup.cjs +187 -0
- package/dist/cjs/functions/lookup/index-lookup/index-lookup.cjs.map +10 -0
- package/dist/cjs/functions/lookup/match/match.cjs +168 -0
- package/dist/cjs/functions/lookup/match/match.cjs.map +10 -0
- package/dist/cjs/functions/lookup/xlookup/xlookup.cjs +410 -0
- package/dist/cjs/functions/lookup/xlookup/xlookup.cjs.map +10 -0
- package/dist/cjs/functions/math/average/average-utils.cjs +72 -0
- package/dist/cjs/functions/math/average/average-utils.cjs.map +10 -0
- package/dist/cjs/functions/math/average/average.cjs +48 -0
- package/dist/cjs/functions/math/average/average.cjs.map +10 -0
- package/dist/cjs/functions/math/average/averageif.cjs +83 -0
- package/dist/cjs/functions/math/average/averageif.cjs.map +10 -0
- package/dist/cjs/functions/math/average/averageifs.cjs +61 -0
- package/dist/cjs/functions/math/average/averageifs.cjs.map +10 -0
- package/dist/cjs/functions/math/ceiling/ceiling.cjs +219 -0
- package/dist/cjs/functions/math/ceiling/ceiling.cjs.map +10 -0
- package/dist/cjs/functions/math/max/max-utils.cjs +71 -0
- package/dist/cjs/functions/math/max/max-utils.cjs.map +10 -0
- package/dist/cjs/functions/math/max/max.cjs +48 -0
- package/dist/cjs/functions/math/max/max.cjs.map +10 -0
- package/dist/cjs/functions/math/max/maxif.cjs +83 -0
- package/dist/cjs/functions/math/max/maxif.cjs.map +10 -0
- package/dist/cjs/functions/math/max/maxifs.cjs +61 -0
- package/dist/cjs/functions/math/max/maxifs.cjs.map +10 -0
- package/dist/cjs/functions/math/min/min-utils.cjs +71 -0
- package/dist/cjs/functions/math/min/min-utils.cjs.map +10 -0
- package/dist/cjs/functions/math/min/min.cjs +48 -0
- package/dist/cjs/functions/math/min/min.cjs.map +10 -0
- package/dist/cjs/functions/math/min/minif.cjs +83 -0
- package/dist/cjs/functions/math/min/minif.cjs.map +10 -0
- package/dist/cjs/functions/math/min/minifs.cjs +61 -0
- package/dist/cjs/functions/math/min/minifs.cjs.map +10 -0
- package/dist/cjs/functions/math/sum/sum.cjs +48 -0
- package/dist/cjs/functions/math/sum/sum.cjs.map +10 -0
- package/dist/cjs/functions/math/sum/sumif.cjs +83 -0
- package/dist/cjs/functions/math/sum/sumif.cjs.map +10 -0
- package/dist/cjs/functions/math/sum/sumifs.cjs +60 -0
- package/dist/cjs/functions/math/sum/sumifs.cjs.map +10 -0
- package/dist/cjs/functions/math/sum/summation-utils.cjs +57 -0
- package/dist/cjs/functions/math/sum/summation-utils.cjs.map +10 -0
- package/dist/cjs/functions/reference/address/address.cjs +163 -0
- package/dist/cjs/functions/reference/address/address.cjs.map +10 -0
- package/dist/cjs/functions/reference/indirect/indirect.cjs +102 -0
- package/dist/cjs/functions/reference/indirect/indirect.cjs.map +10 -0
- package/dist/cjs/functions/reference/offset/offset.cjs +233 -0
- package/dist/cjs/functions/reference/offset/offset.cjs.map +10 -0
- package/dist/cjs/functions/text/concatenate/concatenate.cjs +167 -0
- package/dist/cjs/functions/text/concatenate/concatenate.cjs.map +10 -0
- package/dist/cjs/functions/text/exact/exact.cjs +171 -0
- package/dist/cjs/functions/text/exact/exact.cjs.map +10 -0
- package/dist/cjs/functions/text/find/find.cjs +397 -0
- package/dist/cjs/functions/text/find/find.cjs.map +10 -0
- package/dist/cjs/functions/text/left/left.cjs +109 -0
- package/dist/cjs/functions/text/left/left.cjs.map +10 -0
- package/dist/cjs/functions/text/len/len.cjs +119 -0
- package/dist/cjs/functions/text/len/len.cjs.map +10 -0
- package/dist/cjs/functions/text/mid/mid.cjs +103 -0
- package/dist/cjs/functions/text/mid/mid.cjs.map +10 -0
- package/dist/cjs/functions/text/right/right.cjs +167 -0
- package/dist/cjs/functions/text/right/right.cjs.map +10 -0
- package/dist/cjs/functions/text/text-helpers.cjs +179 -0
- package/dist/cjs/functions/text/text-helpers.cjs.map +10 -0
- package/dist/cjs/functions/text/textjoin/textjoin.cjs +173 -0
- package/dist/cjs/functions/text/textjoin/textjoin.cjs.map +10 -0
- package/dist/cjs/package.json +5 -0
- package/dist/cjs/parser/ast.cjs +175 -0
- package/dist/cjs/parser/ast.cjs.map +10 -0
- package/dist/cjs/parser/formatter.cjs +319 -0
- package/dist/cjs/parser/formatter.cjs.map +10 -0
- package/dist/cjs/parser/grammar.cjs +375 -0
- package/dist/cjs/parser/grammar.cjs.map +10 -0
- package/dist/cjs/parser/lexer.cjs +443 -0
- package/dist/cjs/parser/lexer.cjs.map +10 -0
- package/dist/cjs/parser/parser.cjs +1700 -0
- package/dist/cjs/parser/parser.cjs.map +10 -0
- package/dist/cjs/react/hooks.cjs +59 -0
- package/dist/cjs/react/hooks.cjs.map +10 -0
- package/dist/mjs/core/ast-traverser.mjs +94 -0
- package/dist/mjs/core/ast-traverser.mjs.map +10 -0
- package/dist/mjs/core/autofill-utils.mjs +274 -0
- package/dist/mjs/core/autofill-utils.mjs.map +10 -0
- package/dist/mjs/core/engine.mjs +366 -0
- package/dist/mjs/core/engine.mjs.map +10 -0
- package/dist/mjs/core/managers/cache-manager.mjs +27 -0
- package/dist/mjs/core/managers/cache-manager.mjs.map +10 -0
- package/dist/mjs/core/managers/dependency-manager.mjs +593 -0
- package/dist/mjs/core/managers/dependency-manager.mjs.map +10 -0
- package/dist/mjs/core/managers/dependency-node.mjs +2 -0
- package/dist/mjs/core/managers/dependency-node.mjs.map +9 -0
- package/dist/mjs/core/managers/evaluation-manager.mjs +415 -0
- package/dist/mjs/core/managers/evaluation-manager.mjs.map +10 -0
- package/dist/mjs/core/managers/event-manager.mjs +18 -0
- package/dist/mjs/core/managers/event-manager.mjs.map +10 -0
- package/dist/mjs/core/managers/frontier-dependency-manager.mjs +151 -0
- package/dist/mjs/core/managers/frontier-dependency-manager.mjs.map +10 -0
- package/dist/mjs/core/managers/index.mjs +21 -0
- package/dist/mjs/core/managers/index.mjs.map +10 -0
- package/dist/mjs/core/managers/isDependencyNode.mjs +14 -0
- package/dist/mjs/core/managers/isDependencyNode.mjs.map +10 -0
- package/dist/mjs/core/managers/named-expression-manager.mjs +348 -0
- package/dist/mjs/core/managers/named-expression-manager.mjs.map +10 -0
- package/dist/mjs/core/managers/range-eval-order-builder.mjs +618 -0
- package/dist/mjs/core/managers/range-eval-order-builder.mjs.map +10 -0
- package/dist/mjs/core/managers/table-manager.mjs +224 -0
- package/dist/mjs/core/managers/table-manager.mjs.map +10 -0
- package/dist/mjs/core/managers/workbook-manager.mjs +447 -0
- package/dist/mjs/core/managers/workbook-manager.mjs.map +10 -0
- package/dist/mjs/core/map-serializer.mjs +39 -0
- package/dist/mjs/core/map-serializer.mjs.map +10 -0
- package/dist/mjs/core/named-expression-renamer.mjs +58 -0
- package/dist/mjs/core/named-expression-renamer.mjs.map +10 -0
- package/dist/mjs/core/sheet-renamer.mjs +59 -0
- package/dist/mjs/core/sheet-renamer.mjs.map +10 -0
- package/dist/mjs/core/sheet-utils.mjs +8 -0
- package/dist/mjs/core/sheet-utils.mjs.map +10 -0
- package/dist/mjs/core/table-renamer.mjs +58 -0
- package/dist/mjs/core/table-renamer.mjs.map +10 -0
- package/dist/mjs/core/types.mjs +18 -0
- package/dist/mjs/core/types.mjs.map +10 -0
- package/dist/mjs/core/utils/range-serializer.mjs +35 -0
- package/dist/mjs/core/utils/range-serializer.mjs.map +10 -0
- package/dist/mjs/core/utils/spreadsheet-visualizer.mjs +112 -0
- package/dist/mjs/core/utils/spreadsheet-visualizer.mjs.map +10 -0
- package/dist/mjs/core/utils.mjs +409 -0
- package/dist/mjs/core/utils.mjs.map +10 -0
- package/dist/mjs/core/workbook-renamer.mjs +76 -0
- package/dist/mjs/core/workbook-renamer.mjs.map +10 -0
- package/dist/mjs/debug/flags.mjs +17 -0
- package/dist/mjs/debug/flags.mjs.map +10 -0
- package/dist/mjs/evaluator/arithmetic/add/add.mjs +52 -0
- package/dist/mjs/evaluator/arithmetic/add/add.mjs.map +10 -0
- package/dist/mjs/evaluator/arithmetic/divide/divide.mjs +77 -0
- package/dist/mjs/evaluator/arithmetic/divide/divide.mjs.map +10 -0
- package/dist/mjs/evaluator/arithmetic/multiply/multiply.mjs +63 -0
- package/dist/mjs/evaluator/arithmetic/multiply/multiply.mjs.map +10 -0
- package/dist/mjs/evaluator/arithmetic/power/power.mjs +95 -0
- package/dist/mjs/evaluator/arithmetic/power/power.mjs.map +10 -0
- package/dist/mjs/evaluator/arithmetic/subtract/subtract.mjs +54 -0
- package/dist/mjs/evaluator/arithmetic/subtract/subtract.mjs.map +10 -0
- package/dist/mjs/evaluator/comparison/equals.mjs +34 -0
- package/dist/mjs/evaluator/comparison/equals.mjs.map +10 -0
- package/dist/mjs/evaluator/comparison/greater-than-or-equal.mjs +31 -0
- package/dist/mjs/evaluator/comparison/greater-than-or-equal.mjs.map +10 -0
- package/dist/mjs/evaluator/comparison/greater-than.mjs +31 -0
- package/dist/mjs/evaluator/comparison/greater-than.mjs.map +10 -0
- package/dist/mjs/evaluator/comparison/less-than-or-equal.mjs +39 -0
- package/dist/mjs/evaluator/comparison/less-than-or-equal.mjs.map +10 -0
- package/dist/mjs/evaluator/comparison/less-than.mjs +38 -0
- package/dist/mjs/evaluator/comparison/less-than.mjs.map +10 -0
- package/dist/mjs/evaluator/comparison/not-equals.mjs +23 -0
- package/dist/mjs/evaluator/comparison/not-equals.mjs.map +10 -0
- package/dist/mjs/evaluator/concatenation/concatenate.mjs +42 -0
- package/dist/mjs/evaluator/concatenation/concatenate.mjs.map +10 -0
- package/dist/mjs/evaluator/dependency-nodes/ast-evaluation-node.mjs +28 -0
- package/dist/mjs/evaluator/dependency-nodes/ast-evaluation-node.mjs.map +10 -0
- package/dist/mjs/evaluator/dependency-nodes/base-eval-node.mjs +81 -0
- package/dist/mjs/evaluator/dependency-nodes/base-eval-node.mjs.map +10 -0
- package/dist/mjs/evaluator/dependency-nodes/cell-value-node.mjs +24 -0
- package/dist/mjs/evaluator/dependency-nodes/cell-value-node.mjs.map +10 -0
- package/dist/mjs/evaluator/dependency-nodes/empty-cell-evaluation-node.mjs +78 -0
- package/dist/mjs/evaluator/dependency-nodes/empty-cell-evaluation-node.mjs.map +10 -0
- package/dist/mjs/evaluator/dependency-nodes/spill-meta-node.mjs +20 -0
- package/dist/mjs/evaluator/dependency-nodes/spill-meta-node.mjs.map +10 -0
- package/dist/mjs/evaluator/evaluate-scalar-operator.mjs +226 -0
- package/dist/mjs/evaluator/evaluate-scalar-operator.mjs.map +10 -0
- package/dist/mjs/evaluator/evaluation-context.mjs +123 -0
- package/dist/mjs/evaluator/evaluation-context.mjs.map +10 -0
- package/dist/mjs/evaluator/evaluation-error.mjs +44 -0
- package/dist/mjs/evaluator/evaluation-error.mjs.map +10 -0
- package/dist/mjs/evaluator/formula-evaluator.mjs +780 -0
- package/dist/mjs/evaluator/formula-evaluator.mjs.map +10 -0
- package/dist/mjs/evaluator/range-evaluation-node.mjs +58 -0
- package/dist/mjs/evaluator/range-evaluation-node.mjs.map +10 -0
- package/dist/mjs/functions/_template/template.mjs +12 -0
- package/dist/mjs/functions/_template/template.mjs.map +10 -0
- package/dist/mjs/functions/array/sequence/sequence.mjs +287 -0
- package/dist/mjs/functions/array/sequence/sequence.mjs.map +10 -0
- package/dist/mjs/functions/criteria-parser.mjs +187 -0
- package/dist/mjs/functions/criteria-parser.mjs.map +10 -0
- package/dist/mjs/functions/criteria-utils.mjs +268 -0
- package/dist/mjs/functions/criteria-utils.mjs.map +10 -0
- package/dist/mjs/functions/function-utils.mjs +33 -0
- package/dist/mjs/functions/function-utils.mjs.map +10 -0
- package/dist/mjs/functions/index.mjs +95 -0
- package/dist/mjs/functions/index.mjs.map +10 -0
- package/dist/mjs/functions/information/cell/cell.mjs +168 -0
- package/dist/mjs/functions/information/cell/cell.mjs.map +10 -0
- package/dist/mjs/functions/information/column/column.mjs +120 -0
- package/dist/mjs/functions/information/column/column.mjs.map +10 -0
- package/dist/mjs/functions/information/row/row.mjs +126 -0
- package/dist/mjs/functions/information/row/row.mjs.map +10 -0
- package/dist/mjs/functions/logical/and/and.mjs +84 -0
- package/dist/mjs/functions/logical/and/and.mjs.map +10 -0
- package/dist/mjs/functions/logical/if/if.mjs +167 -0
- package/dist/mjs/functions/logical/if/if.mjs.map +10 -0
- package/dist/mjs/functions/logical/iferror/iferror.mjs +98 -0
- package/dist/mjs/functions/logical/iferror/iferror.mjs.map +10 -0
- package/dist/mjs/functions/logical/or/or.mjs +84 -0
- package/dist/mjs/functions/logical/or/or.mjs.map +10 -0
- package/dist/mjs/functions/lookup/count/count-utils.mjs +35 -0
- package/dist/mjs/functions/lookup/count/count-utils.mjs.map +10 -0
- package/dist/mjs/functions/lookup/count/count.mjs +18 -0
- package/dist/mjs/functions/lookup/count/count.mjs.map +10 -0
- package/dist/mjs/functions/lookup/count/countif.mjs +68 -0
- package/dist/mjs/functions/lookup/count/countif.mjs.map +10 -0
- package/dist/mjs/functions/lookup/count/countifs.mjs +37 -0
- package/dist/mjs/functions/lookup/count/countifs.mjs.map +10 -0
- package/dist/mjs/functions/lookup/index-lookup/index-lookup.mjs +159 -0
- package/dist/mjs/functions/lookup/index-lookup/index-lookup.mjs.map +10 -0
- package/dist/mjs/functions/lookup/match/match.mjs +140 -0
- package/dist/mjs/functions/lookup/match/match.mjs.map +10 -0
- package/dist/mjs/functions/lookup/xlookup/xlookup.mjs +382 -0
- package/dist/mjs/functions/lookup/xlookup/xlookup.mjs.map +10 -0
- package/dist/mjs/functions/math/average/average-utils.mjs +44 -0
- package/dist/mjs/functions/math/average/average-utils.mjs.map +10 -0
- package/dist/mjs/functions/math/average/average.mjs +18 -0
- package/dist/mjs/functions/math/average/average.mjs.map +10 -0
- package/dist/mjs/functions/math/average/averageif.mjs +58 -0
- package/dist/mjs/functions/math/average/averageif.mjs.map +10 -0
- package/dist/mjs/functions/math/average/averageifs.mjs +35 -0
- package/dist/mjs/functions/math/average/averageifs.mjs.map +10 -0
- package/dist/mjs/functions/math/ceiling/ceiling.mjs +191 -0
- package/dist/mjs/functions/math/ceiling/ceiling.mjs.map +10 -0
- package/dist/mjs/functions/math/max/max-utils.mjs +43 -0
- package/dist/mjs/functions/math/max/max-utils.mjs.map +10 -0
- package/dist/mjs/functions/math/max/max.mjs +18 -0
- package/dist/mjs/functions/math/max/max.mjs.map +10 -0
- package/dist/mjs/functions/math/max/maxif.mjs +58 -0
- package/dist/mjs/functions/math/max/maxif.mjs.map +10 -0
- package/dist/mjs/functions/math/max/maxifs.mjs +35 -0
- package/dist/mjs/functions/math/max/maxifs.mjs.map +10 -0
- package/dist/mjs/functions/math/min/min-utils.mjs +43 -0
- package/dist/mjs/functions/math/min/min-utils.mjs.map +10 -0
- package/dist/mjs/functions/math/min/min.mjs +18 -0
- package/dist/mjs/functions/math/min/min.mjs.map +10 -0
- package/dist/mjs/functions/math/min/minif.mjs +58 -0
- package/dist/mjs/functions/math/min/minif.mjs.map +10 -0
- package/dist/mjs/functions/math/min/minifs.mjs +35 -0
- package/dist/mjs/functions/math/min/minifs.mjs.map +10 -0
- package/dist/mjs/functions/math/sum/sum.mjs +18 -0
- package/dist/mjs/functions/math/sum/sum.mjs.map +10 -0
- package/dist/mjs/functions/math/sum/sumif.mjs +58 -0
- package/dist/mjs/functions/math/sum/sumif.mjs.map +10 -0
- package/dist/mjs/functions/math/sum/sumifs.mjs +34 -0
- package/dist/mjs/functions/math/sum/sumifs.mjs.map +10 -0
- package/dist/mjs/functions/math/sum/summation-utils.mjs +27 -0
- package/dist/mjs/functions/math/sum/summation-utils.mjs.map +10 -0
- package/dist/mjs/functions/reference/address/address.mjs +135 -0
- package/dist/mjs/functions/reference/address/address.mjs.map +10 -0
- package/dist/mjs/functions/reference/indirect/indirect.mjs +74 -0
- package/dist/mjs/functions/reference/indirect/indirect.mjs.map +10 -0
- package/dist/mjs/functions/reference/offset/offset.mjs +205 -0
- package/dist/mjs/functions/reference/offset/offset.mjs.map +10 -0
- package/dist/mjs/functions/text/concatenate/concatenate.mjs +139 -0
- package/dist/mjs/functions/text/concatenate/concatenate.mjs.map +10 -0
- package/dist/mjs/functions/text/exact/exact.mjs +143 -0
- package/dist/mjs/functions/text/exact/exact.mjs.map +10 -0
- package/dist/mjs/functions/text/find/find.mjs +369 -0
- package/dist/mjs/functions/text/find/find.mjs.map +10 -0
- package/dist/mjs/functions/text/left/left.mjs +81 -0
- package/dist/mjs/functions/text/left/left.mjs.map +10 -0
- package/dist/mjs/functions/text/len/len.mjs +91 -0
- package/dist/mjs/functions/text/len/len.mjs.map +10 -0
- package/dist/mjs/functions/text/mid/mid.mjs +75 -0
- package/dist/mjs/functions/text/mid/mid.mjs.map +10 -0
- package/dist/mjs/functions/text/right/right.mjs +143 -0
- package/dist/mjs/functions/text/right/right.mjs.map +10 -0
- package/dist/mjs/functions/text/text-helpers.mjs +151 -0
- package/dist/mjs/functions/text/text-helpers.mjs.map +10 -0
- package/dist/mjs/functions/text/textjoin/textjoin.mjs +145 -0
- package/dist/mjs/functions/text/textjoin/textjoin.mjs.map +10 -0
- package/dist/mjs/package.json +5 -0
- package/dist/mjs/parser/ast.mjs +145 -0
- package/dist/mjs/parser/ast.mjs.map +10 -0
- package/dist/mjs/parser/formatter.mjs +289 -0
- package/dist/mjs/parser/formatter.mjs.map +10 -0
- package/dist/mjs/parser/grammar.mjs +345 -0
- package/dist/mjs/parser/grammar.mjs.map +10 -0
- package/dist/mjs/parser/lexer.mjs +412 -0
- package/dist/mjs/parser/lexer.mjs.map +10 -0
- package/dist/mjs/parser/parser.mjs +1692 -0
- package/dist/mjs/parser/parser.mjs.map +10 -0
- package/dist/mjs/react/hooks.mjs +16 -0
- package/dist/mjs/react/hooks.mjs.map +10 -0
- package/dist/types/core/ast-traverser.d.ts +28 -0
- package/dist/types/core/autofill-utils.d.ts +32 -0
- package/dist/types/core/engine.d.ts +184 -0
- package/dist/types/core/managers/cache-manager.d.ts +14 -0
- package/dist/types/core/managers/dependency-manager.d.ts +147 -0
- package/dist/types/core/managers/dependency-node.d.ts +13 -0
- package/dist/types/core/managers/evaluation-manager.d.ts +30 -0
- package/dist/types/core/managers/event-manager.d.ts +8 -0
- package/dist/types/core/managers/frontier-dependency-manager.d.ts +69 -0
- package/dist/types/core/managers/index.d.ts +7 -0
- package/dist/types/core/managers/isDependencyNode.d.ts +2 -0
- package/dist/types/core/managers/named-expression-manager.d.ts +101 -0
- package/dist/types/core/managers/range-eval-order-builder.d.ts +33 -0
- package/dist/types/core/managers/table-manager.d.ts +84 -0
- package/dist/types/core/managers/workbook-manager.d.ts +136 -0
- package/dist/types/core/map-serializer.d.ts +4 -0
- package/dist/types/core/named-expression-renamer.d.ts +21 -0
- package/dist/types/core/sheet-renamer.d.ts +28 -0
- package/dist/types/core/sheet-utils.d.ts +2 -0
- package/dist/types/core/table-renamer.d.ts +21 -0
- package/dist/types/core/types.d.ts +272 -0
- package/dist/types/core/utils/cell-address-parsing.test.d.ts +1 -0
- package/dist/types/core/utils/range-serializer.d.ts +22 -0
- package/dist/types/core/utils/range-serializer.test.d.ts +1 -0
- package/dist/types/core/utils/spreadsheet-visualizer.d.ts +30 -0
- package/dist/types/core/utils.d.ts +48 -0
- package/dist/types/core/workbook-renamer.d.ts +28 -0
- package/dist/types/debug/flags.d.ts +11 -0
- package/dist/types/evaluator/arithmetic/add/add.d.ts +2 -0
- package/dist/types/evaluator/arithmetic/add/add.test.d.ts +1 -0
- package/dist/types/evaluator/arithmetic/divide/divide.d.ts +2 -0
- package/dist/types/evaluator/arithmetic/divide/divide.test.d.ts +1 -0
- package/dist/types/evaluator/arithmetic/multiply/multiply.d.ts +2 -0
- package/dist/types/evaluator/arithmetic/multiply/multiply.test.d.ts +1 -0
- package/dist/types/evaluator/arithmetic/power/power.d.ts +2 -0
- package/dist/types/evaluator/arithmetic/power/power.test.d.ts +1 -0
- package/dist/types/evaluator/arithmetic/subtract/subtract.d.ts +2 -0
- package/dist/types/evaluator/arithmetic/subtract/subtract.test.d.ts +1 -0
- package/dist/types/evaluator/comparison/comparison-operators.test.d.ts +1 -0
- package/dist/types/evaluator/comparison/equals.d.ts +6 -0
- package/dist/types/evaluator/comparison/greater-than-or-equal.d.ts +6 -0
- package/dist/types/evaluator/comparison/greater-than.d.ts +6 -0
- package/dist/types/evaluator/comparison/less-than-or-equal.d.ts +6 -0
- package/dist/types/evaluator/comparison/less-than.d.ts +6 -0
- package/dist/types/evaluator/comparison/not-equals.d.ts +6 -0
- package/dist/types/evaluator/concatenation/concatenate.d.ts +6 -0
- package/dist/types/evaluator/concatenation/concatenate.test.d.ts +1 -0
- package/dist/types/evaluator/dependency-nodes/ast-evaluation-node.d.ts +12 -0
- package/dist/types/evaluator/dependency-nodes/base-eval-node.d.ts +31 -0
- package/dist/types/evaluator/dependency-nodes/cell-value-node.d.ts +10 -0
- package/dist/types/evaluator/dependency-nodes/empty-cell-evaluation-node.d.ts +17 -0
- package/dist/types/evaluator/dependency-nodes/spill-meta-node.d.ts +7 -0
- package/dist/types/evaluator/evaluate-scalar-operator.d.ts +12 -0
- package/dist/types/evaluator/evaluation-context.d.ts +66 -0
- package/dist/types/evaluator/evaluation-error.d.ts +20 -0
- package/dist/types/evaluator/formula-evaluator.d.ts +67 -0
- package/dist/types/evaluator/open-range-evaluator.test.d.ts +1 -0
- package/dist/types/evaluator/range-evaluation-node.d.ts +16 -0
- package/dist/types/functions/_template/template.d.ts +5 -0
- package/dist/types/functions/_template/template.test.d.ts +1 -0
- package/dist/types/functions/array/sequence/performance-test.d.ts +1 -0
- package/dist/types/functions/array/sequence/sequence.d.ts +14 -0
- package/dist/types/functions/array/sequence/sequence.test.d.ts +1 -0
- package/dist/types/functions/criteria-parser.d.ts +27 -0
- package/dist/types/functions/criteria-utils.d.ts +61 -0
- package/dist/types/functions/function-utils.d.ts +21 -0
- package/dist/types/functions/index.d.ts +2 -0
- package/dist/types/functions/information/cell/cell.d.ts +24 -0
- package/dist/types/functions/information/cell/cell.test.d.ts +1 -0
- package/dist/types/functions/information/column/column.d.ts +14 -0
- package/dist/types/functions/information/column/column.test.d.ts +1 -0
- package/dist/types/functions/information/row/row.d.ts +14 -0
- package/dist/types/functions/information/row/row.test.d.ts +1 -0
- package/dist/types/functions/logical/and/and.d.ts +5 -0
- package/dist/types/functions/logical/and/and.test.d.ts +1 -0
- package/dist/types/functions/logical/if/if.d.ts +5 -0
- package/dist/types/functions/logical/if/if.test.d.ts +1 -0
- package/dist/types/functions/logical/iferror/iferror.d.ts +5 -0
- package/dist/types/functions/logical/iferror/iferror.test.d.ts +1 -0
- package/dist/types/functions/logical/or/or.d.ts +5 -0
- package/dist/types/functions/logical/or/or.test.d.ts +1 -0
- package/dist/types/functions/lookup/count/count-utils.d.ts +14 -0
- package/dist/types/functions/lookup/count/count.d.ts +21 -0
- package/dist/types/functions/lookup/count/count.test.d.ts +1 -0
- package/dist/types/functions/lookup/count/countif.d.ts +26 -0
- package/dist/types/functions/lookup/count/countif.test.d.ts +1 -0
- package/dist/types/functions/lookup/count/countifs.d.ts +21 -0
- package/dist/types/functions/lookup/count/countifs.test.d.ts +1 -0
- package/dist/types/functions/lookup/index-lookup/index-lookup.d.ts +2 -0
- package/dist/types/functions/lookup/index-lookup/index-lookup.test.d.ts +1 -0
- package/dist/types/functions/lookup/match/match.d.ts +2 -0
- package/dist/types/functions/lookup/match/match.test.d.ts +1 -0
- package/dist/types/functions/lookup/xlookup/xlookup.d.ts +2 -0
- package/dist/types/functions/lookup/xlookup/xlookup.test.d.ts +1 -0
- package/dist/types/functions/math/average/average-utils.d.ts +10 -0
- package/dist/types/functions/math/average/average.d.ts +18 -0
- package/dist/types/functions/math/average/average.test.d.ts +1 -0
- package/dist/types/functions/math/average/averageif.d.ts +23 -0
- package/dist/types/functions/math/average/averageif.test.d.ts +1 -0
- package/dist/types/functions/math/average/averageifs.d.ts +21 -0
- package/dist/types/functions/math/average/averageifs.test.d.ts +1 -0
- package/dist/types/functions/math/ceiling/ceiling.d.ts +5 -0
- package/dist/types/functions/math/ceiling/ceiling.test.d.ts +1 -0
- package/dist/types/functions/math/max/max-utils.d.ts +20 -0
- package/dist/types/functions/math/max/max.d.ts +18 -0
- package/dist/types/functions/math/max/max.test.d.ts +1 -0
- package/dist/types/functions/math/max/maxif.d.ts +23 -0
- package/dist/types/functions/math/max/maxif.test.d.ts +1 -0
- package/dist/types/functions/math/max/maxifs.d.ts +21 -0
- package/dist/types/functions/math/max/maxifs.test.d.ts +1 -0
- package/dist/types/functions/math/min/min-utils.d.ts +20 -0
- package/dist/types/functions/math/min/min.d.ts +5 -0
- package/dist/types/functions/math/min/min.test.d.ts +1 -0
- package/dist/types/functions/math/min/minif.d.ts +23 -0
- package/dist/types/functions/math/min/minif.test.d.ts +1 -0
- package/dist/types/functions/math/min/minifs.d.ts +21 -0
- package/dist/types/functions/math/min/minifs.test.d.ts +1 -0
- package/dist/types/functions/math/sum/sum.d.ts +5 -0
- package/dist/types/functions/math/sum/sum.test.d.ts +1 -0
- package/dist/types/functions/math/sum/sumif.d.ts +23 -0
- package/dist/types/functions/math/sum/sumif.test.d.ts +1 -0
- package/dist/types/functions/math/sum/sumifs.d.ts +21 -0
- package/dist/types/functions/math/sum/sumifs.test.d.ts +1 -0
- package/dist/types/functions/math/sum/summation-utils.d.ts +19 -0
- package/dist/types/functions/reference/address/address.d.ts +18 -0
- package/dist/types/functions/reference/address/address.test.d.ts +1 -0
- package/dist/types/functions/reference/indirect/indirect.d.ts +20 -0
- package/dist/types/functions/reference/indirect/indirect.test.d.ts +1 -0
- package/dist/types/functions/reference/offset/offset.d.ts +23 -0
- package/dist/types/functions/reference/offset/offset.test.d.ts +1 -0
- package/dist/types/functions/text/concatenate/concatenate.d.ts +5 -0
- package/dist/types/functions/text/concatenate/concatenate.test.d.ts +1 -0
- package/dist/types/functions/text/exact/exact.d.ts +5 -0
- package/dist/types/functions/text/exact/exact.test.d.ts +1 -0
- package/dist/types/functions/text/find/find.d.ts +20 -0
- package/dist/types/functions/text/find/find.test.d.ts +1 -0
- package/dist/types/functions/text/left/left.d.ts +19 -0
- package/dist/types/functions/text/left/left.test.d.ts +1 -0
- package/dist/types/functions/text/len/len.d.ts +16 -0
- package/dist/types/functions/text/len/len.test.d.ts +1 -0
- package/dist/types/functions/text/mid/mid.d.ts +20 -0
- package/dist/types/functions/text/mid/mid.test.d.ts +1 -0
- package/dist/types/functions/text/right/right.d.ts +2 -0
- package/dist/types/functions/text/right/right.test.d.ts +1 -0
- package/dist/types/functions/text/text-helpers.d.ts +27 -0
- package/dist/types/functions/text/textjoin/textjoin.d.ts +5 -0
- package/dist/types/functions/text/textjoin/textjoin.test.d.ts +1 -0
- package/dist/types/parser/ast.d.ts +275 -0
- package/dist/types/parser/formatter.d.ts +6 -0
- package/dist/types/parser/grammar.d.ts +203 -0
- package/dist/types/parser/lexer.d.ts +144 -0
- package/dist/types/parser/parser.d.ts +159 -0
- package/dist/types/react/hooks.d.ts +5 -0
- package/package.json +41 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type FunctionDefinition } from "src/core/types";
|
|
2
|
+
/**
|
|
3
|
+
* AVERAGEIFS function - Calculates the average of cells in a range that meet multiple criteria
|
|
4
|
+
*
|
|
5
|
+
* Usage: AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
|
|
6
|
+
*
|
|
7
|
+
* average_range: The range of cells to average
|
|
8
|
+
* criteria_range1: The first range to evaluate against criteria1
|
|
9
|
+
* criteria1: The first criteria to match against
|
|
10
|
+
* criteria_range2, criteria2: Optional additional criteria pairs
|
|
11
|
+
*
|
|
12
|
+
* Examples:
|
|
13
|
+
* AVERAGEIFS(B1:B10, A1:A10, "Apple") - averages B1:B10 where A1:A10 = "Apple"
|
|
14
|
+
* AVERAGEIFS(C1:C10, A1:A10, "Apple", B1:B10, ">10") - averages C1:C10 where A1:A10 = "Apple" AND B1:B10 > 10
|
|
15
|
+
*
|
|
16
|
+
* Note:
|
|
17
|
+
* - All criteria must be satisfied for a value to be included
|
|
18
|
+
* - Only numeric values are included in the average calculation
|
|
19
|
+
* - Returns error if no values match all criteria
|
|
20
|
+
*/
|
|
21
|
+
export declare const AVERAGEIFS: FunctionDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type FunctionEvaluationResult, type SingleEvaluationResult, type CellInfinity } from "src/core/types";
|
|
2
|
+
import type { EvaluationContext } from "src/evaluator/evaluation-context";
|
|
3
|
+
/**
|
|
4
|
+
* Result type for processInfinity in max functions
|
|
5
|
+
*/
|
|
6
|
+
export type ProcessInfinityResult<T> = {
|
|
7
|
+
type: "infinity";
|
|
8
|
+
infinity: CellInfinity;
|
|
9
|
+
} | {
|
|
10
|
+
type: "state";
|
|
11
|
+
state: T;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Perform maximum calculation over an iterator of SingleEvaluationResults
|
|
15
|
+
* Handles the common logic shared by MAX, MAXIF, MAXIFS functions
|
|
16
|
+
*
|
|
17
|
+
* @param results - Iterator of SingleEvaluationResults to find maximum from
|
|
18
|
+
* @returns FunctionEvaluationResult with the maximum, infinity, or error
|
|
19
|
+
*/
|
|
20
|
+
export declare function performMaximum(results: Iterable<SingleEvaluationResult>, context: EvaluationContext): FunctionEvaluationResult;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type FunctionDefinition } from "src/core/types";
|
|
2
|
+
/**
|
|
3
|
+
* MAX function - Returns the largest number in the arguments
|
|
4
|
+
*
|
|
5
|
+
* Usage: MAX(value1, [value2], ...)
|
|
6
|
+
*
|
|
7
|
+
* Examples:
|
|
8
|
+
* MAX(1, 2, 3) - returns 3
|
|
9
|
+
* MAX(A1:A10) - finds maximum in the range A1:A10
|
|
10
|
+
* MAX(A1:A5, B1:B5) - finds maximum across both ranges
|
|
11
|
+
*
|
|
12
|
+
* Note:
|
|
13
|
+
* - Only numeric values are considered
|
|
14
|
+
* - Text, logical values, and empty cells are ignored in ranges
|
|
15
|
+
* - Direct text/logical arguments cause errors
|
|
16
|
+
* - Returns error if no numeric values are found
|
|
17
|
+
*/
|
|
18
|
+
export declare const MAX: FunctionDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type FunctionDefinition } from "src/core/types";
|
|
2
|
+
/**
|
|
3
|
+
* MAXIF function - Returns the maximum value among cells specified by a criteria
|
|
4
|
+
*
|
|
5
|
+
* Usage: MAXIF(range, criteria, [max_range])
|
|
6
|
+
*
|
|
7
|
+
* range: The range of cells to evaluate against the criteria
|
|
8
|
+
* criteria: The criteria to match against. Can be:
|
|
9
|
+
* - Exact value: "Apple", 42
|
|
10
|
+
* - Comparison: ">10", "<=5", "<>0"
|
|
11
|
+
* - Wildcards: "App*", "?ruit"
|
|
12
|
+
* max_range: Optional. The range to find maximum from. If omitted, uses the range parameter
|
|
13
|
+
*
|
|
14
|
+
* Examples:
|
|
15
|
+
* MAXIF(A1:A10, "Apple") - max of cells in A1:A10 that contain "Apple"
|
|
16
|
+
* MAXIF(B1:B10, ">10") - max of cells in B1:B10 with values greater than 10
|
|
17
|
+
* MAXIF(A1:A10, "Apple", B1:B10) - max of B1:B10 where A1:A10 contains "Apple"
|
|
18
|
+
*
|
|
19
|
+
* Note:
|
|
20
|
+
* - Only numeric values are considered for the maximum
|
|
21
|
+
* - Returns error if no values match the criteria
|
|
22
|
+
*/
|
|
23
|
+
export declare const MAXIF: FunctionDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type FunctionDefinition } from "src/core/types";
|
|
2
|
+
/**
|
|
3
|
+
* MAXIFS function - Returns the maximum value among cells specified by multiple criteria
|
|
4
|
+
*
|
|
5
|
+
* Usage: MAXIFS(max_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
|
|
6
|
+
*
|
|
7
|
+
* max_range: The range of cells from which you want the maximum
|
|
8
|
+
* criteria_range1: The first range in which to evaluate criteria
|
|
9
|
+
* criteria1: The criteria to apply to criteria_range1
|
|
10
|
+
* criteria_range2, criteria2: Optional additional criteria pairs
|
|
11
|
+
*
|
|
12
|
+
* Examples:
|
|
13
|
+
* MAXIFS(B1:B10, A1:A10, "Apple") - max of B1:B10 where A1:A10 = "Apple"
|
|
14
|
+
* MAXIFS(C1:C10, A1:A10, "Apple", B1:B10, ">10") - max of C1:C10 where A1:A10 = "Apple" AND B1:B10 > 10
|
|
15
|
+
*
|
|
16
|
+
* Note:
|
|
17
|
+
* - All criteria must be satisfied for a value to be included
|
|
18
|
+
* - Only numeric values are considered for the maximum
|
|
19
|
+
* - Returns error if no values match all criteria
|
|
20
|
+
*/
|
|
21
|
+
export declare const MAXIFS: FunctionDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type FunctionEvaluationResult, type SingleEvaluationResult, type CellInfinity } from "src/core/types";
|
|
2
|
+
import type { EvaluationContext } from "src/evaluator/evaluation-context";
|
|
3
|
+
/**
|
|
4
|
+
* Result type for processInfinity in min functions
|
|
5
|
+
*/
|
|
6
|
+
export type ProcessInfinityResult<T> = {
|
|
7
|
+
type: "infinity";
|
|
8
|
+
infinity: CellInfinity;
|
|
9
|
+
} | {
|
|
10
|
+
type: "state";
|
|
11
|
+
state: T;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Perform minimum calculation over an iterator of SingleEvaluationResults
|
|
15
|
+
* Handles the common logic shared by MIN, MINIF, MINIFS functions
|
|
16
|
+
*
|
|
17
|
+
* @param results - Iterator of SingleEvaluationResults to find minimum from
|
|
18
|
+
* @returns FunctionEvaluationResult with the minimum, infinity, or error
|
|
19
|
+
*/
|
|
20
|
+
export declare function performMinimum(results: Iterable<SingleEvaluationResult>, context: EvaluationContext): FunctionEvaluationResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type FunctionDefinition } from "src/core/types";
|
|
2
|
+
/**
|
|
3
|
+
* MINIF function - Returns the minimum value among cells specified by a criteria
|
|
4
|
+
*
|
|
5
|
+
* Usage: MINIF(range, criteria, [min_range])
|
|
6
|
+
*
|
|
7
|
+
* range: The range of cells to evaluate against the criteria
|
|
8
|
+
* criteria: The criteria to match against. Can be:
|
|
9
|
+
* - Exact value: "Apple", 42
|
|
10
|
+
* - Comparison: ">10", "<=5", "<>0"
|
|
11
|
+
* - Wildcards: "App*", "?ruit"
|
|
12
|
+
* min_range: Optional. The range to find minimum from. If omitted, uses the range parameter
|
|
13
|
+
*
|
|
14
|
+
* Examples:
|
|
15
|
+
* MINIF(A1:A10, "Apple") - min of cells in A1:A10 that contain "Apple"
|
|
16
|
+
* MINIF(B1:B10, ">10") - min of cells in B1:B10 with values greater than 10
|
|
17
|
+
* MINIF(A1:A10, "Apple", B1:B10) - min of B1:B10 where A1:A10 contains "Apple"
|
|
18
|
+
*
|
|
19
|
+
* Note:
|
|
20
|
+
* - Only numeric values are considered for the minimum
|
|
21
|
+
* - Returns error if no values match the criteria
|
|
22
|
+
*/
|
|
23
|
+
export declare const MINIF: FunctionDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type FunctionDefinition } from "src/core/types";
|
|
2
|
+
/**
|
|
3
|
+
* MINIFS function - Returns the minimum value among cells specified by multiple criteria
|
|
4
|
+
*
|
|
5
|
+
* Usage: MINIFS(min_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
|
|
6
|
+
*
|
|
7
|
+
* min_range: The range of cells from which you want the minimum
|
|
8
|
+
* criteria_range1: The first range in which to evaluate criteria
|
|
9
|
+
* criteria1: The criteria to apply to criteria_range1
|
|
10
|
+
* criteria_range2, criteria2: Optional additional criteria pairs
|
|
11
|
+
*
|
|
12
|
+
* Examples:
|
|
13
|
+
* MINIFS(B1:B10, A1:A10, "Apple") - min of B1:B10 where A1:A10 = "Apple"
|
|
14
|
+
* MINIFS(C1:C10, A1:A10, "Apple", B1:B10, ">10") - min of C1:C10 where A1:A10 = "Apple" AND B1:B10 > 10
|
|
15
|
+
*
|
|
16
|
+
* Note:
|
|
17
|
+
* - All criteria must be satisfied for a value to be included
|
|
18
|
+
* - Only numeric values are considered for the minimum
|
|
19
|
+
* - Returns error if no values match all criteria
|
|
20
|
+
*/
|
|
21
|
+
export declare const MINIFS: FunctionDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type FunctionDefinition } from "src/core/types";
|
|
2
|
+
/**
|
|
3
|
+
* SUMIF function - Sums cells in a range that meet a criteria
|
|
4
|
+
*
|
|
5
|
+
* Usage: SUMIF(range, criteria, [sum_range])
|
|
6
|
+
*
|
|
7
|
+
* range: The range of cells to evaluate against the criteria
|
|
8
|
+
* criteria: The criteria to match against. Can be:
|
|
9
|
+
* - Exact value: "Apple", 42
|
|
10
|
+
* - Comparison: ">10", "<=5", "<>0"
|
|
11
|
+
* - Wildcards: "App*", "?ruit"
|
|
12
|
+
* sum_range: Optional. The range to sum. If omitted, uses the range parameter
|
|
13
|
+
*
|
|
14
|
+
* Examples:
|
|
15
|
+
* SUMIF(A1:A10, "Apple") - sums cells in A1:A10 that contain "Apple"
|
|
16
|
+
* SUMIF(B1:B10, ">10") - sums cells in B1:B10 with values greater than 10
|
|
17
|
+
* SUMIF(A1:A10, "Apple", B1:B10) - sums B1:B10 where A1:A10 contains "Apple"
|
|
18
|
+
*
|
|
19
|
+
* Note:
|
|
20
|
+
* - Only numeric values are included in the sum
|
|
21
|
+
* - Returns 0 if no values match the criteria
|
|
22
|
+
*/
|
|
23
|
+
export declare const SUMIF: FunctionDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type FunctionDefinition } from "src/core/types";
|
|
2
|
+
/**
|
|
3
|
+
* SUMIFS function - Sums cells in a range that meet multiple criteria
|
|
4
|
+
*
|
|
5
|
+
* Usage: SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
|
|
6
|
+
*
|
|
7
|
+
* sum_range: The range of cells to sum
|
|
8
|
+
* criteria_range1: The first range to evaluate against criteria1
|
|
9
|
+
* criteria1: The first criteria to match against
|
|
10
|
+
* criteria_range2, criteria2: Optional additional criteria pairs
|
|
11
|
+
*
|
|
12
|
+
* Examples:
|
|
13
|
+
* SUMIFS(B1:B10, A1:A10, "Apple") - sums B1:B10 where A1:A10 = "Apple"
|
|
14
|
+
* SUMIFS(C1:C10, A1:A10, "Apple", B1:B10, ">10") - sums C1:C10 where A1:A10 = "Apple" AND B1:B10 > 10
|
|
15
|
+
*
|
|
16
|
+
* Note:
|
|
17
|
+
* - All criteria must be satisfied for a value to be included
|
|
18
|
+
* - Only numeric values are included in the sum
|
|
19
|
+
* - Returns 0 if no values match all criteria (unlike other IFS functions that return error)
|
|
20
|
+
*/
|
|
21
|
+
export declare const SUMIFS: FunctionDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type FunctionEvaluationResult, type SingleEvaluationResult, type CellInfinity } from "src/core/types";
|
|
2
|
+
/**
|
|
3
|
+
* Result type for processInfinity in sum functions
|
|
4
|
+
*/
|
|
5
|
+
export type ProcessInfinityResult<T> = {
|
|
6
|
+
type: "infinity";
|
|
7
|
+
infinity: CellInfinity;
|
|
8
|
+
} | {
|
|
9
|
+
type: "state";
|
|
10
|
+
state: T;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Perform summation with error propagation
|
|
14
|
+
* Used when errors should be propagated instead of skipped (e.g., SUM with direct error arguments)
|
|
15
|
+
*
|
|
16
|
+
* @param results - Iterator of SingleEvaluationResults to sum
|
|
17
|
+
* @returns FunctionEvaluationResult with the sum, infinity, or first error encountered
|
|
18
|
+
*/
|
|
19
|
+
export declare function performSummation(results: Iterable<SingleEvaluationResult>): FunctionEvaluationResult;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type FunctionDefinition } from "src/core/types";
|
|
2
|
+
/**
|
|
3
|
+
* ADDRESS function - Creates a cell reference as text given row and column numbers
|
|
4
|
+
*
|
|
5
|
+
* Usage: ADDRESS(row_num, column_num, [abs_num], [a1], [sheet_text])
|
|
6
|
+
*
|
|
7
|
+
* row_num: The row number to use in the cell reference
|
|
8
|
+
* column_num: The column number to use in the cell reference
|
|
9
|
+
* abs_num: (optional) Type of reference to return (1=absolute, 2=absolute row/relative col, 3=relative row/absolute col, 4=relative)
|
|
10
|
+
* a1: (optional) A logical value that specifies the A1 or R1C1 reference style (TRUE or omitted = A1 style)
|
|
11
|
+
* sheet_text: (optional) The name of the worksheet to be used as the external reference
|
|
12
|
+
*
|
|
13
|
+
* Examples:
|
|
14
|
+
* - ADDRESS(2, 3) returns "$C$2"
|
|
15
|
+
* - ADDRESS(2, 3, 4) returns "C2"
|
|
16
|
+
* - ADDRESS(2, 3, 1, TRUE, "Sheet2") returns "Sheet2!$C$2"
|
|
17
|
+
*/
|
|
18
|
+
export declare const ADDRESS: FunctionDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type FunctionDefinition } from "src/core/types";
|
|
2
|
+
/**
|
|
3
|
+
* INDIRECT function - Returns the reference specified by a text string
|
|
4
|
+
*
|
|
5
|
+
* Usage: INDIRECT(ref_text, [a1])
|
|
6
|
+
*
|
|
7
|
+
* ref_text: A reference to a cell that contains an A1-style reference, an R1C1-style reference,
|
|
8
|
+
* a name defined as a reference, or a reference to a cell as a text string
|
|
9
|
+
* a1: (optional) A logical value that specifies what type of reference is in ref_text
|
|
10
|
+
* TRUE or omitted = A1-style reference
|
|
11
|
+
* FALSE = R1C1-style reference
|
|
12
|
+
*
|
|
13
|
+
* Examples:
|
|
14
|
+
* - INDIRECT("A1") returns the value in cell A1
|
|
15
|
+
* - INDIRECT("B" & ROW()) returns the value in column B of the current row
|
|
16
|
+
* - INDIRECT("Sheet2!A1") returns the value in cell A1 of Sheet2
|
|
17
|
+
*
|
|
18
|
+
* Note: This function is volatile - it recalculates whenever the worksheet recalculates
|
|
19
|
+
*/
|
|
20
|
+
export declare const INDIRECT: FunctionDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type FunctionDefinition } from "src/core/types";
|
|
2
|
+
/**
|
|
3
|
+
* OFFSET function - Returns a reference offset from a given reference
|
|
4
|
+
*
|
|
5
|
+
* Usage: OFFSET(reference, rows, cols, [height], [width])
|
|
6
|
+
*
|
|
7
|
+
* reference: The reference from which you want to base the offset
|
|
8
|
+
* rows: The number of rows, up or down, that you want the upper-left cell to refer to
|
|
9
|
+
* cols: The number of columns, left or right, that you want the upper-left cell to refer to
|
|
10
|
+
* height: (optional) The height, in number of rows, that you want the returned reference to be
|
|
11
|
+
* width: (optional) The width, in number of columns, that you want the returned reference to be
|
|
12
|
+
*
|
|
13
|
+
* Examples:
|
|
14
|
+
* - OFFSET(A1, 2, 3) returns the value in cell D3 (2 rows down, 3 columns right from A1)
|
|
15
|
+
* - OFFSET(A1, 0, 0, 3, 1) returns the range A1:A3
|
|
16
|
+
* - OFFSET(A1, 1, 1, 2, 2) returns the range B2:C3
|
|
17
|
+
*
|
|
18
|
+
* Notes:
|
|
19
|
+
* - If rows or cols offset reference from the edge of the worksheet, returns #REF! error
|
|
20
|
+
* - Height and width must be positive
|
|
21
|
+
* - If height or width is omitted, the same height or width as reference is used
|
|
22
|
+
*/
|
|
23
|
+
export declare const OFFSET: FunctionDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type FunctionDefinition } from "src/core/types";
|
|
2
|
+
/**
|
|
3
|
+
* FIND function - Finds one text string within another (case-sensitive)
|
|
4
|
+
*
|
|
5
|
+
* Usage: FIND(find_text, within_text, [start_num])
|
|
6
|
+
*
|
|
7
|
+
* find_text: The text you want to find.
|
|
8
|
+
* within_text: The text containing the text you want to find.
|
|
9
|
+
* start_num: [Optional] The character at which to start the search (default: 1).
|
|
10
|
+
*
|
|
11
|
+
* Example: FIND("World", "Hello World", 1) returns 7
|
|
12
|
+
*
|
|
13
|
+
* Note:
|
|
14
|
+
* - The search is case-sensitive
|
|
15
|
+
* - Returns the position of the first character of find_text within within_text
|
|
16
|
+
* - Returns #VALUE! error if text is not found
|
|
17
|
+
* - Supports dynamic arrays (spilled values) for find_text and within_text
|
|
18
|
+
* - Strict type checking: text arguments must be strings, start_num must be number
|
|
19
|
+
*/
|
|
20
|
+
export declare const FIND: FunctionDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type FunctionDefinition } from "src/core/types";
|
|
2
|
+
/**
|
|
3
|
+
* LEFT function - Returns the leftmost characters from a text string
|
|
4
|
+
*
|
|
5
|
+
* Usage: LEFT(text, num_chars)
|
|
6
|
+
*
|
|
7
|
+
* text: The text string to extract characters from.
|
|
8
|
+
* num_chars: The number of characters to extract from the left side of the text.
|
|
9
|
+
*
|
|
10
|
+
* Example: LEFT("Hello, World!", 5) returns "Hello"
|
|
11
|
+
*
|
|
12
|
+
* Note:
|
|
13
|
+
* - If num_chars is less than 0, the function returns an error.
|
|
14
|
+
* - If num_chars is greater than the length of text, the function returns the entire text.
|
|
15
|
+
* - Supports dynamic arrays (spilled values) for both arguments
|
|
16
|
+
* - Strict type checking: text must be string, num_chars must be number
|
|
17
|
+
* - Implemented as MID(text, 1, num_chars)
|
|
18
|
+
*/
|
|
19
|
+
export declare const LEFT: FunctionDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type FunctionDefinition } from "src/core/types";
|
|
2
|
+
/**
|
|
3
|
+
* LEN function - Returns the length of a text string
|
|
4
|
+
*
|
|
5
|
+
* Usage: LEN(text)
|
|
6
|
+
*
|
|
7
|
+
* text: The text string whose length you want to find.
|
|
8
|
+
*
|
|
9
|
+
* Example: LEN("Hello World") returns 11
|
|
10
|
+
*
|
|
11
|
+
* Note:
|
|
12
|
+
* - Supports dynamic arrays (spilled values) for the text argument
|
|
13
|
+
* - Strict type checking: text must be string
|
|
14
|
+
* - Returns the number of characters in the text string
|
|
15
|
+
*/
|
|
16
|
+
export declare const LEN: FunctionDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type FunctionDefinition } from "src/core/types";
|
|
2
|
+
/**
|
|
3
|
+
* MID function - Returns characters from the middle of a text string
|
|
4
|
+
*
|
|
5
|
+
* Usage: MID(text, start_num, num_chars)
|
|
6
|
+
*
|
|
7
|
+
* text: The text string to extract characters from.
|
|
8
|
+
* start_num: The position of the first character to extract (1-based).
|
|
9
|
+
* num_chars: The number of characters to extract.
|
|
10
|
+
*
|
|
11
|
+
* Example: MID("Hello, World!", 8, 5) returns "World"
|
|
12
|
+
*
|
|
13
|
+
* Note:
|
|
14
|
+
* - If start_num is less than 1, the function returns an error.
|
|
15
|
+
* - If num_chars is less than 0, the function returns an error.
|
|
16
|
+
* - If start_num is greater than the length of text, the function returns an empty string.
|
|
17
|
+
* - Supports dynamic arrays (spilled values) for all arguments
|
|
18
|
+
* - Strict type checking: text must be string, start_num and num_chars must be numbers
|
|
19
|
+
*/
|
|
20
|
+
export declare const MID: FunctionDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type CellString, type FunctionEvaluationResult, type ErrorEvaluationResult } from "src/core/types";
|
|
2
|
+
import type { FormulaEvaluator } from "src/evaluator/formula-evaluator";
|
|
3
|
+
import type { EvaluationContext } from "src/evaluator/evaluation-context";
|
|
4
|
+
/**
|
|
5
|
+
* Strictly extracts string value without type coercion
|
|
6
|
+
*/
|
|
7
|
+
export declare function convertToString(result: FunctionEvaluationResult, context: EvaluationContext): string | ErrorEvaluationResult;
|
|
8
|
+
/**
|
|
9
|
+
* Strictly extracts numeric value without type coercion
|
|
10
|
+
*/
|
|
11
|
+
export declare function extractNumericValue(result: FunctionEvaluationResult, context: EvaluationContext): number | ErrorEvaluationResult;
|
|
12
|
+
/**
|
|
13
|
+
* MID substring operation for MID function
|
|
14
|
+
*/
|
|
15
|
+
export declare function midOperation(textResult: FunctionEvaluationResult, startNumResult: FunctionEvaluationResult, numCharsResult: FunctionEvaluationResult, context: EvaluationContext): {
|
|
16
|
+
type: "value";
|
|
17
|
+
result: CellString;
|
|
18
|
+
} | ErrorEvaluationResult;
|
|
19
|
+
/**
|
|
20
|
+
* Helper for creating spilled-values result for MID function (3 parameters)
|
|
21
|
+
*/
|
|
22
|
+
export declare function createMidSpilledResult(this: FormulaEvaluator, { textResult, startNumResult, numCharsResult, context, }: {
|
|
23
|
+
textResult: FunctionEvaluationResult;
|
|
24
|
+
startNumResult: FunctionEvaluationResult;
|
|
25
|
+
numCharsResult: FunctionEvaluationResult;
|
|
26
|
+
context: EvaluationContext;
|
|
27
|
+
}): FunctionEvaluationResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|