@ricsam/formula-engine 0.2.1 → 0.2.3

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.
Files changed (337) hide show
  1. package/dist/cjs/core/ast-traverser.cjs +19 -9
  2. package/dist/cjs/core/ast-traverser.cjs.map +2 -2
  3. package/dist/cjs/core/autofill-utils.cjs +19 -9
  4. package/dist/cjs/core/autofill-utils.cjs.map +2 -2
  5. package/dist/cjs/core/cell-mover.cjs +19 -9
  6. package/dist/cjs/core/cell-mover.cjs.map +2 -2
  7. package/dist/cjs/core/commands/command-executor.cjs +24 -13
  8. package/dist/cjs/core/commands/command-executor.cjs.map +3 -3
  9. package/dist/cjs/core/commands/content-commands.cjs +292 -9
  10. package/dist/cjs/core/commands/content-commands.cjs.map +3 -3
  11. package/dist/cjs/core/commands/metadata-commands.cjs +19 -9
  12. package/dist/cjs/core/commands/metadata-commands.cjs.map +2 -2
  13. package/dist/cjs/core/commands/named-expression-commands.cjs +138 -13
  14. package/dist/cjs/core/commands/named-expression-commands.cjs.map +3 -3
  15. package/dist/cjs/core/commands/structure-commands.cjs +216 -15
  16. package/dist/cjs/core/commands/structure-commands.cjs.map +3 -3
  17. package/dist/cjs/core/commands/style-commands.cjs +19 -9
  18. package/dist/cjs/core/commands/style-commands.cjs.map +2 -2
  19. package/dist/cjs/core/commands/table-commands.cjs +134 -13
  20. package/dist/cjs/core/commands/table-commands.cjs.map +3 -3
  21. package/dist/cjs/core/commands/types.cjs +36 -9
  22. package/dist/cjs/core/commands/types.cjs.map +3 -3
  23. package/dist/cjs/core/engine-snapshot.cjs +51 -0
  24. package/dist/cjs/core/engine-snapshot.cjs.map +10 -0
  25. package/dist/cjs/core/engine.cjs +58 -34
  26. package/dist/cjs/core/engine.cjs.map +3 -3
  27. package/dist/cjs/core/managers/cache-manager.cjs +123 -9
  28. package/dist/cjs/core/managers/cache-manager.cjs.map +3 -3
  29. package/dist/cjs/core/managers/copy-manager.cjs +19 -9
  30. package/dist/cjs/core/managers/copy-manager.cjs.map +2 -2
  31. package/dist/cjs/core/managers/dependency-manager.cjs +697 -9
  32. package/dist/cjs/core/managers/dependency-manager.cjs.map +3 -3
  33. package/dist/cjs/core/managers/dependency-node.cjs +14 -8
  34. package/dist/cjs/core/managers/dependency-node.cjs.map +1 -1
  35. package/dist/cjs/core/managers/evaluation-manager.cjs +296 -11
  36. package/dist/cjs/core/managers/evaluation-manager.cjs.map +3 -3
  37. package/dist/cjs/core/managers/event-manager.cjs +19 -9
  38. package/dist/cjs/core/managers/event-manager.cjs.map +2 -2
  39. package/dist/cjs/core/managers/frontier-dependency-manager.cjs +65 -12
  40. package/dist/cjs/core/managers/frontier-dependency-manager.cjs.map +3 -3
  41. package/dist/cjs/core/managers/isDependencyNode.cjs +19 -9
  42. package/dist/cjs/core/managers/isDependencyNode.cjs.map +2 -2
  43. package/dist/cjs/core/managers/named-expression-manager.cjs +121 -29
  44. package/dist/cjs/core/managers/named-expression-manager.cjs.map +3 -3
  45. package/dist/cjs/core/managers/range-eval-order-builder.cjs +19 -9
  46. package/dist/cjs/core/managers/range-eval-order-builder.cjs.map +2 -2
  47. package/dist/cjs/core/managers/reference-manager.cjs +25 -9
  48. package/dist/cjs/core/managers/reference-manager.cjs.map +3 -3
  49. package/dist/cjs/core/managers/schema-manager.cjs +19 -9
  50. package/dist/cjs/core/managers/schema-manager.cjs.map +2 -2
  51. package/dist/cjs/core/managers/style-manager.cjs +28 -9
  52. package/dist/cjs/core/managers/style-manager.cjs.map +3 -3
  53. package/dist/cjs/core/managers/table-manager.cjs +25 -9
  54. package/dist/cjs/core/managers/table-manager.cjs.map +3 -3
  55. package/dist/cjs/core/managers/workbook-manager.cjs +38 -13
  56. package/dist/cjs/core/managers/workbook-manager.cjs.map +3 -3
  57. package/dist/cjs/core/map-serializer.cjs +19 -9
  58. package/dist/cjs/core/map-serializer.cjs.map +2 -2
  59. package/dist/cjs/core/named-expression-renamer.cjs +19 -9
  60. package/dist/cjs/core/named-expression-renamer.cjs.map +2 -2
  61. package/dist/cjs/core/resource-keys.cjs +67 -0
  62. package/dist/cjs/core/resource-keys.cjs.map +10 -0
  63. package/dist/cjs/core/schema/cell-orm.cjs +19 -9
  64. package/dist/cjs/core/schema/cell-orm.cjs.map +2 -2
  65. package/dist/cjs/core/schema/grid-orm.cjs +19 -9
  66. package/dist/cjs/core/schema/grid-orm.cjs.map +2 -2
  67. package/dist/cjs/core/schema/schema-builder.cjs +19 -9
  68. package/dist/cjs/core/schema/schema-builder.cjs.map +2 -2
  69. package/dist/cjs/core/schema/schema-helpers.cjs +19 -9
  70. package/dist/cjs/core/schema/schema-helpers.cjs.map +2 -2
  71. package/dist/cjs/core/schema/schema.cjs +19 -9
  72. package/dist/cjs/core/schema/schema.cjs.map +2 -2
  73. package/dist/cjs/core/schema/table-orm.cjs +19 -9
  74. package/dist/cjs/core/schema/table-orm.cjs.map +2 -2
  75. package/dist/cjs/core/sheet-renamer.cjs +19 -9
  76. package/dist/cjs/core/sheet-renamer.cjs.map +2 -2
  77. package/dist/cjs/core/sheet-utils.cjs +19 -9
  78. package/dist/cjs/core/sheet-utils.cjs.map +2 -2
  79. package/dist/cjs/core/table-renamer.cjs +19 -9
  80. package/dist/cjs/core/table-renamer.cjs.map +2 -2
  81. package/dist/cjs/core/types.cjs +19 -9
  82. package/dist/cjs/core/types.cjs.map +2 -2
  83. package/dist/cjs/core/utils/color-utils.cjs +19 -9
  84. package/dist/cjs/core/utils/color-utils.cjs.map +2 -2
  85. package/dist/cjs/core/utils/range-serializer.cjs +19 -9
  86. package/dist/cjs/core/utils/range-serializer.cjs.map +2 -2
  87. package/dist/cjs/core/utils/range-utils.cjs +19 -9
  88. package/dist/cjs/core/utils/range-utils.cjs.map +2 -2
  89. package/dist/cjs/core/utils/spreadsheet-visualizer.cjs +19 -9
  90. package/dist/cjs/core/utils/spreadsheet-visualizer.cjs.map +2 -2
  91. package/dist/cjs/core/utils.cjs +19 -9
  92. package/dist/cjs/core/utils.cjs.map +2 -2
  93. package/dist/cjs/core/workbook-renamer.cjs +19 -9
  94. package/dist/cjs/core/workbook-renamer.cjs.map +2 -2
  95. package/dist/cjs/debug/flags.cjs +19 -9
  96. package/dist/cjs/debug/flags.cjs.map +2 -2
  97. package/dist/cjs/evaluator/arithmetic/add/add.cjs +19 -9
  98. package/dist/cjs/evaluator/arithmetic/add/add.cjs.map +2 -2
  99. package/dist/cjs/evaluator/arithmetic/divide/divide.cjs +19 -9
  100. package/dist/cjs/evaluator/arithmetic/divide/divide.cjs.map +2 -2
  101. package/dist/cjs/evaluator/arithmetic/multiply/multiply.cjs +19 -9
  102. package/dist/cjs/evaluator/arithmetic/multiply/multiply.cjs.map +2 -2
  103. package/dist/cjs/evaluator/arithmetic/power/power.cjs +19 -9
  104. package/dist/cjs/evaluator/arithmetic/power/power.cjs.map +2 -2
  105. package/dist/cjs/evaluator/arithmetic/subtract/subtract.cjs +19 -9
  106. package/dist/cjs/evaluator/arithmetic/subtract/subtract.cjs.map +2 -2
  107. package/dist/cjs/evaluator/comparison/equals.cjs +19 -9
  108. package/dist/cjs/evaluator/comparison/equals.cjs.map +2 -2
  109. package/dist/cjs/evaluator/comparison/greater-than-or-equal.cjs +19 -9
  110. package/dist/cjs/evaluator/comparison/greater-than-or-equal.cjs.map +2 -2
  111. package/dist/cjs/evaluator/comparison/greater-than.cjs +19 -9
  112. package/dist/cjs/evaluator/comparison/greater-than.cjs.map +2 -2
  113. package/dist/cjs/evaluator/comparison/less-than-or-equal.cjs +19 -9
  114. package/dist/cjs/evaluator/comparison/less-than-or-equal.cjs.map +2 -2
  115. package/dist/cjs/evaluator/comparison/less-than.cjs +19 -9
  116. package/dist/cjs/evaluator/comparison/less-than.cjs.map +2 -2
  117. package/dist/cjs/evaluator/comparison/not-equals.cjs +19 -9
  118. package/dist/cjs/evaluator/comparison/not-equals.cjs.map +2 -2
  119. package/dist/cjs/evaluator/concatenation/concatenate.cjs +19 -9
  120. package/dist/cjs/evaluator/concatenation/concatenate.cjs.map +2 -2
  121. package/dist/cjs/evaluator/dependency-nodes/ast-evaluation-node.cjs +19 -9
  122. package/dist/cjs/evaluator/dependency-nodes/ast-evaluation-node.cjs.map +2 -2
  123. package/dist/cjs/evaluator/dependency-nodes/base-eval-node.cjs +35 -9
  124. package/dist/cjs/evaluator/dependency-nodes/base-eval-node.cjs.map +3 -3
  125. package/dist/cjs/evaluator/dependency-nodes/cell-value-node.cjs +22 -9
  126. package/dist/cjs/evaluator/dependency-nodes/cell-value-node.cjs.map +3 -3
  127. package/dist/cjs/evaluator/dependency-nodes/empty-cell-evaluation-node.cjs +35 -11
  128. package/dist/cjs/evaluator/dependency-nodes/empty-cell-evaluation-node.cjs.map +3 -3
  129. package/dist/cjs/evaluator/dependency-nodes/resource-dependency-node.cjs +61 -0
  130. package/dist/cjs/evaluator/dependency-nodes/resource-dependency-node.cjs.map +10 -0
  131. package/dist/cjs/evaluator/dependency-nodes/spill-meta-node.cjs +19 -9
  132. package/dist/cjs/evaluator/dependency-nodes/spill-meta-node.cjs.map +2 -2
  133. package/dist/cjs/evaluator/dependency-nodes/virtual-cell-value-node.cjs +22 -9
  134. package/dist/cjs/evaluator/dependency-nodes/virtual-cell-value-node.cjs.map +3 -3
  135. package/dist/cjs/evaluator/evaluate-scalar-operator.cjs +19 -9
  136. package/dist/cjs/evaluator/evaluate-scalar-operator.cjs.map +2 -2
  137. package/dist/cjs/evaluator/evaluation-context.cjs +19 -9
  138. package/dist/cjs/evaluator/evaluation-context.cjs.map +2 -2
  139. package/dist/cjs/evaluator/evaluation-error.cjs +19 -9
  140. package/dist/cjs/evaluator/evaluation-error.cjs.map +2 -2
  141. package/dist/cjs/evaluator/formula-evaluator.cjs +55 -12
  142. package/dist/cjs/evaluator/formula-evaluator.cjs.map +3 -3
  143. package/dist/cjs/evaluator/range-evaluation-node.cjs +35 -11
  144. package/dist/cjs/evaluator/range-evaluation-node.cjs.map +3 -3
  145. package/dist/cjs/functions/_template/template.cjs +19 -9
  146. package/dist/cjs/functions/_template/template.cjs.map +2 -2
  147. package/dist/cjs/functions/array/sequence/sequence.cjs +19 -9
  148. package/dist/cjs/functions/array/sequence/sequence.cjs.map +2 -2
  149. package/dist/cjs/functions/criteria-parser.cjs +19 -9
  150. package/dist/cjs/functions/criteria-parser.cjs.map +2 -2
  151. package/dist/cjs/functions/criteria-utils.cjs +19 -9
  152. package/dist/cjs/functions/criteria-utils.cjs.map +2 -2
  153. package/dist/cjs/functions/function-registry.cjs +19 -9
  154. package/dist/cjs/functions/function-registry.cjs.map +2 -2
  155. package/dist/cjs/functions/function-utils.cjs +19 -9
  156. package/dist/cjs/functions/function-utils.cjs.map +2 -2
  157. package/dist/cjs/functions/information/cell/cell.cjs +19 -9
  158. package/dist/cjs/functions/information/cell/cell.cjs.map +2 -2
  159. package/dist/cjs/functions/information/column/column.cjs +19 -9
  160. package/dist/cjs/functions/information/column/column.cjs.map +2 -2
  161. package/dist/cjs/functions/information/row/row.cjs +19 -9
  162. package/dist/cjs/functions/information/row/row.cjs.map +2 -2
  163. package/dist/cjs/functions/logical/and/and.cjs +19 -9
  164. package/dist/cjs/functions/logical/and/and.cjs.map +2 -2
  165. package/dist/cjs/functions/logical/if/if.cjs +19 -9
  166. package/dist/cjs/functions/logical/if/if.cjs.map +2 -2
  167. package/dist/cjs/functions/logical/iferror/iferror.cjs +19 -9
  168. package/dist/cjs/functions/logical/iferror/iferror.cjs.map +2 -2
  169. package/dist/cjs/functions/logical/or/or.cjs +19 -9
  170. package/dist/cjs/functions/logical/or/or.cjs.map +2 -2
  171. package/dist/cjs/functions/lookup/count/count-utils.cjs +19 -9
  172. package/dist/cjs/functions/lookup/count/count-utils.cjs.map +2 -2
  173. package/dist/cjs/functions/lookup/count/count.cjs +19 -9
  174. package/dist/cjs/functions/lookup/count/count.cjs.map +2 -2
  175. package/dist/cjs/functions/lookup/count/countif.cjs +19 -9
  176. package/dist/cjs/functions/lookup/count/countif.cjs.map +2 -2
  177. package/dist/cjs/functions/lookup/count/countifs.cjs +19 -9
  178. package/dist/cjs/functions/lookup/count/countifs.cjs.map +2 -2
  179. package/dist/cjs/functions/lookup/index-lookup/index-lookup.cjs +19 -9
  180. package/dist/cjs/functions/lookup/index-lookup/index-lookup.cjs.map +2 -2
  181. package/dist/cjs/functions/lookup/match/match.cjs +21 -10
  182. package/dist/cjs/functions/lookup/match/match.cjs.map +3 -3
  183. package/dist/cjs/functions/lookup/xlookup/xlookup.cjs +19 -9
  184. package/dist/cjs/functions/lookup/xlookup/xlookup.cjs.map +2 -2
  185. package/dist/cjs/functions/math/average/average-utils.cjs +19 -9
  186. package/dist/cjs/functions/math/average/average-utils.cjs.map +2 -2
  187. package/dist/cjs/functions/math/average/average.cjs +19 -9
  188. package/dist/cjs/functions/math/average/average.cjs.map +2 -2
  189. package/dist/cjs/functions/math/average/averageif.cjs +19 -9
  190. package/dist/cjs/functions/math/average/averageif.cjs.map +2 -2
  191. package/dist/cjs/functions/math/average/averageifs.cjs +19 -9
  192. package/dist/cjs/functions/math/average/averageifs.cjs.map +2 -2
  193. package/dist/cjs/functions/math/ceiling/ceiling.cjs +19 -9
  194. package/dist/cjs/functions/math/ceiling/ceiling.cjs.map +2 -2
  195. package/dist/cjs/functions/math/max/max-utils.cjs +19 -9
  196. package/dist/cjs/functions/math/max/max-utils.cjs.map +2 -2
  197. package/dist/cjs/functions/math/max/max.cjs +19 -9
  198. package/dist/cjs/functions/math/max/max.cjs.map +2 -2
  199. package/dist/cjs/functions/math/max/maxif.cjs +19 -9
  200. package/dist/cjs/functions/math/max/maxif.cjs.map +2 -2
  201. package/dist/cjs/functions/math/max/maxifs.cjs +19 -9
  202. package/dist/cjs/functions/math/max/maxifs.cjs.map +2 -2
  203. package/dist/cjs/functions/math/min/min-utils.cjs +19 -9
  204. package/dist/cjs/functions/math/min/min-utils.cjs.map +2 -2
  205. package/dist/cjs/functions/math/min/min.cjs +19 -9
  206. package/dist/cjs/functions/math/min/min.cjs.map +2 -2
  207. package/dist/cjs/functions/math/min/minif.cjs +19 -9
  208. package/dist/cjs/functions/math/min/minif.cjs.map +2 -2
  209. package/dist/cjs/functions/math/min/minifs.cjs +19 -9
  210. package/dist/cjs/functions/math/min/minifs.cjs.map +2 -2
  211. package/dist/cjs/functions/math/sum/sum.cjs +19 -9
  212. package/dist/cjs/functions/math/sum/sum.cjs.map +2 -2
  213. package/dist/cjs/functions/math/sum/sumif.cjs +19 -9
  214. package/dist/cjs/functions/math/sum/sumif.cjs.map +2 -2
  215. package/dist/cjs/functions/math/sum/sumifs.cjs +19 -9
  216. package/dist/cjs/functions/math/sum/sumifs.cjs.map +2 -2
  217. package/dist/cjs/functions/math/sum/summation-utils.cjs +19 -9
  218. package/dist/cjs/functions/math/sum/summation-utils.cjs.map +2 -2
  219. package/dist/cjs/functions/reference/address/address.cjs +19 -9
  220. package/dist/cjs/functions/reference/address/address.cjs.map +2 -2
  221. package/dist/cjs/functions/reference/indirect/indirect.cjs +19 -9
  222. package/dist/cjs/functions/reference/indirect/indirect.cjs.map +2 -2
  223. package/dist/cjs/functions/reference/offset/offset.cjs +19 -9
  224. package/dist/cjs/functions/reference/offset/offset.cjs.map +2 -2
  225. package/dist/cjs/functions/text/concatenate/concatenate.cjs +21 -9
  226. package/dist/cjs/functions/text/concatenate/concatenate.cjs.map +3 -3
  227. package/dist/cjs/functions/text/exact/exact.cjs +19 -9
  228. package/dist/cjs/functions/text/exact/exact.cjs.map +2 -2
  229. package/dist/cjs/functions/text/find/find.cjs +19 -9
  230. package/dist/cjs/functions/text/find/find.cjs.map +2 -2
  231. package/dist/cjs/functions/text/left/left.cjs +19 -9
  232. package/dist/cjs/functions/text/left/left.cjs.map +2 -2
  233. package/dist/cjs/functions/text/len/len.cjs +19 -9
  234. package/dist/cjs/functions/text/len/len.cjs.map +2 -2
  235. package/dist/cjs/functions/text/mid/mid.cjs +19 -9
  236. package/dist/cjs/functions/text/mid/mid.cjs.map +2 -2
  237. package/dist/cjs/functions/text/right/right.cjs +19 -9
  238. package/dist/cjs/functions/text/right/right.cjs.map +2 -2
  239. package/dist/cjs/functions/text/text-helpers.cjs +19 -9
  240. package/dist/cjs/functions/text/text-helpers.cjs.map +2 -2
  241. package/dist/cjs/functions/text/textjoin/textjoin.cjs +19 -9
  242. package/dist/cjs/functions/text/textjoin/textjoin.cjs.map +2 -2
  243. package/dist/cjs/lib.cjs +24 -13
  244. package/dist/cjs/lib.cjs.map +2 -2
  245. package/dist/cjs/package.json +1 -1
  246. package/dist/cjs/parser/ast.cjs +19 -9
  247. package/dist/cjs/parser/ast.cjs.map +2 -2
  248. package/dist/cjs/parser/formatter.cjs +19 -9
  249. package/dist/cjs/parser/formatter.cjs.map +2 -2
  250. package/dist/cjs/parser/grammar.cjs +19 -9
  251. package/dist/cjs/parser/grammar.cjs.map +2 -2
  252. package/dist/cjs/parser/lexer.cjs +19 -9
  253. package/dist/cjs/parser/lexer.cjs.map +2 -2
  254. package/dist/cjs/parser/parser.cjs +19 -9
  255. package/dist/cjs/parser/parser.cjs.map +2 -2
  256. package/dist/cjs/react/hooks.cjs +31 -10
  257. package/dist/cjs/react/hooks.cjs.map +2 -2
  258. package/dist/mjs/core/commands/command-executor.mjs +7 -5
  259. package/dist/mjs/core/commands/command-executor.mjs.map +3 -3
  260. package/dist/mjs/core/commands/content-commands.mjs +279 -2
  261. package/dist/mjs/core/commands/content-commands.mjs.map +3 -3
  262. package/dist/mjs/core/commands/named-expression-commands.mjs +121 -6
  263. package/dist/mjs/core/commands/named-expression-commands.mjs.map +3 -3
  264. package/dist/mjs/core/commands/structure-commands.mjs +204 -8
  265. package/dist/mjs/core/commands/structure-commands.mjs.map +3 -3
  266. package/dist/mjs/core/commands/table-commands.mjs +117 -6
  267. package/dist/mjs/core/commands/table-commands.mjs.map +3 -3
  268. package/dist/mjs/core/commands/types.mjs +18 -1
  269. package/dist/mjs/core/commands/types.mjs.map +3 -3
  270. package/dist/mjs/core/engine-snapshot.mjs +11 -0
  271. package/dist/mjs/core/engine-snapshot.mjs.map +10 -0
  272. package/dist/mjs/core/engine.mjs +42 -26
  273. package/dist/mjs/core/engine.mjs.map +3 -3
  274. package/dist/mjs/core/managers/cache-manager.mjs +105 -1
  275. package/dist/mjs/core/managers/cache-manager.mjs.map +3 -3
  276. package/dist/mjs/core/managers/dependency-manager.mjs +687 -2
  277. package/dist/mjs/core/managers/dependency-manager.mjs.map +3 -3
  278. package/dist/mjs/core/managers/evaluation-manager.mjs +283 -4
  279. package/dist/mjs/core/managers/evaluation-manager.mjs.map +3 -3
  280. package/dist/mjs/core/managers/frontier-dependency-manager.mjs +47 -4
  281. package/dist/mjs/core/managers/frontier-dependency-manager.mjs.map +3 -3
  282. package/dist/mjs/core/managers/named-expression-manager.mjs +104 -21
  283. package/dist/mjs/core/managers/named-expression-manager.mjs.map +3 -3
  284. package/dist/mjs/core/managers/reference-manager.mjs +7 -1
  285. package/dist/mjs/core/managers/reference-manager.mjs.map +3 -3
  286. package/dist/mjs/core/managers/style-manager.mjs +10 -1
  287. package/dist/mjs/core/managers/style-manager.mjs.map +3 -3
  288. package/dist/mjs/core/managers/table-manager.mjs +7 -1
  289. package/dist/mjs/core/managers/table-manager.mjs.map +3 -3
  290. package/dist/mjs/core/managers/workbook-manager.mjs +20 -5
  291. package/dist/mjs/core/managers/workbook-manager.mjs.map +3 -3
  292. package/dist/mjs/core/resource-keys.mjs +27 -0
  293. package/dist/mjs/core/resource-keys.mjs.map +10 -0
  294. package/dist/mjs/evaluator/dependency-nodes/base-eval-node.mjs +17 -1
  295. package/dist/mjs/evaluator/dependency-nodes/base-eval-node.mjs.map +3 -3
  296. package/dist/mjs/evaluator/dependency-nodes/cell-value-node.mjs +4 -1
  297. package/dist/mjs/evaluator/dependency-nodes/cell-value-node.mjs.map +3 -3
  298. package/dist/mjs/evaluator/dependency-nodes/empty-cell-evaluation-node.mjs +17 -3
  299. package/dist/mjs/evaluator/dependency-nodes/empty-cell-evaluation-node.mjs.map +3 -3
  300. package/dist/mjs/evaluator/dependency-nodes/resource-dependency-node.mjs +21 -0
  301. package/dist/mjs/evaluator/dependency-nodes/resource-dependency-node.mjs.map +10 -0
  302. package/dist/mjs/evaluator/dependency-nodes/virtual-cell-value-node.mjs +4 -1
  303. package/dist/mjs/evaluator/dependency-nodes/virtual-cell-value-node.mjs.map +3 -3
  304. package/dist/mjs/evaluator/formula-evaluator.mjs +42 -4
  305. package/dist/mjs/evaluator/formula-evaluator.mjs.map +3 -3
  306. package/dist/mjs/evaluator/range-evaluation-node.mjs +17 -3
  307. package/dist/mjs/evaluator/range-evaluation-node.mjs.map +3 -3
  308. package/dist/mjs/functions/lookup/match/match.mjs +3 -2
  309. package/dist/mjs/functions/lookup/match/match.mjs.map +3 -3
  310. package/dist/mjs/functions/text/concatenate/concatenate.mjs +3 -1
  311. package/dist/mjs/functions/text/concatenate/concatenate.mjs.map +3 -3
  312. package/dist/mjs/package.json +1 -1
  313. package/dist/types/core/commands/content-commands.d.ts +31 -1
  314. package/dist/types/core/commands/named-expression-commands.d.ts +16 -1
  315. package/dist/types/core/commands/structure-commands.d.ts +24 -1
  316. package/dist/types/core/commands/table-commands.d.ts +16 -1
  317. package/dist/types/core/commands/types.d.ts +25 -1
  318. package/dist/types/core/engine-snapshot.d.ts +138 -0
  319. package/dist/types/core/engine.d.ts +19 -1
  320. package/dist/types/core/managers/cache-manager.d.ts +9 -0
  321. package/dist/types/core/managers/dependency-manager.d.ts +56 -1
  322. package/dist/types/core/managers/dependency-node.d.ts +2 -1
  323. package/dist/types/core/managers/evaluation-manager.d.ts +21 -1
  324. package/dist/types/core/managers/frontier-dependency-manager.d.ts +12 -2
  325. package/dist/types/core/managers/named-expression-manager.d.ts +17 -1
  326. package/dist/types/core/managers/reference-manager.d.ts +3 -0
  327. package/dist/types/core/managers/style-manager.d.ts +3 -0
  328. package/dist/types/core/managers/table-manager.d.ts +3 -0
  329. package/dist/types/core/managers/workbook-manager.d.ts +4 -1
  330. package/dist/types/core/resource-keys.d.ts +14 -0
  331. package/dist/types/evaluator/dependency-nodes/base-eval-node.d.ts +5 -0
  332. package/dist/types/evaluator/dependency-nodes/cell-value-node.d.ts +1 -0
  333. package/dist/types/evaluator/dependency-nodes/empty-cell-evaluation-node.d.ts +8 -1
  334. package/dist/types/evaluator/dependency-nodes/resource-dependency-node.d.ts +8 -0
  335. package/dist/types/evaluator/dependency-nodes/virtual-cell-value-node.d.ts +1 -0
  336. package/dist/types/evaluator/range-evaluation-node.d.ts +8 -1
  337. package/package.json +6 -2
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/evaluator/range-evaluation-node.ts"],
4
4
  "sourcesContent": [
5
- "import type { DependencyManager } from \"../core/managers/dependency-manager.cjs\";\nimport { FrontierDependencyManager } from \"../core/managers/frontier-dependency-manager.cjs\";\nimport type { WorkbookManager } from \"../core/managers/workbook-manager.cjs\";\nimport type { EvaluateAllCellsResult, RangeAddress } from \"../core/types.cjs\";\nimport { getRangeKey, keyToRangeAddress } from \"../core/utils.cjs\";\n\nexport class RangeEvaluationNode extends FrontierDependencyManager {\n public key: string;\n public address: RangeAddress;\n\n private _result: EvaluateAllCellsResult;\n\n constructor(\n public rangeKey: string,\n dependencyManager: DependencyManager,\n workbookManager: WorkbookManager\n ) {\n const rangeAddress = keyToRangeAddress(rangeKey);\n super(rangeAddress, workbookManager, dependencyManager);\n\n this.address = rangeAddress;\n this.key = rangeKey;\n this._result = {\n type: \"awaiting-evaluation\",\n waitingFor: this,\n errAddress: this,\n };\n }\n\n setResult(result: EvaluateAllCellsResult): void {\n this._result = result;\n }\n\n public get result(): EvaluateAllCellsResult {\n return this._result;\n }\n\n public override canResolve(): boolean {\n return super.canResolve() && this._result.type !== \"awaiting-evaluation\";\n }\n\n toJSON(visitor: Set<string> = new Set()): any {\n const hasVisited = visitor?.has(this.key);\n visitor?.add(this.key);\n if (hasVisited) {\n return {\n key: this.key,\n resolved: this.resolved,\n cycle: true,\n dependencies: [],\n frontierDependencies: [],\n };\n }\n return {\n key: this.key,\n resolved: this.resolved,\n dependencies: Array.from(this.getDependencies()).map((node) =>\n node.toJSON(visitor)\n ),\n frontierDependencies: Array.from(this.getFrontierDependencies()).map(\n (node) => node.toJSON(visitor)\n ),\n };\n }\n\n public override toString(): string {\n return getRangeKey(this.address.range);\n }\n}\n"
5
+ "import type { DependencyManager } from \"../core/managers/dependency-manager.cjs\";\nimport { FrontierDependencyManager } from \"../core/managers/frontier-dependency-manager.cjs\";\nimport type { WorkbookManager } from \"../core/managers/workbook-manager.cjs\";\nimport type { EvaluateAllCellsResult, RangeAddress } from \"../core/types.cjs\";\nimport { getRangeKey, keyToRangeAddress } from \"../core/utils.cjs\";\n\nexport class RangeEvaluationNode extends FrontierDependencyManager {\n public key: string;\n public address: RangeAddress;\n\n private _result: EvaluateAllCellsResult;\n\n constructor(\n public rangeKey: string,\n dependencyManager: DependencyManager,\n workbookManager: WorkbookManager,\n options?: { skipInitialBuild?: boolean }\n ) {\n const rangeAddress = keyToRangeAddress(rangeKey);\n super(rangeAddress, workbookManager, dependencyManager, options);\n\n this.address = rangeAddress;\n this.key = rangeKey;\n this._result = {\n type: \"awaiting-evaluation\",\n waitingFor: this,\n errAddress: this,\n };\n }\n\n setResult(result: EvaluateAllCellsResult): void {\n this._result = result;\n }\n\n public get result(): EvaluateAllCellsResult {\n return this._result;\n }\n\n public override canResolve(): boolean {\n return super.canResolve() && this._result.type !== \"awaiting-evaluation\";\n }\n\n public override restoreResolvedSnapshot(options: {\n dependencies: Set<import(\"../core/managers/dependency-node.cjs\").DependencyNode>;\n result: EvaluateAllCellsResult;\n }) {\n super.restoreResolvedSnapshot({\n dependencies: options.dependencies,\n });\n this._result = options.result;\n }\n\n public override invalidate() {\n super.invalidate();\n this._result = {\n type: \"awaiting-evaluation\",\n waitingFor: this,\n errAddress: this,\n };\n }\n\n toJSON(visitor: Set<string> = new Set()): any {\n const hasVisited = visitor?.has(this.key);\n visitor?.add(this.key);\n if (hasVisited) {\n return {\n key: this.key,\n resolved: this.resolved,\n cycle: true,\n dependencies: [],\n frontierDependencies: [],\n };\n }\n return {\n key: this.key,\n resolved: this.resolved,\n dependencies: Array.from(this.getDependencies()).map((node) =>\n node.toJSON(visitor)\n ),\n frontierDependencies: Array.from(this.getFrontierDependencies()).map(\n (node) => node.toJSON(visitor)\n ),\n };\n }\n\n public override toString(): string {\n return getRangeKey(this.address.range);\n }\n}\n"
6
6
  ],
