@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,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sheet renamer utility for updating cross-sheet references in formulas
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Renames sheet references in a formula string
|
|
6
|
+
* @param formula The formula string (without the leading =)
|
|
7
|
+
* @param oldSheetName The old sheet name to replace
|
|
8
|
+
* @param newSheetName The new sheet name to use
|
|
9
|
+
* @returns The updated formula string
|
|
10
|
+
*/
|
|
11
|
+
export declare function renameSheetInFormula(options: {
|
|
12
|
+
formula: string;
|
|
13
|
+
oldSheetName: string;
|
|
14
|
+
newSheetName: string;
|
|
15
|
+
}): string;
|
|
16
|
+
/**
|
|
17
|
+
* Checks if a formula references a specific sheet
|
|
18
|
+
* @param formula The formula string (without the leading =)
|
|
19
|
+
* @param sheetName The sheet name to check for
|
|
20
|
+
* @returns True if the formula references the sheet
|
|
21
|
+
*/
|
|
22
|
+
export declare function formulaReferencesSheet(formula: string, sheetName: string): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Gets all sheet names referenced in a formula
|
|
25
|
+
* @param formula The formula string (without the leading =)
|
|
26
|
+
* @returns Array of unique sheet names referenced in the formula
|
|
27
|
+
*/
|
|
28
|
+
export declare function getReferencedSheetNames(formula: string): string[];
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renames table references in a formula string
|
|
3
|
+
* @param formula - The formula string (without the leading =)
|
|
4
|
+
* @param oldTableName - The current table name to replace
|
|
5
|
+
* @param newTableName - The new table name
|
|
6
|
+
* @returns The updated formula string, or the original if no changes were made
|
|
7
|
+
*/
|
|
8
|
+
export declare function renameTableInFormula(formula: string, oldTableName: string, newTableName: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Checks if a formula contains references to a specific table
|
|
11
|
+
* @param formula - The formula string (without the leading =)
|
|
12
|
+
* @param tableName - The table name to search for
|
|
13
|
+
* @returns True if the formula contains references to the table
|
|
14
|
+
*/
|
|
15
|
+
export declare function formulaReferencesTable(formula: string, tableName: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Gets all table names referenced in a formula
|
|
18
|
+
* @param formula - The formula string (without the leading =)
|
|
19
|
+
* @returns Array of unique table names referenced in the formula
|
|
20
|
+
*/
|
|
21
|
+
export declare function getReferencedTableNames(formula: string): string[];
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core type definitions for FormulaEngine
|
|
3
|
+
* This file contains all fundamental types used throughout the engine
|
|
4
|
+
*/
|
|
5
|
+
import type { FunctionNode } from "src/parser/ast";
|
|
6
|
+
import type { FormulaEvaluator } from "src/evaluator/formula-evaluator";
|
|
7
|
+
import type { EvaluationContext } from "src/evaluator/evaluation-context";
|
|
8
|
+
import type { DependencyNode } from "./managers/dependency-node";
|
|
9
|
+
import type { LookupOrder } from "./managers/range-eval-order-builder";
|
|
10
|
+
export interface CellAddress {
|
|
11
|
+
sheetName: string;
|
|
12
|
+
workbookName: string;
|
|
13
|
+
colIndex: number;
|
|
14
|
+
rowIndex: number;
|
|
15
|
+
}
|
|
16
|
+
export interface RangeAddress {
|
|
17
|
+
sheetName: string;
|
|
18
|
+
workbookName: string;
|
|
19
|
+
range: SpreadsheetRange;
|
|
20
|
+
}
|
|
21
|
+
export interface LocalCellAddress {
|
|
22
|
+
colIndex: number;
|
|
23
|
+
rowIndex: number;
|
|
24
|
+
}
|
|
25
|
+
export type ArethmeticEvaluator = (left: CellValue, right: CellValue, context: EvaluationContext) => CellValue | ErrorEvaluationResult;
|
|
26
|
+
export type PositiveInfinity = {
|
|
27
|
+
type: "infinity";
|
|
28
|
+
sign: "positive";
|
|
29
|
+
};
|
|
30
|
+
export type CellInfinity = {
|
|
31
|
+
type: "infinity";
|
|
32
|
+
sign: "positive" | "negative";
|
|
33
|
+
};
|
|
34
|
+
export type CellNumber = {
|
|
35
|
+
type: "number";
|
|
36
|
+
value: number;
|
|
37
|
+
};
|
|
38
|
+
export type SpreadsheetRangeEnd = CellNumber | PositiveInfinity;
|
|
39
|
+
export type SpreadsheetRange = {
|
|
40
|
+
start: {
|
|
41
|
+
col: number;
|
|
42
|
+
row: number;
|
|
43
|
+
};
|
|
44
|
+
end: {
|
|
45
|
+
col: SpreadsheetRangeEnd;
|
|
46
|
+
row: SpreadsheetRangeEnd;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
export type RelativeRange = {
|
|
50
|
+
start: {
|
|
51
|
+
col: number;
|
|
52
|
+
row: number;
|
|
53
|
+
};
|
|
54
|
+
width: SpreadsheetRangeEnd;
|
|
55
|
+
height: SpreadsheetRangeEnd;
|
|
56
|
+
};
|
|
57
|
+
export type FiniteSpreadsheetRange = {
|
|
58
|
+
start: {
|
|
59
|
+
col: number;
|
|
60
|
+
row: number;
|
|
61
|
+
};
|
|
62
|
+
end: {
|
|
63
|
+
col: number;
|
|
64
|
+
row: number;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
export type CellString = {
|
|
68
|
+
type: "string";
|
|
69
|
+
value: string;
|
|
70
|
+
};
|
|
71
|
+
export type CellBoolean = {
|
|
72
|
+
type: "boolean";
|
|
73
|
+
value: boolean;
|
|
74
|
+
};
|
|
75
|
+
export type CellValue = CellNumber | CellString | CellBoolean | CellInfinity;
|
|
76
|
+
/**
|
|
77
|
+
* undefined and "" are considered empty values
|
|
78
|
+
* undefineds are converted to "" in the engine
|
|
79
|
+
*
|
|
80
|
+
* any empty values are deleted from the sheet content
|
|
81
|
+
*/
|
|
82
|
+
export type SerializedCellValue = string | number | boolean | undefined;
|
|
83
|
+
export interface NamedExpression {
|
|
84
|
+
name: string;
|
|
85
|
+
expression: string;
|
|
86
|
+
}
|
|
87
|
+
export interface TableDefinition {
|
|
88
|
+
name: string;
|
|
89
|
+
start: {
|
|
90
|
+
rowIndex: number;
|
|
91
|
+
colIndex: number;
|
|
92
|
+
};
|
|
93
|
+
headers: Map<string, {
|
|
94
|
+
name: string;
|
|
95
|
+
index: number;
|
|
96
|
+
}>;
|
|
97
|
+
endRow: SpreadsheetRangeEnd;
|
|
98
|
+
sheetName: string;
|
|
99
|
+
workbookName: string;
|
|
100
|
+
}
|
|
101
|
+
export declare enum FormulaError {
|
|
102
|
+
DIV0 = "#DIV/0!",
|
|
103
|
+
NA = "#N/A",
|
|
104
|
+
NAME = "#NAME?",
|
|
105
|
+
NUM = "#NUM!",
|
|
106
|
+
REF = "#REF!",
|
|
107
|
+
VALUE = "#VALUE!",
|
|
108
|
+
CYCLE = "#CYCLE!",
|
|
109
|
+
ERROR = "#ERROR!",
|
|
110
|
+
SPILL = "#SPILL!"
|
|
111
|
+
}
|
|
112
|
+
export interface Sheet {
|
|
113
|
+
name: string;
|
|
114
|
+
index: number;
|
|
115
|
+
content: Map<string, SerializedCellValue>;
|
|
116
|
+
}
|
|
117
|
+
export interface Workbook {
|
|
118
|
+
name: string;
|
|
119
|
+
sheets: Map<string, Sheet>;
|
|
120
|
+
}
|
|
121
|
+
export type ValueEvaluationResult = {
|
|
122
|
+
type: "value";
|
|
123
|
+
result: CellValue;
|
|
124
|
+
/**
|
|
125
|
+
* If the terminating evaluation result is a reference (see evaluateReference)
|
|
126
|
+
* then we store information about the source cell for context dependent functions like CELL
|
|
127
|
+
*/
|
|
128
|
+
sourceCell?: CellAddress;
|
|
129
|
+
};
|
|
130
|
+
export type AwaitingEvaluationResult = {
|
|
131
|
+
type: "awaiting-evaluation";
|
|
132
|
+
waitingFor: DependencyNode;
|
|
133
|
+
errAddress: DependencyNode;
|
|
134
|
+
/**
|
|
135
|
+
* If the terminating evaluation result is a reference (see evaluateReference)
|
|
136
|
+
* then we store information about the source cell for context dependent functions like CELL
|
|
137
|
+
*/
|
|
138
|
+
sourceCell?: CellAddress;
|
|
139
|
+
};
|
|
140
|
+
export type DoesNotSpillResult = {
|
|
141
|
+
type: "does-not-spill";
|
|
142
|
+
};
|
|
143
|
+
export type ErrorEvaluationResult = {
|
|
144
|
+
type: "error";
|
|
145
|
+
err: FormulaError;
|
|
146
|
+
errAddress: DependencyNode;
|
|
147
|
+
message: string;
|
|
148
|
+
/**
|
|
149
|
+
* If the terminating evaluation result is a reference (see evaluateReference)
|
|
150
|
+
* then we store information about the source cell for context dependent functions like CELL
|
|
151
|
+
*/
|
|
152
|
+
sourceCell?: CellAddress;
|
|
153
|
+
} | AwaitingEvaluationResult;
|
|
154
|
+
export type SingleEvaluationResult = ValueEvaluationResult | ErrorEvaluationResult;
|
|
155
|
+
export type SpilledValuesEvaluator = (spillOffset: {
|
|
156
|
+
x: number;
|
|
157
|
+
y: number;
|
|
158
|
+
}, context: EvaluationContext) => SingleEvaluationResult;
|
|
159
|
+
export type SpilledValuesEvaluationResult = {
|
|
160
|
+
type: "spilled-values";
|
|
161
|
+
/**
|
|
162
|
+
* When a raw range is evaluated, we will add it to the sourceRange so it can be used e.g. for context dependent functions
|
|
163
|
+
*/
|
|
164
|
+
sourceRange?: RangeAddress;
|
|
165
|
+
/**
|
|
166
|
+
* If the terminating evaluation result is a reference (see evaluateReference)
|
|
167
|
+
* then we store information about the source cell for context dependent functions like CELL
|
|
168
|
+
* sourceCell will only be defined on a spilledValue when a single value is looked up,
|
|
169
|
+
*/
|
|
170
|
+
sourceCell?: CellAddress;
|
|
171
|
+
spillArea: (origin: CellAddress) => SpreadsheetRange;
|
|
172
|
+
/**
|
|
173
|
+
* for debugging we add a source string to denote where the spilled values were created
|
|
174
|
+
*/
|
|
175
|
+
source: string;
|
|
176
|
+
evaluate: SpilledValuesEvaluator;
|
|
177
|
+
/**
|
|
178
|
+
* evaluateAllCells evaluates all non-empty cells in the spilled range.
|
|
179
|
+
* Because a spilled range can be open-ended, we need to have logic for which cells we should evaluate.
|
|
180
|
+
* e.g. when evaluating a range such as D:D only the cells in the current sheet residing in
|
|
181
|
+
* column D should be evaluated and cells producing spilled values that spill onto D:D.
|
|
182
|
+
*
|
|
183
|
+
* In order to evaluate spilled cells in D:D the range evaluateAllCells need to get all cells in the
|
|
184
|
+
* the intersection of the spilled range and D:D, for that reason evaluateAllCells gets an intersection parameter,
|
|
185
|
+
* where the intersection is relative to the origin.
|
|
186
|
+
*
|
|
187
|
+
* #### Producers:
|
|
188
|
+
* In e.g. SEQUENCE and evaluateRange we have logic for which cells in a spilled range we should evaluate,
|
|
189
|
+
*
|
|
190
|
+
* #### Nesting:
|
|
191
|
+
* e.g. evaluation of scalar operators where we want to nest e.g. `5 * right.evaluate()`
|
|
192
|
+
* can be implemented by calling
|
|
193
|
+
* ```ts
|
|
194
|
+
* const vals = child.evaluateAllCells.call(this, options);
|
|
195
|
+
* return vals.map(val => ({ ...val, result: 5 * val.result }));
|
|
196
|
+
* ```
|
|
197
|
+
*
|
|
198
|
+
* #### Consumers:
|
|
199
|
+
* Only functions that need access to all spilled values in a range end up calling evaluateAllCells, e.g.
|
|
200
|
+
* SUM, MIN, MAX, MATCH. Other types of functions like INDEX doesn't need to evaluate all cells in a range,
|
|
201
|
+
* but does a lookup into a spilled range using the evaluate method.
|
|
202
|
+
*
|
|
203
|
+
*/
|
|
204
|
+
evaluateAllCells: (this: FormulaEvaluator, options: {
|
|
205
|
+
/**
|
|
206
|
+
* an intersection relative to the origin
|
|
207
|
+
*/
|
|
208
|
+
intersection?: SpreadsheetRange;
|
|
209
|
+
evaluate: SpilledValuesEvaluator;
|
|
210
|
+
context: EvaluationContext;
|
|
211
|
+
/**
|
|
212
|
+
* origin is the cell address that the spilled range is spilled from
|
|
213
|
+
* e.g. in A3=B2:B4 the origin is A3
|
|
214
|
+
*/
|
|
215
|
+
origin: CellAddress;
|
|
216
|
+
lookupOrder: LookupOrder;
|
|
217
|
+
}) => EvaluateAllCellsResult;
|
|
218
|
+
};
|
|
219
|
+
export type EvaluateAllCellsResult = ErrorEvaluationResult | {
|
|
220
|
+
type: "values";
|
|
221
|
+
values: CellInRangeResult[];
|
|
222
|
+
};
|
|
223
|
+
export type CellInRangeResult = {
|
|
224
|
+
result: SingleEvaluationResult;
|
|
225
|
+
relativePos: {
|
|
226
|
+
x: number;
|
|
227
|
+
y: number;
|
|
228
|
+
};
|
|
229
|
+
};
|
|
230
|
+
export type FunctionEvaluationResult = SingleEvaluationResult | SpilledValuesEvaluationResult;
|
|
231
|
+
export type SpilledValue = {
|
|
232
|
+
/**
|
|
233
|
+
* spillOnto is the range that the spilled value is spilled onto
|
|
234
|
+
*/
|
|
235
|
+
spillOnto: SpreadsheetRange;
|
|
236
|
+
/**
|
|
237
|
+
* origin is the cell address that the spilled value is spilled from
|
|
238
|
+
*/
|
|
239
|
+
origin: CellAddress;
|
|
240
|
+
};
|
|
241
|
+
/**
|
|
242
|
+
* Function definition
|
|
243
|
+
*/
|
|
244
|
+
export interface FunctionDefinition {
|
|
245
|
+
name: string;
|
|
246
|
+
evaluate: (this: FormulaEvaluator, node: FunctionNode, context: EvaluationContext) => FunctionEvaluationResult;
|
|
247
|
+
aliases?: string[];
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Evaluation result
|
|
251
|
+
*/
|
|
252
|
+
export type EvaluationResult = {
|
|
253
|
+
dependencies: Set<string>;
|
|
254
|
+
} & FunctionEvaluationResult;
|
|
255
|
+
export type SCC = {
|
|
256
|
+
id: number;
|
|
257
|
+
nodes: Set<DependencyNode>;
|
|
258
|
+
evaluationOrder: DependencyNode[];
|
|
259
|
+
resolved: boolean;
|
|
260
|
+
hardEdgeSCCs: Set<DependencyNode>[];
|
|
261
|
+
};
|
|
262
|
+
export type SCCDAG = {
|
|
263
|
+
sccList: SCC[];
|
|
264
|
+
sccGraph: Map<number, Set<number>>;
|
|
265
|
+
};
|
|
266
|
+
export type EvaluationOrder = {
|
|
267
|
+
evaluationOrder: Set<DependencyNode>;
|
|
268
|
+
hasCycle: boolean;
|
|
269
|
+
cycleNodes?: Set<DependencyNode>;
|
|
270
|
+
hash: string;
|
|
271
|
+
sccDAG?: SCCDAG;
|
|
272
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { SpreadsheetRange } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Serializes a SpreadsheetRange into a human-readable range string following canonical format.
|
|
4
|
+
*
|
|
5
|
+
* Examples:
|
|
6
|
+
* - Finite range: A2:B10
|
|
7
|
+
* - Column-infinite range: A2:B (row infinite, column bounded)
|
|
8
|
+
* - Row-infinite range: A2:10 (column infinite, row bounded)
|
|
9
|
+
* - Fully infinite range: A2:INFINITY (both infinite)
|
|
10
|
+
*
|
|
11
|
+
* @param range The SpreadsheetRange to serialize
|
|
12
|
+
* @returns A human-readable range string in canonical format
|
|
13
|
+
*/
|
|
14
|
+
export declare function serializeRange(range: SpreadsheetRange): string;
|
|
15
|
+
/**
|
|
16
|
+
* Serializes a SpreadsheetRange with an optional sheet name prefix.
|
|
17
|
+
*
|
|
18
|
+
* @param range The SpreadsheetRange to serialize
|
|
19
|
+
* @param sheetName Optional sheet name to prefix the range
|
|
20
|
+
* @returns A human-readable range string, optionally prefixed with sheet name
|
|
21
|
+
*/
|
|
22
|
+
export declare function serializeRangeWithSheet(range: SpreadsheetRange, sheetName?: string): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { FormulaEngine } from "../engine";
|
|
2
|
+
export interface SpreadsheetVisualizerOptions {
|
|
3
|
+
workbookName: string;
|
|
4
|
+
/** Number of rows to display (1-based) */
|
|
5
|
+
numRows: number;
|
|
6
|
+
/** Number of columns to display (0-based, so 11 = A-K) */
|
|
7
|
+
numCols: number;
|
|
8
|
+
/** Starting row (1-based, default: 1) */
|
|
9
|
+
startRow?: number;
|
|
10
|
+
/** Starting column (0-based, default: 0 = A) */
|
|
11
|
+
startCol?: number;
|
|
12
|
+
/** Sheet name to visualize (default: uses engine's current sheet) */
|
|
13
|
+
sheetName?: string;
|
|
14
|
+
/** Character to use for empty cells (default: ".") */
|
|
15
|
+
emptyCellChar?: string;
|
|
16
|
+
/** Minimum column width (default: 3) */
|
|
17
|
+
minColWidth?: number;
|
|
18
|
+
/** Maximum column width (default: 20) */
|
|
19
|
+
maxColWidth?: number;
|
|
20
|
+
/** Whether to show column headers (A, B, C...) */
|
|
21
|
+
showColumnHeaders?: boolean;
|
|
22
|
+
/** Whether to show row numbers */
|
|
23
|
+
showRowNumbers?: boolean;
|
|
24
|
+
/** If output is used for snapshotting */
|
|
25
|
+
snapshot?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Generates a visual ASCII representation of a spreadsheet region
|
|
29
|
+
*/
|
|
30
|
+
export declare function visualizeSpreadsheet(engine: FormulaEngine, options: SpreadsheetVisualizerOptions): string;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type CellAddress, type ErrorEvaluationResult, type LocalCellAddress, type RangeAddress, type RelativeRange, type SpreadsheetRange } from "./types";
|
|
2
|
+
import type { DependencyNode } from "./managers/dependency-node";
|
|
3
|
+
export declare function isCellAddress(obj: RangeAddress | CellAddress): obj is CellAddress;
|
|
4
|
+
export declare function isRangeAddress(obj: RangeAddress | CellAddress): obj is RangeAddress;
|
|
5
|
+
export declare const columnToIndex: (col: string) => number;
|
|
6
|
+
export declare const indexToColumn: (index: number) => string;
|
|
7
|
+
export declare function getRowNumber(index: number): number;
|
|
8
|
+
export declare function getCellReference({ rowIndex, colIndex, }: {
|
|
9
|
+
rowIndex: number;
|
|
10
|
+
colIndex: number;
|
|
11
|
+
}): string;
|
|
12
|
+
export declare function rowToLetter(row: number): string;
|
|
13
|
+
export declare function letterToRow(letter: string): number;
|
|
14
|
+
export declare const parseCellReference: (cellReference: string) => {
|
|
15
|
+
colIndex: number;
|
|
16
|
+
rowIndex: number;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Returns true if the range is a single cell, false otherwise
|
|
20
|
+
*/
|
|
21
|
+
export declare function isRangeOneCell(range: SpreadsheetRange): boolean;
|
|
22
|
+
export declare function isCellInRange(cellAddress: LocalCellAddress, range: SpreadsheetRange): boolean;
|
|
23
|
+
export declare function getRangeKey(range: SpreadsheetRange): string;
|
|
24
|
+
export declare function getRelativeRangeKey(range: RelativeRange): string;
|
|
25
|
+
export declare function getRelativeRange(range: SpreadsheetRange, relativeTo: LocalCellAddress): RelativeRange;
|
|
26
|
+
export declare function getAbsoluteRange(range: RelativeRange, relativeTo: LocalCellAddress): SpreadsheetRange;
|
|
27
|
+
export declare function keyToCellAddress(key: string): CellAddress;
|
|
28
|
+
/**
|
|
29
|
+
* For cache lookups, use dependencyManager.getCellNode(cellAddressToKey(cellAddress)).key
|
|
30
|
+
* because it may be an empty cell node key
|
|
31
|
+
*/
|
|
32
|
+
export declare function cellAddressToKey(cellAddress: CellAddress): string;
|
|
33
|
+
export declare function rangeAddressToKey(rangeAddress: RangeAddress): string;
|
|
34
|
+
/**
|
|
35
|
+
*
|
|
36
|
+
* @param key - the range key to parse e.g. range:workbook:sheet:A3:A5
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
export declare function keyToRangeAddress(key: string): RangeAddress;
|
|
40
|
+
/**
|
|
41
|
+
* Check if two ranges intersect
|
|
42
|
+
*/
|
|
43
|
+
export declare function checkRangeIntersection(range1: SpreadsheetRange, range2: SpreadsheetRange): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Get the intersection of two ranges
|
|
46
|
+
*/
|
|
47
|
+
export declare function getRangeIntersection(range1: SpreadsheetRange, range2: SpreadsheetRange): SpreadsheetRange | null;
|
|
48
|
+
export declare function captureEvaluationErrors<T>(errAddress: DependencyNode, fn: () => T): T | ErrorEvaluationResult;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workbook renamer utility for updating cross-workbook references in formulas
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Renames workbook references in a formula string
|
|
6
|
+
* @param formula The formula string (without the leading =)
|
|
7
|
+
* @param oldWorkbookName The old workbook name to replace
|
|
8
|
+
* @param newWorkbookName The new workbook name to use
|
|
9
|
+
* @returns The updated formula string
|
|
10
|
+
*/
|
|
11
|
+
export declare function renameWorkbookInFormula(options: {
|
|
12
|
+
formula: string;
|
|
13
|
+
oldWorkbookName: string;
|
|
14
|
+
newWorkbookName: string;
|
|
15
|
+
}): string;
|
|
16
|
+
/**
|
|
17
|
+
* Checks if a formula references a specific workbook
|
|
18
|
+
* @param formula The formula string (without the leading =)
|
|
19
|
+
* @param workbookName The workbook name to check for
|
|
20
|
+
* @returns True if the formula references the workbook
|
|
21
|
+
*/
|
|
22
|
+
export declare function formulaReferencesWorkbook(formula: string, workbookName: string): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Gets all workbook names referenced in a formula
|
|
25
|
+
* @param formula The formula string (without the leading =)
|
|
26
|
+
* @returns Array of unique workbook names referenced in the formula
|
|
27
|
+
*/
|
|
28
|
+
export declare function getReferencedWorkbookNames(formula: string): string[];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type DebugFlags = {
|
|
2
|
+
isProfiling: boolean;
|
|
3
|
+
stopEvaluation: boolean;
|
|
4
|
+
profilingNamespaces: Record<string, boolean>;
|
|
5
|
+
numEvaluationCalls: number;
|
|
6
|
+
profiledCall: number;
|
|
7
|
+
maxEvaluationCalls: number;
|
|
8
|
+
prevSize: number;
|
|
9
|
+
};
|
|
10
|
+
export declare const flags: DebugFlags;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FunctionEvaluationResult } from "src/core/types";
|
|
2
|
+
import type { ASTNode } from "src/parser/ast";
|
|
3
|
+
import type { ContextDependency } from "../evaluation-context";
|
|
4
|
+
import { BaseEvalNode } from "./base-eval-node";
|
|
5
|
+
export declare class AstEvaluationNode extends BaseEvalNode<FunctionEvaluationResult> {
|
|
6
|
+
ast: ASTNode;
|
|
7
|
+
private _contextDependency;
|
|
8
|
+
constructor(ast: ASTNode, contextDependency: ContextDependency);
|
|
9
|
+
toString(): string;
|
|
10
|
+
getContextDependency(): ContextDependency;
|
|
11
|
+
setContextDependency(contextDependency: ContextDependency): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type DependencyNode } from "src/core/managers/dependency-node";
|
|
2
|
+
import type { SpillMetaNode } from "./spill-meta-node";
|
|
3
|
+
export declare class BaseEvalNode<T> {
|
|
4
|
+
key: string;
|
|
5
|
+
private _dependencies;
|
|
6
|
+
private _lastDependencies;
|
|
7
|
+
_evaluationResult: T;
|
|
8
|
+
private _resolved;
|
|
9
|
+
constructor(key: string);
|
|
10
|
+
addDependency(dep: DependencyNode): void;
|
|
11
|
+
get directDepsUpdated(): boolean;
|
|
12
|
+
resolve(): void;
|
|
13
|
+
canResolve(): boolean;
|
|
14
|
+
get resolved(): boolean;
|
|
15
|
+
get evaluationResult(): T;
|
|
16
|
+
setEvaluationResult(result: T): void;
|
|
17
|
+
resetDirectDepsUpdated(): void;
|
|
18
|
+
/**
|
|
19
|
+
* Get the direct dependencies of the node, either RangeEvaluationNode or DependencyNode
|
|
20
|
+
*/
|
|
21
|
+
getDependencies(): Set<DependencyNode>;
|
|
22
|
+
/**
|
|
23
|
+
* Just to mirror the method in RangeEvaluationNode
|
|
24
|
+
*/
|
|
25
|
+
getAllDependencies(): Set<DependencyNode>;
|
|
26
|
+
/**
|
|
27
|
+
* Just to mirror the method in RangeEvaluationNode
|
|
28
|
+
*/
|
|
29
|
+
getFrontierDependencies(): Set<SpillMetaNode>;
|
|
30
|
+
toJSON(visitor?: Set<string>): any;
|
|
31
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CellAddress, SingleEvaluationResult } from "src/core/types";
|
|
2
|
+
import { BaseEvalNode } from "./base-eval-node";
|
|
3
|
+
import type { SpillMetaNode } from "./spill-meta-node";
|
|
4
|
+
export declare class CellValueNode extends BaseEvalNode<SingleEvaluationResult> {
|
|
5
|
+
readonly cellAddress: CellAddress;
|
|
6
|
+
constructor(key: string);
|
|
7
|
+
toString(): string;
|
|
8
|
+
spillMeta: SpillMetaNode | undefined;
|
|
9
|
+
setSpillMetaNode(node: SpillMetaNode): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { DependencyManager } from "src/core/managers/dependency-manager";
|
|
2
|
+
import { FrontierDependencyManager } from "src/core/managers/frontier-dependency-manager";
|
|
3
|
+
import type { WorkbookManager } from "src/core/managers/workbook-manager";
|
|
4
|
+
import type { CellAddress, SingleEvaluationResult } from "src/core/types";
|
|
5
|
+
export declare class EmptyCellEvaluationNode extends FrontierDependencyManager {
|
|
6
|
+
emptyCellKey: string;
|
|
7
|
+
key: string;
|
|
8
|
+
cellAddress: CellAddress;
|
|
9
|
+
private _evaluationResult;
|
|
10
|
+
constructor(emptyCellKey: string, evaluationManager: DependencyManager, workbookManager: WorkbookManager);
|
|
11
|
+
setEvaluationResult(result: SingleEvaluationResult): void;
|
|
12
|
+
get evaluationResult(): SingleEvaluationResult;
|
|
13
|
+
resolve(): void;
|
|
14
|
+
canResolve(): boolean;
|
|
15
|
+
toJSON(visitor?: Set<string>): any;
|
|
16
|
+
toString(): string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CellAddress, DoesNotSpillResult, ErrorEvaluationResult, SpilledValuesEvaluationResult } from "src/core/types";
|
|
2
|
+
import { BaseEvalNode } from "./base-eval-node";
|
|
3
|
+
export declare class SpillMetaNode extends BaseEvalNode<SpilledValuesEvaluationResult | ErrorEvaluationResult | DoesNotSpillResult> {
|
|
4
|
+
readonly cellAddress: CellAddress;
|
|
5
|
+
constructor(key: string);
|
|
6
|
+
toString(): string;
|
|
7
|
+
}
|