7
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC0C,IAA1C;AAG+C,IAA/C;AAAA;AAEO,MAAM,4BAA4B,6DAA0B;AAAA,EAOxD;AAAA,EANF;AAAA,EACA;AAAA,EAEC;AAAA,EAER,WAAW,CACF,UACP,mBACA,iBACA;AAAA,IACA,MAAM,eAAe,+BAAkB,QAAQ;AAAA,IAC/C,MAAM,cAAc,iBAAiB,iBAAiB;AAAA,IAL/C;AAAA,IAOP,KAAK,UAAU;AAAA,IACf,KAAK,MAAM;AAAA,IACX,KAAK,UAAU;AAAA,MACb,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA;AAAA,EAGF,SAAS,CAAC,QAAsC;AAAA,IAC9C,KAAK,UAAU;AAAA;AAAA,MAGN,MAAM,GAA2B;AAAA,IAC1C,OAAO,KAAK;AAAA;AAAA,EAGE,UAAU,GAAY;AAAA,IACpC,OAAO,MAAM,WAAW,KAAK,KAAK,QAAQ,SAAS;AAAA;AAAA,EAGrD,MAAM,CAAC,UAAuB,IAAI,KAAY;AAAA,IAC5C,MAAM,aAAa,SAAS,IAAI,KAAK,GAAG;AAAA,IACxC,SAAS,IAAI,KAAK,GAAG;AAAA,IACrB,IAAI,YAAY;AAAA,MACd,OAAO;AAAA,QACL,KAAK,KAAK;AAAA,QACV,UAAU,KAAK;AAAA,QACf,OAAO;AAAA,QACP,cAAc,CAAC;AAAA,QACf,sBAAsB,CAAC;AAAA,MACzB;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,KAAK,KAAK;AAAA,MACV,UAAU,KAAK;AAAA,MACf,cAAc,MAAM,KAAK,KAAK,gBAAgB,CAAC,EAAE,IAAI,CAAC,SACpD,KAAK,OAAO,OAAO,CACrB;AAAA,MACA,sBAAsB,MAAM,KAAK,KAAK,wBAAwB,CAAC,EAAE,IAC/D,CAAC,SAAS,KAAK,OAAO,OAAO,CAC/B;AAAA,IACF;AAAA;AAAA,EAGc,QAAQ,GAAW;AAAA,IACjC,OAAO,yBAAY,KAAK,QAAQ,KAAK;AAAA;AAEzC;",
8
- "debugId": "CE06D353EFABE82064756E2164756E21",
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC0C,IAA1C;AAG+C,IAA/C;AAAA;AAEO,MAAM,4BAA4B,6DAA0B;AAAA,EAOxD;AAAA,EANF;AAAA,EACA;AAAA,EAEC;AAAA,EAER,WAAW,CACF,UACP,mBACA,iBACA,SACA;AAAA,IACA,MAAM,eAAe,+BAAkB,QAAQ;AAAA,IAC/C,MAAM,cAAc,iBAAiB,mBAAmB,OAAO;AAAA,IANxD;AAAA,IAQP,KAAK,UAAU;AAAA,IACf,KAAK,MAAM;AAAA,IACX,KAAK,UAAU;AAAA,MACb,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA;AAAA,EAGF,SAAS,CAAC,QAAsC;AAAA,IAC9C,KAAK,UAAU;AAAA;AAAA,MAGN,MAAM,GAA2B;AAAA,IAC1C,OAAO,KAAK;AAAA;AAAA,EAGE,UAAU,GAAY;AAAA,IACpC,OAAO,MAAM,WAAW,KAAK,KAAK,QAAQ,SAAS;AAAA;AAAA,EAGrC,uBAAuB,CAAC,SAGrC;AAAA,IACD,MAAM,wBAAwB;AAAA,MAC5B,cAAc,QAAQ;AAAA,IACxB,CAAC;AAAA,IACD,KAAK,UAAU,QAAQ;AAAA;AAAA,EAGT,UAAU,GAAG;AAAA,IAC3B,MAAM,WAAW;AAAA,IACjB,KAAK,UAAU;AAAA,MACb,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA;AAAA,EAGF,MAAM,CAAC,UAAuB,IAAI,KAAY;AAAA,IAC5C,MAAM,aAAa,SAAS,IAAI,KAAK,GAAG;AAAA,IACxC,SAAS,IAAI,KAAK,GAAG;AAAA,IACrB,IAAI,YAAY;AAAA,MACd,OAAO;AAAA,QACL,KAAK,KAAK;AAAA,QACV,UAAU,KAAK;AAAA,QACf,OAAO;AAAA,QACP,cAAc,CAAC;AAAA,QACf,sBAAsB,CAAC;AAAA,MACzB;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,KAAK,KAAK;AAAA,MACV,UAAU,KAAK;AAAA,MACf,cAAc,MAAM,KAAK,KAAK,gBAAgB,CAAC,EAAE,IAAI,CAAC,SACpD,KAAK,OAAO,OAAO,CACrB;AAAA,MACA,sBAAsB,MAAM,KAAK,KAAK,wBAAwB,CAAC,EAAE,IAC/D,CAAC,SAAS,KAAK,OAAO,OAAO,CAC/B;AAAA,IACF;AAAA;AAAA,EAGc,QAAQ,GAAW;AAAA,IACjC,OAAO,yBAAY,KAAK,QAAQ,KAAK;AAAA;AAEzC;",
8
+ "debugId": "2C664D1444A6066864756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -2,27 +2,37 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropNames = Object.getOwnPropertyNames;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __moduleCache = /* @__PURE__ */ new WeakMap;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
6
8
  var __toCommonJS = (from) => {
7
- var entry = __moduleCache.get(from), desc;
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
8
10
  if (entry)
9
11
  return entry;
10
12
  entry = __defProp({}, "__esModule", { value: true });
11
- if (from && typeof from === "object" || typeof from === "function")
12
- __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
- get: () => from[key],
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- }));
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
16
21
  __moduleCache.set(from, entry);
17
22
  return entry;
18
23
  };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
19
29
  var __export = (target, all) => {
20
30
  for (var name in all)
21
31
  __defProp(target, name, {
22
32
  get: all[name],
23
33
  enumerable: true,
24
34
  configurable: true,
25
- set: (newValue) => all[name] = () => newValue
35
+ set: __exportSetter.bind(all, name)
26
36
  });
27
37
  };
28
38
 
@@ -39,4 +49,4 @@ var TEMPLATE = {
39
49
  }
40
50
  };
41
51
 
42
- //# debugId=420AB1526DE741BB64756E2164756E21
52
+ //# debugId=D53B24E1F048F80564756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "import {\n FormulaError,\n type CellValue,\n type CellNumber,\n type FunctionDefinition,\n type FunctionEvaluationResult,\n type ValueEvaluationResult,\n type CellAddress,\n type SpreadsheetRange,\n type SpilledValuesEvaluationResult,\n type SingleEvaluationResult,\n} from \"../../core/types.cjs\";\nimport type { EvaluationContext } from \"../../evaluator/evaluation-context.cjs\";\n\n/**\n * TEMPLATE function implementation\n */\nexport const TEMPLATE: FunctionDefinition = {\n name: \"TEMPLATE\",\n evaluate: function (node, context): FunctionEvaluationResult {\n throw new Error(\"Function not implemented\");\n },\n};\n"
6
6
  ],
7
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBO,IAAM,WAA+B;AAAA,EAC1C,MAAM;AAAA,EACN,UAAU,QAAS,CAAC,MAAM,SAAmC;AAAA,IAC3D,MAAM,IAAI,MAAM,0BAA0B;AAAA;AAE9C;",
8
- "debugId": "420AB1526DE741BB64756E2164756E21",
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBO,IAAM,WAA+B;AAAA,EAC1C,MAAM;AAAA,EACN,UAAU,QAAS,CAAC,MAAM,SAAmC;AAAA,IAC3D,MAAM,IAAI,MAAM,0BAA0B;AAAA;AAE9C;",
8
+ "debugId": "D53B24E1F048F80564756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -2,27 +2,37 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropNames = Object.getOwnPropertyNames;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __moduleCache = /* @__PURE__ */ new WeakMap;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
6
8
  var __toCommonJS = (from) => {
7
- var entry = __moduleCache.get(from), desc;
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
8
10
  if (entry)
9
11
  return entry;
10
12
  entry = __defProp({}, "__esModule", { value: true });
11
- if (from && typeof from === "object" || typeof from === "function")
12
- __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
- get: () => from[key],
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- }));
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
16
21
  __moduleCache.set(from, entry);
17
22
  return entry;
18
23
  };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
19
29
  var __export = (target, all) => {
20
30
  for (var name in all)
21
31
  __defProp(target, name, {
22
32
  get: all[name],
23
33
  enumerable: true,
24
34
  configurable: true,
25
- set: (newValue) => all[name] = () => newValue
35
+ set: __exportSetter.bind(all, name)
26
36
  });
27
37
  };
28
38
 
@@ -312,4 +322,4 @@ var SEQUENCE = {
312
322
  }
313
323
  };
314
324
 
315
- //# debugId=D636CCBA973E64CC64756E2164756E21
325
+ //# debugId=75D0B33503E545CA64756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "import {\n FormulaError,\n type CellAddress,\n type CellInRangeResult,\n type CellNumber,\n type FunctionDefinition,\n type FunctionEvaluationResult,\n type SpilledValuesEvaluationResult,\n type SpreadsheetRange,\n} from \"../../../core/types.cjs\";\nimport { getRangeIntersection, isRangeOneCell } from \"../../../core/utils.cjs\";\nimport { EvaluationError } from \"../../../evaluator/evaluation-error.cjs\";\n\n/**\n * SEQUENCE(rows, [columns], [start], [step])\n * Generates a sequence of numbers in an array.\n *\n * @param rows - The number of rows to return (can be array - uses origin value)\n * @param columns - [Optional] The number of columns to return (default: 1, can be array - uses origin value)\n * @param start - [Optional] The first number in the sequence (default: 1, can be array - uses origin value)\n * @param step - [Optional] The amount to increment each subsequent value (default: 1, can be array - uses origin value)\n *\n * Returns a spilled array of sequential numbers.\n * When any argument is an array, the result is broadcast over the largest input spill area.\n */\nexport const SEQUENCE: FunctionDefinition = {\n name: \"SEQUENCE\",\n evaluate: function (node, context): FunctionEvaluationResult {\n if (node.args.length < 1 || node.args.length > 4) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"SEQUENCE function takes 1 to 4 arguments\",\n errAddress: context.dependencyNode,\n };\n }\n\n // Evaluate all arguments and check for array inputs\n const argResults: FunctionEvaluationResult[] = [];\n let largestSpillArea: SpreadsheetRange | null = null;\n let hasArrayInput = false;\n\n for (let i = 0; i < node.args.length; i++) {\n const result = this.evaluateNode(node.args[i]!, context);\n if (result.type === \"error\" || result.type === \"awaiting-evaluation\") {\n return result;\n }\n argResults.push(result);\n\n if (result.type === \"spilled-values\") {\n hasArrayInput = true;\n const spillArea = result.spillArea(context.cellAddress);\n if (!largestSpillArea) {\n largestSpillArea = spillArea;\n } else {\n // Use the larger spill area (more cells)\n const currentCols =\n spillArea.end.col.type === \"number\"\n ? spillArea.end.col.value\n : Infinity;\n const currentRows =\n spillArea.end.row.type === \"number\"\n ? spillArea.end.row.value\n : Infinity;\n const currentSize =\n (currentCols - spillArea.start.col + 1) *\n (currentRows - spillArea.start.row + 1);\n\n const largestCols =\n largestSpillArea.end.col.type === \"number\"\n ? largestSpillArea.end.col.value\n : Infinity;\n const largestRows =\n largestSpillArea.end.row.type === \"number\"\n ? largestSpillArea.end.row.value\n : Infinity;\n const largestSize =\n (largestCols - largestSpillArea.start.col + 1) *\n (largestRows - largestSpillArea.start.row + 1);\n\n if (currentSize > largestSize) {\n largestSpillArea = spillArea;\n }\n }\n }\n }\n\n // Extract values from arguments (using origin values for arrays)\n const rowsResult = argResults[0];\n if (!rowsResult) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Missing rows argument\",\n errAddress: context.dependencyNode,\n };\n }\n\n let rowsValue: number | \"infinity\" = 0;\n let isRowsInfinite = false;\n\n if (\n rowsResult.type === \"awaiting-evaluation\" ||\n rowsResult.type === \"error\"\n ) {\n return rowsResult;\n }\n\n if (rowsResult.type === \"spilled-values\") {\n throw new Error(\"Sequences cannot contain spilled values\");\n } else if (rowsResult.type === \"value\") {\n if (rowsResult.result.type === \"infinity\") {\n rowsValue = \"infinity\";\n isRowsInfinite = true;\n } else if (rowsResult.result.type === \"number\") {\n rowsValue = rowsResult.result.value;\n } else {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Rows argument must be a number or INFINITY\",\n errAddress: context.dependencyNode,\n };\n }\n }\n\n const rows = isRowsInfinite ? Infinity : Math.floor(rowsValue as number);\n if (!isRowsInfinite && rows < 1) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Rows must be greater than 0\",\n errAddress: context.dependencyNode,\n };\n }\n\n // Evaluate columns argument (optional, default: 1)\n let columns = 1;\n let isColumnsInfinite = false;\n if (node.args.length > 1) {\n const columnsResult = argResults[1];\n if (!columnsResult) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Missing columns argument\",\n errAddress: context.dependencyNode,\n };\n }\n\n if (columnsResult.type === \"spilled-values\") {\n throw new Error(\"Sequences cannot contain spilled values\");\n } else if (columnsResult.type === \"value\") {\n if (columnsResult.result.type === \"infinity\") {\n columns = Infinity;\n isColumnsInfinite = true;\n } else if (columnsResult.result.type === \"number\") {\n columns = Math.floor(columnsResult.result.value);\n } else {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Columns argument must be a number or INFINITY\",\n errAddress: context.dependencyNode,\n };\n }\n } else {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Columns argument must be a number or INFINITY\",\n errAddress: context.dependencyNode,\n };\n }\n if (!isColumnsInfinite && columns < 1) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Columns must be greater than 0\",\n errAddress: context.dependencyNode,\n };\n }\n }\n\n // Evaluate start argument (optional, default: 1)\n let start = 1;\n if (node.args.length > 2) {\n const startResult = argResults[2];\n if (!startResult) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Missing start argument\",\n errAddress: context.dependencyNode,\n };\n }\n\n if (startResult.type === \"spilled-values\") {\n throw new Error(\"Sequences cannot contain spilled values\");\n } else if (\n startResult.type === \"value\" &&\n startResult.result.type === \"number\"\n ) {\n start = startResult.result.value;\n } else {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Start argument must be a number\",\n errAddress: context.dependencyNode,\n };\n }\n }\n\n // Evaluate step argument (optional, default: 1)\n let step = 1;\n if (node.args.length > 3) {\n const stepResult = argResults[3];\n if (!stepResult) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Missing step argument\",\n errAddress: context.dependencyNode,\n };\n }\n\n if (stepResult.type === \"spilled-values\") {\n throw new Error(\"Sequences cannot contain spilled values\");\n } else if (\n stepResult.type === \"value\" &&\n stepResult.result.type === \"number\"\n ) {\n step = stepResult.result.value;\n } else {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: \"Step argument must be a number\",\n errAddress: context.dependencyNode,\n };\n }\n }\n\n // Create the spill area - if there are array inputs, use the largest input spill area\n // Otherwise, create a new spill area based on the SEQUENCE dimensions\n const spillArea = (origin: CellAddress): SpreadsheetRange => {\n return hasArrayInput && largestSpillArea\n ? largestSpillArea\n : {\n start: {\n col: origin.colIndex,\n row: origin.rowIndex,\n },\n end: {\n col: isColumnsInfinite\n ? { type: \"infinity\", sign: \"positive\" }\n : { type: \"number\", value: origin.colIndex + columns - 1 },\n row: isRowsInfinite\n ? { type: \"infinity\", sign: \"positive\" }\n : { type: \"number\", value: origin.rowIndex + rows - 1 },\n },\n };\n };\n\n // Calculate the origin result (top-left cell value)\n const originResult: CellNumber = {\n type: \"number\",\n value: start,\n };\n\n if (isRangeOneCell(spillArea(context.cellAddress))) {\n return {\n type: \"value\",\n result: originResult,\n };\n }\n\n return {\n type: \"spilled-values\",\n spillArea,\n source: \"SEQUENCE function\",\n evaluate: (spillOffset, context) => {\n if (hasArrayInput) {\n // When we have array inputs, all cells in the broadcast area get the same SEQUENCE result\n // The SEQUENCE is calculated once using the origin values from the input arrays\n\n // For broadcasting, we always return the same sequence across all spilled cells\n // Calculate the value for the origin cell of the SEQUENCE (always (0,0))\n const x = 0;\n const y = 0;\n\n // Check if the origin cell is within our intended SEQUENCE area\n if (\n (!isColumnsInfinite && x >= columns) ||\n (!isRowsInfinite && y >= rows)\n ) {\n return {\n type: \"error\",\n err: FormulaError.ERROR,\n message: \"Error evaluating SEQUENCE\",\n errAddress: context.dependencyNode,\n };\n }\n\n // Calculate the sequential value for origin cell\n // Since this is for broadcasting, we always use the origin (0,0) value\n const sequenceIndex = 0;\n const value = start + sequenceIndex * step;\n\n return {\n type: \"value\",\n result: {\n type: \"number\",\n value,\n },\n };\n } else {\n // Normal SEQUENCE behavior - calculate the value for this spilled cell based on its offset\n const x = spillOffset.x;\n const y = spillOffset.y;\n\n // Check if the spilled cell is within our intended area\n if (\n (!isColumnsInfinite && x >= columns) ||\n (!isRowsInfinite && y >= rows)\n ) {\n return {\n type: \"error\",\n err: FormulaError.ERROR,\n message: \"Error evaluating SEQUENCE\",\n errAddress: context.dependencyNode,\n };\n }\n\n // Calculate the sequential value\n // Values are filled row by row: (0,0), (0,1), (0,2), ..., (1,0), (1,1), etc.\n let sequenceIndex: number;\n if (isColumnsInfinite && isRowsInfinite) {\n // For infinite 2D sequences, we can't calculate a single index\n // We'll use a simple pattern based on position\n sequenceIndex = y + x;\n } else if (isColumnsInfinite) {\n // For infinite columns, sequence goes horizontally\n sequenceIndex = x;\n } else if (isRowsInfinite) {\n // For infinite rows, sequence goes vertically\n sequenceIndex = y;\n } else {\n // Finite dimensions - normal calculation\n sequenceIndex = y * columns + x;\n }\n\n const value = start + sequenceIndex * step;\n\n return {\n type: \"value\",\n result: {\n type: \"number\",\n value,\n },\n };\n }\n },\n evaluateAllCells: function ({ evaluate, intersection, context, origin }) {\n const results: CellInRangeResult[] = [];\n let range = spillArea(origin);\n if (intersection) {\n const newRange = getRangeIntersection(range, intersection);\n if (!newRange) {\n throw new Error(\"Intersection is not valid #2\");\n }\n range = newRange;\n }\n if (\n range.end.row.type === \"infinity\" ||\n range.end.col.type === \"infinity\"\n ) {\n throw new EvaluationError(\n FormulaError.REF,\n `Can not evaluate all cells over an infinite range`\n );\n }\n\n for (let i = range.start.row; i <= range.end.row.value; i++) {\n for (let j = range.start.col; j <= range.end.col.value; j++) {\n const offsetLeft = j - origin.colIndex;\n const offsetTop = i - origin.rowIndex;\n\n const evaled = evaluate({ x: offsetLeft, y: offsetTop }, context);\n const relativePos = { x: offsetLeft, y: offsetTop };\n results.push({ result: evaled, relativePos });\n }\n }\n\n return { type: \"values\", values: results };\n },\n };\n },\n};\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "D636CCBA973E64CC64756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "75D0B33503E545CA64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -2,27 +2,37 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropNames = Object.getOwnPropertyNames;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __moduleCache = /* @__PURE__ */ new WeakMap;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
6
8
  var __toCommonJS = (from) => {
7
- var entry = __moduleCache.get(from), desc;
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
8
10
  if (entry)
9
11
  return entry;
10
12
  entry = __defProp({}, "__esModule", { value: true });
11
- if (from && typeof from === "object" || typeof from === "function")
12
- __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
- get: () => from[key],
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- }));
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
16
21
  __moduleCache.set(from, entry);
17
22
  return entry;
18
23
  };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
19
29
  var __export = (target, all) => {
20
30
  for (var name in all)
21
31
  __defProp(target, name, {
22
32
  get: all[name],
23
33
  enumerable: true,
24
34
  configurable: true,
25
- set: (newValue) => all[name] = () => newValue
35
+ set: __exportSetter.bind(all, name)
26
36
  });
27
37
  };
28
38
 
@@ -214,4 +224,4 @@ function matchesParsedCriteria(cellValue, parsedCriteria) {
214
224
  }
215
225
  }
216
226
 
217
- //# debugId=031BC6604992B51864756E2164756E21
227
+ //# debugId=7215A0E8E935F1DC64756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "import { FormulaError, type CellValue } from \"../core/types.cjs\";\n\n/**\n * Parsed criteria result\n */\nexport type ParsedCriteria = \n | { type: \"exact\"; value: CellValue }\n | { type: \"comparison\"; operator: \">\" | \"<\" | \">=\" | \"<=\" | \"<>\"; value: CellValue }\n | { type: \"wildcard\"; pattern: string }\n | { type: \"error\"; message: string };\n\n/**\n * Convert wildcard pattern to regex\n */\nfunction wildcardToRegex(pattern: string): RegExp {\n // Escape regex special characters except * and ?\n const escaped = pattern.replace(/[.+^${}()|[\\]\\\\]/g, \"\\\\$&\");\n // Convert wildcards: * -> .*, ? -> .\n const regexPattern = escaped.replace(/\\*/g, \".*\").replace(/\\?/g, \".\");\n return new RegExp(`^${regexPattern}$`);\n}\n\n/**\n * Parse a simple value string to determine its type\n * This is a lightweight alternative to parseFormula for criteria strings\n */\nfunction parseSimpleValue(valueStr: string): CellValue {\n // Trim the value\n const trimmed = valueStr.trim();\n \n // Check for boolean values (case-insensitive)\n const upperTrimmed = trimmed.toUpperCase();\n if (upperTrimmed === \"TRUE\") {\n return { type: \"boolean\", value: true };\n }\n if (upperTrimmed === \"FALSE\") {\n return { type: \"boolean\", value: false };\n }\n \n // Check for infinity values (case-insensitive)\n if (upperTrimmed === \"INFINITY\") {\n return { type: \"infinity\", sign: \"positive\" };\n }\n if (upperTrimmed === \"-INFINITY\") {\n return { type: \"infinity\", sign: \"negative\" };\n }\n \n // Check for numeric values\n // Match: optional negative sign, digits, optional decimal point and more digits\n // Examples: \"10\", \"-20\", \"3.14\", \"-0.5\", \"0\"\n if (/^-?\\d+(\\.\\d+)?$/.test(trimmed)) {\n const num = Number(trimmed);\n if (!isNaN(num) && isFinite(num)) {\n return { type: \"number\", value: num };\n }\n }\n \n // Default to string\n return { type: \"string\", value: valueStr };\n}\n\n/**\n * Simple criteria parser for COUNTIF\n * Handles: exact values, comparisons (>5, <=10, <>0), and wildcards (*app, ?at)\n */\nexport function parseCriteria(criteria: CellValue): ParsedCriteria {\n // Only string criteria can contain operators or wildcards\n if (criteria.type !== \"string\") {\n return { type: \"exact\", value: criteria };\n }\n\n const criteriaStr = criteria.value;\n\n // Handle empty string as exact match\n if (criteriaStr === \"\") {\n return { type: \"exact\", value: criteria };\n }\n\n // Special case: \"=\" means count empty cells\n if (criteriaStr === \"=\") {\n return { type: \"exact\", value: { type: \"string\", value: \"\" } };\n }\n\n // Check for comparison operators (must be at the beginning)\n const comparisonMatch = criteriaStr.match(/^(>=|<=|<>|>|<)(.*)$/);\n if (comparisonMatch) {\n const operator = comparisonMatch[1];\n const valueStr = comparisonMatch[2];\n \n if (!operator || valueStr === undefined) {\n return { type: \"error\", message: \"Invalid comparison operator format\" };\n }\n \n // Special case: \"<>\" with no value means \"not empty\"\n if (operator === \"<>\" && valueStr === \"\") {\n return { \n type: \"comparison\", \n operator: \"<>\", \n value: { type: \"string\", value: \"\" } \n };\n }\n\n // Parse the value part to get the proper type\n const parsedValue = parseSimpleValue(valueStr);\n return { \n type: \"comparison\", \n operator: operator as \">\" | \"<\" | \">=\" | \"<=\" | \"<>\", \n value: parsedValue\n };\n }\n\n // Check for wildcards\n if (criteriaStr.includes(\"*\") || criteriaStr.includes(\"?\")) {\n return { type: \"wildcard\", pattern: criteriaStr };\n }\n\n // Parse as a simple value to get the proper type\n const parsedValue = parseSimpleValue(criteriaStr);\n return { type: \"exact\", value: parsedValue };\n}\n\n/**\n * Check if a cell value matches the parsed criteria\n */\nexport function matchesParsedCriteria(cellValue: CellValue, parsedCriteria: ParsedCriteria): boolean {\n switch (parsedCriteria.type) {\n case \"error\":\n return false;\n\n case \"exact\":\n // Exact match - must be same type and value\n if (cellValue.type !== parsedCriteria.value.type) {\n return false;\n }\n if (\"value\" in cellValue && \"value\" in parsedCriteria.value) {\n if (cellValue.type === 'string' && parsedCriteria.value.type === 'string') {\n return cellValue.value.toLowerCase() === parsedCriteria.value.value.toLowerCase();\n }\n return cellValue.value === parsedCriteria.value.value;\n }\n if (cellValue.type === \"infinity\" && parsedCriteria.value.type === \"infinity\") {\n return cellValue.sign === parsedCriteria.value.sign;\n }\n return false;\n\n case \"comparison\":\n // Special case: \"<>\" with empty string means \"not empty\"\n if (parsedCriteria.operator === \"<>\" && \n parsedCriteria.value.type === \"string\" && \n parsedCriteria.value.value === \"\") {\n return cellValue.type !== \"string\" || cellValue.value !== \"\";\n }\n\n // For other comparisons, handle by operator\n if (parsedCriteria.operator === \"<>\") {\n // Not equals - same logic as exact but negated\n if (cellValue.type !== parsedCriteria.value.type) {\n return true; // Different types are not equal\n }\n if (\"value\" in cellValue && \"value\" in parsedCriteria.value) {\n return cellValue.value !== parsedCriteria.value.value;\n }\n if (cellValue.type === \"infinity\" && parsedCriteria.value.type === \"infinity\") {\n return cellValue.sign !== parsedCriteria.value.sign;\n }\n return true;\n }\n\n // Numeric comparison operators - only work with numbers and infinity\n if (cellValue.type !== \"number\" && cellValue.type !== \"infinity\") {\n return false;\n }\n if (parsedCriteria.value.type !== \"number\" && parsedCriteria.value.type !== \"infinity\") {\n return false; // Can only compare with numeric or infinity criteria\n }\n\n // Handle when criteria is infinity\n if (parsedCriteria.value.type === \"infinity\") {\n const criteriaSign = parsedCriteria.value.sign;\n \n // Handle when cell value is also infinity\n if (cellValue.type === \"infinity\") {\n const cellSign = cellValue.sign;\n switch (parsedCriteria.operator) {\n case \">\":\n // +∞ > -∞, but not +∞ > +∞\n return cellSign === \"positive\" && criteriaSign === \"negative\";\n case \"<\":\n // -∞ < +∞, but not -∞ < -∞\n return cellSign === \"negative\" && criteriaSign === \"positive\";\n case \">=\":\n // +∞ >= +∞, +∞ >= -∞, but not -∞ >= +∞\n return cellSign === \"positive\" || (cellSign === criteriaSign);\n case \"<=\":\n // -∞ <= -∞, -∞ <= +∞, but not +∞ <= -∞\n return cellSign === \"negative\" || (cellSign === criteriaSign);\n default:\n return false;\n }\n }\n \n // Handle when cell value is a finite number\n if (cellValue.type === \"number\") {\n switch (parsedCriteria.operator) {\n case \">\":\n // No finite number is > +∞, all finite numbers > -∞\n return criteriaSign === \"negative\";\n case \"<\":\n // All finite numbers < +∞, no finite number < -∞\n return criteriaSign === \"positive\";\n case \">=\":\n // No finite number >= +∞, all finite numbers >= -∞\n return criteriaSign === \"negative\";\n case \"<=\":\n // All finite numbers <= +∞, no finite number <= -∞\n return criteriaSign === \"positive\";\n default:\n return false;\n }\n }\n }\n\n // Handle when criteria is a number (not infinity)\n if (parsedCriteria.value.type === \"number\") {\n const criteriaNum = parsedCriteria.value.value;\n\n // Handle infinity cell values with numeric criteria\n if (cellValue.type === \"infinity\") {\n switch (parsedCriteria.operator) {\n case \">\":\n return cellValue.sign === \"positive\"; // +∞ > any number\n case \"<\":\n return cellValue.sign === \"negative\"; // -∞ < any number\n case \">=\":\n return cellValue.sign === \"positive\"; // +∞ >= any number\n case \"<=\":\n return cellValue.sign === \"negative\"; // -∞ <= any number\n default:\n return false;\n }\n }\n\n // Regular number comparison\n if (cellValue.type === \"number\") {\n switch (parsedCriteria.operator) {\n case \">\":\n return cellValue.value > criteriaNum;\n case \"<\":\n return cellValue.value < criteriaNum;\n case \">=\":\n return cellValue.value >= criteriaNum;\n case \"<=\":\n return cellValue.value <= criteriaNum;\n default:\n return false;\n }\n }\n }\n \n return false;\n\n case \"wildcard\":\n // Wildcard matching - only works with strings\n if (cellValue.type !== \"string\") {\n return false;\n }\n const regex = wildcardToRegex(parsedCriteria.pattern);\n return regex.test(cellValue.value);\n\n default:\n return false;\n }\n}\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "031BC6604992B51864756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "7215A0E8E935F1DC64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -2,27 +2,37 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropNames = Object.getOwnPropertyNames;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __moduleCache = /* @__PURE__ */ new WeakMap;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
6
8
  var __toCommonJS = (from) => {
7
- var entry = __moduleCache.get(from), desc;
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
8
10
  if (entry)
9
11
  return entry;
10
12
  entry = __defProp({}, "__esModule", { value: true });
11
- if (from && typeof from === "object" || typeof from === "function")
12
- __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
- get: () => from[key],
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- }));
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
16
21
  __moduleCache.set(from, entry);
17
22
  return entry;
18
23
  };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
19
29
  var __export = (target, all) => {
20
30
  for (var name in all)
21
31
  __defProp(target, name, {
22
32
  get: all[name],
23
33
  enumerable: true,
24
34
  configurable: true,
25
- set: (newValue) => all[name] = () => newValue
35
+ set: __exportSetter.bind(all, name)
26
36
  });
27
37
  };
28
38
 
@@ -288,4 +298,4 @@ function handleEmptyCriteriaSpilledValues(valueRangeResult, criteriaPairs, conte
288
298
  return { type: "values", values: results };
289
299
  }
290
300
 
291
- //# debugId=5324FD8D8E9EA85864756E2164756E21
301
+ //# debugId=B3E3A4359E69FF9464756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "import type { LookupOrder } from \"../core/managers/range-eval-order-builder.cjs\";\nimport {\n FormulaError,\n type CellInfinity,\n type ErrorEvaluationResult,\n type FunctionEvaluationResult,\n type SingleEvaluationResult,\n type ValueEvaluationResult\n} from \"../core/types.cjs\";\nimport { getRelativeRange } from \"../core/utils.cjs\";\nimport type { EvaluationContext } from \"../evaluator/evaluation-context.cjs\";\nimport {\n EvaluationError\n} from \"../evaluator/evaluation-error.cjs\";\nimport type { FormulaEvaluator } from \"../evaluator/formula-evaluator.cjs\";\nimport type { ASTNode, FunctionNode } from \"../parser/ast.cjs\";\nimport {\n matchesParsedCriteria,\n parseCriteria,\n type ParsedCriteria,\n} from \"./criteria-parser.cjs\";\n\n/**\n * Criteria pair for criteria-based functions\n */\nexport interface CriteriaPair {\n rangeResult: FunctionEvaluationResult;\n parsedCriteria: ParsedCriteria;\n}\n\n/**\n * Parse criteria pairs from function arguments\n * @param node - The function node\n * @param context - Evaluation context\n * @param evaluateNode - Node evaluation function\n * @param startIndex - Index to start parsing criteria pairs from (1 for IFS functions, 0 for COUNTIFS)\n * @returns Array of criteria pairs or error\n */\nexport function parseCriteriaPairs(\n this: FormulaEvaluator,\n node: FunctionNode,\n context: EvaluationContext,\n evaluateNode: (\n node: ASTNode,\n context: EvaluationContext\n ) => FunctionEvaluationResult,\n startIndex: number = 1\n): CriteriaPair[] | ErrorEvaluationResult {\n const criteriaPairs: CriteriaPair[] = [];\n\n for (let i = startIndex; i < node.args.length; i += 2) {\n const criteriaRangeResult = evaluateNode.call(this, node.args[i]!, context);\n if (\n criteriaRangeResult.type === \"error\" ||\n criteriaRangeResult.type === \"awaiting-evaluation\"\n ) {\n return criteriaRangeResult;\n }\n\n const criteriaResult = evaluateNode.call(this, node.args[i + 1]!, context);\n if (\n criteriaResult.type === \"error\" ||\n criteriaResult.type === \"awaiting-evaluation\"\n ) {\n return criteriaResult;\n }\n\n let result: ValueEvaluationResult;\n\n if (criteriaResult.type === \"spilled-values\") {\n // just take the first spilled value\n const firstSpilledValue = criteriaResult.evaluate(\n { x: 0, y: 0 },\n context\n );\n if (\n firstSpilledValue.type === \"error\" ||\n firstSpilledValue.type === \"awaiting-evaluation\"\n ) {\n return firstSpilledValue;\n } else {\n result = firstSpilledValue;\n }\n } else {\n result = criteriaResult;\n }\n\n const parsedCriteria = parseCriteria(result.result);\n if (parsedCriteria.type === \"error\") {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: parsedCriteria.message,\n errAddress: context.dependencyNode,\n };\n }\n\n criteriaPairs.push({\n rangeResult: criteriaRangeResult,\n parsedCriteria,\n });\n }\n\n return criteriaPairs;\n}\n\n/**\n * Check if any criteria involves empty/non-empty cell matching\n */\nexport function hasEmptyCriteria(criteriaPairs: CriteriaPair[]): boolean {\n return criteriaPairs.some(\n ({ parsedCriteria }) =>\n parsedCriteria.type === \"exact\" &&\n parsedCriteria.value.type === \"string\" &&\n parsedCriteria.value.value === \"\"\n );\n}\n\n/**\n * Returns matching values from ranges based on criteria\n * @param evaluator - The function evaluator context\n * @param valueRangeResult - The range of values to process\n * @param criteriaPairs - Array of criteria pairs to match against\n * @param context - Evaluation context\n * @returns Array of SingleEvaluationResult for each matching cell - includes both values and errors\n * Consuming functions decide whether to skip errors or propagate them\n */\nexport function processMultiCriteriaValues(\n evaluator: FormulaEvaluator,\n valueRangeResult: FunctionEvaluationResult,\n criteriaPairs: CriteriaPair[],\n context: EvaluationContext,\n lookupOrder: LookupOrder\n):\n | { type: \"values\"; values: SingleEvaluationResult[] }\n | ErrorEvaluationResult {\n const results: SingleEvaluationResult[] = [];\n\n const criteriaPairWithError = criteriaPairs\n .map((pair) => pair.rangeResult)\n .find(\n (result) =>\n result.type === \"error\" || result.type === \"awaiting-evaluation\"\n );\n if (criteriaPairWithError) {\n return criteriaPairWithError;\n }\n\n // Check if this is an empty criteria case\n if (\n hasEmptyCriteria(criteriaPairs) &&\n valueRangeResult.type === \"spilled-values\"\n ) {\n return handleEmptyCriteriaSpilledValues(\n valueRangeResult,\n criteriaPairs,\n context\n );\n }\n\n // Handle different value range types\n if (valueRangeResult.type === \"value\") {\n // Single value case - check if all criteria match\n let allMatch = true;\n for (const { rangeResult, parsedCriteria } of criteriaPairs) {\n if (rangeResult.type === \"value\") {\n if (!matchesParsedCriteria(rangeResult.result, parsedCriteria)) {\n allMatch = false;\n break;\n }\n } else {\n // Single value but range criteria - doesn't make sense\n allMatch = false;\n break;\n }\n }\n\n if (allMatch) {\n results.push(valueRangeResult); // Add the entire result (ValueEvaluationResult)\n }\n } else if (valueRangeResult.type === \"spilled-values\") {\n // Range case - first validate dimensions using spillArea for efficiency\n const valueSpillArea = valueRangeResult.spillArea(context.cellAddress);\n\n // Check that all criteria ranges have compatible dimensions\n for (const { rangeResult } of criteriaPairs) {\n if (rangeResult.type === \"spilled-values\") {\n const criteriaSpillArea = rangeResult.spillArea(context.cellAddress);\n\n // Compare dimensions using relative ranges to get width/height\n const valueRelRange = getRelativeRange(\n valueSpillArea,\n context.cellAddress\n );\n const criteriaRelRange = getRelativeRange(\n criteriaSpillArea,\n context.cellAddress\n );\n\n // Check if dimensions are compatible\n const widthsMatch =\n (valueRelRange.width.type === \"infinity\" &&\n criteriaRelRange.width.type === \"infinity\") ||\n (valueRelRange.width.type === \"number\" &&\n criteriaRelRange.width.type === \"number\" &&\n valueRelRange.width.value === criteriaRelRange.width.value);\n\n const heightsMatch =\n (valueRelRange.height.type === \"infinity\" &&\n criteriaRelRange.height.type === \"infinity\") ||\n (valueRelRange.height.type === \"number\" &&\n criteriaRelRange.height.type === \"number\" &&\n valueRelRange.height.value === criteriaRelRange.height.value);\n\n if (!widthsMatch || !heightsMatch) {\n // Return #VALUE! error for dimension mismatch\n throw new EvaluationError(\n FormulaError.VALUE,\n \"Criteria range dimensions do not match value range dimensions\"\n );\n }\n }\n // Single values (type === \"value\") are compatible with any range size\n }\n\n // Get all cells to simplify position-based pairing\n const valueResults = valueRangeResult.evaluateAllCells.call(evaluator, {\n context,\n evaluate: valueRangeResult.evaluate,\n origin: context.cellAddress,\n lookupOrder,\n });\n\n // Get criteria ranges (or track if single value)\n const criteriaResultsArrays = criteriaPairs.map(({ rangeResult }) => {\n if (rangeResult.type === \"spilled-values\") {\n const criteriaResults = rangeResult.evaluateAllCells.call(evaluator, {\n context,\n evaluate: rangeResult.evaluate,\n origin: context.cellAddress,\n lookupOrder,\n });\n return { type: \"array\" as const, results: criteriaResults };\n } else {\n // Single value - we'll use it for all positions\n return { type: \"single\" as const, value: rangeResult };\n }\n });\n\n // Create maps from position to value for each criteria range\n const criteriaMaps = criteriaResultsArrays.map((criteriaData) => {\n if (criteriaData.type === \"single\") {\n return null; // Single values don't need a map\n }\n if (criteriaData.results.type !== \"values\") {\n return null;\n }\n const map = new Map<string, SingleEvaluationResult>();\n for (const { result, relativePos } of criteriaData.results.values) {\n const key = `${relativePos.x},${relativePos.y}`;\n map.set(key, result);\n }\n return map;\n });\n\n if (valueResults.type !== \"values\") {\n return valueResults;\n }\n\n // Iterate through each value position\n for (const valueCell of valueResults.values) {\n if (!valueCell) {\n continue;\n }\n\n const posKey = `${valueCell.relativePos.x},${valueCell.relativePos.y}`;\n\n // Check if all criteria match for this position\n let allMatch = true;\n for (let j = 0; j < criteriaPairs.length; j++) {\n let criteriaCell: SingleEvaluationResult | undefined;\n\n if (criteriaResultsArrays[j]!.type === \"single\") {\n // Single value - use it for all positions\n criteriaCell = criteriaResultsArrays[j]!.value;\n } else {\n // Array - look up by position, treat missing as empty\n criteriaCell = criteriaMaps[j]?.get(posKey);\n }\n\n // If criteriaCell is undefined, treat it as an empty cell\n if (!criteriaCell) {\n // Check if the criteria matches empty cells\n const parsedCriteria = criteriaPairs[j]!.parsedCriteria;\n const emptyValue = { type: \"string\" as const, value: \"\" };\n if (!matchesParsedCriteria(emptyValue, parsedCriteria)) {\n allMatch = false;\n break;\n }\n } else if (criteriaCell.type === \"error\") {\n allMatch = false;\n break;\n } else if (criteriaCell.type === \"value\") {\n if (\n !matchesParsedCriteria(\n criteriaCell.result,\n criteriaPairs[j]!.parsedCriteria\n )\n ) {\n allMatch = false;\n break;\n }\n } else if (criteriaCell.type === \"awaiting-evaluation\") {\n return criteriaCell;\n } else {\n allMatch = false;\n break;\n }\n }\n\n if (allMatch) {\n results.push(valueCell.result); // Add the entire SingleEvaluationResult (includes errors and values)\n }\n }\n }\n\n return { type: \"values\", values: results };\n}\n\n/**\n * Validate multi-criteria function arguments (odd number, min 3)\n */\nexport function validateMultiCriteriaArgs(\n functionName: string,\n argCount: number,\n context: EvaluationContext\n): ErrorEvaluationResult | null {\n if (argCount < 3 || (argCount - 1) % 2 !== 0) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `${functionName} function requires an odd number of arguments (min 3): value_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...`,\n errAddress: context.dependencyNode,\n };\n }\n return null;\n}\n\n/**\n * Validate COUNTIFS function arguments (even number, min 2)\n */\nexport function validateCountifsArgs(\n argCount: number,\n context: EvaluationContext\n): ErrorEvaluationResult | null {\n if (argCount < 2 || argCount % 2 !== 0) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message:\n \"COUNTIFS function requires an even number of arguments (min 2): criteria_range1, criteria1, [criteria_range2, criteria2], ...\",\n errAddress: context.dependencyNode,\n };\n }\n return null;\n}\n\n/**\n * Validate single criteria function arguments (2 or 3)\n */\nexport function validateSingleCriteriaArgs(\n functionName: string,\n argCount: number,\n context: EvaluationContext\n): ErrorEvaluationResult | null {\n if (argCount < 2 || argCount > 3) {\n return {\n type: \"error\",\n err: FormulaError.VALUE,\n message: `${functionName} function takes 2 or 3 arguments`,\n errAddress: context.dependencyNode,\n };\n }\n return null;\n}\n\n/**\n * Result type for processInfinity - either return infinity immediately or continue with updated state\n */\nexport type ProcessInfinityResult<T> =\n | { type: \"infinity\"; infinity: CellInfinity }\n | { type: \"state\"; state: T };\n\n/**\n * Handle empty cell criteria for spilled values - returns matching values for empty criteria cases\n * This is needed when criteria like \"=\" (empty) or \"<>\" (non-empty) are used with ranges\n *\n * @param valueRangeResult - The range of values to process\n * @param criteriaPairs - Array of criteria pairs\n * @param context - Evaluation context\n * @returns Array of matching values\n */\nfunction handleEmptyCriteriaSpilledValues(\n valueRangeResult: FunctionEvaluationResult,\n criteriaPairs: CriteriaPair[],\n context: EvaluationContext\n):\n | { type: \"values\"; values: SingleEvaluationResult[] }\n | ErrorEvaluationResult {\n if (\n !hasEmptyCriteria(criteriaPairs) ||\n valueRangeResult.type !== \"spilled-values\"\n ) {\n throw new Error(\"Not an empty criteria case\");\n }\n const results: SingleEvaluationResult[] = [];\n const valueSpillArea = valueRangeResult.spillArea(context.cellAddress);\n\n // Check if this is an infinite range and we are counting empty cells - throw error\n if (\n valueSpillArea.end.col.type === \"infinity\" ||\n valueSpillArea.end.row.type === \"infinity\"\n ) {\n throw new EvaluationError(\n FormulaError.VALUE,\n \"Can not process infinite ranges with empty cell criteria\"\n );\n }\n\n // Finite range - iterate over all cells in spill areas\n if (\n valueSpillArea.end.col.type === \"number\" &&\n valueSpillArea.end.row.type === \"number\"\n ) {\n for (\n let row = valueSpillArea.start.row;\n row <= valueSpillArea.end.row.value;\n row++\n ) {\n for (\n let col = valueSpillArea.start.col;\n col <= valueSpillArea.end.col.value;\n col++\n ) {\n const valueCell = valueRangeResult.evaluate(\n {\n x: col - valueSpillArea.start.col,\n y: row - valueSpillArea.start.row,\n },\n context\n );\n\n // Check all criteria for this position\n let allMatch = true;\n for (const { rangeResult, parsedCriteria } of criteriaPairs) {\n let criteriaCell: SingleEvaluationResult | undefined;\n\n if (rangeResult.type === \"spilled-values\") {\n const criteriaSpillArea = rangeResult.spillArea(\n context.cellAddress\n );\n const criteriaRow =\n row - valueSpillArea.start.row + criteriaSpillArea.start.row;\n const criteriaCol =\n col - valueSpillArea.start.col + criteriaSpillArea.start.col;\n\n if (\n criteriaRow <=\n (criteriaSpillArea.end.row.type === \"number\"\n ? criteriaSpillArea.end.row.value\n : Infinity) &&\n criteriaCol <=\n (criteriaSpillArea.end.col.type === \"number\"\n ? criteriaSpillArea.end.col.value\n : Infinity)\n ) {\n criteriaCell = rangeResult.evaluate(\n {\n x: criteriaCol - criteriaSpillArea.start.col,\n y: criteriaRow - criteriaSpillArea.start.row,\n },\n context\n );\n }\n } else if (rangeResult.type === \"value\") {\n criteriaCell = rangeResult;\n }\n\n // Check if criteria matches (including empty cell logic)\n const isEmptyCriteria =\n (parsedCriteria.type === \"exact\" &&\n parsedCriteria.value.type === \"string\" &&\n parsedCriteria.value.value === \"\") ||\n (parsedCriteria.type === \"comparison\" &&\n parsedCriteria.operator === \"<>\" &&\n parsedCriteria.value.type === \"string\" &&\n parsedCriteria.value.value === \"\");\n\n if (isEmptyCriteria) {\n // Check if criteria cell matches empty condition\n const isEmpty =\n !criteriaCell ||\n (criteriaCell.type === \"value\" &&\n criteriaCell.result.type === \"string\" &&\n criteriaCell.result.value === \"\");\n\n const shouldMatch =\n parsedCriteria.type === \"exact\" ? isEmpty : !isEmpty;\n if (!shouldMatch) {\n allMatch = false;\n break;\n }\n } else {\n // Regular criteria matching\n if (\n !criteriaCell ||\n criteriaCell.type !== \"value\" ||\n !matchesParsedCriteria(criteriaCell.result, parsedCriteria)\n ) {\n allMatch = false;\n break;\n }\n }\n }\n\n if (allMatch && valueCell) {\n results.push(valueCell); // Add the matching cell result\n }\n }\n }\n }\n\n return { type: \"values\", values: results };\n}\n"
6
6
  ],
7
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,IAPP;AAQiC,IAAjC;AAIO,IAFP;AASO,IAJP;AAsBO,SAAS,kBAAkB,CAEhC,MACA,SACA,cAIA,aAAqB,GACmB;AAAA,EACxC,MAAM,gBAAgC,CAAC;AAAA,EAEvC,SAAS,IAAI,WAAY,IAAI,KAAK,KAAK,QAAQ,KAAK,GAAG;AAAA,IACrD,MAAM,sBAAsB,aAAa,KAAK,MAAM,KAAK,KAAK,IAAK,OAAO;AAAA,IAC1E,IACE,oBAAoB,SAAS,WAC7B,oBAAoB,SAAS,uBAC7B;AAAA,MACA,OAAO;AAAA,IACT;AAAA,IAEA,MAAM,iBAAiB,aAAa,KAAK,MAAM,KAAK,KAAK,IAAI,IAAK,OAAO;AAAA,IACzE,IACE,eAAe,SAAS,WACxB,eAAe,SAAS,uBACxB;AAAA,MACA,OAAO;AAAA,IACT;AAAA,IAEA,IAAI;AAAA,IAEJ,IAAI,eAAe,SAAS,kBAAkB;AAAA,MAE5C,MAAM,oBAAoB,eAAe,SACvC,EAAE,GAAG,GAAG,GAAG,EAAE,GACb,OACF;AAAA,MACA,IACE,kBAAkB,SAAS,WAC3B,kBAAkB,SAAS,uBAC3B;AAAA,QACA,OAAO;AAAA,MACT,EAAO;AAAA,QACL,SAAS;AAAA;AAAA,IAEb,EAAO;AAAA,MACL,SAAS;AAAA;AAAA,IAGX,MAAM,iBAAiB,qCAAc,OAAO,MAAM;AAAA,IAClD,IAAI,eAAe,SAAS,SAAS;AAAA,MACnC,OAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK,0BAAa;AAAA,QAClB,SAAS,eAAe;AAAA,QACxB,YAAY,QAAQ;AAAA,MACtB;AAAA,IACF;AAAA,IAEA,cAAc,KAAK;AAAA,MACjB,aAAa;AAAA,MACb;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,OAAO;AAAA;AAMF,SAAS,gBAAgB,CAAC,eAAwC;AAAA,EACvE,OAAO,cAAc,KACnB,GAAG,qBACD,eAAe,SAAS,WACxB,eAAe,MAAM,SAAS,YAC9B,eAAe,MAAM,UAAU,EACnC;AAAA;AAYK,SAAS,0BAA0B,CACxC,WACA,kBACA,eACA,SACA,aAGwB;AAAA,EACxB,MAAM,UAAoC,CAAC;AAAA,EAE3C,MAAM,wBAAwB,cAC3B,IAAI,CAAC,SAAS,KAAK,WAAW,EAC9B,KACC,CAAC,WACC,OAAO,SAAS,WAAW,OAAO,SAAS,qBAC/C;AAAA,EACF,IAAI,uBAAuB;AAAA,IACzB,OAAO;AAAA,EACT;AAAA,EAGA,IACE,iBAAiB,aAAa,KAC9B,iBAAiB,SAAS,kBAC1B;AAAA,IACA,OAAO,iCACL,kBACA,eACA,OACF;AAAA,EACF;AAAA,EAGA,IAAI,iBAAiB,SAAS,SAAS;AAAA,IAErC,IAAI,WAAW;AAAA,IACf,aAAa,aAAa,oBAAoB,eAAe;AAAA,MAC3D,IAAI,YAAY,SAAS,SAAS;AAAA,QAChC,IAAI,CAAC,6CAAsB,YAAY,QAAQ,cAAc,GAAG;AAAA,UAC9D,WAAW;AAAA,UACX;AAAA,QACF;AAAA,MACF,EAAO;AAAA,QAEL,WAAW;AAAA,QACX;AAAA;AAAA,IAEJ;AAAA,IAEA,IAAI,UAAU;AAAA,MACZ,QAAQ,KAAK,gBAAgB;AAAA,IAC/B;AAAA,EACF,EAAO,SAAI,iBAAiB,SAAS,kBAAkB;AAAA,IAErD,MAAM,iBAAiB,iBAAiB,UAAU,QAAQ,WAAW;AAAA,IAGrE,aAAa,iBAAiB,eAAe;AAAA,MAC3C,IAAI,YAAY,SAAS,kBAAkB;AAAA,QACzC,MAAM,oBAAoB,YAAY,UAAU,QAAQ,WAAW;AAAA,QAGnE,MAAM,gBAAgB,8BACpB,gBACA,QAAQ,WACV;AAAA,QACA,MAAM,mBAAmB,8BACvB,mBACA,QAAQ,WACV;AAAA,QAGA,MAAM,cACH,cAAc,MAAM,SAAS,cAC5B,iBAAiB,MAAM,SAAS,cACjC,cAAc,MAAM,SAAS,YAC5B,iBAAiB,MAAM,SAAS,YAChC,cAAc,MAAM,UAAU,iBAAiB,MAAM;AAAA,QAEzD,MAAM,eACH,cAAc,OAAO,SAAS,cAC7B,iBAAiB,OAAO,SAAS,cAClC,cAAc,OAAO,SAAS,YAC7B,iBAAiB,OAAO,SAAS,YACjC,cAAc,OAAO,UAAU,iBAAiB,OAAO;AAAA,QAE3D,IAAI,CAAC,eAAe,CAAC,cAAc;AAAA,UAEjC,MAAM,IAAI,wCACR,0BAAa,OACb,+DACF;AAAA,QACF;AAAA,MACF;AAAA,IAEF;AAAA,IAGA,MAAM,eAAe,iBAAiB,iBAAiB,KAAK,WAAW;AAAA,MACrE;AAAA,MACA,UAAU,iBAAiB;AAAA,MAC3B,QAAQ,QAAQ;AAAA,MAChB;AAAA,IACF,CAAC;AAAA,IAGD,MAAM,wBAAwB,cAAc,IAAI,GAAG,kBAAkB;AAAA,MACnE,IAAI,YAAY,SAAS,kBAAkB;AAAA,QACzC,MAAM,kBAAkB,YAAY,iBAAiB,KAAK,WAAW;AAAA,UACnE;AAAA,UACA,UAAU,YAAY;AAAA,UACtB,QAAQ,QAAQ;AAAA,UAChB;AAAA,QACF,CAAC;AAAA,QACD,OAAO,EAAE,MAAM,SAAkB,SAAS,gBAAgB;AAAA,MAC5D,EAAO;AAAA,QAEL,OAAO,EAAE,MAAM,UAAmB,OAAO,YAAY;AAAA;AAAA,KAExD;AAAA,IAGD,MAAM,eAAe,sBAAsB,IAAI,CAAC,iBAAiB;AAAA,MAC/D,IAAI,aAAa,SAAS,UAAU;AAAA,QAClC,OAAO;AAAA,MACT;AAAA,MACA,IAAI,aAAa,QAAQ,SAAS,UAAU;AAAA,QAC1C,OAAO;AAAA,MACT;AAAA,MACA,MAAM,MAAM,IAAI;AAAA,MAChB,aAAa,QAAQ,iBAAiB,aAAa,QAAQ,QAAQ;AAAA,QACjE,MAAM,MAAM,GAAG,YAAY,KAAK,YAAY;AAAA,QAC5C,IAAI,IAAI,KAAK,MAAM;AAAA,MACrB;AAAA,MACA,OAAO;AAAA,KACR;AAAA,IAED,IAAI,aAAa,SAAS,UAAU;AAAA,MAClC,OAAO;AAAA,IACT;AAAA,IAGA,WAAW,aAAa,aAAa,QAAQ;AAAA,MAC3C,IAAI,CAAC,WAAW;AAAA,QACd;AAAA,MACF;AAAA,MAEA,MAAM,SAAS,GAAG,UAAU,YAAY,KAAK,UAAU,YAAY;AAAA,MAGnE,IAAI,WAAW;AAAA,MACf,SAAS,IAAI,EAAG,IAAI,cAAc,QAAQ,KAAK;AAAA,QAC7C,IAAI;AAAA,QAEJ,IAAI,sBAAsB,GAAI,SAAS,UAAU;AAAA,UAE/C,eAAe,sBAAsB,GAAI;AAAA,QAC3C,EAAO;AAAA,UAEL,eAAe,aAAa,IAAI,IAAI,MAAM;AAAA;AAAA,QAI5C,IAAI,CAAC,cAAc;AAAA,UAEjB,MAAM,iBAAiB,cAAc,GAAI;AAAA,UACzC,MAAM,aAAa,EAAE,MAAM,UAAmB,OAAO,GAAG;AAAA,UACxD,IAAI,CAAC,6CAAsB,YAAY,cAAc,GAAG;AAAA,YACtD,WAAW;AAAA,YACX;AAAA,UACF;AAAA,QACF,EAAO,SAAI,aAAa,SAAS,SAAS;AAAA,UACxC,WAAW;AAAA,UACX;AAAA,QACF,EAAO,SAAI,aAAa,SAAS,SAAS;AAAA,UACxC,IACE,CAAC,6CACC,aAAa,QACb,cAAc,GAAI,cACpB,GACA;AAAA,YACA,WAAW;AAAA,YACX;AAAA,UACF;AAAA,QACF,EAAO,SAAI,aAAa,SAAS,uBAAuB;AAAA,UACtD,OAAO;AAAA,QACT,EAAO;AAAA,UACL,WAAW;AAAA,UACX;AAAA;AAAA,MAEJ;AAAA,MAEA,IAAI,UAAU;AAAA,QACZ,QAAQ,KAAK,UAAU,MAAM;AAAA,MAC/B;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAO,EAAE,MAAM,UAAU,QAAQ,QAAQ;AAAA;AAMpC,SAAS,yBAAyB,CACvC,cACA,UACA,SAC8B;AAAA,EAC9B,IAAI,WAAW,MAAM,WAAW,KAAK,MAAM,GAAG;AAAA,IAC5C,OAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK,0BAAa;AAAA,MAClB,SAAS,GAAG;AAAA,MACZ,YAAY,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAMF,SAAS,oBAAoB,CAClC,UACA,SAC8B;AAAA,EAC9B,IAAI,WAAW,KAAK,WAAW,MAAM,GAAG;AAAA,IACtC,OAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK,0BAAa;AAAA,MAClB,SACE;AAAA,MACF,YAAY,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAMF,SAAS,0BAA0B,CACxC,cACA,UACA,SAC8B;AAAA,EAC9B,IAAI,WAAW,KAAK,WAAW,GAAG;AAAA,IAChC,OAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK,0BAAa;AAAA,MAClB,SAAS,GAAG;AAAA,MACZ,YAAY,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAmBT,SAAS,gCAAgC,CACvC,kBACA,eACA,SAGwB;AAAA,EACxB,IACE,CAAC,iBAAiB,aAAa,KAC/B,iBAAiB,SAAS,kBAC1B;AAAA,IACA,MAAM,IAAI,MAAM,4BAA4B;AAAA,EAC9C;AAAA,EACA,MAAM,UAAoC,CAAC;AAAA,EAC3C,MAAM,iBAAiB,iBAAiB,UAAU,QAAQ,WAAW;AAAA,EAGrE,IACE,eAAe,IAAI,IAAI,SAAS,cAChC,eAAe,IAAI,IAAI,SAAS,YAChC;AAAA,IACA,MAAM,IAAI,wCACR,0BAAa,OACb,0DACF;AAAA,EACF;AAAA,EAGA,IACE,eAAe,IAAI,IAAI,SAAS,YAChC,eAAe,IAAI,IAAI,SAAS,UAChC;AAAA,IACA,SACM,MAAM,eAAe,MAAM,IAC/B,OAAO,eAAe,IAAI,IAAI,OAC9B,OACA;AAAA,MACA,SACM,MAAM,eAAe,MAAM,IAC/B,OAAO,eAAe,IAAI,IAAI,OAC9B,OACA;AAAA,QACA,MAAM,YAAY,iBAAiB,SACjC;AAAA,UACE,GAAG,MAAM,eAAe,MAAM;AAAA,UAC9B,GAAG,MAAM,eAAe,MAAM;AAAA,QAChC,GACA,OACF;AAAA,QAGA,IAAI,WAAW;AAAA,QACf,aAAa,aAAa,oBAAoB,eAAe;AAAA,UAC3D,IAAI;AAAA,UAEJ,IAAI,YAAY,SAAS,kBAAkB;AAAA,YACzC,MAAM,oBAAoB,YAAY,UACpC,QAAQ,WACV;AAAA,YACA,MAAM,cACJ,MAAM,eAAe,MAAM,MAAM,kBAAkB,MAAM;AAAA,YAC3D,MAAM,cACJ,MAAM,eAAe,MAAM,MAAM,kBAAkB,MAAM;AAAA,YAE3D,IACE,gBACG,kBAAkB,IAAI,IAAI,SAAS,WAChC,kBAAkB,IAAI,IAAI,QAC1B,aACN,gBACG,kBAAkB,IAAI,IAAI,SAAS,WAChC,kBAAkB,IAAI,IAAI,QAC1B,WACN;AAAA,cACA,eAAe,YAAY,SACzB;AAAA,gBACE,GAAG,cAAc,kBAAkB,MAAM;AAAA,gBACzC,GAAG,cAAc,kBAAkB,MAAM;AAAA,cAC3C,GACA,OACF;AAAA,YACF;AAAA,UACF,EAAO,SAAI,YAAY,SAAS,SAAS;AAAA,YACvC,eAAe;AAAA,UACjB;AAAA,UAGA,MAAM,kBACH,eAAe,SAAS,WACvB,eAAe,MAAM,SAAS,YAC9B,eAAe,MAAM,UAAU,MAChC,eAAe,SAAS,gBACvB,eAAe,aAAa,QAC5B,eAAe,MAAM,SAAS,YAC9B,eAAe,MAAM,UAAU;AAAA,UAEnC,IAAI,iBAAiB;AAAA,YAEnB,MAAM,UACJ,CAAC,gBACA,aAAa,SAAS,WACrB,aAAa,OAAO,SAAS,YAC7B,aAAa,OAAO,UAAU;AAAA,YAElC,MAAM,cACJ,eAAe,SAAS,UAAU,UAAU,CAAC;AAAA,YAC/C,IAAI,CAAC,aAAa;AAAA,cAChB,WAAW;AAAA,cACX;AAAA,YACF;AAAA,UACF,EAAO;AAAA,YAEL,IACE,CAAC,gBACD,aAAa,SAAS,WACtB,CAAC,6CAAsB,aAAa,QAAQ,cAAc,GAC1D;AAAA,cACA,WAAW;AAAA,cACX;AAAA,YACF;AAAA;AAAA,QAEJ;AAAA,QAEA,IAAI,YAAY,WAAW;AAAA,UACzB,QAAQ,KAAK,SAAS;AAAA,QACxB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAO,EAAE,MAAM,UAAU,QAAQ,QAAQ;AAAA;",
8
- "debugId": "5324FD8D8E9EA85864756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "B3E3A4359E69FF9464756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -2,27 +2,37 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropNames = Object.getOwnPropertyNames;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __moduleCache = /* @__PURE__ */ new WeakMap;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
6
8
  var __toCommonJS = (from) => {
7
- var entry = __moduleCache.get(from), desc;
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
8
10
  if (entry)
9
11
  return entry;
10
12
  entry = __defProp({}, "__esModule", { value: true });
11
- if (from && typeof from === "object" || typeof from === "function")
12
- __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
- get: () => from[key],
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- }));
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
16
21
  __moduleCache.set(from, entry);
17
22
  return entry;
18
23
  };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
19
29
  var __export = (target, all) => {
20
30
  for (var name in all)
21
31
  __defProp(target, name, {
22
32
  get: all[name],
23
33
  enumerable: true,
24
34
  configurable: true,
25
- set: (newValue) => all[name] = () => newValue
35
+ set: __exportSetter.bind(all, name)
26
36
  });
27
37
  };
28
38
 
@@ -122,4 +132,4 @@ var functions = buildFunctionIndex({
122
132
  XLOOKUP: import_xlookup.XLOOKUP
123
133
  });
124
134
 
125
- //# debugId=3A4C74F24D6EEB8664756E2164756E21
135
+ //# debugId=8CA1C1D4D45E3A3B64756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "import type { FunctionDefinition } from \"../core/types.cjs\";\n// import { arrayFunctions } from \"./array/array-functions.cjs\";\n// import { infoFunctions } from \"./info/info-functions.cjs\";\n// import { logicalComparisonFunctions } from \"./logical/comparisons.cjs\";\n// import { logicalConditionFunctions } from \"./logical/conditions.cjs\";\n// import { lookupFunctions } from \"./lookup/lookup-functions.cjs\";\n// import { advancedMathFunctions } from \"./math/advanced.cjs\";\n// import { basicMathFunctions } from \"./math/basic.cjs\";\n// import { textFunctions } from \"./text/string-functions.cjs\";\nimport { SEQUENCE } from \"./array/sequence/sequence.cjs\";\nimport { INDEX } from \"./lookup/index-lookup/index-lookup.cjs\"; // Fixed import path\nimport { MATCH } from \"./lookup/match/match.cjs\";\nimport { COUNT } from \"./lookup/count/count.cjs\";\nimport { COUNTIF } from \"./lookup/count/countif.cjs\";\nimport { AVERAGE } from \"./math/average/average.cjs\";\nimport { AVERAGEIF } from \"./math/average/averageif.cjs\";\nimport { AVERAGEIFS } from \"./math/average/averageifs.cjs\";\nimport { MAX } from \"./math/max/max.cjs\";\nimport { MAXIFS } from \"./math/max/maxifs.cjs\";\nimport { MIN } from \"./math/min/min.cjs\";\nimport { MINIFS } from \"./math/min/minifs.cjs\";\nimport { SUM } from \"./math/sum/sum.cjs\";\nimport { SUMIF } from \"./math/sum/sumif.cjs\";\nimport { SUMIFS } from \"./math/sum/sumifs.cjs\";\nimport { COUNTIFS } from \"./lookup/count/countifs.cjs\";\nimport { MAXIF } from \"./math/max/maxif.cjs\";\nimport { MINIF } from \"./math/min/minif.cjs\";\nimport { CEILING } from \"./math/ceiling/ceiling.cjs\";\nimport { EXACT } from \"./text/exact/exact.cjs\";\nimport { FIND } from \"./text/find/find.cjs\";\nimport { LEFT } from \"./text/left/left.cjs\";\nimport { MID } from \"./text/mid/mid.cjs\";\nimport { LEN } from \"./text/len/len.cjs\";\nimport { RIGHT } from \"./text/right/right.cjs\";\nimport { CONCATENATE } from \"./text/concatenate/concatenate.cjs\";\nimport { AND } from \"./logical/and/and.cjs\";\nimport { IF } from \"./logical/if/if.cjs\";\nimport { IFERROR } from \"./logical/iferror/iferror.cjs\";\nimport { XLOOKUP } from \"./lookup/xlookup/xlookup.cjs\";\nimport { OR } from \"./logical/or/or.cjs\";\nimport { TEXTJOIN } from \"./text/textjoin/textjoin.cjs\";\nimport { ROW } from \"./information/row/row.cjs\";\nimport { COLUMN } from \"./information/column/column.cjs\";\nimport { CELL } from \"./information/cell/cell.cjs\";\nimport { ADDRESS } from \"./reference/address/address.cjs\";\nimport { INDIRECT } from \"./reference/indirect/indirect.cjs\";\nimport { OFFSET } from \"./reference/offset/offset.cjs\";\n\nconst buildFunctionIndex = (functions: Record<string, FunctionDefinition>) => {\n return Object.fromEntries(\n Object.entries(functions).flatMap(([name, func]) => {\n const base: [string, FunctionDefinition][] = [[name, func]];\n if (func.aliases) {\n func.aliases.forEach((alias) => {\n base.push([alias, func]);\n });\n }\n return base;\n })\n );\n};\n\nexport const functions: Record<string, FunctionDefinition> = buildFunctionIndex(\n {\n ADDRESS,\n AND,\n AVERAGE,\n AVERAGEIF,\n AVERAGEIFS,\n CEILING,\n CELL,\n COLUMN,\n CONCATENATE,\n COUNT,\n COUNTIF,\n COUNTIFS,\n EXACT,\n FIND,\n IF,\n IFERROR,\n INDEX,\n INDIRECT,\n LEFT,\n LEN,\n MATCH,\n MAX,\n MAXIF,\n MAXIFS,\n MID,\n MIN,\n MINIF,\n MINIFS,\n OFFSET,\n OR,\n RIGHT,\n ROW,\n SEQUENCE,\n SUM,\n SUMIF,\n SUMIFS,\n TEXTJOIN,\n XLOOKUP,\n }\n);\n"
6
6
  ],
7
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASyB,IAAzB;AACsB,IAAtB;AACsB,IAAtB;AACsB,IAAtB;AACwB,IAAxB;AACwB,IAAxB;AAC0B,IAA1B;AAC2B,IAA3B;AACoB,IAApB;AACuB,IAAvB;AACoB,IAApB;AACuB,IAAvB;AACoB,IAApB;AACsB,IAAtB;AACuB,IAAvB;AACyB,IAAzB;AACsB,IAAtB;AACsB,IAAtB;AACwB,IAAxB;AACsB,IAAtB;AACqB,IAArB;AACqB,IAArB;AACoB,IAApB;AACoB,IAApB;AACsB,IAAtB;AAC4B,IAA5B;AACoB,IAApB;AACmB,IAAnB;AACwB,IAAxB;AACwB,IAAxB;AACmB,IAAnB;AACyB,IAAzB;AACoB,IAApB;AACuB,IAAvB;AACqB,IAArB;AACwB,IAAxB;AACyB,IAAzB;AACuB,IAAvB;AAEA,IAAM,qBAAqB,CAAC,cAAkD;AAAA,EAC5E,OAAO,OAAO,YACZ,OAAO,QAAQ,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU;AAAA,IAClD,MAAM,OAAuC,CAAC,CAAC,MAAM,IAAI,CAAC;AAAA,IAC1D,IAAI,KAAK,SAAS;AAAA,MAChB,KAAK,QAAQ,QAAQ,CAAC,UAAU;AAAA,QAC9B,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC;AAAA,OACxB;AAAA,IACH;AAAA,IACA,OAAO;AAAA,GACR,CACH;AAAA;AAGK,IAAM,YAAgD,mBAC3D;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CACF;",
8
- "debugId": "3A4C74F24D6EEB8664756E2164756E21",
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASyB,IAAzB;AACsB,IAAtB;AACsB,IAAtB;AACsB,IAAtB;AACwB,IAAxB;AACwB,IAAxB;AAC0B,IAA1B;AAC2B,IAA3B;AACoB,IAApB;AACuB,IAAvB;AACoB,IAApB;AACuB,IAAvB;AACoB,IAApB;AACsB,IAAtB;AACuB,IAAvB;AACyB,IAAzB;AACsB,IAAtB;AACsB,IAAtB;AACwB,IAAxB;AACsB,IAAtB;AACqB,IAArB;AACqB,IAArB;AACoB,IAApB;AACoB,IAApB;AACsB,IAAtB;AAC4B,IAA5B;AACoB,IAApB;AACmB,IAAnB;AACwB,IAAxB;AACwB,IAAxB;AACmB,IAAnB;AACyB,IAAzB;AACoB,IAApB;AACuB,IAAvB;AACqB,IAArB;AACwB,IAAxB;AACyB,IAAzB;AACuB,IAAvB;AAEA,IAAM,qBAAqB,CAAC,cAAkD;AAAA,EAC5E,OAAO,OAAO,YACZ,OAAO,QAAQ,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU;AAAA,IAClD,MAAM,OAAuC,CAAC,CAAC,MAAM,IAAI,CAAC;AAAA,IAC1D,IAAI,KAAK,SAAS;AAAA,MAChB,KAAK,QAAQ,QAAQ,CAAC,UAAU;AAAA,QAC9B,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC;AAAA,OACxB;AAAA,IACH;AAAA,IACA,OAAO;AAAA,GACR,CACH;AAAA;AAGK,IAAM,YAAgD,mBAC3D;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CACF;",
8
+ "debugId": "8CA1C1D4D45E3A3B64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -2,27 +2,37 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropNames = Object.getOwnPropertyNames;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __moduleCache = /* @__PURE__ */ new WeakMap;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
6
8
  var __toCommonJS = (from) => {
7
- var entry = __moduleCache.get(from), desc;
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
8
10
  if (entry)
9
11
  return entry;
10
12
  entry = __defProp({}, "__esModule", { value: true });
11
- if (from && typeof from === "object" || typeof from === "function")
12
- __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
- get: () => from[key],
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- }));
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
16
21
  __moduleCache.set(from, entry);
17
22
  return entry;
18
23
  };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
19
29
  var __export = (target, all) => {
20
30
  for (var name in all)
21
31
  __defProp(target, name, {
22
32
  get: all[name],
23
33
  enumerable: true,
24
34
  configurable: true,
25
- set: (newValue) => all[name] = () => newValue
35
+ set: __exportSetter.bind(all, name)
26
36
  });
27
37
  };
28
38
 
@@ -60,4 +70,4 @@ function createArgumentIterator(evaluator, node, context, lookupOrder) {
60
70
  return { type: "values", values: results };
61
71
  }
62
72
 
63
- //# debugId=ACA075060E20030D64756E2164756E21
73
+ //# debugId=9C3EB069B43BE86C64756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "import type { LookupOrder } from \"../core/managers/range-eval-order-builder.cjs\";\nimport {\n type ErrorEvaluationResult,\n type SingleEvaluationResult,\n} from \"../core/types.cjs\";\nimport { getCellReference } from \"../core/utils.cjs\";\nimport type { EvaluationContext } from \"../evaluator/evaluation-context.cjs\";\nimport { AwaitingEvaluationError } from \"../evaluator/evaluation-error.cjs\";\nimport type { FormulaEvaluator } from \"../evaluator/formula-evaluator.cjs\";\nimport type { FunctionNode } from \"../parser/ast.cjs\";\n\n/**\n * Creates an array of all values from arguments of a function node\n * Returns SingleEvaluationResult for each value found in the arguments\n *\n * This is a shared utility used by all basic aggregation functions (SUM, MIN, MAX, AVERAGE)\n * to iterate over their arguments in a consistent way.\n *\n * @param evaluator - The formula evaluator instance\n * @param node - The function node containing arguments\n * @param context - The evaluation context\n * @returns Array of SingleEvaluationResult for each value in the arguments\n */\nexport function createArgumentIterator(\n evaluator: FormulaEvaluator,\n node: FunctionNode,\n context: EvaluationContext,\n lookupOrder: LookupOrder\n): { type: \"values\"; values: SingleEvaluationResult[] } | ErrorEvaluationResult {\n const results: SingleEvaluationResult[] = [];\n\n for (const arg of node.args) {\n const result = evaluator.evaluateNode(arg, context);\n\n if (result.type === \"spilled-values\") {\n // Get all cells in the spilled range\n const cellValues = result.evaluateAllCells.call(evaluator, {\n context,\n evaluate: result.evaluate,\n origin: context.cellAddress,\n lookupOrder,\n });\n\n if (cellValues.type === \"awaiting-evaluation\") {\n return cellValues;\n }\n\n if (cellValues.type === \"error\") {\n results.push(cellValues);\n } else {\n for (const cellValue of cellValues.values) {\n results.push(cellValue.result);\n }\n }\n } else {\n results.push(result);\n }\n }\n\n return { type: \"values\", values: results };\n}\n"
6
6
  ],
7
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBO,SAAS,sBAAsB,CACpC,WACA,MACA,SACA,aAC8E;AAAA,EAC9E,MAAM,UAAoC,CAAC;AAAA,EAE3C,WAAW,OAAO,KAAK,MAAM;AAAA,IAC3B,MAAM,SAAS,UAAU,aAAa,KAAK,OAAO;AAAA,IAElD,IAAI,OAAO,SAAS,kBAAkB;AAAA,MAEpC,MAAM,aAAa,OAAO,iBAAiB,KAAK,WAAW;AAAA,QACzD;AAAA,QACA,UAAU,OAAO;AAAA,QACjB,QAAQ,QAAQ;AAAA,QAChB;AAAA,MACF,CAAC;AAAA,MAED,IAAI,WAAW,SAAS,uBAAuB;AAAA,QAC7C,OAAO;AAAA,MACT;AAAA,MAEA,IAAI,WAAW,SAAS,SAAS;AAAA,QAC/B,QAAQ,KAAK,UAAU;AAAA,MACzB,EAAO;AAAA,QACL,WAAW,aAAa,WAAW,QAAQ;AAAA,UACzC,QAAQ,KAAK,UAAU,MAAM;AAAA,QAC/B;AAAA;AAAA,IAEJ,EAAO;AAAA,MACL,QAAQ,KAAK,MAAM;AAAA;AAAA,EAEvB;AAAA,EAEA,OAAO,EAAE,MAAM,UAAU,QAAQ,QAAQ;AAAA;",
8
- "debugId": "ACA075060E20030D64756E2164756E21",
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBO,SAAS,sBAAsB,CACpC,WACA,MACA,SACA,aAC8E;AAAA,EAC9E,MAAM,UAAoC,CAAC;AAAA,EAE3C,WAAW,OAAO,KAAK,MAAM;AAAA,IAC3B,MAAM,SAAS,UAAU,aAAa,KAAK,OAAO;AAAA,IAElD,IAAI,OAAO,SAAS,kBAAkB;AAAA,MAEpC,MAAM,aAAa,OAAO,iBAAiB,KAAK,WAAW;AAAA,QACzD;AAAA,QACA,UAAU,OAAO;AAAA,QACjB,QAAQ,QAAQ;AAAA,QAChB;AAAA,MACF,CAAC;AAAA,MAED,IAAI,WAAW,SAAS,uBAAuB;AAAA,QAC7C,OAAO;AAAA,MACT;AAAA,MAEA,IAAI,WAAW,SAAS,SAAS;AAAA,QAC/B,QAAQ,KAAK,UAAU;AAAA,MACzB,EAAO;AAAA,QACL,WAAW,aAAa,WAAW,QAAQ;AAAA,UACzC,QAAQ,KAAK,UAAU,MAAM;AAAA,QAC/B;AAAA;AAAA,IAEJ,EAAO;AAAA,MACL,QAAQ,KAAK,MAAM;AAAA;AAAA,EAEvB;AAAA,EAEA,OAAO,EAAE,MAAM,UAAU,QAAQ,QAAQ;AAAA;",
8
+ "debugId": "9C3EB069B43BE86C64756E2164756E21",
9
9
  "names": []
10
10
  }