@rowsncolumns/spreadsheet-state 28.0.66

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 (1541) hide show
  1. package/LICENSE.md +100 -0
  2. package/Readme.md +65 -0
  3. package/dist/cjs/api/border.d.ts +9 -0
  4. package/dist/cjs/api/border.d.ts.map +1 -0
  5. package/dist/cjs/api/border.js +25 -0
  6. package/dist/cjs/api/conditional-format.d.ts +2 -0
  7. package/dist/cjs/api/conditional-format.d.ts.map +1 -0
  8. package/dist/cjs/api/conditional-format.js +5 -0
  9. package/dist/cjs/api/copy-paste.d.ts +20 -0
  10. package/dist/cjs/api/copy-paste.d.ts.map +1 -0
  11. package/dist/cjs/api/copy-paste.js +384 -0
  12. package/dist/cjs/api/data-validation.d.ts +2 -0
  13. package/dist/cjs/api/data-validation.d.ts.map +1 -0
  14. package/dist/cjs/api/data-validation.js +5 -0
  15. package/dist/cjs/api/datatype.d.ts +89 -0
  16. package/dist/cjs/api/datatype.d.ts.map +1 -0
  17. package/dist/cjs/api/datatype.js +671 -0
  18. package/dist/cjs/api/date.d.ts +27 -0
  19. package/dist/cjs/api/date.d.ts.map +1 -0
  20. package/dist/cjs/api/date.js +222 -0
  21. package/dist/cjs/api/decimals.d.ts +10 -0
  22. package/dist/cjs/api/decimals.d.ts.map +1 -0
  23. package/dist/cjs/api/decimals.js +192 -0
  24. package/dist/cjs/api/dependency.d.ts +64 -0
  25. package/dist/cjs/api/dependency.d.ts.map +1 -0
  26. package/dist/cjs/api/dependency.js +279 -0
  27. package/dist/cjs/api/fill.d.ts +88 -0
  28. package/dist/cjs/api/fill.d.ts.map +1 -0
  29. package/dist/cjs/api/fill.js +959 -0
  30. package/dist/cjs/api/filter-range.d.ts +4 -0
  31. package/dist/cjs/api/filter-range.d.ts.map +1 -0
  32. package/dist/cjs/api/filter-range.js +101 -0
  33. package/dist/cjs/api/filter.d.ts +24 -0
  34. package/dist/cjs/api/filter.d.ts.map +1 -0
  35. package/dist/cjs/api/filter.js +66 -0
  36. package/dist/cjs/api/format-caches.d.ts +43 -0
  37. package/dist/cjs/api/format-caches.d.ts.map +1 -0
  38. package/dist/cjs/api/format-caches.js +107 -0
  39. package/dist/cjs/api/formula.d.ts +69 -0
  40. package/dist/cjs/api/formula.d.ts.map +1 -0
  41. package/dist/cjs/api/formula.js +458 -0
  42. package/dist/cjs/api/immer-utils.d.ts +66 -0
  43. package/dist/cjs/api/immer-utils.d.ts.map +1 -0
  44. package/dist/cjs/api/immer-utils.js +1633 -0
  45. package/dist/cjs/api/intl.d.ts +51 -0
  46. package/dist/cjs/api/intl.d.ts.map +1 -0
  47. package/dist/cjs/api/intl.js +261 -0
  48. package/dist/cjs/api/merges.d.ts +7 -0
  49. package/dist/cjs/api/merges.d.ts.map +1 -0
  50. package/dist/cjs/api/merges.js +134 -0
  51. package/dist/cjs/api/outline.d.ts +33 -0
  52. package/dist/cjs/api/outline.d.ts.map +1 -0
  53. package/dist/cjs/api/outline.js +70 -0
  54. package/dist/cjs/api/parse-html.d.ts +15 -0
  55. package/dist/cjs/api/parse-html.d.ts.map +1 -0
  56. package/dist/cjs/api/parse-html.js +1066 -0
  57. package/dist/cjs/api/patches.d.ts +11 -0
  58. package/dist/cjs/api/patches.d.ts.map +1 -0
  59. package/dist/cjs/api/patches.js +218 -0
  60. package/dist/cjs/api/pivot-range.d.ts +8 -0
  61. package/dist/cjs/api/pivot-range.d.ts.map +1 -0
  62. package/dist/cjs/api/pivot-range.js +130 -0
  63. package/dist/cjs/api/range-rule-helpers.d.ts +65 -0
  64. package/dist/cjs/api/range-rule-helpers.d.ts.map +1 -0
  65. package/dist/cjs/api/range-rule-helpers.js +142 -0
  66. package/dist/cjs/api/range.d.ts +19 -0
  67. package/dist/cjs/api/range.d.ts.map +1 -0
  68. package/dist/cjs/api/range.js +183 -0
  69. package/dist/cjs/api/rename-sheet.d.ts +22 -0
  70. package/dist/cjs/api/rename-sheet.d.ts.map +1 -0
  71. package/dist/cjs/api/rename-sheet.js +54 -0
  72. package/dist/cjs/api/selection.d.ts +36 -0
  73. package/dist/cjs/api/selection.d.ts.map +1 -0
  74. package/dist/cjs/api/selection.js +133 -0
  75. package/dist/cjs/api/sort.d.ts +3 -0
  76. package/dist/cjs/api/sort.d.ts.map +1 -0
  77. package/dist/cjs/api/sort.js +33 -0
  78. package/dist/cjs/api/split-text.d.ts +2 -0
  79. package/dist/cjs/api/split-text.d.ts.map +1 -0
  80. package/dist/cjs/api/split-text.js +25 -0
  81. package/dist/cjs/api/structural-formula-update.d.ts +75 -0
  82. package/dist/cjs/api/structural-formula-update.d.ts.map +1 -0
  83. package/dist/cjs/api/structural-formula-update.js +508 -0
  84. package/dist/cjs/api/table.d.ts +39 -0
  85. package/dist/cjs/api/table.d.ts.map +1 -0
  86. package/dist/cjs/api/table.js +337 -0
  87. package/dist/cjs/api/validation.d.ts +12 -0
  88. package/dist/cjs/api/validation.d.ts.map +1 -0
  89. package/dist/cjs/api/validation.js +306 -0
  90. package/dist/cjs/api/xlsx-source.d.ts +22 -0
  91. package/dist/cjs/api/xlsx-source.d.ts.map +1 -0
  92. package/dist/cjs/api/xlsx-source.js +31 -0
  93. package/dist/cjs/atoms/delete-sheet-atom.d.ts +6 -0
  94. package/dist/cjs/atoms/delete-sheet-atom.d.ts.map +1 -0
  95. package/dist/cjs/atoms/delete-sheet-atom.js +4 -0
  96. package/dist/cjs/atoms/dialog-state.atom.d.ts +23 -0
  97. package/dist/cjs/atoms/dialog-state.atom.d.ts.map +1 -0
  98. package/dist/cjs/atoms/dialog-state.atom.js +72 -0
  99. package/dist/cjs/atoms/editing-data-validation-id.atom.d.ts +7 -0
  100. package/dist/cjs/atoms/editing-data-validation-id.atom.d.ts.map +1 -0
  101. package/dist/cjs/atoms/editing-data-validation-id.atom.js +12 -0
  102. package/dist/cjs/atoms/editing-embed.atom.d.ts +8 -0
  103. package/dist/cjs/atoms/editing-embed.atom.d.ts.map +1 -0
  104. package/dist/cjs/atoms/editing-embed.atom.js +5 -0
  105. package/dist/cjs/atoms/editing-table.atom.d.ts +8 -0
  106. package/dist/cjs/atoms/editing-table.atom.d.ts.map +1 -0
  107. package/dist/cjs/atoms/editing-table.atom.js +6 -0
  108. package/dist/cjs/atoms/error-state.atom.d.ts +10 -0
  109. package/dist/cjs/atoms/error-state.atom.d.ts.map +1 -0
  110. package/dist/cjs/atoms/error-state.atom.js +5 -0
  111. package/dist/cjs/atoms/index.d.ts +5 -0
  112. package/dist/cjs/atoms/index.d.ts.map +1 -0
  113. package/dist/cjs/atoms/index.js +4 -0
  114. package/dist/cjs/atoms/insert-image-state.atom.d.ts +6 -0
  115. package/dist/cjs/atoms/insert-image-state.atom.d.ts.map +1 -0
  116. package/dist/cjs/atoms/insert-image-state.atom.js +9 -0
  117. package/dist/cjs/atoms/named-range.atom.d.ts +8 -0
  118. package/dist/cjs/atoms/named-range.atom.d.ts.map +1 -0
  119. package/dist/cjs/atoms/named-range.atom.js +6 -0
  120. package/dist/cjs/atoms/resize-dimension.atom.d.ts +12 -0
  121. package/dist/cjs/atoms/resize-dimension.atom.d.ts.map +1 -0
  122. package/dist/cjs/atoms/resize-dimension.atom.js +5 -0
  123. package/dist/cjs/atoms/sheet-observer.atom.d.ts +16 -0
  124. package/dist/cjs/atoms/sheet-observer.atom.d.ts.map +1 -0
  125. package/dist/cjs/atoms/sheet-observer.atom.js +19 -0
  126. package/dist/cjs/cellxfs-registry.d.ts +37 -0
  127. package/dist/cjs/cellxfs-registry.d.ts.map +1 -0
  128. package/dist/cjs/cellxfs-registry.js +175 -0
  129. package/dist/cjs/commands.d.ts +691 -0
  130. package/dist/cjs/commands.d.ts.map +1 -0
  131. package/dist/cjs/commands.js +1 -0
  132. package/dist/cjs/components/dialogs/delete-sheet-confirmation.d.ts +7 -0
  133. package/dist/cjs/components/dialogs/delete-sheet-confirmation.d.ts.map +1 -0
  134. package/dist/cjs/components/dialogs/delete-sheet-confirmation.js +31 -0
  135. package/dist/cjs/components/dialogs/error-state.d.ts +3 -0
  136. package/dist/cjs/components/dialogs/error-state.d.ts.map +1 -0
  137. package/dist/cjs/components/dialogs/error-state.js +24 -0
  138. package/dist/cjs/components/editors/cell-format-editor.d.ts +26 -0
  139. package/dist/cjs/components/editors/cell-format-editor.d.ts.map +1 -0
  140. package/dist/cjs/components/editors/cell-format-editor.js +671 -0
  141. package/dist/cjs/components/editors/conditional-format-editor.d.ts +43 -0
  142. package/dist/cjs/components/editors/conditional-format-editor.d.ts.map +1 -0
  143. package/dist/cjs/components/editors/conditional-format-editor.js +176 -0
  144. package/dist/cjs/components/editors/conditional-format-rule-editor.d.ts +27 -0
  145. package/dist/cjs/components/editors/conditional-format-rule-editor.d.ts.map +1 -0
  146. package/dist/cjs/components/editors/conditional-format-rule-editor.js +640 -0
  147. package/dist/cjs/components/editors/data-validation-editor.d.ts +27 -0
  148. package/dist/cjs/components/editors/data-validation-editor.d.ts.map +1 -0
  149. package/dist/cjs/components/editors/data-validation-editor.js +163 -0
  150. package/dist/cjs/components/editors/data-validation-rule-editor.d.ts +17 -0
  151. package/dist/cjs/components/editors/data-validation-rule-editor.d.ts.map +1 -0
  152. package/dist/cjs/components/editors/data-validation-rule-editor.js +217 -0
  153. package/dist/cjs/components/editors/embed-editor.d.ts +19 -0
  154. package/dist/cjs/components/editors/embed-editor.d.ts.map +1 -0
  155. package/dist/cjs/components/editors/embed-editor.js +80 -0
  156. package/dist/cjs/components/editors/insert-image-editor.d.ts +20 -0
  157. package/dist/cjs/components/editors/insert-image-editor.d.ts.map +1 -0
  158. package/dist/cjs/components/editors/insert-image-editor.js +78 -0
  159. package/dist/cjs/components/editors/insert-link-editor.d.ts +20 -0
  160. package/dist/cjs/components/editors/insert-link-editor.d.ts.map +1 -0
  161. package/dist/cjs/components/editors/insert-link-editor.js +64 -0
  162. package/dist/cjs/components/editors/named-range-editor.d.ts +13 -0
  163. package/dist/cjs/components/editors/named-range-editor.d.ts.map +1 -0
  164. package/dist/cjs/components/editors/named-range-editor.js +106 -0
  165. package/dist/cjs/components/editors/resize-dimension-editor.d.ts +9 -0
  166. package/dist/cjs/components/editors/resize-dimension-editor.d.ts.map +1 -0
  167. package/dist/cjs/components/editors/resize-dimension-editor.js +62 -0
  168. package/dist/cjs/components/editors/sheet-filter.d.ts +59 -0
  169. package/dist/cjs/components/editors/sheet-filter.d.ts.map +1 -0
  170. package/dist/cjs/components/editors/sheet-filter.js +119 -0
  171. package/dist/cjs/components/editors/table-editor.d.ts +12 -0
  172. package/dist/cjs/components/editors/table-editor.d.ts.map +1 -0
  173. package/dist/cjs/components/editors/table-editor.js +105 -0
  174. package/dist/cjs/components/index.d.ts +13 -0
  175. package/dist/cjs/components/index.d.ts.map +1 -0
  176. package/dist/cjs/components/index.js +12 -0
  177. package/dist/cjs/generated-names.d.ts +51 -0
  178. package/dist/cjs/generated-names.d.ts.map +1 -0
  179. package/dist/cjs/generated-names.js +5 -0
  180. package/dist/cjs/helpers/iterative-calculation.d.ts +4 -0
  181. package/dist/cjs/helpers/iterative-calculation.d.ts.map +1 -0
  182. package/dist/cjs/helpers/iterative-calculation.js +44 -0
  183. package/dist/cjs/helpers/sheet-title.d.ts +5 -0
  184. package/dist/cjs/helpers/sheet-title.d.ts.map +1 -0
  185. package/dist/cjs/helpers/sheet-title.js +11 -0
  186. package/dist/cjs/helpers.d.ts +45 -0
  187. package/dist/cjs/helpers.d.ts.map +1 -0
  188. package/dist/cjs/helpers.js +154 -0
  189. package/dist/cjs/hooks/use-async-datasource.d.ts +57 -0
  190. package/dist/cjs/hooks/use-async-datasource.d.ts.map +1 -0
  191. package/dist/cjs/hooks/use-async-datasource.js +329 -0
  192. package/dist/cjs/hooks/use-calculation-initialize.d.ts +61 -0
  193. package/dist/cjs/hooks/use-calculation-initialize.d.ts.map +1 -0
  194. package/dist/cjs/hooks/use-calculation-initialize.js +800 -0
  195. package/dist/cjs/hooks/use-calculation-process-array.d.ts +20 -0
  196. package/dist/cjs/hooks/use-calculation-process-array.d.ts.map +1 -0
  197. package/dist/cjs/hooks/use-calculation-process-array.js +331 -0
  198. package/dist/cjs/hooks/use-calculation-queue.d.ts +10 -0
  199. package/dist/cjs/hooks/use-calculation-queue.d.ts.map +1 -0
  200. package/dist/cjs/hooks/use-calculation-queue.js +15 -0
  201. package/dist/cjs/hooks/use-calculation-worker.d.ts +37 -0
  202. package/dist/cjs/hooks/use-calculation-worker.d.ts.map +1 -0
  203. package/dist/cjs/hooks/use-calculation-worker.js +1868 -0
  204. package/dist/cjs/hooks/use-calculation.d.ts +173 -0
  205. package/dist/cjs/hooks/use-calculation.d.ts.map +1 -0
  206. package/dist/cjs/hooks/use-calculation.js +2735 -0
  207. package/dist/cjs/hooks/use-can-edit-cellrange.d.ts +31 -0
  208. package/dist/cjs/hooks/use-can-edit-cellrange.d.ts.map +1 -0
  209. package/dist/cjs/hooks/use-can-edit-cellrange.js +86 -0
  210. package/dist/cjs/hooks/use-cellxfs-registry.d.ts +6 -0
  211. package/dist/cjs/hooks/use-cellxfs-registry.d.ts.map +1 -0
  212. package/dist/cjs/hooks/use-cellxfs-registry.js +22 -0
  213. package/dist/cjs/hooks/use-citations.d.ts +19 -0
  214. package/dist/cjs/hooks/use-citations.d.ts.map +1 -0
  215. package/dist/cjs/hooks/use-citations.js +62 -0
  216. package/dist/cjs/hooks/use-comments.d.ts +14 -0
  217. package/dist/cjs/hooks/use-comments.d.ts.map +1 -0
  218. package/dist/cjs/hooks/use-comments.js +49 -0
  219. package/dist/cjs/hooks/use-conditional-formatting-rules.d.ts +22 -0
  220. package/dist/cjs/hooks/use-conditional-formatting-rules.d.ts.map +1 -0
  221. package/dist/cjs/hooks/use-conditional-formatting-rules.js +95 -0
  222. package/dist/cjs/hooks/use-data-validation-rules.d.ts +54 -0
  223. package/dist/cjs/hooks/use-data-validation-rules.d.ts.map +1 -0
  224. package/dist/cjs/hooks/use-data-validation-rules.js +151 -0
  225. package/dist/cjs/hooks/use-deferred-calculation-flush.d.ts +14 -0
  226. package/dist/cjs/hooks/use-deferred-calculation-flush.d.ts.map +1 -0
  227. package/dist/cjs/hooks/use-deferred-calculation-flush.js +81 -0
  228. package/dist/cjs/hooks/use-idle-scheduler.d.ts +5 -0
  229. package/dist/cjs/hooks/use-idle-scheduler.d.ts.map +1 -0
  230. package/dist/cjs/hooks/use-idle-scheduler.js +46 -0
  231. package/dist/cjs/hooks/use-indent.d.ts +23 -0
  232. package/dist/cjs/hooks/use-indent.d.ts.map +1 -0
  233. package/dist/cjs/hooks/use-indent.js +98 -0
  234. package/dist/cjs/hooks/use-named-range.d.ts +7 -0
  235. package/dist/cjs/hooks/use-named-range.d.ts.map +1 -0
  236. package/dist/cjs/hooks/use-named-range.js +70 -0
  237. package/dist/cjs/hooks/use-on-adjust-row-height.d.ts +11 -0
  238. package/dist/cjs/hooks/use-on-adjust-row-height.d.ts.map +1 -0
  239. package/dist/cjs/hooks/use-on-adjust-row-height.js +66 -0
  240. package/dist/cjs/hooks/use-on-autoresize.d.ts +17 -0
  241. package/dist/cjs/hooks/use-on-autoresize.d.ts.map +1 -0
  242. package/dist/cjs/hooks/use-on-autoresize.js +39 -0
  243. package/dist/cjs/hooks/use-on-banded-ranges.d.ts +15 -0
  244. package/dist/cjs/hooks/use-on-banded-ranges.d.ts.map +1 -0
  245. package/dist/cjs/hooks/use-on-banded-ranges.js +38 -0
  246. package/dist/cjs/hooks/use-on-calculation-begin.d.ts +14 -0
  247. package/dist/cjs/hooks/use-on-calculation-begin.d.ts.map +1 -0
  248. package/dist/cjs/hooks/use-on-calculation-begin.js +36 -0
  249. package/dist/cjs/hooks/use-on-calculation-success.d.ts +22 -0
  250. package/dist/cjs/hooks/use-on-calculation-success.d.ts.map +1 -0
  251. package/dist/cjs/hooks/use-on-calculation-success.js +182 -0
  252. package/dist/cjs/hooks/use-on-change-batch-stream.d.ts +7 -0
  253. package/dist/cjs/hooks/use-on-change-batch-stream.d.ts.map +1 -0
  254. package/dist/cjs/hooks/use-on-change-batch-stream.js +59 -0
  255. package/dist/cjs/hooks/use-on-change-batch.d.ts +54 -0
  256. package/dist/cjs/hooks/use-on-change-batch.d.ts.map +1 -0
  257. package/dist/cjs/hooks/use-on-change-batch.js +124 -0
  258. package/dist/cjs/hooks/use-on-change-calculated-column.d.ts +23 -0
  259. package/dist/cjs/hooks/use-on-change-calculated-column.d.ts.map +1 -0
  260. package/dist/cjs/hooks/use-on-change-calculated-column.js +30 -0
  261. package/dist/cjs/hooks/use-on-change-decimals.d.ts +22 -0
  262. package/dist/cjs/hooks/use-on-change-decimals.d.ts.map +1 -0
  263. package/dist/cjs/hooks/use-on-change-decimals.js +47 -0
  264. package/dist/cjs/hooks/use-on-change-formatting.d.ts +44 -0
  265. package/dist/cjs/hooks/use-on-change-formatting.d.ts.map +1 -0
  266. package/dist/cjs/hooks/use-on-change-formatting.js +165 -0
  267. package/dist/cjs/hooks/use-on-change-sheet-tabcolor.d.ts +11 -0
  268. package/dist/cjs/hooks/use-on-change-sheet-tabcolor.d.ts.map +1 -0
  269. package/dist/cjs/hooks/use-on-change-sheet-tabcolor.js +27 -0
  270. package/dist/cjs/hooks/use-on-change-table-column.d.ts +25 -0
  271. package/dist/cjs/hooks/use-on-change-table-column.d.ts.map +1 -0
  272. package/dist/cjs/hooks/use-on-change-table-column.js +53 -0
  273. package/dist/cjs/hooks/use-on-change-theme.d.ts +11 -0
  274. package/dist/cjs/hooks/use-on-change-theme.d.ts.map +1 -0
  275. package/dist/cjs/hooks/use-on-change-theme.js +20 -0
  276. package/dist/cjs/hooks/use-on-change.d.ts +61 -0
  277. package/dist/cjs/hooks/use-on-change.d.ts.map +1 -0
  278. package/dist/cjs/hooks/use-on-change.js +298 -0
  279. package/dist/cjs/hooks/use-on-clear-formatting.d.ts +17 -0
  280. package/dist/cjs/hooks/use-on-clear-formatting.d.ts.map +1 -0
  281. package/dist/cjs/hooks/use-on-clear-formatting.js +46 -0
  282. package/dist/cjs/hooks/use-on-collapse-column-group.d.ts +11 -0
  283. package/dist/cjs/hooks/use-on-collapse-column-group.d.ts.map +1 -0
  284. package/dist/cjs/hooks/use-on-collapse-column-group.js +47 -0
  285. package/dist/cjs/hooks/use-on-collapse-row-group.d.ts +18 -0
  286. package/dist/cjs/hooks/use-on-collapse-row-group.d.ts.map +1 -0
  287. package/dist/cjs/hooks/use-on-collapse-row-group.js +57 -0
  288. package/dist/cjs/hooks/use-on-copy.d.ts +49 -0
  289. package/dist/cjs/hooks/use-on-copy.d.ts.map +1 -0
  290. package/dist/cjs/hooks/use-on-copy.js +325 -0
  291. package/dist/cjs/hooks/use-on-create-named-range.d.ts +13 -0
  292. package/dist/cjs/hooks/use-on-create-named-range.d.ts.map +1 -0
  293. package/dist/cjs/hooks/use-on-create-named-range.js +33 -0
  294. package/dist/cjs/hooks/use-on-create-sheet.d.ts +23 -0
  295. package/dist/cjs/hooks/use-on-create-sheet.d.ts.map +1 -0
  296. package/dist/cjs/hooks/use-on-create-sheet.js +66 -0
  297. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts +28 -0
  298. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -0
  299. package/dist/cjs/hooks/use-on-delete-cells-shift-left.js +66 -0
  300. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts +28 -0
  301. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -0
  302. package/dist/cjs/hooks/use-on-delete-cells-shift-up.js +66 -0
  303. package/dist/cjs/hooks/use-on-delete-column.d.ts +38 -0
  304. package/dist/cjs/hooks/use-on-delete-column.d.ts.map +1 -0
  305. package/dist/cjs/hooks/use-on-delete-column.js +87 -0
  306. package/dist/cjs/hooks/use-on-delete-named-range.d.ts +14 -0
  307. package/dist/cjs/hooks/use-on-delete-named-range.d.ts.map +1 -0
  308. package/dist/cjs/hooks/use-on-delete-named-range.js +23 -0
  309. package/dist/cjs/hooks/use-on-delete-row.d.ts +38 -0
  310. package/dist/cjs/hooks/use-on-delete-row.d.ts.map +1 -0
  311. package/dist/cjs/hooks/use-on-delete-row.js +87 -0
  312. package/dist/cjs/hooks/use-on-delete-sheet.d.ts +16 -0
  313. package/dist/cjs/hooks/use-on-delete-sheet.d.ts.map +1 -0
  314. package/dist/cjs/hooks/use-on-delete-sheet.js +37 -0
  315. package/dist/cjs/hooks/use-on-delete-table-row.d.ts +29 -0
  316. package/dist/cjs/hooks/use-on-delete-table-row.d.ts.map +1 -0
  317. package/dist/cjs/hooks/use-on-delete-table-row.js +56 -0
  318. package/dist/cjs/hooks/use-on-delete.d.ts +33 -0
  319. package/dist/cjs/hooks/use-on-delete.d.ts.map +1 -0
  320. package/dist/cjs/hooks/use-on-delete.js +60 -0
  321. package/dist/cjs/hooks/use-on-drag-n-drop.d.ts +55 -0
  322. package/dist/cjs/hooks/use-on-drag-n-drop.d.ts.map +1 -0
  323. package/dist/cjs/hooks/use-on-drag-n-drop.js +191 -0
  324. package/dist/cjs/hooks/use-on-duplicate-sheet.d.ts +29 -0
  325. package/dist/cjs/hooks/use-on-duplicate-sheet.d.ts.map +1 -0
  326. package/dist/cjs/hooks/use-on-duplicate-sheet.js +65 -0
  327. package/dist/cjs/hooks/use-on-embeds.d.ts +19 -0
  328. package/dist/cjs/hooks/use-on-embeds.d.ts.map +1 -0
  329. package/dist/cjs/hooks/use-on-embeds.js +87 -0
  330. package/dist/cjs/hooks/use-on-expand-column-group.d.ts +11 -0
  331. package/dist/cjs/hooks/use-on-expand-column-group.d.ts.map +1 -0
  332. package/dist/cjs/hooks/use-on-expand-column-group.js +45 -0
  333. package/dist/cjs/hooks/use-on-expand-row-group.d.ts +18 -0
  334. package/dist/cjs/hooks/use-on-expand-row-group.d.ts.map +1 -0
  335. package/dist/cjs/hooks/use-on-expand-row-group.js +52 -0
  336. package/dist/cjs/hooks/use-on-fill-range.d.ts +9 -0
  337. package/dist/cjs/hooks/use-on-fill-range.d.ts.map +1 -0
  338. package/dist/cjs/hooks/use-on-fill-range.js +55 -0
  339. package/dist/cjs/hooks/use-on-fill.d.ts +29 -0
  340. package/dist/cjs/hooks/use-on-fill.d.ts.map +1 -0
  341. package/dist/cjs/hooks/use-on-fill.js +78 -0
  342. package/dist/cjs/hooks/use-on-filter-table.d.ts +76 -0
  343. package/dist/cjs/hooks/use-on-filter-table.d.ts.map +1 -0
  344. package/dist/cjs/hooks/use-on-filter-table.js +429 -0
  345. package/dist/cjs/hooks/use-on-find-replace.d.ts +19 -0
  346. package/dist/cjs/hooks/use-on-find-replace.d.ts.map +1 -0
  347. package/dist/cjs/hooks/use-on-find-replace.js +150 -0
  348. package/dist/cjs/hooks/use-on-freeze.d.ts +13 -0
  349. package/dist/cjs/hooks/use-on-freeze.d.ts.map +1 -0
  350. package/dist/cjs/hooks/use-on-freeze.js +56 -0
  351. package/dist/cjs/hooks/use-on-group-columns.d.ts +11 -0
  352. package/dist/cjs/hooks/use-on-group-columns.d.ts.map +1 -0
  353. package/dist/cjs/hooks/use-on-group-columns.js +49 -0
  354. package/dist/cjs/hooks/use-on-group-rows.d.ts +17 -0
  355. package/dist/cjs/hooks/use-on-group-rows.d.ts.map +1 -0
  356. package/dist/cjs/hooks/use-on-group-rows.js +55 -0
  357. package/dist/cjs/hooks/use-on-hide-column.d.ts +23 -0
  358. package/dist/cjs/hooks/use-on-hide-column.d.ts.map +1 -0
  359. package/dist/cjs/hooks/use-on-hide-column.js +55 -0
  360. package/dist/cjs/hooks/use-on-hide-row.d.ts +32 -0
  361. package/dist/cjs/hooks/use-on-hide-row.d.ts.map +1 -0
  362. package/dist/cjs/hooks/use-on-hide-row.js +58 -0
  363. package/dist/cjs/hooks/use-on-hide-show-sheet.d.ts +18 -0
  364. package/dist/cjs/hooks/use-on-hide-show-sheet.d.ts.map +1 -0
  365. package/dist/cjs/hooks/use-on-hide-show-sheet.js +90 -0
  366. package/dist/cjs/hooks/use-on-import-csv-legacy.d.ts +8 -0
  367. package/dist/cjs/hooks/use-on-import-csv-legacy.d.ts.map +1 -0
  368. package/dist/cjs/hooks/use-on-import-csv-legacy.js +165 -0
  369. package/dist/cjs/hooks/use-on-import-csv.d.ts +28 -0
  370. package/dist/cjs/hooks/use-on-import-csv.d.ts.map +1 -0
  371. package/dist/cjs/hooks/use-on-import-csv.js +332 -0
  372. package/dist/cjs/hooks/use-on-import-excel.d.ts +67 -0
  373. package/dist/cjs/hooks/use-on-import-excel.d.ts.map +1 -0
  374. package/dist/cjs/hooks/use-on-import-excel.js +689 -0
  375. package/dist/cjs/hooks/use-on-insert-autosum.d.ts +9 -0
  376. package/dist/cjs/hooks/use-on-insert-autosum.d.ts.map +1 -0
  377. package/dist/cjs/hooks/use-on-insert-autosum.js +105 -0
  378. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts +28 -0
  379. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -0
  380. package/dist/cjs/hooks/use-on-insert-cells-shift-down.js +66 -0
  381. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts +28 -0
  382. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -0
  383. package/dist/cjs/hooks/use-on-insert-cells-shift-right.js +66 -0
  384. package/dist/cjs/hooks/use-on-insert-checkbox.d.ts +17 -0
  385. package/dist/cjs/hooks/use-on-insert-checkbox.d.ts.map +1 -0
  386. package/dist/cjs/hooks/use-on-insert-checkbox.js +87 -0
  387. package/dist/cjs/hooks/use-on-insert-column.d.ts +40 -0
  388. package/dist/cjs/hooks/use-on-insert-column.d.ts.map +1 -0
  389. package/dist/cjs/hooks/use-on-insert-column.js +93 -0
  390. package/dist/cjs/hooks/use-on-insert-date-time.d.ts +4 -0
  391. package/dist/cjs/hooks/use-on-insert-date-time.d.ts.map +1 -0
  392. package/dist/cjs/hooks/use-on-insert-date-time.js +12 -0
  393. package/dist/cjs/hooks/use-on-insert-date.d.ts +4 -0
  394. package/dist/cjs/hooks/use-on-insert-date.d.ts.map +1 -0
  395. package/dist/cjs/hooks/use-on-insert-date.js +13 -0
  396. package/dist/cjs/hooks/use-on-insert-image.d.ts +24 -0
  397. package/dist/cjs/hooks/use-on-insert-image.d.ts.map +1 -0
  398. package/dist/cjs/hooks/use-on-insert-image.js +145 -0
  399. package/dist/cjs/hooks/use-on-insert-link.d.ts +25 -0
  400. package/dist/cjs/hooks/use-on-insert-link.d.ts.map +1 -0
  401. package/dist/cjs/hooks/use-on-insert-link.js +220 -0
  402. package/dist/cjs/hooks/use-on-insert-note.d.ts +4 -0
  403. package/dist/cjs/hooks/use-on-insert-note.d.ts.map +1 -0
  404. package/dist/cjs/hooks/use-on-insert-note.js +14 -0
  405. package/dist/cjs/hooks/use-on-insert-row.d.ts +38 -0
  406. package/dist/cjs/hooks/use-on-insert-row.d.ts.map +1 -0
  407. package/dist/cjs/hooks/use-on-insert-row.js +106 -0
  408. package/dist/cjs/hooks/use-on-insert-table-row.d.ts +31 -0
  409. package/dist/cjs/hooks/use-on-insert-table-row.d.ts.map +1 -0
  410. package/dist/cjs/hooks/use-on-insert-table-row.js +60 -0
  411. package/dist/cjs/hooks/use-on-insert-time.d.ts +4 -0
  412. package/dist/cjs/hooks/use-on-insert-time.d.ts.map +1 -0
  413. package/dist/cjs/hooks/use-on-insert-time.js +12 -0
  414. package/dist/cjs/hooks/use-on-locale-change.d.ts +35 -0
  415. package/dist/cjs/hooks/use-on-locale-change.d.ts.map +1 -0
  416. package/dist/cjs/hooks/use-on-locale-change.js +314 -0
  417. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts +28 -0
  418. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -0
  419. package/dist/cjs/hooks/use-on-merge-unmerge-cells.js +366 -0
  420. package/dist/cjs/hooks/use-on-move-columns.d.ts +28 -0
  421. package/dist/cjs/hooks/use-on-move-columns.d.ts.map +1 -0
  422. package/dist/cjs/hooks/use-on-move-columns.js +378 -0
  423. package/dist/cjs/hooks/use-on-move-rows.d.ts +30 -0
  424. package/dist/cjs/hooks/use-on-move-rows.d.ts.map +1 -0
  425. package/dist/cjs/hooks/use-on-move-rows.js +293 -0
  426. package/dist/cjs/hooks/use-on-move-selection.d.ts +35 -0
  427. package/dist/cjs/hooks/use-on-move-selection.d.ts.map +1 -0
  428. package/dist/cjs/hooks/use-on-move-selection.js +477 -0
  429. package/dist/cjs/hooks/use-on-move-sheet.d.ts +12 -0
  430. package/dist/cjs/hooks/use-on-move-sheet.d.ts.map +1 -0
  431. package/dist/cjs/hooks/use-on-move-sheet.js +68 -0
  432. package/dist/cjs/hooks/use-on-move-table-columns.d.ts +21 -0
  433. package/dist/cjs/hooks/use-on-move-table-columns.d.ts.map +1 -0
  434. package/dist/cjs/hooks/use-on-move-table-columns.js +249 -0
  435. package/dist/cjs/hooks/use-on-paste.d.ts +79 -0
  436. package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -0
  437. package/dist/cjs/hooks/use-on-paste.js +985 -0
  438. package/dist/cjs/hooks/use-on-protect-range.d.ts +20 -0
  439. package/dist/cjs/hooks/use-on-protect-range.d.ts.map +1 -0
  440. package/dist/cjs/hooks/use-on-protect-range.js +67 -0
  441. package/dist/cjs/hooks/use-on-protect-sheet.d.ts +19 -0
  442. package/dist/cjs/hooks/use-on-protect-sheet.d.ts.map +1 -0
  443. package/dist/cjs/hooks/use-on-protect-sheet.js +65 -0
  444. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts +21 -0
  445. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts.map +1 -0
  446. package/dist/cjs/hooks/use-on-remove-duplicates.js +40 -0
  447. package/dist/cjs/hooks/use-on-rename-sheet.d.ts +21 -0
  448. package/dist/cjs/hooks/use-on-rename-sheet.d.ts.map +1 -0
  449. package/dist/cjs/hooks/use-on-rename-sheet.js +80 -0
  450. package/dist/cjs/hooks/use-on-request-calculate-wrapper.d.ts +30 -0
  451. package/dist/cjs/hooks/use-on-request-calculate-wrapper.d.ts.map +1 -0
  452. package/dist/cjs/hooks/use-on-request-calculate-wrapper.js +90 -0
  453. package/dist/cjs/hooks/use-on-request-conditional-format.d.ts +2 -0
  454. package/dist/cjs/hooks/use-on-request-conditional-format.d.ts.map +1 -0
  455. package/dist/cjs/hooks/use-on-request-conditional-format.js +8 -0
  456. package/dist/cjs/hooks/use-on-request-data-validation.d.ts +7 -0
  457. package/dist/cjs/hooks/use-on-request-data-validation.d.ts.map +1 -0
  458. package/dist/cjs/hooks/use-on-request-data-validation.js +23 -0
  459. package/dist/cjs/hooks/use-on-request-define-named-range.d.ts +8 -0
  460. package/dist/cjs/hooks/use-on-request-define-named-range.d.ts.map +1 -0
  461. package/dist/cjs/hooks/use-on-request-define-named-range.js +19 -0
  462. package/dist/cjs/hooks/use-on-request-delete-sheet.d.ts +2 -0
  463. package/dist/cjs/hooks/use-on-request-delete-sheet.d.ts.map +1 -0
  464. package/dist/cjs/hooks/use-on-request-delete-sheet.js +12 -0
  465. package/dist/cjs/hooks/use-on-request-edit-table.d.ts +3 -0
  466. package/dist/cjs/hooks/use-on-request-edit-table.d.ts.map +1 -0
  467. package/dist/cjs/hooks/use-on-request-edit-table.js +11 -0
  468. package/dist/cjs/hooks/use-on-request-format-cells.d.ts +2 -0
  469. package/dist/cjs/hooks/use-on-request-format-cells.d.ts.map +1 -0
  470. package/dist/cjs/hooks/use-on-request-format-cells.js +8 -0
  471. package/dist/cjs/hooks/use-on-request-insert-image.d.ts +3 -0
  472. package/dist/cjs/hooks/use-on-request-insert-image.d.ts.map +1 -0
  473. package/dist/cjs/hooks/use-on-request-insert-image.js +12 -0
  474. package/dist/cjs/hooks/use-on-request-insert-link.d.ts +5 -0
  475. package/dist/cjs/hooks/use-on-request-insert-link.d.ts.map +1 -0
  476. package/dist/cjs/hooks/use-on-request-insert-link.js +9 -0
  477. package/dist/cjs/hooks/use-on-request-resize.d.ts +3 -0
  478. package/dist/cjs/hooks/use-on-request-resize.d.ts.map +1 -0
  479. package/dist/cjs/hooks/use-on-request-resize.js +13 -0
  480. package/dist/cjs/hooks/use-on-request-update-named-range.d.ts +3 -0
  481. package/dist/cjs/hooks/use-on-request-update-named-range.d.ts.map +1 -0
  482. package/dist/cjs/hooks/use-on-request-update-named-range.js +11 -0
  483. package/dist/cjs/hooks/use-on-resize-table.d.ts +33 -0
  484. package/dist/cjs/hooks/use-on-resize-table.d.ts.map +1 -0
  485. package/dist/cjs/hooks/use-on-resize-table.js +218 -0
  486. package/dist/cjs/hooks/use-on-resize.d.ts +19 -0
  487. package/dist/cjs/hooks/use-on-resize.d.ts.map +1 -0
  488. package/dist/cjs/hooks/use-on-resize.js +55 -0
  489. package/dist/cjs/hooks/use-on-set-outline-depth.d.ts +17 -0
  490. package/dist/cjs/hooks/use-on-set-outline-depth.d.ts.map +1 -0
  491. package/dist/cjs/hooks/use-on-set-outline-depth.js +96 -0
  492. package/dist/cjs/hooks/use-on-show-column.d.ts +16 -0
  493. package/dist/cjs/hooks/use-on-show-column.d.ts.map +1 -0
  494. package/dist/cjs/hooks/use-on-show-column.js +96 -0
  495. package/dist/cjs/hooks/use-on-show-row.d.ts +22 -0
  496. package/dist/cjs/hooks/use-on-show-row.d.ts.map +1 -0
  497. package/dist/cjs/hooks/use-on-show-row.js +99 -0
  498. package/dist/cjs/hooks/use-on-sort-column.d.ts +53 -0
  499. package/dist/cjs/hooks/use-on-sort-column.d.ts.map +1 -0
  500. package/dist/cjs/hooks/use-on-sort-column.js +300 -0
  501. package/dist/cjs/hooks/use-on-sort-range.d.ts +42 -0
  502. package/dist/cjs/hooks/use-on-sort-range.d.ts.map +1 -0
  503. package/dist/cjs/hooks/use-on-sort-range.js +252 -0
  504. package/dist/cjs/hooks/use-on-sort-table.d.ts +59 -0
  505. package/dist/cjs/hooks/use-on-sort-table.d.ts.map +1 -0
  506. package/dist/cjs/hooks/use-on-sort-table.js +345 -0
  507. package/dist/cjs/hooks/use-on-table.d.ts +49 -0
  508. package/dist/cjs/hooks/use-on-table.d.ts.map +1 -0
  509. package/dist/cjs/hooks/use-on-table.js +386 -0
  510. package/dist/cjs/hooks/use-on-trace-dependents-precedents.d.ts +14 -0
  511. package/dist/cjs/hooks/use-on-trace-dependents-precedents.d.ts.map +1 -0
  512. package/dist/cjs/hooks/use-on-trace-dependents-precedents.js +146 -0
  513. package/dist/cjs/hooks/use-on-ungroup-columns.d.ts +11 -0
  514. package/dist/cjs/hooks/use-on-ungroup-columns.d.ts.map +1 -0
  515. package/dist/cjs/hooks/use-on-ungroup-columns.js +57 -0
  516. package/dist/cjs/hooks/use-on-ungroup-rows.d.ts +17 -0
  517. package/dist/cjs/hooks/use-on-ungroup-rows.d.ts.map +1 -0
  518. package/dist/cjs/hooks/use-on-ungroup-rows.js +63 -0
  519. package/dist/cjs/hooks/use-on-update-named-range.d.ts +19 -0
  520. package/dist/cjs/hooks/use-on-update-named-range.d.ts.map +1 -0
  521. package/dist/cjs/hooks/use-on-update-named-range.js +133 -0
  522. package/dist/cjs/hooks/use-on-update-note.d.ts +13 -0
  523. package/dist/cjs/hooks/use-on-update-note.d.ts.map +1 -0
  524. package/dist/cjs/hooks/use-on-update-note.js +21 -0
  525. package/dist/cjs/hooks/use-on-update-sheet.d.ts +10 -0
  526. package/dist/cjs/hooks/use-on-update-sheet.d.ts.map +1 -0
  527. package/dist/cjs/hooks/use-on-update-sheet.js +12 -0
  528. package/dist/cjs/hooks/use-paint-format.d.ts +17 -0
  529. package/dist/cjs/hooks/use-paint-format.d.ts.map +1 -0
  530. package/dist/cjs/hooks/use-paint-format.js +118 -0
  531. package/dist/cjs/hooks/use-search.d.ts +81 -0
  532. package/dist/cjs/hooks/use-search.d.ts.map +1 -0
  533. package/dist/cjs/hooks/use-search.js +261 -0
  534. package/dist/cjs/hooks/use-select-next-prev-sheet.d.ts +11 -0
  535. package/dist/cjs/hooks/use-select-next-prev-sheet.d.ts.map +1 -0
  536. package/dist/cjs/hooks/use-select-next-prev-sheet.js +22 -0
  537. package/dist/cjs/hooks/use-sheet-observer.d.ts +20 -0
  538. package/dist/cjs/hooks/use-sheet-observer.d.ts.map +1 -0
  539. package/dist/cjs/hooks/use-sheet-observer.js +127 -0
  540. package/dist/cjs/hooks/use-sheet-properties.d.ts +105 -0
  541. package/dist/cjs/hooks/use-sheet-properties.d.ts.map +1 -0
  542. package/dist/cjs/hooks/use-sheet-properties.js +1019 -0
  543. package/dist/cjs/hooks/use-sheet-state.d.ts +17 -0
  544. package/dist/cjs/hooks/use-sheet-state.d.ts.map +1 -0
  545. package/dist/cjs/hooks/use-sheet-state.js +84 -0
  546. package/dist/cjs/hooks/use-sheetdata-subscriber.d.ts +10 -0
  547. package/dist/cjs/hooks/use-sheetdata-subscriber.d.ts.map +1 -0
  548. package/dist/cjs/hooks/use-sheetdata-subscriber.js +15 -0
  549. package/dist/cjs/hooks/use-slicers.d.ts +19 -0
  550. package/dist/cjs/hooks/use-slicers.d.ts.map +1 -0
  551. package/dist/cjs/hooks/use-slicers.js +84 -0
  552. package/dist/cjs/hooks/use-split-text-to-columns.d.ts +19 -0
  553. package/dist/cjs/hooks/use-split-text-to-columns.d.ts.map +1 -0
  554. package/dist/cjs/hooks/use-split-text-to-columns.js +32 -0
  555. package/dist/cjs/hooks/use-spreadsheet-state.d.ts +627 -0
  556. package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -0
  557. package/dist/cjs/hooks/use-spreadsheet-state.js +2038 -0
  558. package/dist/cjs/hooks/use-ss-registry.d.ts +6 -0
  559. package/dist/cjs/hooks/use-ss-registry.d.ts.map +1 -0
  560. package/dist/cjs/hooks/use-ss-registry.js +17 -0
  561. package/dist/cjs/hooks/use-structured-reference.d.ts +8 -0
  562. package/dist/cjs/hooks/use-structured-reference.d.ts.map +1 -0
  563. package/dist/cjs/hooks/use-structured-reference.js +132 -0
  564. package/dist/cjs/hooks/use-undo-redo-actions.d.ts +40 -0
  565. package/dist/cjs/hooks/use-undo-redo-actions.d.ts.map +1 -0
  566. package/dist/cjs/hooks/use-undo-redo-actions.js +209 -0
  567. package/dist/cjs/hooks/use-undo-redo.d.ts +69 -0
  568. package/dist/cjs/hooks/use-undo-redo.d.ts.map +1 -0
  569. package/dist/cjs/hooks/use-undo-redo.js +124 -0
  570. package/dist/cjs/hooks/utils/frozen-sort.d.ts +9 -0
  571. package/dist/cjs/hooks/utils/frozen-sort.d.ts.map +1 -0
  572. package/dist/cjs/hooks/utils/frozen-sort.js +28 -0
  573. package/dist/cjs/hooks/utils/sort-rows.d.ts +32 -0
  574. package/dist/cjs/hooks/utils/sort-rows.d.ts.map +1 -0
  575. package/dist/cjs/hooks/utils/sort-rows.js +113 -0
  576. package/dist/cjs/index.d.ts +38 -0
  577. package/dist/cjs/index.d.ts.map +1 -0
  578. package/dist/cjs/index.js +39 -0
  579. package/dist/cjs/interface/apply-fill.d.ts +6 -0
  580. package/dist/cjs/interface/apply-fill.d.ts.map +1 -0
  581. package/dist/cjs/interface/apply-fill.js +203 -0
  582. package/dist/cjs/interface/auto-resize.d.ts +4 -0
  583. package/dist/cjs/interface/auto-resize.d.ts.map +1 -0
  584. package/dist/cjs/interface/auto-resize.js +63 -0
  585. package/dist/cjs/interface/calculation-interface.d.ts +67 -0
  586. package/dist/cjs/interface/calculation-interface.d.ts.map +1 -0
  587. package/dist/cjs/interface/calculation-interface.js +409 -0
  588. package/dist/cjs/interface/change-batch-stream.d.ts +25 -0
  589. package/dist/cjs/interface/change-batch-stream.d.ts.map +1 -0
  590. package/dist/cjs/interface/change-batch-stream.js +428 -0
  591. package/dist/cjs/interface/change-batch.d.ts +39 -0
  592. package/dist/cjs/interface/change-batch.d.ts.map +1 -0
  593. package/dist/cjs/interface/change-batch.js +329 -0
  594. package/dist/cjs/interface/change-border.d.ts +5 -0
  595. package/dist/cjs/interface/change-border.d.ts.map +1 -0
  596. package/dist/cjs/interface/change-border.js +141 -0
  597. package/dist/cjs/interface/change-calculated-column.d.ts +5 -0
  598. package/dist/cjs/interface/change-calculated-column.d.ts.map +1 -0
  599. package/dist/cjs/interface/change-calculated-column.js +131 -0
  600. package/dist/cjs/interface/change-decimals.d.ts +7 -0
  601. package/dist/cjs/interface/change-decimals.d.ts.map +1 -0
  602. package/dist/cjs/interface/change-decimals.js +82 -0
  603. package/dist/cjs/interface/change-formatting.d.ts +4 -0
  604. package/dist/cjs/interface/change-formatting.d.ts.map +1 -0
  605. package/dist/cjs/interface/change-formatting.js +240 -0
  606. package/dist/cjs/interface/change-sheet-tabcolor.d.ts +4 -0
  607. package/dist/cjs/interface/change-sheet-tabcolor.d.ts.map +1 -0
  608. package/dist/cjs/interface/change-sheet-tabcolor.js +21 -0
  609. package/dist/cjs/interface/change-table-column.d.ts +49 -0
  610. package/dist/cjs/interface/change-table-column.d.ts.map +1 -0
  611. package/dist/cjs/interface/change-table-column.js +267 -0
  612. package/dist/cjs/interface/change-theme.d.ts +4 -0
  613. package/dist/cjs/interface/change-theme.d.ts.map +1 -0
  614. package/dist/cjs/interface/change-theme.js +23 -0
  615. package/dist/cjs/interface/chart-extensions.d.ts +32 -0
  616. package/dist/cjs/interface/chart-extensions.d.ts.map +1 -0
  617. package/dist/cjs/interface/chart-extensions.js +71 -0
  618. package/dist/cjs/interface/citations.d.ts +33 -0
  619. package/dist/cjs/interface/citations.d.ts.map +1 -0
  620. package/dist/cjs/interface/citations.js +142 -0
  621. package/dist/cjs/interface/clear-formatting.d.ts +5 -0
  622. package/dist/cjs/interface/clear-formatting.d.ts.map +1 -0
  623. package/dist/cjs/interface/clear-formatting.js +72 -0
  624. package/dist/cjs/interface/conditional-formatting-rules.d.ts +7 -0
  625. package/dist/cjs/interface/conditional-formatting-rules.d.ts.map +1 -0
  626. package/dist/cjs/interface/conditional-formatting-rules.js +191 -0
  627. package/dist/cjs/interface/create-table.d.ts +5 -0
  628. package/dist/cjs/interface/create-table.d.ts.map +1 -0
  629. package/dist/cjs/interface/create-table.js +96 -0
  630. package/dist/cjs/interface/data-validation-rules.d.ts +25 -0
  631. package/dist/cjs/interface/data-validation-rules.d.ts.map +1 -0
  632. package/dist/cjs/interface/data-validation-rules.js +366 -0
  633. package/dist/cjs/interface/data-validation-utils.d.ts +12 -0
  634. package/dist/cjs/interface/data-validation-utils.d.ts.map +1 -0
  635. package/dist/cjs/interface/data-validation-utils.js +118 -0
  636. package/dist/cjs/interface/delete-cells-shift-left.d.ts +5 -0
  637. package/dist/cjs/interface/delete-cells-shift-left.d.ts.map +1 -0
  638. package/dist/cjs/interface/delete-cells-shift-left.js +160 -0
  639. package/dist/cjs/interface/delete-cells-shift-up.d.ts +5 -0
  640. package/dist/cjs/interface/delete-cells-shift-up.d.ts.map +1 -0
  641. package/dist/cjs/interface/delete-cells-shift-up.js +152 -0
  642. package/dist/cjs/interface/delete-cells.d.ts +6 -0
  643. package/dist/cjs/interface/delete-cells.d.ts.map +1 -0
  644. package/dist/cjs/interface/delete-cells.js +231 -0
  645. package/dist/cjs/interface/delete-column.d.ts +4 -0
  646. package/dist/cjs/interface/delete-column.d.ts.map +1 -0
  647. package/dist/cjs/interface/delete-column.js +306 -0
  648. package/dist/cjs/interface/delete-row.d.ts +4 -0
  649. package/dist/cjs/interface/delete-row.d.ts.map +1 -0
  650. package/dist/cjs/interface/delete-row.js +227 -0
  651. package/dist/cjs/interface/delete-sheet.d.ts +4 -0
  652. package/dist/cjs/interface/delete-sheet.d.ts.map +1 -0
  653. package/dist/cjs/interface/delete-sheet.js +81 -0
  654. package/dist/cjs/interface/delete-table-column.d.ts +4 -0
  655. package/dist/cjs/interface/delete-table-column.d.ts.map +1 -0
  656. package/dist/cjs/interface/delete-table-column.js +349 -0
  657. package/dist/cjs/interface/delete-table-row.d.ts +4 -0
  658. package/dist/cjs/interface/delete-table-row.d.ts.map +1 -0
  659. package/dist/cjs/interface/delete-table-row.js +313 -0
  660. package/dist/cjs/interface/duplicate-sheet.d.ts +4 -0
  661. package/dist/cjs/interface/duplicate-sheet.d.ts.map +1 -0
  662. package/dist/cjs/interface/duplicate-sheet.js +232 -0
  663. package/dist/cjs/interface/embeds.d.ts +9 -0
  664. package/dist/cjs/interface/embeds.d.ts.map +1 -0
  665. package/dist/cjs/interface/embeds.js +121 -0
  666. package/dist/cjs/interface/freeze.d.ts +5 -0
  667. package/dist/cjs/interface/freeze.d.ts.map +1 -0
  668. package/dist/cjs/interface/freeze.js +160 -0
  669. package/dist/cjs/interface/helpers.d.ts +6 -0
  670. package/dist/cjs/interface/helpers.d.ts.map +1 -0
  671. package/dist/cjs/interface/helpers.js +44 -0
  672. package/dist/cjs/interface/hide-column.d.ts +4 -0
  673. package/dist/cjs/interface/hide-column.d.ts.map +1 -0
  674. package/dist/cjs/interface/hide-column.js +68 -0
  675. package/dist/cjs/interface/hide-row.d.ts +4 -0
  676. package/dist/cjs/interface/hide-row.d.ts.map +1 -0
  677. package/dist/cjs/interface/hide-row.js +65 -0
  678. package/dist/cjs/interface/indent.d.ts +7 -0
  679. package/dist/cjs/interface/indent.d.ts.map +1 -0
  680. package/dist/cjs/interface/indent.js +97 -0
  681. package/dist/cjs/interface/insert-cells-shift-down.d.ts +5 -0
  682. package/dist/cjs/interface/insert-cells-shift-down.d.ts.map +1 -0
  683. package/dist/cjs/interface/insert-cells-shift-down.js +154 -0
  684. package/dist/cjs/interface/insert-cells-shift-right.d.ts +5 -0
  685. package/dist/cjs/interface/insert-cells-shift-right.d.ts.map +1 -0
  686. package/dist/cjs/interface/insert-cells-shift-right.js +150 -0
  687. package/dist/cjs/interface/insert-column.d.ts +7 -0
  688. package/dist/cjs/interface/insert-column.d.ts.map +1 -0
  689. package/dist/cjs/interface/insert-column.js +645 -0
  690. package/dist/cjs/interface/insert-note.d.ts +5 -0
  691. package/dist/cjs/interface/insert-note.d.ts.map +1 -0
  692. package/dist/cjs/interface/insert-note.js +27 -0
  693. package/dist/cjs/interface/insert-row.d.ts +4 -0
  694. package/dist/cjs/interface/insert-row.d.ts.map +1 -0
  695. package/dist/cjs/interface/insert-row.js +188 -0
  696. package/dist/cjs/interface/insert-table-row.d.ts +4 -0
  697. package/dist/cjs/interface/insert-table-row.d.ts.map +1 -0
  698. package/dist/cjs/interface/insert-table-row.js +348 -0
  699. package/dist/cjs/interface/interface-cli.d.ts +3 -0
  700. package/dist/cjs/interface/interface-cli.d.ts.map +1 -0
  701. package/dist/cjs/interface/interface-cli.js +76 -0
  702. package/dist/cjs/interface/named-range-operations.d.ts +19 -0
  703. package/dist/cjs/interface/named-range-operations.d.ts.map +1 -0
  704. package/dist/cjs/interface/named-range-operations.js +96 -0
  705. package/dist/cjs/interface/new-sheet.d.ts +4 -0
  706. package/dist/cjs/interface/new-sheet.d.ts.map +1 -0
  707. package/dist/cjs/interface/new-sheet.js +109 -0
  708. package/dist/cjs/interface/pivot-extensions.d.ts +27 -0
  709. package/dist/cjs/interface/pivot-extensions.d.ts.map +1 -0
  710. package/dist/cjs/interface/pivot-extensions.js +62 -0
  711. package/dist/cjs/interface/remove-duplicates.d.ts +11 -0
  712. package/dist/cjs/interface/remove-duplicates.d.ts.map +1 -0
  713. package/dist/cjs/interface/remove-duplicates.js +132 -0
  714. package/dist/cjs/interface/remove-table.d.ts +4 -0
  715. package/dist/cjs/interface/remove-table.d.ts.map +1 -0
  716. package/dist/cjs/interface/remove-table.js +53 -0
  717. package/dist/cjs/interface/resize-utils.d.ts +18 -0
  718. package/dist/cjs/interface/resize-utils.d.ts.map +1 -0
  719. package/dist/cjs/interface/resize-utils.js +60 -0
  720. package/dist/cjs/interface/resize.d.ts +5 -0
  721. package/dist/cjs/interface/resize.d.ts.map +1 -0
  722. package/dist/cjs/interface/resize.js +56 -0
  723. package/dist/cjs/interface/slicers.d.ts +9 -0
  724. package/dist/cjs/interface/slicers.d.ts.map +1 -0
  725. package/dist/cjs/interface/slicers.js +113 -0
  726. package/dist/cjs/interface/split-text.d.ts +5 -0
  727. package/dist/cjs/interface/split-text.d.ts.map +1 -0
  728. package/dist/cjs/interface/split-text.js +120 -0
  729. package/dist/cjs/interface/spreadsheet-interface.d.ts +642 -0
  730. package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -0
  731. package/dist/cjs/interface/spreadsheet-interface.js +2787 -0
  732. package/dist/cjs/interface/table-totalrow.d.ts +20 -0
  733. package/dist/cjs/interface/table-totalrow.d.ts.map +1 -0
  734. package/dist/cjs/interface/table-totalrow.js +170 -0
  735. package/dist/cjs/interface/table-utils.d.ts +21 -0
  736. package/dist/cjs/interface/table-utils.d.ts.map +1 -0
  737. package/dist/cjs/interface/table-utils.js +44 -0
  738. package/dist/cjs/interface/update-sheet.d.ts +16 -0
  739. package/dist/cjs/interface/update-sheet.d.ts.map +1 -0
  740. package/dist/cjs/interface/update-sheet.js +63 -0
  741. package/dist/cjs/interface/update-table.d.ts +4 -0
  742. package/dist/cjs/interface/update-table.d.ts.map +1 -0
  743. package/dist/cjs/interface/update-table.js +109 -0
  744. package/dist/cjs/server-utils.d.ts +8 -0
  745. package/dist/cjs/server-utils.d.ts.map +1 -0
  746. package/dist/cjs/server-utils.js +3 -0
  747. package/dist/cjs/server.browser.d.ts +9 -0
  748. package/dist/cjs/server.browser.d.ts.map +1 -0
  749. package/dist/cjs/server.browser.js +5 -0
  750. package/dist/cjs/server.d.ts +9 -0
  751. package/dist/cjs/server.d.ts.map +1 -0
  752. package/dist/cjs/server.js +5 -0
  753. package/dist/cjs/shared-string-registry.d.ts +35 -0
  754. package/dist/cjs/shared-string-registry.d.ts.map +1 -0
  755. package/dist/cjs/shared-string-registry.js +314 -0
  756. package/dist/cjs/sheet-cell.d.ts +310 -0
  757. package/dist/cjs/sheet-cell.d.ts.map +1 -0
  758. package/dist/cjs/sheet-cell.js +1809 -0
  759. package/dist/cjs/test-setup.d.ts +2 -0
  760. package/dist/cjs/test-setup.d.ts.map +1 -0
  761. package/dist/cjs/test-setup.js +3 -0
  762. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  763. package/dist/cjs/types.d.ts +44 -0
  764. package/dist/cjs/types.d.ts.map +1 -0
  765. package/dist/cjs/types.js +33 -0
  766. package/dist/cjs/validation-schema/table.schema.d.ts +6 -0
  767. package/dist/cjs/validation-schema/table.schema.d.ts.map +1 -0
  768. package/dist/cjs/validation-schema/table.schema.js +4 -0
  769. package/dist/cjs/vitest.config.d.ts +3 -0
  770. package/dist/cjs/vitest.config.d.ts.map +1 -0
  771. package/dist/cjs/vitest.config.js +22 -0
  772. package/dist/esm/api/border.d.ts +9 -0
  773. package/dist/esm/api/border.d.ts.map +1 -0
  774. package/dist/esm/api/border.js +25 -0
  775. package/dist/esm/api/conditional-format.d.ts +2 -0
  776. package/dist/esm/api/conditional-format.d.ts.map +1 -0
  777. package/dist/esm/api/conditional-format.js +5 -0
  778. package/dist/esm/api/copy-paste.d.ts +20 -0
  779. package/dist/esm/api/copy-paste.d.ts.map +1 -0
  780. package/dist/esm/api/copy-paste.js +302 -0
  781. package/dist/esm/api/data-validation.d.ts +2 -0
  782. package/dist/esm/api/data-validation.d.ts.map +1 -0
  783. package/dist/esm/api/data-validation.js +5 -0
  784. package/dist/esm/api/datatype.d.ts +89 -0
  785. package/dist/esm/api/datatype.d.ts.map +1 -0
  786. package/dist/esm/api/datatype.js +639 -0
  787. package/dist/esm/api/date.d.ts +27 -0
  788. package/dist/esm/api/date.d.ts.map +1 -0
  789. package/dist/esm/api/date.js +220 -0
  790. package/dist/esm/api/decimals.d.ts +10 -0
  791. package/dist/esm/api/decimals.d.ts.map +1 -0
  792. package/dist/esm/api/decimals.js +181 -0
  793. package/dist/esm/api/dependency.d.ts +64 -0
  794. package/dist/esm/api/dependency.d.ts.map +1 -0
  795. package/dist/esm/api/dependency.js +251 -0
  796. package/dist/esm/api/fill.d.ts +88 -0
  797. package/dist/esm/api/fill.d.ts.map +1 -0
  798. package/dist/esm/api/fill.js +919 -0
  799. package/dist/esm/api/filter-range.d.ts +4 -0
  800. package/dist/esm/api/filter-range.d.ts.map +1 -0
  801. package/dist/esm/api/filter-range.js +100 -0
  802. package/dist/esm/api/filter.d.ts +24 -0
  803. package/dist/esm/api/filter.d.ts.map +1 -0
  804. package/dist/esm/api/filter.js +62 -0
  805. package/dist/esm/api/format-caches.d.ts +43 -0
  806. package/dist/esm/api/format-caches.d.ts.map +1 -0
  807. package/dist/esm/api/format-caches.js +95 -0
  808. package/dist/esm/api/formula.d.ts +69 -0
  809. package/dist/esm/api/formula.d.ts.map +1 -0
  810. package/dist/esm/api/formula.js +422 -0
  811. package/dist/esm/api/immer-utils.d.ts +66 -0
  812. package/dist/esm/api/immer-utils.d.ts.map +1 -0
  813. package/dist/esm/api/immer-utils.js +1552 -0
  814. package/dist/esm/api/intl.d.ts +51 -0
  815. package/dist/esm/api/intl.d.ts.map +1 -0
  816. package/dist/esm/api/intl.js +257 -0
  817. package/dist/esm/api/merges.d.ts +7 -0
  818. package/dist/esm/api/merges.d.ts.map +1 -0
  819. package/dist/esm/api/merges.js +174 -0
  820. package/dist/esm/api/outline.d.ts +33 -0
  821. package/dist/esm/api/outline.d.ts.map +1 -0
  822. package/dist/esm/api/outline.js +56 -0
  823. package/dist/esm/api/parse-html.d.ts +15 -0
  824. package/dist/esm/api/parse-html.d.ts.map +1 -0
  825. package/dist/esm/api/parse-html.js +865 -0
  826. package/dist/esm/api/patches.d.ts +11 -0
  827. package/dist/esm/api/patches.d.ts.map +1 -0
  828. package/dist/esm/api/patches.js +206 -0
  829. package/dist/esm/api/pivot-range.d.ts +8 -0
  830. package/dist/esm/api/pivot-range.d.ts.map +1 -0
  831. package/dist/esm/api/pivot-range.js +93 -0
  832. package/dist/esm/api/range-rule-helpers.d.ts +65 -0
  833. package/dist/esm/api/range-rule-helpers.d.ts.map +1 -0
  834. package/dist/esm/api/range-rule-helpers.js +138 -0
  835. package/dist/esm/api/range.d.ts +19 -0
  836. package/dist/esm/api/range.d.ts.map +1 -0
  837. package/dist/esm/api/range.js +136 -0
  838. package/dist/esm/api/rename-sheet.d.ts +22 -0
  839. package/dist/esm/api/rename-sheet.d.ts.map +1 -0
  840. package/dist/esm/api/rename-sheet.js +41 -0
  841. package/dist/esm/api/selection.d.ts +36 -0
  842. package/dist/esm/api/selection.d.ts.map +1 -0
  843. package/dist/esm/api/selection.js +138 -0
  844. package/dist/esm/api/sort.d.ts +3 -0
  845. package/dist/esm/api/sort.d.ts.map +1 -0
  846. package/dist/esm/api/sort.js +33 -0
  847. package/dist/esm/api/split-text.d.ts +2 -0
  848. package/dist/esm/api/split-text.d.ts.map +1 -0
  849. package/dist/esm/api/split-text.js +24 -0
  850. package/dist/esm/api/structural-formula-update.d.ts +75 -0
  851. package/dist/esm/api/structural-formula-update.d.ts.map +1 -0
  852. package/dist/esm/api/structural-formula-update.js +431 -0
  853. package/dist/esm/api/table.d.ts +39 -0
  854. package/dist/esm/api/table.d.ts.map +1 -0
  855. package/dist/esm/api/table.js +333 -0
  856. package/dist/esm/api/validation.d.ts +12 -0
  857. package/dist/esm/api/validation.d.ts.map +1 -0
  858. package/dist/esm/api/validation.js +297 -0
  859. package/dist/esm/api/xlsx-source.d.ts +22 -0
  860. package/dist/esm/api/xlsx-source.d.ts.map +1 -0
  861. package/dist/esm/api/xlsx-source.js +30 -0
  862. package/dist/esm/atoms/delete-sheet-atom.d.ts +6 -0
  863. package/dist/esm/atoms/delete-sheet-atom.d.ts.map +1 -0
  864. package/dist/esm/atoms/delete-sheet-atom.js +4 -0
  865. package/dist/esm/atoms/dialog-state.atom.d.ts +23 -0
  866. package/dist/esm/atoms/dialog-state.atom.d.ts.map +1 -0
  867. package/dist/esm/atoms/dialog-state.atom.js +34 -0
  868. package/dist/esm/atoms/editing-data-validation-id.atom.d.ts +7 -0
  869. package/dist/esm/atoms/editing-data-validation-id.atom.d.ts.map +1 -0
  870. package/dist/esm/atoms/editing-data-validation-id.atom.js +6 -0
  871. package/dist/esm/atoms/editing-embed.atom.d.ts +8 -0
  872. package/dist/esm/atoms/editing-embed.atom.d.ts.map +1 -0
  873. package/dist/esm/atoms/editing-embed.atom.js +5 -0
  874. package/dist/esm/atoms/editing-table.atom.d.ts +8 -0
  875. package/dist/esm/atoms/editing-table.atom.d.ts.map +1 -0
  876. package/dist/esm/atoms/editing-table.atom.js +6 -0
  877. package/dist/esm/atoms/error-state.atom.d.ts +10 -0
  878. package/dist/esm/atoms/error-state.atom.d.ts.map +1 -0
  879. package/dist/esm/atoms/error-state.atom.js +5 -0
  880. package/dist/esm/atoms/index.d.ts +5 -0
  881. package/dist/esm/atoms/index.d.ts.map +1 -0
  882. package/dist/esm/atoms/index.js +4 -0
  883. package/dist/esm/atoms/insert-image-state.atom.d.ts +6 -0
  884. package/dist/esm/atoms/insert-image-state.atom.d.ts.map +1 -0
  885. package/dist/esm/atoms/insert-image-state.atom.js +5 -0
  886. package/dist/esm/atoms/named-range.atom.d.ts +8 -0
  887. package/dist/esm/atoms/named-range.atom.d.ts.map +1 -0
  888. package/dist/esm/atoms/named-range.atom.js +6 -0
  889. package/dist/esm/atoms/resize-dimension.atom.d.ts +12 -0
  890. package/dist/esm/atoms/resize-dimension.atom.d.ts.map +1 -0
  891. package/dist/esm/atoms/resize-dimension.atom.js +5 -0
  892. package/dist/esm/atoms/sheet-observer.atom.d.ts +16 -0
  893. package/dist/esm/atoms/sheet-observer.atom.d.ts.map +1 -0
  894. package/dist/esm/atoms/sheet-observer.atom.js +16 -0
  895. package/dist/esm/cellxfs-registry.d.ts +37 -0
  896. package/dist/esm/cellxfs-registry.d.ts.map +1 -0
  897. package/dist/esm/cellxfs-registry.js +147 -0
  898. package/dist/esm/commands.d.ts +691 -0
  899. package/dist/esm/commands.d.ts.map +1 -0
  900. package/dist/esm/commands.js +1 -0
  901. package/dist/esm/components/dialogs/delete-sheet-confirmation.d.ts +7 -0
  902. package/dist/esm/components/dialogs/delete-sheet-confirmation.d.ts.map +1 -0
  903. package/dist/esm/components/dialogs/delete-sheet-confirmation.js +29 -0
  904. package/dist/esm/components/dialogs/error-state.d.ts +3 -0
  905. package/dist/esm/components/dialogs/error-state.d.ts.map +1 -0
  906. package/dist/esm/components/dialogs/error-state.js +22 -0
  907. package/dist/esm/components/editors/cell-format-editor.d.ts +26 -0
  908. package/dist/esm/components/editors/cell-format-editor.d.ts.map +1 -0
  909. package/dist/esm/components/editors/cell-format-editor.js +648 -0
  910. package/dist/esm/components/editors/conditional-format-editor.d.ts +43 -0
  911. package/dist/esm/components/editors/conditional-format-editor.d.ts.map +1 -0
  912. package/dist/esm/components/editors/conditional-format-editor.js +172 -0
  913. package/dist/esm/components/editors/conditional-format-rule-editor.d.ts +27 -0
  914. package/dist/esm/components/editors/conditional-format-rule-editor.d.ts.map +1 -0
  915. package/dist/esm/components/editors/conditional-format-rule-editor.js +608 -0
  916. package/dist/esm/components/editors/data-validation-editor.d.ts +27 -0
  917. package/dist/esm/components/editors/data-validation-editor.d.ts.map +1 -0
  918. package/dist/esm/components/editors/data-validation-editor.js +160 -0
  919. package/dist/esm/components/editors/data-validation-rule-editor.d.ts +17 -0
  920. package/dist/esm/components/editors/data-validation-rule-editor.d.ts.map +1 -0
  921. package/dist/esm/components/editors/data-validation-rule-editor.js +194 -0
  922. package/dist/esm/components/editors/embed-editor.d.ts +19 -0
  923. package/dist/esm/components/editors/embed-editor.d.ts.map +1 -0
  924. package/dist/esm/components/editors/embed-editor.js +75 -0
  925. package/dist/esm/components/editors/insert-image-editor.d.ts +20 -0
  926. package/dist/esm/components/editors/insert-image-editor.d.ts.map +1 -0
  927. package/dist/esm/components/editors/insert-image-editor.js +73 -0
  928. package/dist/esm/components/editors/insert-link-editor.d.ts +20 -0
  929. package/dist/esm/components/editors/insert-link-editor.d.ts.map +1 -0
  930. package/dist/esm/components/editors/insert-link-editor.js +60 -0
  931. package/dist/esm/components/editors/named-range-editor.d.ts +13 -0
  932. package/dist/esm/components/editors/named-range-editor.d.ts.map +1 -0
  933. package/dist/esm/components/editors/named-range-editor.js +103 -0
  934. package/dist/esm/components/editors/resize-dimension-editor.d.ts +9 -0
  935. package/dist/esm/components/editors/resize-dimension-editor.d.ts.map +1 -0
  936. package/dist/esm/components/editors/resize-dimension-editor.js +60 -0
  937. package/dist/esm/components/editors/sheet-filter.d.ts +59 -0
  938. package/dist/esm/components/editors/sheet-filter.d.ts.map +1 -0
  939. package/dist/esm/components/editors/sheet-filter.js +88 -0
  940. package/dist/esm/components/editors/table-editor.d.ts +12 -0
  941. package/dist/esm/components/editors/table-editor.d.ts.map +1 -0
  942. package/dist/esm/components/editors/table-editor.js +106 -0
  943. package/dist/esm/components/index.d.ts +13 -0
  944. package/dist/esm/components/index.d.ts.map +1 -0
  945. package/dist/esm/components/index.js +12 -0
  946. package/dist/esm/generated-names.d.ts +51 -0
  947. package/dist/esm/generated-names.d.ts.map +1 -0
  948. package/dist/esm/generated-names.js +5 -0
  949. package/dist/esm/helpers/iterative-calculation.d.ts +4 -0
  950. package/dist/esm/helpers/iterative-calculation.d.ts.map +1 -0
  951. package/dist/esm/helpers/iterative-calculation.js +44 -0
  952. package/dist/esm/helpers/sheet-title.d.ts +5 -0
  953. package/dist/esm/helpers/sheet-title.d.ts.map +1 -0
  954. package/dist/esm/helpers/sheet-title.js +13 -0
  955. package/dist/esm/helpers.d.ts +45 -0
  956. package/dist/esm/helpers.d.ts.map +1 -0
  957. package/dist/esm/helpers.js +143 -0
  958. package/dist/esm/hooks/use-async-datasource.d.ts +57 -0
  959. package/dist/esm/hooks/use-async-datasource.d.ts.map +1 -0
  960. package/dist/esm/hooks/use-async-datasource.js +276 -0
  961. package/dist/esm/hooks/use-calculation-initialize.d.ts +61 -0
  962. package/dist/esm/hooks/use-calculation-initialize.d.ts.map +1 -0
  963. package/dist/esm/hooks/use-calculation-initialize.js +603 -0
  964. package/dist/esm/hooks/use-calculation-process-array.d.ts +20 -0
  965. package/dist/esm/hooks/use-calculation-process-array.d.ts.map +1 -0
  966. package/dist/esm/hooks/use-calculation-process-array.js +279 -0
  967. package/dist/esm/hooks/use-calculation-queue.d.ts +10 -0
  968. package/dist/esm/hooks/use-calculation-queue.d.ts.map +1 -0
  969. package/dist/esm/hooks/use-calculation-queue.js +13 -0
  970. package/dist/esm/hooks/use-calculation-worker.d.ts +37 -0
  971. package/dist/esm/hooks/use-calculation-worker.d.ts.map +1 -0
  972. package/dist/esm/hooks/use-calculation-worker.js +1688 -0
  973. package/dist/esm/hooks/use-calculation.d.ts +173 -0
  974. package/dist/esm/hooks/use-calculation.d.ts.map +1 -0
  975. package/dist/esm/hooks/use-calculation.js +2069 -0
  976. package/dist/esm/hooks/use-can-edit-cellrange.d.ts +31 -0
  977. package/dist/esm/hooks/use-can-edit-cellrange.d.ts.map +1 -0
  978. package/dist/esm/hooks/use-can-edit-cellrange.js +72 -0
  979. package/dist/esm/hooks/use-cellxfs-registry.d.ts +6 -0
  980. package/dist/esm/hooks/use-cellxfs-registry.d.ts.map +1 -0
  981. package/dist/esm/hooks/use-cellxfs-registry.js +22 -0
  982. package/dist/esm/hooks/use-citations.d.ts +19 -0
  983. package/dist/esm/hooks/use-citations.d.ts.map +1 -0
  984. package/dist/esm/hooks/use-citations.js +61 -0
  985. package/dist/esm/hooks/use-comments.d.ts +14 -0
  986. package/dist/esm/hooks/use-comments.d.ts.map +1 -0
  987. package/dist/esm/hooks/use-comments.js +45 -0
  988. package/dist/esm/hooks/use-conditional-formatting-rules.d.ts +22 -0
  989. package/dist/esm/hooks/use-conditional-formatting-rules.d.ts.map +1 -0
  990. package/dist/esm/hooks/use-conditional-formatting-rules.js +81 -0
  991. package/dist/esm/hooks/use-data-validation-rules.d.ts +54 -0
  992. package/dist/esm/hooks/use-data-validation-rules.d.ts.map +1 -0
  993. package/dist/esm/hooks/use-data-validation-rules.js +135 -0
  994. package/dist/esm/hooks/use-deferred-calculation-flush.d.ts +14 -0
  995. package/dist/esm/hooks/use-deferred-calculation-flush.d.ts.map +1 -0
  996. package/dist/esm/hooks/use-deferred-calculation-flush.js +78 -0
  997. package/dist/esm/hooks/use-idle-scheduler.d.ts +5 -0
  998. package/dist/esm/hooks/use-idle-scheduler.d.ts.map +1 -0
  999. package/dist/esm/hooks/use-idle-scheduler.js +46 -0
  1000. package/dist/esm/hooks/use-indent.d.ts +23 -0
  1001. package/dist/esm/hooks/use-indent.d.ts.map +1 -0
  1002. package/dist/esm/hooks/use-indent.js +97 -0
  1003. package/dist/esm/hooks/use-named-range.d.ts +7 -0
  1004. package/dist/esm/hooks/use-named-range.d.ts.map +1 -0
  1005. package/dist/esm/hooks/use-named-range.js +69 -0
  1006. package/dist/esm/hooks/use-on-adjust-row-height.d.ts +11 -0
  1007. package/dist/esm/hooks/use-on-adjust-row-height.d.ts.map +1 -0
  1008. package/dist/esm/hooks/use-on-adjust-row-height.js +63 -0
  1009. package/dist/esm/hooks/use-on-autoresize.d.ts +17 -0
  1010. package/dist/esm/hooks/use-on-autoresize.d.ts.map +1 -0
  1011. package/dist/esm/hooks/use-on-autoresize.js +38 -0
  1012. package/dist/esm/hooks/use-on-banded-ranges.d.ts +15 -0
  1013. package/dist/esm/hooks/use-on-banded-ranges.d.ts.map +1 -0
  1014. package/dist/esm/hooks/use-on-banded-ranges.js +36 -0
  1015. package/dist/esm/hooks/use-on-calculation-begin.d.ts +14 -0
  1016. package/dist/esm/hooks/use-on-calculation-begin.d.ts.map +1 -0
  1017. package/dist/esm/hooks/use-on-calculation-begin.js +22 -0
  1018. package/dist/esm/hooks/use-on-calculation-success.d.ts +22 -0
  1019. package/dist/esm/hooks/use-on-calculation-success.d.ts.map +1 -0
  1020. package/dist/esm/hooks/use-on-calculation-success.js +167 -0
  1021. package/dist/esm/hooks/use-on-change-batch-stream.d.ts +7 -0
  1022. package/dist/esm/hooks/use-on-change-batch-stream.d.ts.map +1 -0
  1023. package/dist/esm/hooks/use-on-change-batch-stream.js +58 -0
  1024. package/dist/esm/hooks/use-on-change-batch.d.ts +54 -0
  1025. package/dist/esm/hooks/use-on-change-batch.d.ts.map +1 -0
  1026. package/dist/esm/hooks/use-on-change-batch.js +111 -0
  1027. package/dist/esm/hooks/use-on-change-calculated-column.d.ts +23 -0
  1028. package/dist/esm/hooks/use-on-change-calculated-column.d.ts.map +1 -0
  1029. package/dist/esm/hooks/use-on-change-calculated-column.js +29 -0
  1030. package/dist/esm/hooks/use-on-change-decimals.d.ts +22 -0
  1031. package/dist/esm/hooks/use-on-change-decimals.d.ts.map +1 -0
  1032. package/dist/esm/hooks/use-on-change-decimals.js +45 -0
  1033. package/dist/esm/hooks/use-on-change-formatting.d.ts +44 -0
  1034. package/dist/esm/hooks/use-on-change-formatting.d.ts.map +1 -0
  1035. package/dist/esm/hooks/use-on-change-formatting.js +158 -0
  1036. package/dist/esm/hooks/use-on-change-sheet-tabcolor.d.ts +11 -0
  1037. package/dist/esm/hooks/use-on-change-sheet-tabcolor.d.ts.map +1 -0
  1038. package/dist/esm/hooks/use-on-change-sheet-tabcolor.js +26 -0
  1039. package/dist/esm/hooks/use-on-change-table-column.d.ts +25 -0
  1040. package/dist/esm/hooks/use-on-change-table-column.d.ts.map +1 -0
  1041. package/dist/esm/hooks/use-on-change-table-column.js +52 -0
  1042. package/dist/esm/hooks/use-on-change-theme.d.ts +11 -0
  1043. package/dist/esm/hooks/use-on-change-theme.d.ts.map +1 -0
  1044. package/dist/esm/hooks/use-on-change-theme.js +11 -0
  1045. package/dist/esm/hooks/use-on-change.d.ts +61 -0
  1046. package/dist/esm/hooks/use-on-change.d.ts.map +1 -0
  1047. package/dist/esm/hooks/use-on-change.js +281 -0
  1048. package/dist/esm/hooks/use-on-clear-formatting.d.ts +17 -0
  1049. package/dist/esm/hooks/use-on-clear-formatting.d.ts.map +1 -0
  1050. package/dist/esm/hooks/use-on-clear-formatting.js +45 -0
  1051. package/dist/esm/hooks/use-on-collapse-column-group.d.ts +11 -0
  1052. package/dist/esm/hooks/use-on-collapse-column-group.d.ts.map +1 -0
  1053. package/dist/esm/hooks/use-on-collapse-column-group.js +44 -0
  1054. package/dist/esm/hooks/use-on-collapse-row-group.d.ts +18 -0
  1055. package/dist/esm/hooks/use-on-collapse-row-group.d.ts.map +1 -0
  1056. package/dist/esm/hooks/use-on-collapse-row-group.js +54 -0
  1057. package/dist/esm/hooks/use-on-copy.d.ts +49 -0
  1058. package/dist/esm/hooks/use-on-copy.d.ts.map +1 -0
  1059. package/dist/esm/hooks/use-on-copy.js +302 -0
  1060. package/dist/esm/hooks/use-on-create-named-range.d.ts +13 -0
  1061. package/dist/esm/hooks/use-on-create-named-range.d.ts.map +1 -0
  1062. package/dist/esm/hooks/use-on-create-named-range.js +32 -0
  1063. package/dist/esm/hooks/use-on-create-sheet.d.ts +23 -0
  1064. package/dist/esm/hooks/use-on-create-sheet.d.ts.map +1 -0
  1065. package/dist/esm/hooks/use-on-create-sheet.js +64 -0
  1066. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts +28 -0
  1067. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -0
  1068. package/dist/esm/hooks/use-on-delete-cells-shift-left.js +65 -0
  1069. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts +28 -0
  1070. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -0
  1071. package/dist/esm/hooks/use-on-delete-cells-shift-up.js +65 -0
  1072. package/dist/esm/hooks/use-on-delete-column.d.ts +38 -0
  1073. package/dist/esm/hooks/use-on-delete-column.d.ts.map +1 -0
  1074. package/dist/esm/hooks/use-on-delete-column.js +86 -0
  1075. package/dist/esm/hooks/use-on-delete-named-range.d.ts +14 -0
  1076. package/dist/esm/hooks/use-on-delete-named-range.d.ts.map +1 -0
  1077. package/dist/esm/hooks/use-on-delete-named-range.js +22 -0
  1078. package/dist/esm/hooks/use-on-delete-row.d.ts +38 -0
  1079. package/dist/esm/hooks/use-on-delete-row.d.ts.map +1 -0
  1080. package/dist/esm/hooks/use-on-delete-row.js +86 -0
  1081. package/dist/esm/hooks/use-on-delete-sheet.d.ts +16 -0
  1082. package/dist/esm/hooks/use-on-delete-sheet.d.ts.map +1 -0
  1083. package/dist/esm/hooks/use-on-delete-sheet.js +36 -0
  1084. package/dist/esm/hooks/use-on-delete-table-row.d.ts +29 -0
  1085. package/dist/esm/hooks/use-on-delete-table-row.d.ts.map +1 -0
  1086. package/dist/esm/hooks/use-on-delete-table-row.js +55 -0
  1087. package/dist/esm/hooks/use-on-delete.d.ts +33 -0
  1088. package/dist/esm/hooks/use-on-delete.d.ts.map +1 -0
  1089. package/dist/esm/hooks/use-on-delete.js +58 -0
  1090. package/dist/esm/hooks/use-on-drag-n-drop.d.ts +55 -0
  1091. package/dist/esm/hooks/use-on-drag-n-drop.d.ts.map +1 -0
  1092. package/dist/esm/hooks/use-on-drag-n-drop.js +160 -0
  1093. package/dist/esm/hooks/use-on-duplicate-sheet.d.ts +29 -0
  1094. package/dist/esm/hooks/use-on-duplicate-sheet.d.ts.map +1 -0
  1095. package/dist/esm/hooks/use-on-duplicate-sheet.js +63 -0
  1096. package/dist/esm/hooks/use-on-embeds.d.ts +19 -0
  1097. package/dist/esm/hooks/use-on-embeds.d.ts.map +1 -0
  1098. package/dist/esm/hooks/use-on-embeds.js +86 -0
  1099. package/dist/esm/hooks/use-on-expand-column-group.d.ts +11 -0
  1100. package/dist/esm/hooks/use-on-expand-column-group.d.ts.map +1 -0
  1101. package/dist/esm/hooks/use-on-expand-column-group.js +42 -0
  1102. package/dist/esm/hooks/use-on-expand-row-group.d.ts +18 -0
  1103. package/dist/esm/hooks/use-on-expand-row-group.d.ts.map +1 -0
  1104. package/dist/esm/hooks/use-on-expand-row-group.js +49 -0
  1105. package/dist/esm/hooks/use-on-fill-range.d.ts +9 -0
  1106. package/dist/esm/hooks/use-on-fill-range.d.ts.map +1 -0
  1107. package/dist/esm/hooks/use-on-fill-range.js +79 -0
  1108. package/dist/esm/hooks/use-on-fill.d.ts +29 -0
  1109. package/dist/esm/hooks/use-on-fill.d.ts.map +1 -0
  1110. package/dist/esm/hooks/use-on-fill.js +66 -0
  1111. package/dist/esm/hooks/use-on-filter-table.d.ts +76 -0
  1112. package/dist/esm/hooks/use-on-filter-table.d.ts.map +1 -0
  1113. package/dist/esm/hooks/use-on-filter-table.js +341 -0
  1114. package/dist/esm/hooks/use-on-find-replace.d.ts +19 -0
  1115. package/dist/esm/hooks/use-on-find-replace.d.ts.map +1 -0
  1116. package/dist/esm/hooks/use-on-find-replace.js +115 -0
  1117. package/dist/esm/hooks/use-on-freeze.d.ts +13 -0
  1118. package/dist/esm/hooks/use-on-freeze.d.ts.map +1 -0
  1119. package/dist/esm/hooks/use-on-freeze.js +55 -0
  1120. package/dist/esm/hooks/use-on-group-columns.d.ts +11 -0
  1121. package/dist/esm/hooks/use-on-group-columns.d.ts.map +1 -0
  1122. package/dist/esm/hooks/use-on-group-columns.js +35 -0
  1123. package/dist/esm/hooks/use-on-group-rows.d.ts +17 -0
  1124. package/dist/esm/hooks/use-on-group-rows.d.ts.map +1 -0
  1125. package/dist/esm/hooks/use-on-group-rows.js +41 -0
  1126. package/dist/esm/hooks/use-on-hide-column.d.ts +23 -0
  1127. package/dist/esm/hooks/use-on-hide-column.d.ts.map +1 -0
  1128. package/dist/esm/hooks/use-on-hide-column.js +54 -0
  1129. package/dist/esm/hooks/use-on-hide-row.d.ts +32 -0
  1130. package/dist/esm/hooks/use-on-hide-row.d.ts.map +1 -0
  1131. package/dist/esm/hooks/use-on-hide-row.js +57 -0
  1132. package/dist/esm/hooks/use-on-hide-show-sheet.d.ts +18 -0
  1133. package/dist/esm/hooks/use-on-hide-show-sheet.d.ts.map +1 -0
  1134. package/dist/esm/hooks/use-on-hide-show-sheet.js +88 -0
  1135. package/dist/esm/hooks/use-on-import-csv-legacy.d.ts +8 -0
  1136. package/dist/esm/hooks/use-on-import-csv-legacy.d.ts.map +1 -0
  1137. package/dist/esm/hooks/use-on-import-csv-legacy.js +148 -0
  1138. package/dist/esm/hooks/use-on-import-csv.d.ts +28 -0
  1139. package/dist/esm/hooks/use-on-import-csv.d.ts.map +1 -0
  1140. package/dist/esm/hooks/use-on-import-csv.js +267 -0
  1141. package/dist/esm/hooks/use-on-import-excel.d.ts +67 -0
  1142. package/dist/esm/hooks/use-on-import-excel.d.ts.map +1 -0
  1143. package/dist/esm/hooks/use-on-import-excel.js +595 -0
  1144. package/dist/esm/hooks/use-on-insert-autosum.d.ts +9 -0
  1145. package/dist/esm/hooks/use-on-insert-autosum.d.ts.map +1 -0
  1146. package/dist/esm/hooks/use-on-insert-autosum.js +91 -0
  1147. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts +28 -0
  1148. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -0
  1149. package/dist/esm/hooks/use-on-insert-cells-shift-down.js +65 -0
  1150. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts +28 -0
  1151. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -0
  1152. package/dist/esm/hooks/use-on-insert-cells-shift-right.js +65 -0
  1153. package/dist/esm/hooks/use-on-insert-checkbox.d.ts +17 -0
  1154. package/dist/esm/hooks/use-on-insert-checkbox.d.ts.map +1 -0
  1155. package/dist/esm/hooks/use-on-insert-checkbox.js +73 -0
  1156. package/dist/esm/hooks/use-on-insert-column.d.ts +40 -0
  1157. package/dist/esm/hooks/use-on-insert-column.d.ts.map +1 -0
  1158. package/dist/esm/hooks/use-on-insert-column.js +91 -0
  1159. package/dist/esm/hooks/use-on-insert-date-time.d.ts +4 -0
  1160. package/dist/esm/hooks/use-on-insert-date-time.d.ts.map +1 -0
  1161. package/dist/esm/hooks/use-on-insert-date-time.js +11 -0
  1162. package/dist/esm/hooks/use-on-insert-date.d.ts +4 -0
  1163. package/dist/esm/hooks/use-on-insert-date.d.ts.map +1 -0
  1164. package/dist/esm/hooks/use-on-insert-date.js +12 -0
  1165. package/dist/esm/hooks/use-on-insert-image.d.ts +24 -0
  1166. package/dist/esm/hooks/use-on-insert-image.d.ts.map +1 -0
  1167. package/dist/esm/hooks/use-on-insert-image.js +131 -0
  1168. package/dist/esm/hooks/use-on-insert-link.d.ts +25 -0
  1169. package/dist/esm/hooks/use-on-insert-link.d.ts.map +1 -0
  1170. package/dist/esm/hooks/use-on-insert-link.js +193 -0
  1171. package/dist/esm/hooks/use-on-insert-note.d.ts +4 -0
  1172. package/dist/esm/hooks/use-on-insert-note.d.ts.map +1 -0
  1173. package/dist/esm/hooks/use-on-insert-note.js +14 -0
  1174. package/dist/esm/hooks/use-on-insert-row.d.ts +38 -0
  1175. package/dist/esm/hooks/use-on-insert-row.d.ts.map +1 -0
  1176. package/dist/esm/hooks/use-on-insert-row.js +104 -0
  1177. package/dist/esm/hooks/use-on-insert-table-row.d.ts +31 -0
  1178. package/dist/esm/hooks/use-on-insert-table-row.d.ts.map +1 -0
  1179. package/dist/esm/hooks/use-on-insert-table-row.js +59 -0
  1180. package/dist/esm/hooks/use-on-insert-time.d.ts +4 -0
  1181. package/dist/esm/hooks/use-on-insert-time.d.ts.map +1 -0
  1182. package/dist/esm/hooks/use-on-insert-time.js +11 -0
  1183. package/dist/esm/hooks/use-on-locale-change.d.ts +35 -0
  1184. package/dist/esm/hooks/use-on-locale-change.d.ts.map +1 -0
  1185. package/dist/esm/hooks/use-on-locale-change.js +314 -0
  1186. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts +28 -0
  1187. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -0
  1188. package/dist/esm/hooks/use-on-merge-unmerge-cells.js +310 -0
  1189. package/dist/esm/hooks/use-on-move-columns.d.ts +28 -0
  1190. package/dist/esm/hooks/use-on-move-columns.d.ts.map +1 -0
  1191. package/dist/esm/hooks/use-on-move-columns.js +295 -0
  1192. package/dist/esm/hooks/use-on-move-rows.d.ts +30 -0
  1193. package/dist/esm/hooks/use-on-move-rows.d.ts.map +1 -0
  1194. package/dist/esm/hooks/use-on-move-rows.js +264 -0
  1195. package/dist/esm/hooks/use-on-move-selection.d.ts +35 -0
  1196. package/dist/esm/hooks/use-on-move-selection.d.ts.map +1 -0
  1197. package/dist/esm/hooks/use-on-move-selection.js +383 -0
  1198. package/dist/esm/hooks/use-on-move-sheet.d.ts +12 -0
  1199. package/dist/esm/hooks/use-on-move-sheet.d.ts.map +1 -0
  1200. package/dist/esm/hooks/use-on-move-sheet.js +65 -0
  1201. package/dist/esm/hooks/use-on-move-table-columns.d.ts +21 -0
  1202. package/dist/esm/hooks/use-on-move-table-columns.d.ts.map +1 -0
  1203. package/dist/esm/hooks/use-on-move-table-columns.js +235 -0
  1204. package/dist/esm/hooks/use-on-paste.d.ts +79 -0
  1205. package/dist/esm/hooks/use-on-paste.d.ts.map +1 -0
  1206. package/dist/esm/hooks/use-on-paste.js +868 -0
  1207. package/dist/esm/hooks/use-on-protect-range.d.ts +20 -0
  1208. package/dist/esm/hooks/use-on-protect-range.d.ts.map +1 -0
  1209. package/dist/esm/hooks/use-on-protect-range.js +67 -0
  1210. package/dist/esm/hooks/use-on-protect-sheet.d.ts +19 -0
  1211. package/dist/esm/hooks/use-on-protect-sheet.d.ts.map +1 -0
  1212. package/dist/esm/hooks/use-on-protect-sheet.js +61 -0
  1213. package/dist/esm/hooks/use-on-remove-duplicates.d.ts +21 -0
  1214. package/dist/esm/hooks/use-on-remove-duplicates.d.ts.map +1 -0
  1215. package/dist/esm/hooks/use-on-remove-duplicates.js +39 -0
  1216. package/dist/esm/hooks/use-on-rename-sheet.d.ts +21 -0
  1217. package/dist/esm/hooks/use-on-rename-sheet.d.ts.map +1 -0
  1218. package/dist/esm/hooks/use-on-rename-sheet.js +78 -0
  1219. package/dist/esm/hooks/use-on-request-calculate-wrapper.d.ts +30 -0
  1220. package/dist/esm/hooks/use-on-request-calculate-wrapper.d.ts.map +1 -0
  1221. package/dist/esm/hooks/use-on-request-calculate-wrapper.js +88 -0
  1222. package/dist/esm/hooks/use-on-request-conditional-format.d.ts +2 -0
  1223. package/dist/esm/hooks/use-on-request-conditional-format.d.ts.map +1 -0
  1224. package/dist/esm/hooks/use-on-request-conditional-format.js +8 -0
  1225. package/dist/esm/hooks/use-on-request-data-validation.d.ts +7 -0
  1226. package/dist/esm/hooks/use-on-request-data-validation.d.ts.map +1 -0
  1227. package/dist/esm/hooks/use-on-request-data-validation.js +21 -0
  1228. package/dist/esm/hooks/use-on-request-define-named-range.d.ts +8 -0
  1229. package/dist/esm/hooks/use-on-request-define-named-range.d.ts.map +1 -0
  1230. package/dist/esm/hooks/use-on-request-define-named-range.js +25 -0
  1231. package/dist/esm/hooks/use-on-request-delete-sheet.d.ts +2 -0
  1232. package/dist/esm/hooks/use-on-request-delete-sheet.d.ts.map +1 -0
  1233. package/dist/esm/hooks/use-on-request-delete-sheet.js +11 -0
  1234. package/dist/esm/hooks/use-on-request-edit-table.d.ts +3 -0
  1235. package/dist/esm/hooks/use-on-request-edit-table.d.ts.map +1 -0
  1236. package/dist/esm/hooks/use-on-request-edit-table.js +11 -0
  1237. package/dist/esm/hooks/use-on-request-format-cells.d.ts +2 -0
  1238. package/dist/esm/hooks/use-on-request-format-cells.d.ts.map +1 -0
  1239. package/dist/esm/hooks/use-on-request-format-cells.js +8 -0
  1240. package/dist/esm/hooks/use-on-request-insert-image.d.ts +3 -0
  1241. package/dist/esm/hooks/use-on-request-insert-image.d.ts.map +1 -0
  1242. package/dist/esm/hooks/use-on-request-insert-image.js +12 -0
  1243. package/dist/esm/hooks/use-on-request-insert-link.d.ts +5 -0
  1244. package/dist/esm/hooks/use-on-request-insert-link.d.ts.map +1 -0
  1245. package/dist/esm/hooks/use-on-request-insert-link.js +9 -0
  1246. package/dist/esm/hooks/use-on-request-resize.d.ts +3 -0
  1247. package/dist/esm/hooks/use-on-request-resize.d.ts.map +1 -0
  1248. package/dist/esm/hooks/use-on-request-resize.js +13 -0
  1249. package/dist/esm/hooks/use-on-request-update-named-range.d.ts +3 -0
  1250. package/dist/esm/hooks/use-on-request-update-named-range.d.ts.map +1 -0
  1251. package/dist/esm/hooks/use-on-request-update-named-range.js +11 -0
  1252. package/dist/esm/hooks/use-on-resize-table.d.ts +33 -0
  1253. package/dist/esm/hooks/use-on-resize-table.d.ts.map +1 -0
  1254. package/dist/esm/hooks/use-on-resize-table.js +212 -0
  1255. package/dist/esm/hooks/use-on-resize.d.ts +19 -0
  1256. package/dist/esm/hooks/use-on-resize.d.ts.map +1 -0
  1257. package/dist/esm/hooks/use-on-resize.js +54 -0
  1258. package/dist/esm/hooks/use-on-set-outline-depth.d.ts +17 -0
  1259. package/dist/esm/hooks/use-on-set-outline-depth.d.ts.map +1 -0
  1260. package/dist/esm/hooks/use-on-set-outline-depth.js +93 -0
  1261. package/dist/esm/hooks/use-on-show-column.d.ts +16 -0
  1262. package/dist/esm/hooks/use-on-show-column.d.ts.map +1 -0
  1263. package/dist/esm/hooks/use-on-show-column.js +82 -0
  1264. package/dist/esm/hooks/use-on-show-row.d.ts +22 -0
  1265. package/dist/esm/hooks/use-on-show-row.d.ts.map +1 -0
  1266. package/dist/esm/hooks/use-on-show-row.js +85 -0
  1267. package/dist/esm/hooks/use-on-sort-column.d.ts +53 -0
  1268. package/dist/esm/hooks/use-on-sort-column.d.ts.map +1 -0
  1269. package/dist/esm/hooks/use-on-sort-column.js +268 -0
  1270. package/dist/esm/hooks/use-on-sort-range.d.ts +42 -0
  1271. package/dist/esm/hooks/use-on-sort-range.d.ts.map +1 -0
  1272. package/dist/esm/hooks/use-on-sort-range.js +247 -0
  1273. package/dist/esm/hooks/use-on-sort-table.d.ts +59 -0
  1274. package/dist/esm/hooks/use-on-sort-table.d.ts.map +1 -0
  1275. package/dist/esm/hooks/use-on-sort-table.js +332 -0
  1276. package/dist/esm/hooks/use-on-table.d.ts +49 -0
  1277. package/dist/esm/hooks/use-on-table.d.ts.map +1 -0
  1278. package/dist/esm/hooks/use-on-table.js +384 -0
  1279. package/dist/esm/hooks/use-on-trace-dependents-precedents.d.ts +14 -0
  1280. package/dist/esm/hooks/use-on-trace-dependents-precedents.d.ts.map +1 -0
  1281. package/dist/esm/hooks/use-on-trace-dependents-precedents.js +144 -0
  1282. package/dist/esm/hooks/use-on-ungroup-columns.d.ts +11 -0
  1283. package/dist/esm/hooks/use-on-ungroup-columns.d.ts.map +1 -0
  1284. package/dist/esm/hooks/use-on-ungroup-columns.js +43 -0
  1285. package/dist/esm/hooks/use-on-ungroup-rows.d.ts +17 -0
  1286. package/dist/esm/hooks/use-on-ungroup-rows.d.ts.map +1 -0
  1287. package/dist/esm/hooks/use-on-ungroup-rows.js +49 -0
  1288. package/dist/esm/hooks/use-on-update-named-range.d.ts +19 -0
  1289. package/dist/esm/hooks/use-on-update-named-range.d.ts.map +1 -0
  1290. package/dist/esm/hooks/use-on-update-named-range.js +108 -0
  1291. package/dist/esm/hooks/use-on-update-note.d.ts +13 -0
  1292. package/dist/esm/hooks/use-on-update-note.d.ts.map +1 -0
  1293. package/dist/esm/hooks/use-on-update-note.js +20 -0
  1294. package/dist/esm/hooks/use-on-update-sheet.d.ts +10 -0
  1295. package/dist/esm/hooks/use-on-update-sheet.d.ts.map +1 -0
  1296. package/dist/esm/hooks/use-on-update-sheet.js +11 -0
  1297. package/dist/esm/hooks/use-paint-format.d.ts +17 -0
  1298. package/dist/esm/hooks/use-paint-format.d.ts.map +1 -0
  1299. package/dist/esm/hooks/use-paint-format.js +110 -0
  1300. package/dist/esm/hooks/use-search.d.ts +81 -0
  1301. package/dist/esm/hooks/use-search.d.ts.map +1 -0
  1302. package/dist/esm/hooks/use-search.js +251 -0
  1303. package/dist/esm/hooks/use-select-next-prev-sheet.d.ts +11 -0
  1304. package/dist/esm/hooks/use-select-next-prev-sheet.d.ts.map +1 -0
  1305. package/dist/esm/hooks/use-select-next-prev-sheet.js +21 -0
  1306. package/dist/esm/hooks/use-sheet-observer.d.ts +20 -0
  1307. package/dist/esm/hooks/use-sheet-observer.d.ts.map +1 -0
  1308. package/dist/esm/hooks/use-sheet-observer.js +120 -0
  1309. package/dist/esm/hooks/use-sheet-properties.d.ts +105 -0
  1310. package/dist/esm/hooks/use-sheet-properties.d.ts.map +1 -0
  1311. package/dist/esm/hooks/use-sheet-properties.js +895 -0
  1312. package/dist/esm/hooks/use-sheet-state.d.ts +17 -0
  1313. package/dist/esm/hooks/use-sheet-state.d.ts.map +1 -0
  1314. package/dist/esm/hooks/use-sheet-state.js +102 -0
  1315. package/dist/esm/hooks/use-sheetdata-subscriber.d.ts +10 -0
  1316. package/dist/esm/hooks/use-sheetdata-subscriber.d.ts.map +1 -0
  1317. package/dist/esm/hooks/use-sheetdata-subscriber.js +14 -0
  1318. package/dist/esm/hooks/use-slicers.d.ts +19 -0
  1319. package/dist/esm/hooks/use-slicers.d.ts.map +1 -0
  1320. package/dist/esm/hooks/use-slicers.js +83 -0
  1321. package/dist/esm/hooks/use-split-text-to-columns.d.ts +19 -0
  1322. package/dist/esm/hooks/use-split-text-to-columns.d.ts.map +1 -0
  1323. package/dist/esm/hooks/use-split-text-to-columns.js +30 -0
  1324. package/dist/esm/hooks/use-spreadsheet-state.d.ts +627 -0
  1325. package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -0
  1326. package/dist/esm/hooks/use-spreadsheet-state.js +2010 -0
  1327. package/dist/esm/hooks/use-ss-registry.d.ts +6 -0
  1328. package/dist/esm/hooks/use-ss-registry.d.ts.map +1 -0
  1329. package/dist/esm/hooks/use-ss-registry.js +17 -0
  1330. package/dist/esm/hooks/use-structured-reference.d.ts +8 -0
  1331. package/dist/esm/hooks/use-structured-reference.d.ts.map +1 -0
  1332. package/dist/esm/hooks/use-structured-reference.js +129 -0
  1333. package/dist/esm/hooks/use-undo-redo-actions.d.ts +40 -0
  1334. package/dist/esm/hooks/use-undo-redo-actions.d.ts.map +1 -0
  1335. package/dist/esm/hooks/use-undo-redo-actions.js +166 -0
  1336. package/dist/esm/hooks/use-undo-redo.d.ts +69 -0
  1337. package/dist/esm/hooks/use-undo-redo.d.ts.map +1 -0
  1338. package/dist/esm/hooks/use-undo-redo.js +113 -0
  1339. package/dist/esm/hooks/utils/frozen-sort.d.ts +9 -0
  1340. package/dist/esm/hooks/utils/frozen-sort.d.ts.map +1 -0
  1341. package/dist/esm/hooks/utils/frozen-sort.js +25 -0
  1342. package/dist/esm/hooks/utils/sort-rows.d.ts +32 -0
  1343. package/dist/esm/hooks/utils/sort-rows.d.ts.map +1 -0
  1344. package/dist/esm/hooks/utils/sort-rows.js +102 -0
  1345. package/dist/esm/index.d.ts +38 -0
  1346. package/dist/esm/index.d.ts.map +1 -0
  1347. package/dist/esm/index.js +39 -0
  1348. package/dist/esm/interface/apply-fill.d.ts +6 -0
  1349. package/dist/esm/interface/apply-fill.d.ts.map +1 -0
  1350. package/dist/esm/interface/apply-fill.js +195 -0
  1351. package/dist/esm/interface/auto-resize.d.ts +4 -0
  1352. package/dist/esm/interface/auto-resize.d.ts.map +1 -0
  1353. package/dist/esm/interface/auto-resize.js +50 -0
  1354. package/dist/esm/interface/calculation-interface.d.ts +67 -0
  1355. package/dist/esm/interface/calculation-interface.d.ts.map +1 -0
  1356. package/dist/esm/interface/calculation-interface.js +339 -0
  1357. package/dist/esm/interface/change-batch-stream.d.ts +25 -0
  1358. package/dist/esm/interface/change-batch-stream.d.ts.map +1 -0
  1359. package/dist/esm/interface/change-batch-stream.js +294 -0
  1360. package/dist/esm/interface/change-batch.d.ts +39 -0
  1361. package/dist/esm/interface/change-batch.d.ts.map +1 -0
  1362. package/dist/esm/interface/change-batch.js +282 -0
  1363. package/dist/esm/interface/change-border.d.ts +5 -0
  1364. package/dist/esm/interface/change-border.d.ts.map +1 -0
  1365. package/dist/esm/interface/change-border.js +116 -0
  1366. package/dist/esm/interface/change-calculated-column.d.ts +5 -0
  1367. package/dist/esm/interface/change-calculated-column.d.ts.map +1 -0
  1368. package/dist/esm/interface/change-calculated-column.js +120 -0
  1369. package/dist/esm/interface/change-decimals.d.ts +7 -0
  1370. package/dist/esm/interface/change-decimals.d.ts.map +1 -0
  1371. package/dist/esm/interface/change-decimals.js +58 -0
  1372. package/dist/esm/interface/change-formatting.d.ts +4 -0
  1373. package/dist/esm/interface/change-formatting.d.ts.map +1 -0
  1374. package/dist/esm/interface/change-formatting.js +209 -0
  1375. package/dist/esm/interface/change-sheet-tabcolor.d.ts +4 -0
  1376. package/dist/esm/interface/change-sheet-tabcolor.d.ts.map +1 -0
  1377. package/dist/esm/interface/change-sheet-tabcolor.js +19 -0
  1378. package/dist/esm/interface/change-table-column.d.ts +49 -0
  1379. package/dist/esm/interface/change-table-column.d.ts.map +1 -0
  1380. package/dist/esm/interface/change-table-column.js +247 -0
  1381. package/dist/esm/interface/change-theme.d.ts +4 -0
  1382. package/dist/esm/interface/change-theme.d.ts.map +1 -0
  1383. package/dist/esm/interface/change-theme.js +21 -0
  1384. package/dist/esm/interface/chart-extensions.d.ts +32 -0
  1385. package/dist/esm/interface/chart-extensions.d.ts.map +1 -0
  1386. package/dist/esm/interface/chart-extensions.js +71 -0
  1387. package/dist/esm/interface/citations.d.ts +33 -0
  1388. package/dist/esm/interface/citations.d.ts.map +1 -0
  1389. package/dist/esm/interface/citations.js +123 -0
  1390. package/dist/esm/interface/clear-formatting.d.ts +5 -0
  1391. package/dist/esm/interface/clear-formatting.d.ts.map +1 -0
  1392. package/dist/esm/interface/clear-formatting.js +48 -0
  1393. package/dist/esm/interface/conditional-formatting-rules.d.ts +7 -0
  1394. package/dist/esm/interface/conditional-formatting-rules.d.ts.map +1 -0
  1395. package/dist/esm/interface/conditional-formatting-rules.js +123 -0
  1396. package/dist/esm/interface/create-table.d.ts +5 -0
  1397. package/dist/esm/interface/create-table.d.ts.map +1 -0
  1398. package/dist/esm/interface/create-table.js +105 -0
  1399. package/dist/esm/interface/data-validation-rules.d.ts +25 -0
  1400. package/dist/esm/interface/data-validation-rules.d.ts.map +1 -0
  1401. package/dist/esm/interface/data-validation-rules.js +310 -0
  1402. package/dist/esm/interface/data-validation-utils.d.ts +12 -0
  1403. package/dist/esm/interface/data-validation-utils.d.ts.map +1 -0
  1404. package/dist/esm/interface/data-validation-utils.js +79 -0
  1405. package/dist/esm/interface/delete-cells-shift-left.d.ts +5 -0
  1406. package/dist/esm/interface/delete-cells-shift-left.d.ts.map +1 -0
  1407. package/dist/esm/interface/delete-cells-shift-left.js +146 -0
  1408. package/dist/esm/interface/delete-cells-shift-up.d.ts +5 -0
  1409. package/dist/esm/interface/delete-cells-shift-up.d.ts.map +1 -0
  1410. package/dist/esm/interface/delete-cells-shift-up.js +138 -0
  1411. package/dist/esm/interface/delete-cells.d.ts +6 -0
  1412. package/dist/esm/interface/delete-cells.d.ts.map +1 -0
  1413. package/dist/esm/interface/delete-cells.js +184 -0
  1414. package/dist/esm/interface/delete-column.d.ts +4 -0
  1415. package/dist/esm/interface/delete-column.d.ts.map +1 -0
  1416. package/dist/esm/interface/delete-column.js +254 -0
  1417. package/dist/esm/interface/delete-row.d.ts +4 -0
  1418. package/dist/esm/interface/delete-row.d.ts.map +1 -0
  1419. package/dist/esm/interface/delete-row.js +226 -0
  1420. package/dist/esm/interface/delete-sheet.d.ts +4 -0
  1421. package/dist/esm/interface/delete-sheet.d.ts.map +1 -0
  1422. package/dist/esm/interface/delete-sheet.js +78 -0
  1423. package/dist/esm/interface/delete-table-column.d.ts +4 -0
  1424. package/dist/esm/interface/delete-table-column.d.ts.map +1 -0
  1425. package/dist/esm/interface/delete-table-column.js +274 -0
  1426. package/dist/esm/interface/delete-table-row.d.ts +4 -0
  1427. package/dist/esm/interface/delete-table-row.d.ts.map +1 -0
  1428. package/dist/esm/interface/delete-table-row.js +278 -0
  1429. package/dist/esm/interface/duplicate-sheet.d.ts +4 -0
  1430. package/dist/esm/interface/duplicate-sheet.d.ts.map +1 -0
  1431. package/dist/esm/interface/duplicate-sheet.js +206 -0
  1432. package/dist/esm/interface/embeds.d.ts +9 -0
  1433. package/dist/esm/interface/embeds.d.ts.map +1 -0
  1434. package/dist/esm/interface/embeds.js +115 -0
  1435. package/dist/esm/interface/freeze.d.ts +5 -0
  1436. package/dist/esm/interface/freeze.d.ts.map +1 -0
  1437. package/dist/esm/interface/freeze.js +109 -0
  1438. package/dist/esm/interface/helpers.d.ts +6 -0
  1439. package/dist/esm/interface/helpers.d.ts.map +1 -0
  1440. package/dist/esm/interface/helpers.js +32 -0
  1441. package/dist/esm/interface/hide-column.d.ts +4 -0
  1442. package/dist/esm/interface/hide-column.d.ts.map +1 -0
  1443. package/dist/esm/interface/hide-column.js +59 -0
  1444. package/dist/esm/interface/hide-row.d.ts +4 -0
  1445. package/dist/esm/interface/hide-row.d.ts.map +1 -0
  1446. package/dist/esm/interface/hide-row.js +54 -0
  1447. package/dist/esm/interface/indent.d.ts +7 -0
  1448. package/dist/esm/interface/indent.d.ts.map +1 -0
  1449. package/dist/esm/interface/indent.js +73 -0
  1450. package/dist/esm/interface/insert-cells-shift-down.d.ts +5 -0
  1451. package/dist/esm/interface/insert-cells-shift-down.d.ts.map +1 -0
  1452. package/dist/esm/interface/insert-cells-shift-down.js +143 -0
  1453. package/dist/esm/interface/insert-cells-shift-right.d.ts +5 -0
  1454. package/dist/esm/interface/insert-cells-shift-right.d.ts.map +1 -0
  1455. package/dist/esm/interface/insert-cells-shift-right.js +134 -0
  1456. package/dist/esm/interface/insert-column.d.ts +7 -0
  1457. package/dist/esm/interface/insert-column.d.ts.map +1 -0
  1458. package/dist/esm/interface/insert-column.js +481 -0
  1459. package/dist/esm/interface/insert-note.d.ts +5 -0
  1460. package/dist/esm/interface/insert-note.d.ts.map +1 -0
  1461. package/dist/esm/interface/insert-note.js +23 -0
  1462. package/dist/esm/interface/insert-row.d.ts +4 -0
  1463. package/dist/esm/interface/insert-row.d.ts.map +1 -0
  1464. package/dist/esm/interface/insert-row.js +158 -0
  1465. package/dist/esm/interface/insert-table-row.d.ts +4 -0
  1466. package/dist/esm/interface/insert-table-row.d.ts.map +1 -0
  1467. package/dist/esm/interface/insert-table-row.js +314 -0
  1468. package/dist/esm/interface/interface-cli.d.ts +3 -0
  1469. package/dist/esm/interface/interface-cli.d.ts.map +1 -0
  1470. package/dist/esm/interface/interface-cli.js +62 -0
  1471. package/dist/esm/interface/named-range-operations.d.ts +19 -0
  1472. package/dist/esm/interface/named-range-operations.d.ts.map +1 -0
  1473. package/dist/esm/interface/named-range-operations.js +71 -0
  1474. package/dist/esm/interface/new-sheet.d.ts +4 -0
  1475. package/dist/esm/interface/new-sheet.d.ts.map +1 -0
  1476. package/dist/esm/interface/new-sheet.js +102 -0
  1477. package/dist/esm/interface/pivot-extensions.d.ts +27 -0
  1478. package/dist/esm/interface/pivot-extensions.d.ts.map +1 -0
  1479. package/dist/esm/interface/pivot-extensions.js +60 -0
  1480. package/dist/esm/interface/remove-duplicates.d.ts +11 -0
  1481. package/dist/esm/interface/remove-duplicates.d.ts.map +1 -0
  1482. package/dist/esm/interface/remove-duplicates.js +107 -0
  1483. package/dist/esm/interface/remove-table.d.ts +4 -0
  1484. package/dist/esm/interface/remove-table.d.ts.map +1 -0
  1485. package/dist/esm/interface/remove-table.js +50 -0
  1486. package/dist/esm/interface/resize-utils.d.ts +18 -0
  1487. package/dist/esm/interface/resize-utils.d.ts.map +1 -0
  1488. package/dist/esm/interface/resize-utils.js +34 -0
  1489. package/dist/esm/interface/resize.d.ts +5 -0
  1490. package/dist/esm/interface/resize.d.ts.map +1 -0
  1491. package/dist/esm/interface/resize.js +43 -0
  1492. package/dist/esm/interface/slicers.d.ts +9 -0
  1493. package/dist/esm/interface/slicers.d.ts.map +1 -0
  1494. package/dist/esm/interface/slicers.js +107 -0
  1495. package/dist/esm/interface/split-text.d.ts +5 -0
  1496. package/dist/esm/interface/split-text.d.ts.map +1 -0
  1497. package/dist/esm/interface/split-text.js +94 -0
  1498. package/dist/esm/interface/spreadsheet-interface.d.ts +642 -0
  1499. package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -0
  1500. package/dist/esm/interface/spreadsheet-interface.js +2442 -0
  1501. package/dist/esm/interface/table-totalrow.d.ts +20 -0
  1502. package/dist/esm/interface/table-totalrow.d.ts.map +1 -0
  1503. package/dist/esm/interface/table-totalrow.js +155 -0
  1504. package/dist/esm/interface/table-utils.d.ts +21 -0
  1505. package/dist/esm/interface/table-utils.d.ts.map +1 -0
  1506. package/dist/esm/interface/table-utils.js +38 -0
  1507. package/dist/esm/interface/update-sheet.d.ts +16 -0
  1508. package/dist/esm/interface/update-sheet.d.ts.map +1 -0
  1509. package/dist/esm/interface/update-sheet.js +64 -0
  1510. package/dist/esm/interface/update-table.d.ts +4 -0
  1511. package/dist/esm/interface/update-table.d.ts.map +1 -0
  1512. package/dist/esm/interface/update-table.js +111 -0
  1513. package/dist/esm/server-utils.d.ts +8 -0
  1514. package/dist/esm/server-utils.d.ts.map +1 -0
  1515. package/dist/esm/server-utils.js +3 -0
  1516. package/dist/esm/server.browser.d.ts +9 -0
  1517. package/dist/esm/server.browser.d.ts.map +1 -0
  1518. package/dist/esm/server.browser.js +5 -0
  1519. package/dist/esm/server.d.ts +9 -0
  1520. package/dist/esm/server.d.ts.map +1 -0
  1521. package/dist/esm/server.js +5 -0
  1522. package/dist/esm/shared-string-registry.d.ts +35 -0
  1523. package/dist/esm/shared-string-registry.d.ts.map +1 -0
  1524. package/dist/esm/shared-string-registry.js +248 -0
  1525. package/dist/esm/sheet-cell.d.ts +310 -0
  1526. package/dist/esm/sheet-cell.d.ts.map +1 -0
  1527. package/dist/esm/sheet-cell.js +1829 -0
  1528. package/dist/esm/test-setup.d.ts +2 -0
  1529. package/dist/esm/test-setup.d.ts.map +1 -0
  1530. package/dist/esm/test-setup.js +3 -0
  1531. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  1532. package/dist/esm/types.d.ts +44 -0
  1533. package/dist/esm/types.d.ts.map +1 -0
  1534. package/dist/esm/types.js +33 -0
  1535. package/dist/esm/validation-schema/table.schema.d.ts +6 -0
  1536. package/dist/esm/validation-schema/table.schema.d.ts.map +1 -0
  1537. package/dist/esm/validation-schema/table.schema.js +4 -0
  1538. package/dist/esm/vitest.config.d.ts +3 -0
  1539. package/dist/esm/vitest.config.d.ts.map +1 -0
  1540. package/dist/esm/vitest.config.js +22 -0
  1541. package/package.json +89 -0
@@ -0,0 +1,2735 @@
1
+ import { __awaiter, __generator, __read, __spreadArray, __values } from "tslib";
2
+ import { Calculator, cellCoordsToCellCoordinate, DataSource, } from "@rowsncolumns/calculator";
3
+ import { isCellCoordinateWithinCellRange, StaticNode } from "@rowsncolumns/dag";
4
+ import { CellRangeNode, isCellCoordinate, isCellNode, isCellRangeNode, isStaticNode, isStaticReference, makeKey, } from "@rowsncolumns/dag";
5
+ import { CellNode } from "@rowsncolumns/dag";
6
+ import { FormulaError } from "@rowsncolumns/fast-formula-parser";
7
+ import { isAreasEqual } from "@rowsncolumns/grid";
8
+ import { ERROR_COLOR, useCallbackRef } from "@rowsncolumns/spreadsheet";
9
+ import { useIsomorphicLayoutEffect } from "@rowsncolumns/ui";
10
+ import { alpha2number, debug, error, isAFormula, isBareFormulaExpression, isNil, scheduleAfterPaint, } from "@rowsncolumns/utils";
11
+ import { useCallback, useEffect, useMemo, useRef } from "react";
12
+ import { getFunctionNamesFromFormula } from "../api/immer-utils";
13
+ import { isEqualPosition } from "../api/range";
14
+ import { AWAITING_CALCULATION, isCellRange } from "../helpers";
15
+ import { computeDelta } from "../helpers/iterative-calculation";
16
+ import { useCalculationProcessArray } from "./use-calculation-process-array";
17
+ import { useDeferredCalculationFlush } from "./use-deferred-calculation-flush";
18
+ import { useIdleScheduler } from "./use-idle-scheduler";
19
+ var rangesOverlap = function (left, right) {
20
+ if (left.sheet !== right.sheet) {
21
+ return false;
22
+ }
23
+ return (left.from.row <= right.to.row &&
24
+ left.to.row >= right.from.row &&
25
+ left.from.col <= right.to.col &&
26
+ left.to.col >= right.from.col);
27
+ };
28
+ var isErrorResult = function (value) {
29
+ if (value instanceof FormulaError) {
30
+ return true;
31
+ }
32
+ return (!!value &&
33
+ typeof value === "object" &&
34
+ (value.type === "Error" ||
35
+ value.type === "Invalid"));
36
+ };
37
+ var isDerivedCellPosition = function (position) {
38
+ return position.conditionalFormatId !== undefined ||
39
+ position.dataValidationId !== undefined;
40
+ };
41
+ var findCircularKeys = function (nodes) {
42
+ var e_1, _a, e_2, _b, e_3, _c, e_4, _d, e_5, _e, e_6, _f;
43
+ var _g;
44
+ if (!nodes.length) {
45
+ return new Set();
46
+ }
47
+ var nodeMap = new Map();
48
+ var nodesBySheet = new Map();
49
+ try {
50
+ for (var nodes_1 = __values(nodes), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) {
51
+ var node = nodes_1_1.value;
52
+ nodeMap.set(node.key, node);
53
+ var bucket = nodesBySheet.get(node.position.sheetId);
54
+ if (bucket) {
55
+ bucket.push(node);
56
+ }
57
+ else {
58
+ nodesBySheet.set(node.position.sheetId, [node]);
59
+ }
60
+ }
61
+ }
62
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
63
+ finally {
64
+ try {
65
+ if (nodes_1_1 && !nodes_1_1.done && (_a = nodes_1.return)) _a.call(nodes_1);
66
+ }
67
+ finally { if (e_1) throw e_1.error; }
68
+ }
69
+ var adjacency = new Map();
70
+ try {
71
+ for (var nodes_2 = __values(nodes), nodes_2_1 = nodes_2.next(); !nodes_2_1.done; nodes_2_1 = nodes_2.next()) {
72
+ var node = nodes_2_1.value;
73
+ var edges = new Set();
74
+ try {
75
+ for (var _h = (e_3 = void 0, __values(node.inputKeys)), _j = _h.next(); !_j.done; _j = _h.next()) {
76
+ var input = _j.value;
77
+ if (isCellNode(input)) {
78
+ var cellInput = input;
79
+ if (nodeMap.has(cellInput.key)) {
80
+ edges.add(cellInput.key);
81
+ }
82
+ continue;
83
+ }
84
+ if (isCellRangeNode(input)) {
85
+ var rangeInput = input;
86
+ var candidates = nodesBySheet.get(rangeInput.position.sheetId);
87
+ if (!candidates) {
88
+ continue;
89
+ }
90
+ try {
91
+ for (var candidates_1 = (e_4 = void 0, __values(candidates)), candidates_1_1 = candidates_1.next(); !candidates_1_1.done; candidates_1_1 = candidates_1.next()) {
92
+ var candidate = candidates_1_1.value;
93
+ if (isCellNode(candidate) &&
94
+ !isDerivedCellPosition(candidate.position) &&
95
+ isCellCoordinateWithinCellRange(candidate.position, rangeInput)) {
96
+ edges.add(candidate.key);
97
+ }
98
+ }
99
+ }
100
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
101
+ finally {
102
+ try {
103
+ if (candidates_1_1 && !candidates_1_1.done && (_d = candidates_1.return)) _d.call(candidates_1);
104
+ }
105
+ finally { if (e_4) throw e_4.error; }
106
+ }
107
+ }
108
+ }
109
+ }
110
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
111
+ finally {
112
+ try {
113
+ if (_j && !_j.done && (_c = _h.return)) _c.call(_h);
114
+ }
115
+ finally { if (e_3) throw e_3.error; }
116
+ }
117
+ adjacency.set(node.key, edges);
118
+ }
119
+ }
120
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
121
+ finally {
122
+ try {
123
+ if (nodes_2_1 && !nodes_2_1.done && (_b = nodes_2.return)) _b.call(nodes_2);
124
+ }
125
+ finally { if (e_2) throw e_2.error; }
126
+ }
127
+ var indexMap = new Map();
128
+ var lowLink = new Map();
129
+ var stack = [];
130
+ var onStack = new Set();
131
+ var index = 0;
132
+ var components = [];
133
+ var strongConnect = function (key) {
134
+ var e_7, _a;
135
+ var _b;
136
+ indexMap.set(key, index);
137
+ lowLink.set(key, index);
138
+ index++;
139
+ stack.push(key);
140
+ onStack.add(key);
141
+ try {
142
+ for (var _c = __values((_b = adjacency.get(key)) !== null && _b !== void 0 ? _b : []), _d = _c.next(); !_d.done; _d = _c.next()) {
143
+ var neighbor = _d.value;
144
+ if (!indexMap.has(neighbor)) {
145
+ strongConnect(neighbor);
146
+ lowLink.set(key, Math.min(lowLink.get(key), lowLink.get(neighbor)));
147
+ }
148
+ else if (onStack.has(neighbor)) {
149
+ lowLink.set(key, Math.min(lowLink.get(key), indexMap.get(neighbor)));
150
+ }
151
+ }
152
+ }
153
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
154
+ finally {
155
+ try {
156
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
157
+ }
158
+ finally { if (e_7) throw e_7.error; }
159
+ }
160
+ if (lowLink.get(key) === indexMap.get(key)) {
161
+ var component = [];
162
+ var candidate = void 0;
163
+ do {
164
+ candidate = stack.pop();
165
+ onStack.delete(candidate);
166
+ component.push(candidate);
167
+ } while (candidate !== key);
168
+ components.push(component);
169
+ }
170
+ };
171
+ try {
172
+ for (var _k = __values(nodeMap.keys()), _l = _k.next(); !_l.done; _l = _k.next()) {
173
+ var key = _l.value;
174
+ if (!indexMap.has(key)) {
175
+ strongConnect(key);
176
+ }
177
+ }
178
+ }
179
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
180
+ finally {
181
+ try {
182
+ if (_l && !_l.done && (_e = _k.return)) _e.call(_k);
183
+ }
184
+ finally { if (e_5) throw e_5.error; }
185
+ }
186
+ var circular = new Set();
187
+ try {
188
+ for (var components_1 = __values(components), components_1_1 = components_1.next(); !components_1_1.done; components_1_1 = components_1.next()) {
189
+ var component = components_1_1.value;
190
+ if (!component.length)
191
+ continue;
192
+ if (component.length === 1 &&
193
+ !((_g = adjacency.get(component[0])) === null || _g === void 0 ? void 0 : _g.has(component[0]))) {
194
+ continue;
195
+ }
196
+ component.forEach(function (key) { return circular.add(key); });
197
+ }
198
+ }
199
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
200
+ finally {
201
+ try {
202
+ if (components_1_1 && !components_1_1.done && (_f = components_1.return)) _f.call(components_1);
203
+ }
204
+ finally { if (e_6) throw e_6.error; }
205
+ }
206
+ return circular;
207
+ };
208
+ // List of ephemeral functions
209
+ // Ephemeral functions are always recalculated when
210
+ // a cell changes
211
+ export var EPHEMERAL_FUNCTIONS = new Set([
212
+ "NOW",
213
+ "TODAY",
214
+ "RAND",
215
+ "RANDARRAY",
216
+ "RANDBETWEEN",
217
+ "SHEET",
218
+ "SHEETS",
219
+ "OFFSET",
220
+ "INDIRECT",
221
+ ]);
222
+ var DEFAULT_BATCH_WEIGHT = 600;
223
+ var ARRAY_FORMULA_WEIGHT = 300;
224
+ var LARGE_RANGE_MIN_CELLS = 100;
225
+ var MAX_CHUNK_DURATION_MS = 16;
226
+ var getTimestamp = function () {
227
+ return typeof performance !== "undefined" && typeof performance.now === "function"
228
+ ? performance.now()
229
+ : Date.now();
230
+ };
231
+ var yieldToBrowser = function () {
232
+ return new Promise(function (resolve) {
233
+ scheduleAfterPaint(resolve);
234
+ });
235
+ };
236
+ var parseCellReference = function (reference) {
237
+ var match = /^\$?([A-Z]{1,3})\$?(\d+)$/i.exec(reference.trim());
238
+ if (!match) {
239
+ return null;
240
+ }
241
+ var column = alpha2number(match[1].toUpperCase());
242
+ if (column == null) {
243
+ return null;
244
+ }
245
+ var row = Number.parseInt(match[2], 10);
246
+ if (Number.isNaN(row)) {
247
+ return null;
248
+ }
249
+ return { column: column, row: row };
250
+ };
251
+ var toValidRange = function (range) {
252
+ var startRowIndex = Math.max(1, range.startRowIndex);
253
+ var endRowIndex = Math.max(startRowIndex, range.endRowIndex);
254
+ var startColumnIndex = Math.max(1, range.startColumnIndex);
255
+ var endColumnIndex = Math.max(startColumnIndex, range.endColumnIndex);
256
+ if (endRowIndex < startRowIndex || endColumnIndex < startColumnIndex) {
257
+ return null;
258
+ }
259
+ return {
260
+ sheetId: range.sheetId,
261
+ startRowIndex: startRowIndex,
262
+ endRowIndex: endRowIndex,
263
+ startColumnIndex: startColumnIndex,
264
+ endColumnIndex: endColumnIndex,
265
+ };
266
+ };
267
+ var getInvalidationRangeFromStructureChange = function (change) {
268
+ switch (change.kind) {
269
+ case "delete-row":
270
+ case "insert-row":
271
+ return toValidRange({
272
+ sheetId: change.sheetId,
273
+ startRowIndex: change.index,
274
+ endRowIndex: change.rowCount,
275
+ startColumnIndex: 1,
276
+ endColumnIndex: change.columnCount,
277
+ });
278
+ case "delete-column":
279
+ case "insert-column":
280
+ return toValidRange({
281
+ sheetId: change.sheetId,
282
+ startRowIndex: 1,
283
+ endRowIndex: change.rowCount,
284
+ startColumnIndex: change.index,
285
+ endColumnIndex: change.columnCount,
286
+ });
287
+ case "delete-cells-shift-up":
288
+ case "insert-cells-shift-down":
289
+ return toValidRange({
290
+ sheetId: change.sheetId,
291
+ startRowIndex: change.startRowIndex,
292
+ endRowIndex: change.rowCount,
293
+ startColumnIndex: change.startColumnIndex,
294
+ endColumnIndex: change.endColumnIndex,
295
+ });
296
+ case "delete-cells-shift-left":
297
+ case "insert-cells-shift-right":
298
+ return toValidRange({
299
+ sheetId: change.sheetId,
300
+ startRowIndex: change.startRowIndex,
301
+ endRowIndex: change.endRowIndex,
302
+ startColumnIndex: change.startColumnIndex,
303
+ endColumnIndex: change.columnCount,
304
+ });
305
+ case "delete-table-row":
306
+ case "insert-table-row":
307
+ return toValidRange({
308
+ sheetId: change.sheetId,
309
+ startRowIndex: change.index,
310
+ endRowIndex: change.rowCount,
311
+ startColumnIndex: change.startColumnIndex,
312
+ endColumnIndex: change.endColumnIndex,
313
+ });
314
+ case "delete-table-column":
315
+ case "insert-table-column":
316
+ return toValidRange({
317
+ sheetId: change.sheetId,
318
+ startRowIndex: change.startRowIndex,
319
+ endRowIndex: change.endRowIndex,
320
+ startColumnIndex: change.index,
321
+ endColumnIndex: change.columnCount,
322
+ });
323
+ case "invalidate-range":
324
+ return toValidRange({
325
+ sheetId: change.sheetId,
326
+ startRowIndex: change.startRowIndex,
327
+ endRowIndex: change.endRowIndex,
328
+ startColumnIndex: change.startColumnIndex,
329
+ endColumnIndex: change.endColumnIndex,
330
+ });
331
+ default:
332
+ return null;
333
+ }
334
+ };
335
+ var hasFullColumnReference = function (formula) {
336
+ var pattern = /(^|[^A-Z0-9_])(\$?[A-Z]{1,3})(?!\d)\s*:\s*(\$?[A-Z]{1,3})(?!\d)/gi;
337
+ return pattern.test(formula);
338
+ };
339
+ var hasFullRowReference = function (formula) {
340
+ var pattern = /(^|[^A-Z0-9_])(\$?\d+)\s*:\s*(\$?\d+)(?!\d)/gi;
341
+ return pattern.test(formula);
342
+ };
343
+ var hasLargeExplicitRange = function (formula) {
344
+ var pattern = /(\$?[A-Z]{1,3}\$?\d+)\s*:\s*(\$?[A-Z]{1,3}\$?\d+)/gi;
345
+ var match;
346
+ while ((match = pattern.exec(formula))) {
347
+ var start = parseCellReference(match[1]);
348
+ var end = parseCellReference(match[2]);
349
+ if (!start || !end) {
350
+ continue;
351
+ }
352
+ var rowCount = Math.abs(end.row - start.row) + 1;
353
+ var columnCount = Math.abs(end.column - start.column) + 1;
354
+ if (rowCount * columnCount >= LARGE_RANGE_MIN_CELLS) {
355
+ return true;
356
+ }
357
+ }
358
+ return false;
359
+ };
360
+ var isHeavyArrayFormula = function (formula) {
361
+ if (!formula)
362
+ return false;
363
+ return (hasFullColumnReference(formula) ||
364
+ hasFullRowReference(formula) ||
365
+ hasLargeExplicitRange(formula));
366
+ };
367
+ var cellPromises = new Map();
368
+ export var useCalculation = function (_a) {
369
+ var locale = _a.locale, functions = _a.functions, iterativeCalculation = _a.iterativeCalculation, onDemandFormulaPattern = _a.onDemandFormulaPattern, activeSheetId = _a.activeSheetId, onSuccess = _a.onSuccess, onChangeDependencyGraph = _a.onChangeDependencyGraph, getSheetId = _a.getSheetId, getSheetName = _a.getSheetName, getSheetIndex = _a.getSheetIndex, getSheetCount = _a.getSheetCount, getActiveSheetId = _a.getActiveSheetId, getEffectiveValue = _a.getEffectiveValue, getUserEnteredValue = _a.getUserEnteredValue, getConditionalFormatFormula = _a.getConditionalFormatFormula, getDataValidationFormula = _a.getDataValidationFormula, getSheetProperties = _a.getSheetProperties, getCellData = _a.getCellData, onStructuredReference = _a.onStructuredReference, onNamedRange = _a.onNamedRange, namedRanges = _a.namedRanges, onChangeStaticReference = _a.onChangeStaticReference, onBeginCalculation = _a.onBeginCalculation, getEffectiveStructuredValue = _a.getEffectiveStructuredValue, isRowHidden = _a.isRowHidden, isRowHiddenByFilter = _a.isRowHiddenByFilter, _b = _a.enableLazyCalculation, enableLazyCalculation = _b === void 0 ? true : _b, _c = _a.enabled, enabled = _c === void 0 ? true : _c;
370
+ // Convert string pattern to RegExp if provided
371
+ var onDemandPattern = useMemo(function () {
372
+ if (!onDemandFormulaPattern)
373
+ return undefined;
374
+ return new RegExp(onDemandFormulaPattern, "gi");
375
+ }, [onDemandFormulaPattern]);
376
+ var calculator = useRef(undefined);
377
+ var computationCache = useRef(undefined);
378
+ var iterativeCalculationRef = useRef(iterativeCalculation);
379
+ iterativeCalculationRef.current = iterativeCalculation;
380
+ var operationQueue = useRef([]);
381
+ var graphOperationQueue = useRef([]);
382
+ // Results queue
383
+ var resultsQueueRef = useRef(new Map());
384
+ var resultsFlushPendingRef = useRef(false);
385
+ var isFullRecalcRef = useRef(false);
386
+ var staticNodeArrayRef = useRef([]);
387
+ var initialCalculationArrayRef = useRef([]);
388
+ var getSheetNameStable = useCallbackRef(getSheetName);
389
+ var getSheetIdStable = useCallbackRef(getSheetId);
390
+ var getSheetIndexStable = useCallbackRef(getSheetIndex);
391
+ var getSheetCountStable = useCallbackRef(getSheetCount);
392
+ var getCellDataStable = useCallbackRef(getCellData);
393
+ var onStructuredReferenceStable = useCallbackRef(onStructuredReference);
394
+ var getUserEnteredValueStable = useCallbackRef(getUserEnteredValue);
395
+ var isRowHiddenStable = useCallbackRef(isRowHidden);
396
+ var isRowHiddenByFilterStable = useCallbackRef(isRowHiddenByFilter);
397
+ var initialArrayResults = useRef(new Map());
398
+ var ephemeralCellsRef = useRef(new Map());
399
+ var forceRecalcKeys = useRef(new Set());
400
+ // Keys actually consumed (evaluated with fresh state) during the current
401
+ // calculation cycle. Only these are cleared in `onAfterCalculation`; keys
402
+ // added concurrently (e.g. by a paste RAF while a calc was mid-flight, with
403
+ // stale closures) survive into the next cycle so they aren't dropped.
404
+ var consumedForceRecalcKeys = useRef(new Set());
405
+ // Position for each force key, so unconsumed keys can be re-dirtied + rescheduled.
406
+ var forceRecalcPositions = useRef(new Map());
407
+ // Guards the reschedule loop against an unconsumable key spinning forever.
408
+ var rescheduleCount = useRef(0);
409
+ var rafTimerMapRef = useRef(new Map());
410
+ var deferredOperationsBySheetRef = useRef(new Map());
411
+ var pendingStartResultsRef = useRef(new Map());
412
+ var pendingRecalculatedPositionRef = useRef(undefined);
413
+ var startCalculationRef = useRef(null);
414
+ var scheduleStartCalculationIdle = useIdleScheduler().schedule;
415
+ // Add to ephemeral function if required
416
+ var addToEphemeralFunction = useCallback(function (formulaValue, position) {
417
+ var fns = getFunctionNamesFromFormula(formulaValue);
418
+ if (fns.some(function (fn) { return EPHEMERAL_FUNCTIONS.has(fn.toUpperCase()); })) {
419
+ ephemeralCellsRef.current.set(makeKey(position), position);
420
+ }
421
+ }, []);
422
+ // Remove from ephemeral function if required
423
+ var removeFromEphemeralFunction = useCallback(function (position) {
424
+ ephemeralCellsRef.current.delete(makeKey(position));
425
+ }, []);
426
+ // Get all ephemeral functions
427
+ var getEphemeralCells = useCallback(function () {
428
+ var ephemeralCellsToRecalc = __spreadArray([], __read(ephemeralCellsRef.current.values()), false).map(function (position) {
429
+ return {
430
+ type: "add",
431
+ position: position,
432
+ };
433
+ });
434
+ debug("Recalculation ephemeral cells", ephemeralCellsToRecalc);
435
+ return ephemeralCellsToRecalc;
436
+ }, []);
437
+ // Get computation cache
438
+ // Used for the current calculation frame
439
+ var getComputationCache = useCallback(function () {
440
+ if (computationCache.current === undefined) {
441
+ computationCache.current = new Map();
442
+ }
443
+ return computationCache.current;
444
+ }, []);
445
+ // Clear cache
446
+ var onAfterCalculation = useCallback(function () {
447
+ // Remove cached values
448
+ getComputationCache().clear();
449
+ // Cleanup the graph, so we dont have
450
+ // any stale nodes
451
+ getCalculator().cleanupGraph();
452
+ // Only clear keys that were actually consumed during this calculation cycle.
453
+ // Keys added concurrently (e.g. by a paste RAF while this calculation was
454
+ // running) must survive so the next cycle can evaluate them.
455
+ consumedForceRecalcKeys.current.forEach(function (key) {
456
+ forceRecalcKeys.current.delete(key);
457
+ forceRecalcPositions.current.delete(key);
458
+ });
459
+ consumedForceRecalcKeys.current.clear();
460
+ }, []);
461
+ var getFunctions = useCallback(function () {
462
+ return functions;
463
+ }, [functions]);
464
+ var overridesRef = useRef(null);
465
+ // Get user entered value
466
+ var getFinalUserEnteredValue = function (position) {
467
+ var conditionalFormatId = position.conditionalFormatId, dataValidationId = position.dataValidationId;
468
+ if (!isNil(conditionalFormatId)) {
469
+ return getConditionalFormatFormula(position.sheetId, position.rowIndex, position.columnIndex, conditionalFormatId);
470
+ }
471
+ if (!isNil(dataValidationId)) {
472
+ return getDataValidationFormula(position.sheetId, position.rowIndex, position.columnIndex, dataValidationId);
473
+ }
474
+ // Read through the stable ref so a calc-captured closure (e.g. a paste RAF
475
+ // that ran with a pre-paste render's `getUserEnteredValue`) still resolves
476
+ // the latest user-entered value rather than a stale snapshot.
477
+ return getUserEnteredValueStable(position.sheetId, position.rowIndex, position.columnIndex);
478
+ };
479
+ var deferCalculationNodes = function (positions) {
480
+ var e_8, _a;
481
+ var _b;
482
+ if (!positions.length) {
483
+ return;
484
+ }
485
+ try {
486
+ for (var positions_1 = __values(positions), positions_1_1 = positions_1.next(); !positions_1_1.done; positions_1_1 = positions_1.next()) {
487
+ var position = positions_1_1.value;
488
+ var key = makeKey(position);
489
+ var sheetId = position.sheetId;
490
+ var existing = (_b = deferredOperationsBySheetRef.current.get(sheetId)) !== null && _b !== void 0 ? _b : new Map();
491
+ existing.set(key, {
492
+ type: "dirty",
493
+ position: position,
494
+ force: forceRecalcKeys.current.has(key),
495
+ });
496
+ deferredOperationsBySheetRef.current.set(sheetId, existing);
497
+ getCalculator().unMarkAsDirty(position);
498
+ }
499
+ }
500
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
501
+ finally {
502
+ try {
503
+ if (positions_1_1 && !positions_1_1.done && (_a = positions_1.return)) _a.call(positions_1);
504
+ }
505
+ finally { if (e_8) throw e_8.error; }
506
+ }
507
+ };
508
+ var filterDirtyCellsForActiveSheet = function (cells, rootSheetId) {
509
+ var e_9, _a, e_10, _b, e_11, _c, e_12, _d, e_13, _e, e_14, _f, e_15, _g;
510
+ if (!cells.length) {
511
+ return { included: cells, deferred: [] };
512
+ }
513
+ var cellNodeByKey = new Map();
514
+ var dirtyNodesBySheet = new Map();
515
+ try {
516
+ for (var cells_1 = __values(cells), cells_1_1 = cells_1.next(); !cells_1_1.done; cells_1_1 = cells_1.next()) {
517
+ var node = cells_1_1.value;
518
+ cellNodeByKey.set(node.key, node);
519
+ var list = dirtyNodesBySheet.get(node.position.sheetId);
520
+ if (list) {
521
+ list.push(node);
522
+ }
523
+ else {
524
+ dirtyNodesBySheet.set(node.position.sheetId, [node]);
525
+ }
526
+ }
527
+ }
528
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
529
+ finally {
530
+ try {
531
+ if (cells_1_1 && !cells_1_1.done && (_a = cells_1.return)) _a.call(cells_1);
532
+ }
533
+ finally { if (e_9) throw e_9.error; }
534
+ }
535
+ // Find cells that are inputs to static references (charts, etc.)
536
+ // These cells should not be deferred even if they're on other sheets
537
+ var staticInputKeys = new Set();
538
+ var staticInputs = getCalculator().getStaticReferenceInputs();
539
+ try {
540
+ for (var staticInputs_1 = __values(staticInputs), staticInputs_1_1 = staticInputs_1.next(); !staticInputs_1_1.done; staticInputs_1_1 = staticInputs_1.next()) {
541
+ var inputNode = staticInputs_1_1.value;
542
+ if (isCellNode(inputNode)) {
543
+ staticInputKeys.add(inputNode.key);
544
+ }
545
+ else if (isCellRangeNode(inputNode)) {
546
+ // For range inputs, check which dirty cells fall within the range
547
+ var rangeInput = inputNode;
548
+ try {
549
+ for (var cells_2 = (e_11 = void 0, __values(cells)), cells_2_1 = cells_2.next(); !cells_2_1.done; cells_2_1 = cells_2.next()) {
550
+ var cell = cells_2_1.value;
551
+ if (!isDerivedCellPosition(cell.position) &&
552
+ isCellCoordinateWithinCellRange(cell.position, rangeInput)) {
553
+ staticInputKeys.add(cell.key);
554
+ }
555
+ }
556
+ }
557
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
558
+ finally {
559
+ try {
560
+ if (cells_2_1 && !cells_2_1.done && (_c = cells_2.return)) _c.call(cells_2);
561
+ }
562
+ finally { if (e_11) throw e_11.error; }
563
+ }
564
+ }
565
+ }
566
+ }
567
+ catch (e_10_1) { e_10 = { error: e_10_1 }; }
568
+ finally {
569
+ try {
570
+ if (staticInputs_1_1 && !staticInputs_1_1.done && (_b = staticInputs_1.return)) _b.call(staticInputs_1);
571
+ }
572
+ finally { if (e_10) throw e_10.error; }
573
+ }
574
+ var includedKeys = new Set();
575
+ var forcedKeys = forceRecalcKeys.current;
576
+ var stack = [];
577
+ try {
578
+ for (var cells_3 = __values(cells), cells_3_1 = cells_3.next(); !cells_3_1.done; cells_3_1 = cells_3.next()) {
579
+ var node = cells_3_1.value;
580
+ if (forcedKeys.has(node.key) ||
581
+ node.position.sheetId === rootSheetId ||
582
+ staticInputKeys.has(node.key)) {
583
+ includedKeys.add(node.key);
584
+ stack.push(node);
585
+ }
586
+ }
587
+ }
588
+ catch (e_12_1) { e_12 = { error: e_12_1 }; }
589
+ finally {
590
+ try {
591
+ if (cells_3_1 && !cells_3_1.done && (_d = cells_3.return)) _d.call(cells_3);
592
+ }
593
+ finally { if (e_12) throw e_12.error; }
594
+ }
595
+ while (stack.length) {
596
+ var current = stack.pop();
597
+ if (!current) {
598
+ continue;
599
+ }
600
+ var userEnteredValue = getFinalUserEnteredValue(current.position);
601
+ if (!isAFormula(userEnteredValue) || !userEnteredValue) {
602
+ continue;
603
+ }
604
+ var formulaValue = String(userEnteredValue).slice(1);
605
+ var dependencies = getCalculator().dependencies(formulaValue, current.position);
606
+ try {
607
+ for (var dependencies_1 = (e_13 = void 0, __values(dependencies)), dependencies_1_1 = dependencies_1.next(); !dependencies_1_1.done; dependencies_1_1 = dependencies_1.next()) {
608
+ var dependency = dependencies_1_1.value;
609
+ // Named-range refs (StaticReference) come back as deps too
610
+ // now that the DAG is unified, but this code path is
611
+ // chasing grid-level cell/range dependencies for the
612
+ // active-sheet filter. Skip them.
613
+ if (isStaticReference(dependency))
614
+ continue;
615
+ if (isCellCoordinate(dependency)) {
616
+ var depKey = makeKey(dependency);
617
+ var depNode = cellNodeByKey.get(depKey);
618
+ if (depNode && !includedKeys.has(depKey)) {
619
+ includedKeys.add(depKey);
620
+ stack.push(depNode);
621
+ }
622
+ continue;
623
+ }
624
+ var candidates = dirtyNodesBySheet.get(dependency.sheetId);
625
+ if (!candidates) {
626
+ continue;
627
+ }
628
+ try {
629
+ for (var candidates_2 = (e_14 = void 0, __values(candidates)), candidates_2_1 = candidates_2.next(); !candidates_2_1.done; candidates_2_1 = candidates_2.next()) {
630
+ var candidate = candidates_2_1.value;
631
+ if (includedKeys.has(candidate.key)) {
632
+ continue;
633
+ }
634
+ if (isCellRangeNode(dependency) &&
635
+ !isDerivedCellPosition(candidate.position) &&
636
+ isCellCoordinateWithinCellRange(candidate.position, dependency)) {
637
+ includedKeys.add(candidate.key);
638
+ stack.push(candidate);
639
+ }
640
+ }
641
+ }
642
+ catch (e_14_1) { e_14 = { error: e_14_1 }; }
643
+ finally {
644
+ try {
645
+ if (candidates_2_1 && !candidates_2_1.done && (_f = candidates_2.return)) _f.call(candidates_2);
646
+ }
647
+ finally { if (e_14) throw e_14.error; }
648
+ }
649
+ }
650
+ }
651
+ catch (e_13_1) { e_13 = { error: e_13_1 }; }
652
+ finally {
653
+ try {
654
+ if (dependencies_1_1 && !dependencies_1_1.done && (_e = dependencies_1.return)) _e.call(dependencies_1);
655
+ }
656
+ finally { if (e_13) throw e_13.error; }
657
+ }
658
+ }
659
+ var included = [];
660
+ var deferred = [];
661
+ try {
662
+ for (var cells_4 = __values(cells), cells_4_1 = cells_4.next(); !cells_4_1.done; cells_4_1 = cells_4.next()) {
663
+ var node = cells_4_1.value;
664
+ if (includedKeys.has(node.key)) {
665
+ included.push(node);
666
+ }
667
+ else {
668
+ deferred.push(node);
669
+ }
670
+ }
671
+ }
672
+ catch (e_15_1) { e_15 = { error: e_15_1 }; }
673
+ finally {
674
+ try {
675
+ if (cells_4_1 && !cells_4_1.done && (_g = cells_4.return)) _g.call(cells_4);
676
+ }
677
+ finally { if (e_15) throw e_15.error; }
678
+ }
679
+ return { included: included, deferred: deferred };
680
+ };
681
+ var scheduleStartCalculation = useCallback(function (results, recalculatedPosition) {
682
+ var e_16, _a;
683
+ if (results && results.size) {
684
+ try {
685
+ for (var results_1 = __values(results), results_1_1 = results_1.next(); !results_1_1.done; results_1_1 = results_1.next()) {
686
+ var entry = results_1_1.value;
687
+ pendingStartResultsRef.current.set(entry[0], entry[1]);
688
+ }
689
+ }
690
+ catch (e_16_1) { e_16 = { error: e_16_1 }; }
691
+ finally {
692
+ try {
693
+ if (results_1_1 && !results_1_1.done && (_a = results_1.return)) _a.call(results_1);
694
+ }
695
+ finally { if (e_16) throw e_16.error; }
696
+ }
697
+ }
698
+ if (recalculatedPosition) {
699
+ pendingRecalculatedPositionRef.current = recalculatedPosition;
700
+ }
701
+ scheduleStartCalculationIdle(function () {
702
+ var _a;
703
+ var pendingResults = pendingStartResultsRef.current;
704
+ pendingStartResultsRef.current = new Map();
705
+ var position = pendingRecalculatedPositionRef.current;
706
+ pendingRecalculatedPositionRef.current = undefined;
707
+ (_a = startCalculationRef.current) === null || _a === void 0 ? void 0 : _a.call(startCalculationRef, pendingResults, position);
708
+ });
709
+ }, [scheduleStartCalculationIdle]);
710
+ // Calculator instance
711
+ var getCalculator = function () {
712
+ if (!calculator.current) {
713
+ var overrideValuesRef_1 = overridesRef;
714
+ calculator.current = new Calculator({
715
+ locale: locale,
716
+ getSheetId: getSheetIdStable,
717
+ getSheetIndex: getSheetIndexStable,
718
+ getSheetCount: getSheetCountStable,
719
+ getSheetProperties: function (sheetId) {
720
+ if (sheetId === void 0) { sheetId = getActiveSheetId(); }
721
+ return getSheetProperties(sheetId);
722
+ },
723
+ getSheetName: getSheetNameStable,
724
+ isRowHidden: isRowHidden ? isRowHiddenStable : undefined,
725
+ isRowHiddenByFilter: isRowHiddenByFilter
726
+ ? isRowHiddenByFilterStable
727
+ : undefined,
728
+ getCellValue: function (sheetId, rowIndex, columnIndex, property) {
729
+ var _a;
730
+ var key = makeKey({
731
+ sheetId: sheetId,
732
+ rowIndex: rowIndex,
733
+ columnIndex: columnIndex,
734
+ });
735
+ if ((_a = overrideValuesRef_1.current) === null || _a === void 0 ? void 0 : _a.has(key)) {
736
+ var result = overrideValuesRef_1.current.get(key);
737
+ if (property) {
738
+ return getEffectiveStructuredValue === null || getEffectiveStructuredValue === void 0 ? void 0 : getEffectiveStructuredValue(result, property);
739
+ }
740
+ return result;
741
+ }
742
+ var cachedValue = getComputationCache().has(key)
743
+ ? getComputationCache().get(key)
744
+ : null;
745
+ if (cachedValue !== null) {
746
+ // Cached structured value
747
+ if (cachedValue &&
748
+ typeof cachedValue === "object" &&
749
+ cachedValue.kind &&
750
+ getEffectiveStructuredValue) {
751
+ return getEffectiveStructuredValue === null || getEffectiveStructuredValue === void 0 ? void 0 : getEffectiveStructuredValue(cachedValue, property);
752
+ }
753
+ return cachedValue;
754
+ }
755
+ return getEffectiveValue(sheetId, rowIndex, columnIndex, property);
756
+ },
757
+ functions: getFunctions(),
758
+ onStructuredReference: onStructuredReferenceStable,
759
+ onVariable: onNamedRange,
760
+ onRecalculation: onRecalculation,
761
+ markAsQueued: markAsQueued,
762
+ markAsLoading: markAsLoading,
763
+ markAsError: markAsError,
764
+ getCellData: function (coords) {
765
+ if (isCellRange(coords)) {
766
+ var arr = [];
767
+ var sheetId = coords.sheet
768
+ ? getSheetIdStable(coords.sheet)
769
+ : getActiveSheetId();
770
+ for (var rowIndex = coords.from.row; rowIndex <= coords.to.row; rowIndex++) {
771
+ for (var columnIndex = coords.from.col; columnIndex <= coords.to.col; columnIndex++) {
772
+ arr.push(getCellDataStable(sheetId, rowIndex, columnIndex));
773
+ }
774
+ }
775
+ return arr;
776
+ }
777
+ else {
778
+ var position = cellCoordsToCellCoordinate(coords, coords.sheet
779
+ ? getSheetIdStable(coords.sheet)
780
+ : getActiveSheetId());
781
+ return getCellDataStable(position.sheetId, position.rowIndex, position.columnIndex);
782
+ }
783
+ },
784
+ });
785
+ }
786
+ return calculator.current;
787
+ };
788
+ // Cleanup
789
+ useIsomorphicLayoutEffect(function () {
790
+ return function () {
791
+ var _a;
792
+ (_a = calculator.current) === null || _a === void 0 ? void 0 : _a.cleanup();
793
+ };
794
+ }, []);
795
+ // Phase 9 — virtual-cell named ranges. Sync the host's named-range
796
+ // list with the calculator's registered set. Each formula-typed
797
+ // named range becomes a DAG node; range-typed ones go straight
798
+ // through `onNamedRange` and are skipped here.
799
+ //
800
+ // Excel-correctness requires named ranges to be registered BEFORE
801
+ // any cell formula is parsed — otherwise the dep parser sees the
802
+ // name as `#NAME?` and no DAG edge to the static node is created.
803
+ // We do this via a callable `applyNamedRanges` that's invoked
804
+ // synchronously by the init hook at the top of its calculate
805
+ // pass (before walking sheetData), AND from a useEffect so
806
+ // ongoing changes (Name Manager edits) propagate too. Both paths
807
+ // are idempotent: the diff against `registeredNamedRangeFormulasRef`
808
+ // means re-calling with the same list is a no-op.
809
+ // Track both formula AND scope so we re-register when scope flips
810
+ // (workbook ↔ sheet) even if the formula text is unchanged. Scope
811
+ // is the numeric sheetId — names can be renamed, ids are stable.
812
+ var registeredNamedRangeFormulasRef = useRef(new Map());
813
+ // Diff the provided list against what's already registered and
814
+ // apply only the delta. Pure function over its arg — no implicit
815
+ // ref reads — so the init hook can call it with the same
816
+ // namedRanges prop it has, and tests can call it directly with
817
+ // any list.
818
+ var applyNamedRanges = useCallbackRef(function (list) {
819
+ var e_17, _a, e_18, _b, e_19, _c;
820
+ var _d, _e;
821
+ if (!enabled)
822
+ return;
823
+ var calc = getCalculator();
824
+ // Map key combines lowercase name + scope so workbook-scoped
825
+ // and sheet-scoped names with the same display name don't
826
+ // collide (Excel treats them as separate defined names).
827
+ var scopeKey = function (name, sheetId) {
828
+ return "".concat(sheetId == null ? "wb" : String(sheetId), ":").concat(name.toLowerCase());
829
+ };
830
+ var next = new Map();
831
+ try {
832
+ for (var _f = __values(list !== null && list !== void 0 ? list : []), _g = _f.next(); !_g.done; _g = _f.next()) {
833
+ var nr = _g.value;
834
+ var value = nr === null || nr === void 0 ? void 0 : nr.value;
835
+ if (typeof value !== "string")
836
+ continue;
837
+ // Accept both shapes: "=OFFSET(...)" (spreadsheet convention)
838
+ // and bare "OFFSET(...)" (OOXML definedName convention).
839
+ // Static literals and plain references are not registered —
840
+ // they resolve through the host's onNamedRange fallback.
841
+ var trimmedValue = value.trim();
842
+ var formula = void 0;
843
+ if (trimmedValue.startsWith("=")) {
844
+ formula = trimmedValue.slice(1).trim();
845
+ }
846
+ else if (isBareFormulaExpression(trimmedValue)) {
847
+ formula = trimmedValue;
848
+ }
849
+ else {
850
+ continue;
851
+ }
852
+ if (!formula)
853
+ continue;
854
+ // Sheet-scoped if NamedRange.range.sheetId is present; else
855
+ // workbook-scoped. sheetId is stable across sheet renames.
856
+ var sheetId = (_e = (_d = nr.range) === null || _d === void 0 ? void 0 : _d.sheetId) !== null && _e !== void 0 ? _e : undefined;
857
+ next.set(scopeKey(nr.name, sheetId), {
858
+ name: nr.name,
859
+ formula: formula,
860
+ sheetId: sheetId,
861
+ });
862
+ }
863
+ }
864
+ catch (e_17_1) { e_17 = { error: e_17_1 }; }
865
+ finally {
866
+ try {
867
+ if (_g && !_g.done && (_a = _f.return)) _a.call(_f);
868
+ }
869
+ finally { if (e_17) throw e_17.error; }
870
+ }
871
+ var prev = registeredNamedRangeFormulasRef.current;
872
+ try {
873
+ // Removals: in prev, not in next.
874
+ for (var prev_1 = __values(prev), prev_1_1 = prev_1.next(); !prev_1_1.done; prev_1_1 = prev_1.next()) {
875
+ var _h = __read(prev_1_1.value, 2), key = _h[0], prevEntry = _h[1];
876
+ if (!next.has(key)) {
877
+ // The map key is `<scope>:<name>`; recover the name by
878
+ // slicing past the first colon and pass the tracked
879
+ // sheetId so we hit the right scoped registration.
880
+ calc.unregisterNamedRange(key.slice(key.indexOf(":") + 1), prevEntry.sheetId);
881
+ }
882
+ }
883
+ }
884
+ catch (e_18_1) { e_18 = { error: e_18_1 }; }
885
+ finally {
886
+ try {
887
+ if (prev_1_1 && !prev_1_1.done && (_b = prev_1.return)) _b.call(prev_1);
888
+ }
889
+ finally { if (e_18) throw e_18.error; }
890
+ }
891
+ // Collect adds + updates. Compare formula AND scope so a
892
+ // scope-only change still re-registers (scope changes also
893
+ // flip the map key, so they hit removal+add — defensive
894
+ // equality check kept for robustness).
895
+ var toApply = [];
896
+ var nextPrev = new Map();
897
+ try {
898
+ for (var next_1 = __values(next), next_1_1 = next_1.next(); !next_1_1.done; next_1_1 = next_1.next()) {
899
+ var _j = __read(next_1_1.value, 2), key = _j[0], _k = _j[1], name_1 = _k.name, formula = _k.formula, sheetId = _k.sheetId;
900
+ var prevEntry = prev.get(key);
901
+ nextPrev.set(key, { formula: formula, sheetId: sheetId });
902
+ if ((prevEntry === null || prevEntry === void 0 ? void 0 : prevEntry.formula) === formula && prevEntry.sheetId === sheetId) {
903
+ continue;
904
+ }
905
+ toApply.push({ name: name_1, formula: formula, sheetId: sheetId });
906
+ }
907
+ }
908
+ catch (e_19_1) { e_19 = { error: e_19_1 }; }
909
+ finally {
910
+ try {
911
+ if (next_1_1 && !next_1_1.done && (_c = next_1.return)) _c.call(next_1);
912
+ }
913
+ finally { if (e_19) throw e_19.error; }
914
+ }
915
+ // Order-independent batch: cross-name edges
916
+ // (`fullPrice = price * 1.08`) get wired correctly regardless
917
+ // of the order the names appear in the host's array.
918
+ if (toApply.length)
919
+ calc.registerNamedRanges(toApply);
920
+ registeredNamedRangeFormulasRef.current = nextPrev;
921
+ });
922
+ // Re-apply whenever the host's namedRanges list changes.
923
+ useEffect(function () {
924
+ applyNamedRanges(namedRanges);
925
+ }, [namedRanges, enabled, applyNamedRanges]);
926
+ // Hook for processing arrays
927
+ var _d = __read(useCalculationProcessArray({
928
+ locale: locale,
929
+ getCalculator: getCalculator,
930
+ getSheetId: getSheetIdStable,
931
+ getComputationCache: getComputationCache,
932
+ getUserEnteredValue: getUserEnteredValue,
933
+ getCellData: getCellDataStable,
934
+ }), 3), processArrayResults = _d[0], createArraySideEffectsAndGetResults = _d[1], getErrorResultsFromArrayPosition = _d[2];
935
+ /**
936
+ * Mark a cell
937
+ */
938
+ var markCell = useCallback(function (coords, value, formatting) {
939
+ var results = new Map();
940
+ var position = cellCoordsToCellCoordinate(coords, coords.sheet ? getSheetIdStable(coords.sheet) : getActiveSheetId());
941
+ var key = makeKey(position);
942
+ if (rafTimerMapRef.current.has(key)) {
943
+ var rafTimerId = rafTimerMapRef.current.get(key);
944
+ if (!isNil(rafTimerId)) {
945
+ cancelAnimationFrame(rafTimerId);
946
+ rafTimerMapRef.current.delete(key);
947
+ }
948
+ }
949
+ results.set(key, [position, value, formatting]);
950
+ publishResults(results.values());
951
+ }, []);
952
+ /**
953
+ * Mark a position as queue
954
+ */
955
+ var markAsQueued = useCallback(function (coords) {
956
+ markCell(coords, "Queued", {
957
+ horizontalAlignment: "center",
958
+ });
959
+ }, [markCell]);
960
+ /**
961
+ * Mark a position as loading
962
+ */
963
+ var markAsLoading = useCallback(function (coords) {
964
+ markCell(coords, "Loading...", {
965
+ horizontalAlignment: "center",
966
+ });
967
+ }, [markCell]);
968
+ /**
969
+ * Mark a position as error
970
+ */
971
+ var markAsError = useCallback(function (coords, value) {
972
+ markCell(coords, value, {
973
+ horizontalAlignment: "center",
974
+ textFormat: {
975
+ color: ERROR_COLOR,
976
+ },
977
+ });
978
+ }, [markCell]);
979
+ // On Recalculation: For dynamically updating calculated values
980
+ var onRecalculation = function (coords, calculationResults) {
981
+ var results = new Map();
982
+ var position = cellCoordsToCellCoordinate(coords, coords.sheet ? getSheetIdStable(coords.sheet) : getActiveSheetId());
983
+ var key = makeKey(position);
984
+ /**
985
+ * Multitenant returns null for
986
+ * unsubscribe callback
987
+ */
988
+ if (calculationResults === null) {
989
+ return;
990
+ }
991
+ // Set this cell as dirty
992
+ getCalculator().markAsDirty(position);
993
+ if (Array.isArray(calculationResults)) {
994
+ var _a = __read(processArrayResults(calculationResults, position, results, getDependents), 2), collides = _a[0], recomputeOperations = _a[1];
995
+ if (collides) {
996
+ getCalculator().cleanupPipelineFunction(position);
997
+ }
998
+ // New compuete
999
+ enqueueCalculations(recomputeOperations);
1000
+ }
1001
+ else {
1002
+ // Add it to computation cache
1003
+ getComputationCache().set(key, calculationResults);
1004
+ // Push result to array
1005
+ results.set(key, [position, calculationResults]);
1006
+ }
1007
+ scheduleStartCalculation(results, position);
1008
+ };
1009
+ // Begin calculation
1010
+ var startCalculation = function () {
1011
+ var args_1 = [];
1012
+ for (var _i = 0; _i < arguments.length; _i++) {
1013
+ args_1[_i] = arguments[_i];
1014
+ }
1015
+ return __awaiter(void 0, __spreadArray([], __read(args_1), false), void 0, function (initialResults, recalculatedPosition) {
1016
+ var runCellBatch_1, dirtyCells, _loop_1, err_1, MAX_RESCHEDULE;
1017
+ if (initialResults === void 0) { initialResults = new Map(); }
1018
+ return __generator(this, function (_a) {
1019
+ switch (_a.label) {
1020
+ case 0:
1021
+ _a.trys.push([0, 4, , 5]);
1022
+ // Publish initial results
1023
+ if (initialResults.size) {
1024
+ publishResults(initialResults.values());
1025
+ }
1026
+ runCellBatch_1 = function (input) { return __awaiter(void 0, void 0, void 0, function () {
1027
+ var cellNodes, rootSheetId, _a, included, deferred, circularKeys_1, results, cellNodes_1, cellNodes_1_1, node, error_1;
1028
+ var e_20, _b;
1029
+ var _c;
1030
+ return __generator(this, function (_d) {
1031
+ switch (_d.label) {
1032
+ case 0:
1033
+ cellNodes = input;
1034
+ rootSheetId = enableLazyCalculation
1035
+ ? getActiveSheetId()
1036
+ : undefined;
1037
+ if (typeof rootSheetId === "number") {
1038
+ _a = filterDirtyCellsForActiveSheet(cellNodes, rootSheetId), included = _a.included, deferred = _a.deferred;
1039
+ if (deferred.length) {
1040
+ deferCalculationNodes(deferred.map(function (cell) { return cell.position; }));
1041
+ }
1042
+ cellNodes = included;
1043
+ }
1044
+ if (!cellNodes.length)
1045
+ return [2 /*return*/];
1046
+ if (!((_c = iterativeCalculationRef.current) === null || _c === void 0 ? void 0 : _c.enabled)) {
1047
+ circularKeys_1 = findCircularKeys(cellNodes);
1048
+ if (circularKeys_1.size) {
1049
+ results = new Map();
1050
+ try {
1051
+ for (cellNodes_1 = __values(cellNodes), cellNodes_1_1 = cellNodes_1.next(); !cellNodes_1_1.done; cellNodes_1_1 = cellNodes_1.next()) {
1052
+ node = cellNodes_1_1.value;
1053
+ if (!circularKeys_1.has(node.key)) {
1054
+ continue;
1055
+ }
1056
+ error_1 = new FormulaError("#REF!", "Circular dependency detected.");
1057
+ getComputationCache().set(node.key, error_1);
1058
+ results.set(node.key, [node.position, error_1]);
1059
+ }
1060
+ }
1061
+ catch (e_20_1) { e_20 = { error: e_20_1 }; }
1062
+ finally {
1063
+ try {
1064
+ if (cellNodes_1_1 && !cellNodes_1_1.done && (_b = cellNodes_1.return)) _b.call(cellNodes_1);
1065
+ }
1066
+ finally { if (e_20) throw e_20.error; }
1067
+ }
1068
+ publishResults(results.values());
1069
+ cellNodes = cellNodes.filter(function (node) { return !circularKeys_1.has(node.key); });
1070
+ }
1071
+ }
1072
+ return [4 /*yield*/, processCells(cellNodes, recalculatedPosition)];
1073
+ case 1:
1074
+ _d.sent();
1075
+ return [2 /*return*/];
1076
+ }
1077
+ });
1078
+ }); };
1079
+ dirtyCells = [];
1080
+ _loop_1 = function () {
1081
+ var calc, pendingCells, flushPending, dirtyCells_1, dirtyCells_1_1, node, e_21_1;
1082
+ var e_21, _b;
1083
+ return __generator(this, function (_c) {
1084
+ switch (_c.label) {
1085
+ case 0:
1086
+ calc = getCalculator();
1087
+ pendingCells = [];
1088
+ flushPending = function () { return __awaiter(void 0, void 0, void 0, function () {
1089
+ var batch;
1090
+ return __generator(this, function (_a) {
1091
+ switch (_a.label) {
1092
+ case 0:
1093
+ if (!pendingCells.length)
1094
+ return [2 /*return*/];
1095
+ batch = pendingCells.slice();
1096
+ pendingCells.length = 0;
1097
+ return [4 /*yield*/, runCellBatch_1(batch)];
1098
+ case 1:
1099
+ _a.sent();
1100
+ return [2 /*return*/];
1101
+ }
1102
+ });
1103
+ }); };
1104
+ _c.label = 1;
1105
+ case 1:
1106
+ _c.trys.push([1, 10, 11, 12]);
1107
+ dirtyCells_1 = (e_21 = void 0, __values(dirtyCells)), dirtyCells_1_1 = dirtyCells_1.next();
1108
+ _c.label = 2;
1109
+ case 2:
1110
+ if (!!dirtyCells_1_1.done) return [3 /*break*/, 9];
1111
+ node = dirtyCells_1_1.value;
1112
+ if (!!node.position) return [3 /*break*/, 7];
1113
+ return [4 /*yield*/, flushPending()];
1114
+ case 3:
1115
+ _c.sent();
1116
+ if (!calc.isNamedRangeNodeKey(node.key)) return [3 /*break*/, 5];
1117
+ return [4 /*yield*/, calc.evaluateNamedRangeNodeKey(node.key)];
1118
+ case 4:
1119
+ _c.sent();
1120
+ return [3 /*break*/, 6];
1121
+ case 5:
1122
+ publishStaticCells(node);
1123
+ _c.label = 6;
1124
+ case 6: return [3 /*break*/, 8];
1125
+ case 7:
1126
+ if (isCellCoordinate(node.position)) {
1127
+ // `isCellCoordinate` narrows `node.position`, not `node`; the cast
1128
+ // reflects the shape the guard just confirmed (a cell-coordinate node).
1129
+ pendingCells.push(node);
1130
+ }
1131
+ _c.label = 8;
1132
+ case 8:
1133
+ dirtyCells_1_1 = dirtyCells_1.next();
1134
+ return [3 /*break*/, 2];
1135
+ case 9: return [3 /*break*/, 12];
1136
+ case 10:
1137
+ e_21_1 = _c.sent();
1138
+ e_21 = { error: e_21_1 };
1139
+ return [3 /*break*/, 12];
1140
+ case 11:
1141
+ try {
1142
+ if (dirtyCells_1_1 && !dirtyCells_1_1.done && (_b = dirtyCells_1.return)) _b.call(dirtyCells_1);
1143
+ }
1144
+ finally { if (e_21) throw e_21.error; }
1145
+ return [7 /*endfinally*/];
1146
+ case 12: return [4 /*yield*/, flushPending()];
1147
+ case 13:
1148
+ _c.sent();
1149
+ return [2 /*return*/];
1150
+ }
1151
+ });
1152
+ };
1153
+ _a.label = 1;
1154
+ case 1:
1155
+ if (!((dirtyCells = getCalculator().getDirtyCells()) &&
1156
+ dirtyCells.length !== 0)) return [3 /*break*/, 3];
1157
+ return [5 /*yield**/, _loop_1()];
1158
+ case 2:
1159
+ _a.sent();
1160
+ return [3 /*break*/, 1];
1161
+ case 3: return [3 /*break*/, 5];
1162
+ case 4:
1163
+ err_1 = _a.sent();
1164
+ console.error("[spreadsheet-state] recalculation pass aborted:", err_1);
1165
+ return [3 /*break*/, 5];
1166
+ case 5:
1167
+ // Clear current calculation array results
1168
+ initialArrayResults.current = new Map();
1169
+ onAfterCalculation();
1170
+ // If there are unconsumed forceRecalcKeys (added concurrently by a paste
1171
+ // RAF while this calculation was running with stale closures), re-dirty
1172
+ // those cells so the next calculation cycle (with fresh state) can evaluate
1173
+ // them. Cap reschedules to prevent an infinite loop if a key can never be
1174
+ // consumed.
1175
+ if (forceRecalcKeys.current.size > 0) {
1176
+ MAX_RESCHEDULE = 50;
1177
+ rescheduleCount.current = (rescheduleCount.current || 0) + 1;
1178
+ if (rescheduleCount.current <= MAX_RESCHEDULE) {
1179
+ forceRecalcPositions.current.forEach(function (pos) {
1180
+ getCalculator().markAsDirty(pos);
1181
+ });
1182
+ scheduleStartCalculation();
1183
+ }
1184
+ else {
1185
+ // Give up — clear to avoid infinite spin.
1186
+ forceRecalcKeys.current.clear();
1187
+ forceRecalcPositions.current.clear();
1188
+ rescheduleCount.current = 0;
1189
+ }
1190
+ }
1191
+ else {
1192
+ rescheduleCount.current = 0;
1193
+ }
1194
+ // Trigger onChange
1195
+ onChangeDependencyGraph === null || onChangeDependencyGraph === void 0 ? void 0 : onChangeDependencyGraph(getCalculator().graph.toJSON());
1196
+ return [2 /*return*/];
1197
+ }
1198
+ });
1199
+ });
1200
+ };
1201
+ startCalculationRef.current = startCalculation;
1202
+ // Process async
1203
+ function processCells(cells, recalculatedPosition) {
1204
+ return __awaiter(this, void 0, void 0, function () {
1205
+ var cellMap, cells_5, cells_5_1, cell, adjacency, getDependencies, hasSelfReference, indices, lowlinks, stack, onStack, iterativeGroups, index, strongConnect, cells_6, cells_6_1, cell, key, cells_7, cells_7_1, cell, key, iterativeKeys, iterativeGroups_1, iterativeGroups_1_1, group, group_1, group_1_1, cell, nonIterativeCells, maxIterations, maxChange, iterativeGroups_2, iterativeGroups_2_1, group, group_2, group_2_1, cell, effectiveValue, previousValues, converged, iteration, currentValues, group_3, group_3_1, cell, userEnteredValue, result, key, err_2, error_2, e_22_1, maxDelta, currentValues_1, currentValues_1_1, _a, key, value, delta, finalValues, results, group_4, group_4_1, cell, key, value, _b, arrayErrors, recomputeOperations, arrayErrors_1, arrayErrors_1_1, _c, errorKey, errorValue, _d, collides, recomputeOperations, e_23_1, followUpCells, iterativeGroups_3, iterativeGroups_3_1, group, group_5, group_5_1, cell, dependents, dependents_1, dependents_1_1, dependent, cellDep, depKey;
1206
+ var e_24, _e, e_25, _f, e_26, _g, e_27, _h, e_28, _j, e_23, _k, e_29, _l, e_22, _m, e_30, _o, e_31, _p, e_32, _q, e_33, _r, e_34, _s, e_35, _t;
1207
+ var _u, _v, _w, _x, _y, _z, _0;
1208
+ return __generator(this, function (_1) {
1209
+ switch (_1.label) {
1210
+ case 0:
1211
+ if (!((_u = iterativeCalculationRef.current) === null || _u === void 0 ? void 0 : _u.enabled)) {
1212
+ return [2 /*return*/, processCellsInParallel(cells, recalculatedPosition)];
1213
+ }
1214
+ cellMap = new Map();
1215
+ try {
1216
+ for (cells_5 = __values(cells), cells_5_1 = cells_5.next(); !cells_5_1.done; cells_5_1 = cells_5.next()) {
1217
+ cell = cells_5_1.value;
1218
+ cellMap.set(makeKey(cell.position), cell);
1219
+ }
1220
+ }
1221
+ catch (e_24_1) { e_24 = { error: e_24_1 }; }
1222
+ finally {
1223
+ try {
1224
+ if (cells_5_1 && !cells_5_1.done && (_e = cells_5.return)) _e.call(cells_5);
1225
+ }
1226
+ finally { if (e_24) throw e_24.error; }
1227
+ }
1228
+ adjacency = new Map();
1229
+ getDependencies = function (cell) {
1230
+ var e_36, _a, e_37, _b;
1231
+ var deps = getCalculator().getPrecedents(cell.position);
1232
+ var depKeys = new Set();
1233
+ try {
1234
+ for (var deps_1 = __values(deps), deps_1_1 = deps_1.next(); !deps_1_1.done; deps_1_1 = deps_1.next()) {
1235
+ var dep = deps_1_1.value;
1236
+ if (isCellNode(dep)) {
1237
+ var depKey = makeKey(dep.position);
1238
+ if (cellMap.has(depKey)) {
1239
+ depKeys.add(depKey);
1240
+ }
1241
+ continue;
1242
+ }
1243
+ if (isCellRangeNode(dep)) {
1244
+ var rangeDep = dep;
1245
+ try {
1246
+ for (var cells_8 = (e_37 = void 0, __values(cells)), cells_8_1 = cells_8.next(); !cells_8_1.done; cells_8_1 = cells_8.next()) {
1247
+ var candidate = cells_8_1.value;
1248
+ if (!isDerivedCellPosition(candidate.position) &&
1249
+ isCellCoordinateWithinCellRange(candidate.position, rangeDep)) {
1250
+ depKeys.add(makeKey(candidate.position));
1251
+ }
1252
+ }
1253
+ }
1254
+ catch (e_37_1) { e_37 = { error: e_37_1 }; }
1255
+ finally {
1256
+ try {
1257
+ if (cells_8_1 && !cells_8_1.done && (_b = cells_8.return)) _b.call(cells_8);
1258
+ }
1259
+ finally { if (e_37) throw e_37.error; }
1260
+ }
1261
+ }
1262
+ }
1263
+ }
1264
+ catch (e_36_1) { e_36 = { error: e_36_1 }; }
1265
+ finally {
1266
+ try {
1267
+ if (deps_1_1 && !deps_1_1.done && (_a = deps_1.return)) _a.call(deps_1);
1268
+ }
1269
+ finally { if (e_36) throw e_36.error; }
1270
+ }
1271
+ return depKeys;
1272
+ };
1273
+ hasSelfReference = function (cell) {
1274
+ var userEnteredValue = getFinalUserEnteredValue(cell.position);
1275
+ if (!isAFormula(userEnteredValue) || !userEnteredValue) {
1276
+ return false;
1277
+ }
1278
+ var formulaValue = String(userEnteredValue).slice(1);
1279
+ try {
1280
+ var deps = getCalculator().dependencies(formulaValue, cell.position);
1281
+ return deps.some(function (dep) {
1282
+ // Named-range static refs can't self-reference a cell.
1283
+ if (isStaticReference(dep))
1284
+ return false;
1285
+ if (isCellCoordinate(dep)) {
1286
+ return isEqualPosition(dep, cell.position);
1287
+ }
1288
+ return (dep.sheetId === cell.position.sheetId &&
1289
+ cell.position.rowIndex >= dep.startRowIndex &&
1290
+ cell.position.rowIndex <= dep.endRowIndex &&
1291
+ cell.position.columnIndex >= dep.startColumnIndex &&
1292
+ cell.position.columnIndex <= dep.endColumnIndex);
1293
+ });
1294
+ }
1295
+ catch (_a) {
1296
+ return false;
1297
+ }
1298
+ };
1299
+ indices = new Map();
1300
+ lowlinks = new Map();
1301
+ stack = [];
1302
+ onStack = new Set();
1303
+ iterativeGroups = [];
1304
+ index = 0;
1305
+ strongConnect = function (key) {
1306
+ var e_38, _a;
1307
+ var _b;
1308
+ indices.set(key, index);
1309
+ lowlinks.set(key, index);
1310
+ index++;
1311
+ stack.push(key);
1312
+ onStack.add(key);
1313
+ var deps = (_b = adjacency.get(key)) !== null && _b !== void 0 ? _b : new Set();
1314
+ try {
1315
+ for (var deps_2 = __values(deps), deps_2_1 = deps_2.next(); !deps_2_1.done; deps_2_1 = deps_2.next()) {
1316
+ var depKey = deps_2_1.value;
1317
+ if (!indices.has(depKey)) {
1318
+ strongConnect(depKey);
1319
+ lowlinks.set(key, Math.min(lowlinks.get(key), lowlinks.get(depKey)));
1320
+ }
1321
+ else if (onStack.has(depKey)) {
1322
+ lowlinks.set(key, Math.min(lowlinks.get(key), indices.get(depKey)));
1323
+ }
1324
+ }
1325
+ }
1326
+ catch (e_38_1) { e_38 = { error: e_38_1 }; }
1327
+ finally {
1328
+ try {
1329
+ if (deps_2_1 && !deps_2_1.done && (_a = deps_2.return)) _a.call(deps_2);
1330
+ }
1331
+ finally { if (e_38) throw e_38.error; }
1332
+ }
1333
+ if (lowlinks.get(key) === indices.get(key)) {
1334
+ var componentKeys = [];
1335
+ var current = void 0;
1336
+ do {
1337
+ current = stack.pop();
1338
+ if (!current) {
1339
+ break;
1340
+ }
1341
+ onStack.delete(current);
1342
+ componentKeys.push(current);
1343
+ } while (current !== key);
1344
+ if (componentKeys.length > 1) {
1345
+ iterativeGroups.push(componentKeys
1346
+ .map(function (componentKey) { return cellMap.get(componentKey); })
1347
+ .filter(function (cell) { return !!cell; }));
1348
+ return;
1349
+ }
1350
+ var singleKey = componentKeys[0];
1351
+ var cell = singleKey ? cellMap.get(singleKey) : undefined;
1352
+ if (cell && hasSelfReference(cell)) {
1353
+ iterativeGroups.push([cell]);
1354
+ }
1355
+ }
1356
+ };
1357
+ try {
1358
+ for (cells_6 = __values(cells), cells_6_1 = cells_6.next(); !cells_6_1.done; cells_6_1 = cells_6.next()) {
1359
+ cell = cells_6_1.value;
1360
+ key = makeKey(cell.position);
1361
+ if (!adjacency.has(key)) {
1362
+ adjacency.set(key, getDependencies(cell));
1363
+ }
1364
+ }
1365
+ }
1366
+ catch (e_25_1) { e_25 = { error: e_25_1 }; }
1367
+ finally {
1368
+ try {
1369
+ if (cells_6_1 && !cells_6_1.done && (_f = cells_6.return)) _f.call(cells_6);
1370
+ }
1371
+ finally { if (e_25) throw e_25.error; }
1372
+ }
1373
+ try {
1374
+ for (cells_7 = __values(cells), cells_7_1 = cells_7.next(); !cells_7_1.done; cells_7_1 = cells_7.next()) {
1375
+ cell = cells_7_1.value;
1376
+ key = makeKey(cell.position);
1377
+ if (!indices.has(key)) {
1378
+ strongConnect(key);
1379
+ }
1380
+ }
1381
+ }
1382
+ catch (e_26_1) { e_26 = { error: e_26_1 }; }
1383
+ finally {
1384
+ try {
1385
+ if (cells_7_1 && !cells_7_1.done && (_g = cells_7.return)) _g.call(cells_7);
1386
+ }
1387
+ finally { if (e_26) throw e_26.error; }
1388
+ }
1389
+ if (!iterativeGroups.length) {
1390
+ return [2 /*return*/, processCellsInParallel(cells, recalculatedPosition)];
1391
+ }
1392
+ iterativeKeys = new Set();
1393
+ try {
1394
+ for (iterativeGroups_1 = __values(iterativeGroups), iterativeGroups_1_1 = iterativeGroups_1.next(); !iterativeGroups_1_1.done; iterativeGroups_1_1 = iterativeGroups_1.next()) {
1395
+ group = iterativeGroups_1_1.value;
1396
+ try {
1397
+ for (group_1 = (e_28 = void 0, __values(group)), group_1_1 = group_1.next(); !group_1_1.done; group_1_1 = group_1.next()) {
1398
+ cell = group_1_1.value;
1399
+ iterativeKeys.add(makeKey(cell.position));
1400
+ }
1401
+ }
1402
+ catch (e_28_1) { e_28 = { error: e_28_1 }; }
1403
+ finally {
1404
+ try {
1405
+ if (group_1_1 && !group_1_1.done && (_j = group_1.return)) _j.call(group_1);
1406
+ }
1407
+ finally { if (e_28) throw e_28.error; }
1408
+ }
1409
+ }
1410
+ }
1411
+ catch (e_27_1) { e_27 = { error: e_27_1 }; }
1412
+ finally {
1413
+ try {
1414
+ if (iterativeGroups_1_1 && !iterativeGroups_1_1.done && (_h = iterativeGroups_1.return)) _h.call(iterativeGroups_1);
1415
+ }
1416
+ finally { if (e_27) throw e_27.error; }
1417
+ }
1418
+ nonIterativeCells = cells.filter(function (cell) { return !iterativeKeys.has(makeKey(cell.position)); });
1419
+ if (!nonIterativeCells.length) return [3 /*break*/, 2];
1420
+ return [4 /*yield*/, processCellsInParallel(nonIterativeCells, recalculatedPosition)];
1421
+ case 1:
1422
+ _1.sent();
1423
+ _1.label = 2;
1424
+ case 2:
1425
+ maxIterations = Math.max(1, (_w = (_v = iterativeCalculationRef.current) === null || _v === void 0 ? void 0 : _v.maxIterations) !== null && _w !== void 0 ? _w : 100);
1426
+ maxChange = Math.max(0, (_y = (_x = iterativeCalculationRef.current) === null || _x === void 0 ? void 0 : _x.maxChange) !== null && _y !== void 0 ? _y : 0.001);
1427
+ _1.label = 3;
1428
+ case 3:
1429
+ _1.trys.push([3, 22, 23, 24]);
1430
+ iterativeGroups_2 = __values(iterativeGroups), iterativeGroups_2_1 = iterativeGroups_2.next();
1431
+ _1.label = 4;
1432
+ case 4:
1433
+ if (!!iterativeGroups_2_1.done) return [3 /*break*/, 21];
1434
+ group = iterativeGroups_2_1.value;
1435
+ try {
1436
+ for (group_2 = (e_29 = void 0, __values(group)), group_2_1 = group_2.next(); !group_2_1.done; group_2_1 = group_2.next()) {
1437
+ cell = group_2_1.value;
1438
+ effectiveValue = getEffectiveValue === null || getEffectiveValue === void 0 ? void 0 : getEffectiveValue(cell.position.sheetId, cell.position.rowIndex, cell.position.columnIndex);
1439
+ if (isErrorResult(effectiveValue)) {
1440
+ getComputationCache().set(makeKey(cell.position), 0);
1441
+ }
1442
+ }
1443
+ }
1444
+ catch (e_29_1) { e_29 = { error: e_29_1 }; }
1445
+ finally {
1446
+ try {
1447
+ if (group_2_1 && !group_2_1.done && (_l = group_2.return)) _l.call(group_2);
1448
+ }
1449
+ finally { if (e_29) throw e_29.error; }
1450
+ }
1451
+ previousValues = null;
1452
+ converged = false;
1453
+ iteration = 0;
1454
+ _1.label = 5;
1455
+ case 5:
1456
+ if (!(iteration < maxIterations)) return [3 /*break*/, 19];
1457
+ currentValues = new Map();
1458
+ _1.label = 6;
1459
+ case 6:
1460
+ _1.trys.push([6, 15, 16, 17]);
1461
+ group_3 = (e_22 = void 0, __values(group)), group_3_1 = group_3.next();
1462
+ _1.label = 7;
1463
+ case 7:
1464
+ if (!!group_3_1.done) return [3 /*break*/, 14];
1465
+ cell = group_3_1.value;
1466
+ if (recalculatedPosition &&
1467
+ isEqualPosition(cell.position, recalculatedPosition)) {
1468
+ return [3 /*break*/, 13];
1469
+ }
1470
+ userEnteredValue = getFinalUserEnteredValue(cell.position);
1471
+ if (!isAFormula(userEnteredValue) || !userEnteredValue) {
1472
+ return [3 /*break*/, 13];
1473
+ }
1474
+ _1.label = 8;
1475
+ case 8:
1476
+ _1.trys.push([8, 12, , 13]);
1477
+ return [4 /*yield*/, getCalculator().calculate(String(userEnteredValue).slice(1), cell.position)];
1478
+ case 9:
1479
+ result = _1.sent();
1480
+ if (!(result instanceof DataSource)) return [3 /*break*/, 11];
1481
+ return [4 /*yield*/, result.get()];
1482
+ case 10:
1483
+ result = _1.sent();
1484
+ _1.label = 11;
1485
+ case 11:
1486
+ key = makeKey(cell.position);
1487
+ currentValues.set(key, result);
1488
+ if (!Array.isArray(result)) {
1489
+ getComputationCache().set(key, result);
1490
+ }
1491
+ return [3 /*break*/, 13];
1492
+ case 12:
1493
+ err_2 = _1.sent();
1494
+ error_2 = err_2 instanceof FormulaError
1495
+ ? err_2
1496
+ : new FormulaError((_z = err_2 === null || err_2 === void 0 ? void 0 : err_2.name) !== null && _z !== void 0 ? _z : "#ERROR!", (_0 = err_2 === null || err_2 === void 0 ? void 0 : err_2.message) !== null && _0 !== void 0 ? _0 : String(err_2), err_2 === null || err_2 === void 0 ? void 0 : err_2.stack);
1497
+ currentValues.set(makeKey(cell.position), error_2);
1498
+ getComputationCache().set(makeKey(cell.position), error_2);
1499
+ return [3 /*break*/, 13];
1500
+ case 13:
1501
+ group_3_1 = group_3.next();
1502
+ return [3 /*break*/, 7];
1503
+ case 14: return [3 /*break*/, 17];
1504
+ case 15:
1505
+ e_22_1 = _1.sent();
1506
+ e_22 = { error: e_22_1 };
1507
+ return [3 /*break*/, 17];
1508
+ case 16:
1509
+ try {
1510
+ if (group_3_1 && !group_3_1.done && (_m = group_3.return)) _m.call(group_3);
1511
+ }
1512
+ finally { if (e_22) throw e_22.error; }
1513
+ return [7 /*endfinally*/];
1514
+ case 17:
1515
+ if (previousValues) {
1516
+ maxDelta = 0;
1517
+ try {
1518
+ for (currentValues_1 = (e_30 = void 0, __values(currentValues)), currentValues_1_1 = currentValues_1.next(); !currentValues_1_1.done; currentValues_1_1 = currentValues_1.next()) {
1519
+ _a = __read(currentValues_1_1.value, 2), key = _a[0], value = _a[1];
1520
+ delta = computeDelta(previousValues.get(key), value);
1521
+ if (delta > maxDelta) {
1522
+ maxDelta = delta;
1523
+ }
1524
+ }
1525
+ }
1526
+ catch (e_30_1) { e_30 = { error: e_30_1 }; }
1527
+ finally {
1528
+ try {
1529
+ if (currentValues_1_1 && !currentValues_1_1.done && (_o = currentValues_1.return)) _o.call(currentValues_1);
1530
+ }
1531
+ finally { if (e_30) throw e_30.error; }
1532
+ }
1533
+ previousValues = currentValues;
1534
+ if (maxDelta <= maxChange) {
1535
+ converged = true;
1536
+ return [3 /*break*/, 19];
1537
+ }
1538
+ }
1539
+ else {
1540
+ previousValues = currentValues;
1541
+ }
1542
+ _1.label = 18;
1543
+ case 18:
1544
+ iteration++;
1545
+ return [3 /*break*/, 5];
1546
+ case 19:
1547
+ finalValues = previousValues !== null && previousValues !== void 0 ? previousValues : new Map();
1548
+ results = new Map();
1549
+ try {
1550
+ for (group_4 = (e_31 = void 0, __values(group)), group_4_1 = group_4.next(); !group_4_1.done; group_4_1 = group_4.next()) {
1551
+ cell = group_4_1.value;
1552
+ key = makeKey(cell.position);
1553
+ value = finalValues.get(key);
1554
+ if (!converged) {
1555
+ value = new FormulaError("#NUM!", "Iterative calculation did not converge");
1556
+ }
1557
+ if (value instanceof FormulaError) {
1558
+ _b = __read(getErrorResultsFromArrayPosition(cell.position), 2), arrayErrors = _b[0], recomputeOperations = _b[1];
1559
+ getComputationCache().set(key, value);
1560
+ enqueueCalculations(recomputeOperations);
1561
+ results.set(key, [cell.position, value]);
1562
+ try {
1563
+ for (arrayErrors_1 = (e_32 = void 0, __values(arrayErrors)), arrayErrors_1_1 = arrayErrors_1.next(); !arrayErrors_1_1.done; arrayErrors_1_1 = arrayErrors_1.next()) {
1564
+ _c = __read(arrayErrors_1_1.value, 2), errorKey = _c[0], errorValue = _c[1];
1565
+ results.set(errorKey, errorValue);
1566
+ }
1567
+ }
1568
+ catch (e_32_1) { e_32 = { error: e_32_1 }; }
1569
+ finally {
1570
+ try {
1571
+ if (arrayErrors_1_1 && !arrayErrors_1_1.done && (_q = arrayErrors_1.return)) _q.call(arrayErrors_1);
1572
+ }
1573
+ finally { if (e_32) throw e_32.error; }
1574
+ }
1575
+ continue;
1576
+ }
1577
+ if (Array.isArray(value)) {
1578
+ _d = __read(processArrayResults(value, cell.position, results, getDependents), 2), collides = _d[0], recomputeOperations = _d[1];
1579
+ if (collides) {
1580
+ getCalculator().cleanupPipelineFunction(cell.position);
1581
+ }
1582
+ enqueueCalculations(recomputeOperations);
1583
+ }
1584
+ else {
1585
+ getComputationCache().set(key, value);
1586
+ results.set(key, [cell.position, value]);
1587
+ }
1588
+ }
1589
+ }
1590
+ catch (e_31_1) { e_31 = { error: e_31_1 }; }
1591
+ finally {
1592
+ try {
1593
+ if (group_4_1 && !group_4_1.done && (_p = group_4.return)) _p.call(group_4);
1594
+ }
1595
+ finally { if (e_31) throw e_31.error; }
1596
+ }
1597
+ publishResults(results.values());
1598
+ _1.label = 20;
1599
+ case 20:
1600
+ iterativeGroups_2_1 = iterativeGroups_2.next();
1601
+ return [3 /*break*/, 4];
1602
+ case 21: return [3 /*break*/, 24];
1603
+ case 22:
1604
+ e_23_1 = _1.sent();
1605
+ e_23 = { error: e_23_1 };
1606
+ return [3 /*break*/, 24];
1607
+ case 23:
1608
+ try {
1609
+ if (iterativeGroups_2_1 && !iterativeGroups_2_1.done && (_k = iterativeGroups_2.return)) _k.call(iterativeGroups_2);
1610
+ }
1611
+ finally { if (e_23) throw e_23.error; }
1612
+ return [7 /*endfinally*/];
1613
+ case 24:
1614
+ followUpCells = new Map();
1615
+ try {
1616
+ for (iterativeGroups_3 = __values(iterativeGroups), iterativeGroups_3_1 = iterativeGroups_3.next(); !iterativeGroups_3_1.done; iterativeGroups_3_1 = iterativeGroups_3.next()) {
1617
+ group = iterativeGroups_3_1.value;
1618
+ try {
1619
+ for (group_5 = (e_34 = void 0, __values(group)), group_5_1 = group_5.next(); !group_5_1.done; group_5_1 = group_5.next()) {
1620
+ cell = group_5_1.value;
1621
+ dependents = getDependents(cell.position);
1622
+ try {
1623
+ for (dependents_1 = (e_35 = void 0, __values(dependents)), dependents_1_1 = dependents_1.next(); !dependents_1_1.done; dependents_1_1 = dependents_1.next()) {
1624
+ dependent = dependents_1_1.value;
1625
+ if (isCellNode(dependent)) {
1626
+ cellDep = dependent;
1627
+ depKey = makeKey(cellDep.position);
1628
+ if (!iterativeKeys.has(depKey)) {
1629
+ followUpCells.set(depKey, cellDep);
1630
+ }
1631
+ }
1632
+ }
1633
+ }
1634
+ catch (e_35_1) { e_35 = { error: e_35_1 }; }
1635
+ finally {
1636
+ try {
1637
+ if (dependents_1_1 && !dependents_1_1.done && (_t = dependents_1.return)) _t.call(dependents_1);
1638
+ }
1639
+ finally { if (e_35) throw e_35.error; }
1640
+ }
1641
+ }
1642
+ }
1643
+ catch (e_34_1) { e_34 = { error: e_34_1 }; }
1644
+ finally {
1645
+ try {
1646
+ if (group_5_1 && !group_5_1.done && (_s = group_5.return)) _s.call(group_5);
1647
+ }
1648
+ finally { if (e_34) throw e_34.error; }
1649
+ }
1650
+ }
1651
+ }
1652
+ catch (e_33_1) { e_33 = { error: e_33_1 }; }
1653
+ finally {
1654
+ try {
1655
+ if (iterativeGroups_3_1 && !iterativeGroups_3_1.done && (_r = iterativeGroups_3.return)) _r.call(iterativeGroups_3);
1656
+ }
1657
+ finally { if (e_33) throw e_33.error; }
1658
+ }
1659
+ if (!followUpCells.size) return [3 /*break*/, 26];
1660
+ return [4 /*yield*/, processCellsInParallel(Array.from(followUpCells.values()), recalculatedPosition)];
1661
+ case 25:
1662
+ _1.sent();
1663
+ _1.label = 26;
1664
+ case 26: return [2 /*return*/];
1665
+ }
1666
+ });
1667
+ });
1668
+ }
1669
+ function processCellsInParallel(cells, recalculatedPosition) {
1670
+ return __awaiter(this, void 0, void 0, function () {
1671
+ function processCellWithDependencies(cell) {
1672
+ return __awaiter(this, void 0, void 0, function () {
1673
+ var cellKey, controller_1, dependencies, cellDependencies, rangeDependencies, rangeDependencies_1, rangeDependencies_1_1, dep, cells_9, cells_9_1, cell_1, dependencyPromises_1, cellPromise;
1674
+ var e_39, _a, e_40, _b;
1675
+ var _this = this;
1676
+ return __generator(this, function (_c) {
1677
+ switch (_c.label) {
1678
+ case 0:
1679
+ cellKey = makeKey(cell.position);
1680
+ _c.label = 1;
1681
+ case 1:
1682
+ if (!processingCells.has(cellKey)) return [3 /*break*/, 3];
1683
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 0); })];
1684
+ case 2:
1685
+ _c.sent();
1686
+ return [3 /*break*/, 1];
1687
+ case 3:
1688
+ if (cellPromises.has(cellKey)) {
1689
+ return [2 /*return*/, cellPromises.get(cellKey).promise];
1690
+ }
1691
+ processingCells.add(cellKey);
1692
+ try {
1693
+ controller_1 = new AbortController();
1694
+ dependencies = getPrecedents(cell.position);
1695
+ cellDependencies = dependencies.filter(function (dep) {
1696
+ return isCellNode(dep) && cells.includes(dep);
1697
+ });
1698
+ rangeDependencies = dependencies.filter(function (dep) { return isCellRangeNode(dep); });
1699
+ try {
1700
+ for (rangeDependencies_1 = __values(rangeDependencies), rangeDependencies_1_1 = rangeDependencies_1.next(); !rangeDependencies_1_1.done; rangeDependencies_1_1 = rangeDependencies_1.next()) {
1701
+ dep = rangeDependencies_1_1.value;
1702
+ try {
1703
+ for (cells_9 = (e_40 = void 0, __values(cells)), cells_9_1 = cells_9.next(); !cells_9_1.done; cells_9_1 = cells_9.next()) {
1704
+ cell_1 = cells_9_1.value;
1705
+ if (!isDerivedCellPosition(cell_1.position) &&
1706
+ isCellCoordinateWithinCellRange(cell_1.position, dep)) {
1707
+ cellDependencies.push(cell_1);
1708
+ }
1709
+ }
1710
+ }
1711
+ catch (e_40_1) { e_40 = { error: e_40_1 }; }
1712
+ finally {
1713
+ try {
1714
+ if (cells_9_1 && !cells_9_1.done && (_b = cells_9.return)) _b.call(cells_9);
1715
+ }
1716
+ finally { if (e_40) throw e_40.error; }
1717
+ }
1718
+ }
1719
+ }
1720
+ catch (e_39_1) { e_39 = { error: e_39_1 }; }
1721
+ finally {
1722
+ try {
1723
+ if (rangeDependencies_1_1 && !rangeDependencies_1_1.done && (_a = rangeDependencies_1.return)) _a.call(rangeDependencies_1);
1724
+ }
1725
+ finally { if (e_39) throw e_39.error; }
1726
+ }
1727
+ dependencyPromises_1 = cellDependencies.map(function (dep) {
1728
+ return processCellWithDependencies(dep);
1729
+ });
1730
+ cellPromise = (function () { return __awaiter(_this, void 0, void 0, function () {
1731
+ return __generator(this, function (_a) {
1732
+ switch (_a.label) {
1733
+ case 0: return [4 /*yield*/, Promise.allSettled(dependencyPromises_1)];
1734
+ case 1:
1735
+ _a.sent();
1736
+ // Set signal
1737
+ cell.position.signal = controller_1.signal;
1738
+ // Process cell
1739
+ return [4 /*yield*/, processCell(cell, recalculatedPosition)];
1740
+ case 2:
1741
+ // Process cell
1742
+ _a.sent();
1743
+ // Remove signal after processing this cell
1744
+ delete cell.position.signal;
1745
+ return [2 /*return*/];
1746
+ }
1747
+ });
1748
+ }); })();
1749
+ cellPromises.set(cellKey, { promise: cellPromise, controller: controller_1 });
1750
+ return [2 /*return*/, cellPromise];
1751
+ }
1752
+ finally {
1753
+ processingCells.delete(cellKey);
1754
+ }
1755
+ return [2 /*return*/];
1756
+ }
1757
+ });
1758
+ });
1759
+ }
1760
+ var processingCells, getCellWeight, chunkCells, chunks, index, chunk, start, elapsed;
1761
+ return __generator(this, function (_a) {
1762
+ switch (_a.label) {
1763
+ case 0:
1764
+ processingCells = new Set();
1765
+ // Remove old promises
1766
+ cells.forEach(function (cell) {
1767
+ var _a;
1768
+ var key = makeKey(cell.position);
1769
+ if (key) {
1770
+ (_a = cellPromises.get(key)) === null || _a === void 0 ? void 0 : _a.controller.abort();
1771
+ cellPromises.delete(key);
1772
+ }
1773
+ });
1774
+ getCellWeight = function (cell) {
1775
+ var value = getFinalUserEnteredValue(cell.position);
1776
+ if (typeof value === "string" && value.startsWith("=")) {
1777
+ var formula = value.slice(1);
1778
+ if (isHeavyArrayFormula(formula)) {
1779
+ return ARRAY_FORMULA_WEIGHT;
1780
+ }
1781
+ }
1782
+ return 1;
1783
+ };
1784
+ chunkCells = function () {
1785
+ var e_41, _a;
1786
+ if (!cells.length) {
1787
+ return [];
1788
+ }
1789
+ var chunks = [];
1790
+ var current = [];
1791
+ var weight = 0;
1792
+ var flush = function () {
1793
+ if (!current.length) {
1794
+ return;
1795
+ }
1796
+ chunks.push(current);
1797
+ current = [];
1798
+ weight = 0;
1799
+ };
1800
+ try {
1801
+ for (var cells_10 = __values(cells), cells_10_1 = cells_10.next(); !cells_10_1.done; cells_10_1 = cells_10.next()) {
1802
+ var cell = cells_10_1.value;
1803
+ var nextWeight = getCellWeight(cell);
1804
+ if (current.length && weight + nextWeight > DEFAULT_BATCH_WEIGHT) {
1805
+ flush();
1806
+ }
1807
+ current.push(cell);
1808
+ weight += nextWeight;
1809
+ if (weight >= DEFAULT_BATCH_WEIGHT) {
1810
+ flush();
1811
+ }
1812
+ }
1813
+ }
1814
+ catch (e_41_1) { e_41 = { error: e_41_1 }; }
1815
+ finally {
1816
+ try {
1817
+ if (cells_10_1 && !cells_10_1.done && (_a = cells_10.return)) _a.call(cells_10);
1818
+ }
1819
+ finally { if (e_41) throw e_41.error; }
1820
+ }
1821
+ flush();
1822
+ return chunks.length ? chunks : [cells];
1823
+ };
1824
+ chunks = chunkCells();
1825
+ index = 0;
1826
+ _a.label = 1;
1827
+ case 1:
1828
+ if (!(index < chunks.length)) return [3 /*break*/, 5];
1829
+ chunk = chunks[index];
1830
+ if (!chunk.length) {
1831
+ return [3 /*break*/, 4];
1832
+ }
1833
+ start = getTimestamp();
1834
+ return [4 /*yield*/, Promise.allSettled(chunk.map(processCellWithDependencies))];
1835
+ case 2:
1836
+ _a.sent();
1837
+ elapsed = getTimestamp() - start;
1838
+ if (!(elapsed >= MAX_CHUNK_DURATION_MS && index < chunks.length - 1)) return [3 /*break*/, 4];
1839
+ return [4 /*yield*/, yieldToBrowser()];
1840
+ case 3:
1841
+ _a.sent();
1842
+ _a.label = 4;
1843
+ case 4:
1844
+ index++;
1845
+ return [3 /*break*/, 1];
1846
+ case 5:
1847
+ cellPromises.clear();
1848
+ return [2 /*return*/];
1849
+ }
1850
+ });
1851
+ });
1852
+ }
1853
+ // Process a single dirty cell
1854
+ var processCell = function (dirtyCell, recalculatedPosition) { return __awaiter(void 0, void 0, void 0, function () {
1855
+ var results, position, key, userEnteredValue, isFormula, onDemandMap, rafTimer, isCellNode_1, result, _a, collides, recomputeOperations, err_3, error_3, _b, arrayErrors, recomputeOperations, arrayErrors_2, arrayErrors_2_1, _c, key_1, value;
1856
+ var e_42, _d;
1857
+ return __generator(this, function (_e) {
1858
+ switch (_e.label) {
1859
+ case 0:
1860
+ results = new Map();
1861
+ position = dirtyCell.position, key = dirtyCell.key;
1862
+ userEnteredValue = getFinalUserEnteredValue(position);
1863
+ isFormula = isAFormula(userEnteredValue);
1864
+ if (recalculatedPosition &&
1865
+ isEqualPosition(position, recalculatedPosition)) {
1866
+ debug("Prevent recalculation of pipeline function", key);
1867
+ return [2 /*return*/];
1868
+ }
1869
+ // Check for force
1870
+ if (onDemandPattern) {
1871
+ onDemandPattern.lastIndex = 0;
1872
+ }
1873
+ if (isFormula &&
1874
+ userEnteredValue &&
1875
+ (onDemandPattern === null || onDemandPattern === void 0 ? void 0 : onDemandPattern.test(userEnteredValue))) {
1876
+ if (!forceRecalcKeys.current.has(key)) {
1877
+ onDemandMap = new Map();
1878
+ onDemandMap.set(key, [position, AWAITING_CALCULATION]);
1879
+ onSuccess(onDemandMap.values());
1880
+ return [2 /*return*/];
1881
+ }
1882
+ // Mark this on-demand key as consumed inside the gate's PASSED branch.
1883
+ // A stale closure that reads userEnteredValue as undefined (pre-paste
1884
+ // state) has isFormula === false, so it never enters this gate and thus
1885
+ // never consumes the key. The key survives until the next calculation
1886
+ // cycle runs with fresh React state, where getFinalUserEnteredValue
1887
+ // returns the actual formula.
1888
+ consumedForceRecalcKeys.current.add(key);
1889
+ }
1890
+ // For non-on-demand cells in forceRecalcKeys, only consume when we can
1891
+ // confirm the cell actually holds a formula (guards against stale closures
1892
+ // where userEnteredValue is undefined).
1893
+ if (forceRecalcKeys.current.has(key) && isFormula && userEnteredValue) {
1894
+ consumedForceRecalcKeys.current.add(key);
1895
+ }
1896
+ // Log
1897
+ debug("Processing", position, key, userEnteredValue);
1898
+ if (!(isFormula && userEnteredValue)) return [3 /*break*/, 7];
1899
+ rafTimer = void 0;
1900
+ _e.label = 1;
1901
+ case 1:
1902
+ _e.trys.push([1, 5, , 6]);
1903
+ isCellNode_1 = !!dirtyCell.position && isCellCoordinate(dirtyCell.position);
1904
+ rafTimer = isCellNode_1
1905
+ ? requestAnimationFrame(function () { return publishBeginCalculation === null || publishBeginCalculation === void 0 ? void 0 : publishBeginCalculation(dirtyCell); })
1906
+ : undefined;
1907
+ if (!isNil(rafTimer)) {
1908
+ rafTimerMapRef.current.set(key, rafTimer);
1909
+ }
1910
+ return [4 /*yield*/, getCalculator().calculate(userEnteredValue.slice(1), position)];
1911
+ case 2:
1912
+ result = _e.sent();
1913
+ // Cancel
1914
+ if (rafTimer) {
1915
+ cancelAnimationFrame(rafTimer);
1916
+ rafTimerMapRef.current.delete(key);
1917
+ }
1918
+ if (!(result instanceof DataSource)) return [3 /*break*/, 4];
1919
+ return [4 /*yield*/, result.get()];
1920
+ case 3:
1921
+ result = _e.sent();
1922
+ _e.label = 4;
1923
+ case 4:
1924
+ // Array results
1925
+ if (Array.isArray(result)) {
1926
+ _a = __read(processArrayResults(result, position, results, getDependents), 2), collides = _a[0], recomputeOperations = _a[1];
1927
+ // If it does collide
1928
+ if (collides) {
1929
+ getCalculator().cleanupPipelineFunction(position);
1930
+ }
1931
+ // New compuete
1932
+ enqueueCalculations(recomputeOperations);
1933
+ }
1934
+ else {
1935
+ // Add it to computation cache
1936
+ getComputationCache().set(key, result);
1937
+ // Invalidate any cached ranges containing this cell
1938
+ getCalculator().invalidateCacheForCell(position.sheetId, position.rowIndex, position.columnIndex);
1939
+ // Push result to array
1940
+ results.set(key, [position, result]);
1941
+ }
1942
+ return [3 /*break*/, 6];
1943
+ case 5:
1944
+ err_3 = _e.sent();
1945
+ if (rafTimer) {
1946
+ cancelAnimationFrame(rafTimer);
1947
+ }
1948
+ // Calculation error
1949
+ if (err_3 instanceof FormulaError || err_3 instanceof Error) {
1950
+ error_3 = err_3 instanceof FormulaError
1951
+ ? err_3
1952
+ : new FormulaError(err_3.name, err_3.message, err_3.stack);
1953
+ // We have to check if this error is caused in a cell
1954
+ // containing array formula
1955
+ // If so we have to reset all values references by this
1956
+ // array
1957
+ debug("Computation Error", error_3, position, key, userEnteredValue);
1958
+ _b = __read(getErrorResultsFromArrayPosition(position), 2), arrayErrors = _b[0], recomputeOperations = _b[1];
1959
+ // Add it to computation cache
1960
+ getComputationCache().set(key, error_3);
1961
+ // Invalidate any cached ranges containing this cell
1962
+ getCalculator().invalidateCacheForCell(position.sheetId, position.rowIndex, position.columnIndex);
1963
+ // New compuete
1964
+ enqueueCalculations(recomputeOperations);
1965
+ // Add to results
1966
+ results.set(key, [position, error_3]);
1967
+ try {
1968
+ for (arrayErrors_2 = __values(arrayErrors), arrayErrors_2_1 = arrayErrors_2.next(); !arrayErrors_2_1.done; arrayErrors_2_1 = arrayErrors_2.next()) {
1969
+ _c = __read(arrayErrors_2_1.value, 2), key_1 = _c[0], value = _c[1];
1970
+ results.set(key_1, value);
1971
+ }
1972
+ }
1973
+ catch (e_42_1) { e_42 = { error: e_42_1 }; }
1974
+ finally {
1975
+ try {
1976
+ if (arrayErrors_2_1 && !arrayErrors_2_1.done && (_d = arrayErrors_2.return)) _d.call(arrayErrors_2);
1977
+ }
1978
+ finally { if (e_42) throw e_42.error; }
1979
+ }
1980
+ }
1981
+ return [3 /*break*/, 6];
1982
+ case 6:
1983
+ publishResults(results.values());
1984
+ return [3 /*break*/, 8];
1985
+ case 7:
1986
+ // Cleanup functions
1987
+ // Scenario -
1988
+ // 1. Delete a pipeline function
1989
+ // 2. Undo
1990
+ // 3. And then Redo - Cleanup should be called when formula is deleted
1991
+ getCalculator().cleanupPipelineFunction(position);
1992
+ _e.label = 8;
1993
+ case 8: return [2 /*return*/];
1994
+ }
1995
+ });
1996
+ }); };
1997
+ /**
1998
+ * Publish static cells back
1999
+ */
2000
+ var publishStaticCells = useCallback(function (node) {
2001
+ if (staticNodeArrayRef.current.push(node) === 1) {
2002
+ requestAnimationFrame(function () {
2003
+ try {
2004
+ onChangeStaticReference === null || onChangeStaticReference === void 0 ? void 0 : onChangeStaticReference(staticNodeArrayRef.current);
2005
+ }
2006
+ catch (err) {
2007
+ console.error("[spreadsheet-state] recalculation pass aborted:", err);
2008
+ }
2009
+ finally {
2010
+ staticNodeArrayRef.current.length = 0;
2011
+ }
2012
+ });
2013
+ }
2014
+ }, [onChangeStaticReference]);
2015
+ /**
2016
+ * Publish loading cells
2017
+ */
2018
+ var publishBeginCalculation = useCallback(function (node) {
2019
+ if (initialCalculationArrayRef.current.push(node.position) === 1) {
2020
+ requestAnimationFrame(function () {
2021
+ try {
2022
+ onBeginCalculation === null || onBeginCalculation === void 0 ? void 0 : onBeginCalculation(initialCalculationArrayRef.current);
2023
+ }
2024
+ catch (err) {
2025
+ console.error("[spreadsheet-state] recalculation pass aborted:", err);
2026
+ }
2027
+ finally {
2028
+ initialCalculationArrayRef.current.length = 0;
2029
+ }
2030
+ });
2031
+ }
2032
+ }, [onBeginCalculation]);
2033
+ /**
2034
+ * Publish results back to the
2035
+ */
2036
+ var publishResults = useCallback(function (item) {
2037
+ var e_43, _a;
2038
+ try {
2039
+ for (var item_1 = __values(item), item_1_1 = item_1.next(); !item_1_1.done; item_1_1 = item_1.next()) {
2040
+ var entry = item_1_1.value;
2041
+ var _b = __read(entry, 1), key = _b[0];
2042
+ resultsQueueRef.current.set(makeKey(key), entry);
2043
+ }
2044
+ }
2045
+ catch (e_43_1) { e_43 = { error: e_43_1 }; }
2046
+ finally {
2047
+ try {
2048
+ if (item_1_1 && !item_1_1.done && (_a = item_1.return)) _a.call(item_1);
2049
+ }
2050
+ finally { if (e_43) throw e_43.error; }
2051
+ }
2052
+ if (resultsQueueRef.current.size === 0) {
2053
+ return;
2054
+ }
2055
+ if (resultsFlushPendingRef.current) {
2056
+ return;
2057
+ }
2058
+ resultsFlushPendingRef.current = true;
2059
+ var isFullRecalc = isFullRecalcRef.current;
2060
+ // The flush RAF is fire-and-forget: a throw from the host's `onSuccess`
2061
+ // used to escape to `window.onerror` as a raw uncaught exception.
2062
+ // Contain it, and clear the queue in `finally` so a throwing host
2063
+ // callback can't replay the same results on every subsequent flush.
2064
+ requestAnimationFrame(function () {
2065
+ resultsFlushPendingRef.current = false;
2066
+ if (!resultsQueueRef.current.size) {
2067
+ return;
2068
+ }
2069
+ try {
2070
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(resultsQueueRef.current.values(), isFullRecalc, {});
2071
+ }
2072
+ catch (err) {
2073
+ console.error("[spreadsheet-state] recalculation pass aborted:", err);
2074
+ }
2075
+ finally {
2076
+ resultsQueueRef.current.clear();
2077
+ isFullRecalcRef.current = false;
2078
+ }
2079
+ });
2080
+ }, [onSuccess]);
2081
+ // Immediately enqueue a calculation
2082
+ var enqueueCalculations = function (operations) {
2083
+ operations.forEach(processSingleOperation);
2084
+ };
2085
+ // Seed the calculator's array range map with a persisted spill range.
2086
+ // No-op when no spillRange is supplied or the sheet name can't be resolved.
2087
+ var seedArraySpillRange = function (position, spillRange) {
2088
+ if (!spillRange) {
2089
+ return;
2090
+ }
2091
+ var calculator = getCalculator();
2092
+ var sheetName = calculator.getSheetName(position.sheetId);
2093
+ if (!sheetName) {
2094
+ return;
2095
+ }
2096
+ calculator.setArrayRangeReference(position, {
2097
+ sheet: sheetName,
2098
+ from: {
2099
+ row: spillRange.startRowIndex,
2100
+ col: spillRange.startColumnIndex,
2101
+ },
2102
+ to: {
2103
+ row: spillRange.endRowIndex,
2104
+ col: spillRange.endColumnIndex,
2105
+ },
2106
+ });
2107
+ };
2108
+ // Process a single
2109
+ var processSingleOperation = function (operation) {
2110
+ var _a;
2111
+ var position = operation.position, type = operation.type, force = operation.force, spillRange = operation.spillRange;
2112
+ var userEnteredValue = getFinalUserEnteredValue(position);
2113
+ var isFormula = isAFormula(userEnteredValue);
2114
+ var formulaValue = isFormula
2115
+ ? (_a = String(userEnteredValue)) === null || _a === void 0 ? void 0 : _a.slice(1)
2116
+ : undefined;
2117
+ if (force) {
2118
+ var forceKey = makeKey(position);
2119
+ forceRecalcKeys.current.add(forceKey);
2120
+ forceRecalcPositions.current.set(forceKey, position);
2121
+ }
2122
+ try {
2123
+ // Add/remove to DAG
2124
+ if (isFormula && formulaValue) {
2125
+ // Does both add and update formula. Updates DAG references
2126
+ getCalculator().addFormula(formulaValue, position);
2127
+ // Seed array spill range from persisted ref so dependents pointing
2128
+ // into the spill region resolve on first load without re-eval.
2129
+ seedArraySpillRange(position, spillRange);
2130
+ // Add to ephemeral
2131
+ addToEphemeralFunction(formulaValue, position);
2132
+ }
2133
+ else if (type === "add") {
2134
+ // If user replaces a formula with static text
2135
+ // Remove old references
2136
+ getCalculator().removePrecedents(position);
2137
+ // Mark this cell as dirty
2138
+ getCalculator().markAsDirty(position);
2139
+ // Cleanup ephemeral
2140
+ removeFromEphemeralFunction(position);
2141
+ }
2142
+ else if (type === "dirty") {
2143
+ getCalculator().markAsDirty(position);
2144
+ }
2145
+ else if (type === "remove") {
2146
+ // Remove cell and mark its dependents dirty (not the cell itself)
2147
+ getCalculator().removeCellAndMarkDependentsDirty(position);
2148
+ // Remove ephemeral cells
2149
+ removeFromEphemeralFunction(position);
2150
+ }
2151
+ }
2152
+ catch (err) {
2153
+ if (isFormula) {
2154
+ // Delete formula references
2155
+ getCalculator().removeFormula(position);
2156
+ }
2157
+ // Remove all cell dependencies
2158
+ getCalculator().deleteCell(position);
2159
+ // Remove it from being executed again
2160
+ getCalculator().unMarkAsDirty(position);
2161
+ // For circular dependencies
2162
+ var errorMap = new Map([
2163
+ [makeKey(position), [position, new FormulaError("#REF!", String(err))]],
2164
+ ]);
2165
+ publishResults(errorMap.values());
2166
+ }
2167
+ };
2168
+ // Update dependency graph
2169
+ // without making cells dirty
2170
+ var processUpdateDependencyGraphOperation = useCallback(function (operation) {
2171
+ var _a;
2172
+ var position = operation.position, type = operation.type, previousPosition = operation.previousPosition, spillRange = operation.spillRange;
2173
+ var userEnteredValue = getFinalUserEnteredValue(position);
2174
+ var isFormula = isAFormula(userEnteredValue);
2175
+ var formulaValue = isFormula
2176
+ ? (_a = String(userEnteredValue)) === null || _a === void 0 ? void 0 : _a.slice(1)
2177
+ : undefined;
2178
+ // We need to move array formulas
2179
+ if (previousPosition) {
2180
+ var shouldRemoveArrayReference = false;
2181
+ var arraySideEffects = createArraySideEffectsAndGetResults({
2182
+ position: previousPosition,
2183
+ shouldRemoveArrayReference: shouldRemoveArrayReference,
2184
+ getDependents: getDependents,
2185
+ });
2186
+ if (arraySideEffects.size) {
2187
+ // Immediately publish array side effects
2188
+ publishResults(arraySideEffects.values());
2189
+ }
2190
+ if (getCalculator().isArray(previousPosition)) {
2191
+ getCalculator().shiftArrayFormula(previousPosition, position);
2192
+ }
2193
+ }
2194
+ try {
2195
+ // Add/remove to DAG
2196
+ if (isFormula && formulaValue) {
2197
+ // Does both add and update formula. Updates DAG references
2198
+ getCalculator().addFormulaToGraph(formulaValue, position);
2199
+ // Seed array spill range so dependents in the spill region resolve
2200
+ // through the DAG even though we skipped evaluation.
2201
+ seedArraySpillRange(position, spillRange);
2202
+ }
2203
+ else if (type === "remove") {
2204
+ getCalculator().removeCellFromGraph(position);
2205
+ }
2206
+ else if (type === "add") {
2207
+ // If user replaces a formula with static text
2208
+ // Remove old references
2209
+ getCalculator().removePrecendentsFromGraph(position);
2210
+ }
2211
+ }
2212
+ catch (err) {
2213
+ error("Error when updateDependencyGraphFromOperation", err);
2214
+ }
2215
+ }, [getFinalUserEnteredValue]);
2216
+ /**
2217
+ * Goes through the queue of update operations and processes them.
2218
+ *
2219
+ * Optimization: Instead of using shift() which is O(n) per call (making the
2220
+ * entire loop O(n²)), we swap the queue with an empty array and iterate
2221
+ * with a for loop. This makes the entire operation O(n).
2222
+ *
2223
+ * If new operations are enqueued during processing, they go into the new
2224
+ * empty array and will be processed in the next animation frame.
2225
+ */
2226
+ var processUpdateDependencyGraphQueue = useCallback(function () {
2227
+ // Swap queue with empty array - O(1) operation
2228
+ var operations = graphOperationQueue.current;
2229
+ if (operations.length === 0)
2230
+ return;
2231
+ graphOperationQueue.current = [];
2232
+ // Process all operations - O(n) total
2233
+ for (var i = 0; i < operations.length; i++) {
2234
+ var operation = operations[i];
2235
+ if (operation) {
2236
+ processUpdateDependencyGraphOperation(operation);
2237
+ }
2238
+ }
2239
+ }, [processUpdateDependencyGraphOperation]);
2240
+ // Add to calculation queue
2241
+ // Stable reference prevents re-render of grid
2242
+ var enqueueGraphOperation = useCallbackRef(useCallback(function (operation) {
2243
+ if (graphOperationQueue.current.push(operation) === 1) {
2244
+ requestAnimationFrame(function () {
2245
+ try {
2246
+ // Process operation queuu
2247
+ processUpdateDependencyGraphQueue();
2248
+ }
2249
+ catch (err) {
2250
+ console.error("[spreadsheet-state] recalculation pass aborted:", err);
2251
+ }
2252
+ });
2253
+ }
2254
+ }, [processUpdateDependencyGraphQueue]));
2255
+ useDeferredCalculationFlush({
2256
+ activeSheetId: enableLazyCalculation && !isNil(activeSheetId)
2257
+ ? activeSheetId
2258
+ : undefined,
2259
+ deferredOperationsBySheetRef: deferredOperationsBySheetRef,
2260
+ enqueueOperation: processSingleOperation,
2261
+ onChunkComplete: yieldToBrowser,
2262
+ onFlushComplete: startCalculation,
2263
+ });
2264
+ // Get all precendets of a cell
2265
+ var getPrecedents = useCallback(function (source, includeSource) {
2266
+ return getCalculator()
2267
+ .getPrecedents(source)
2268
+ .filter(
2269
+ // Ignore source
2270
+ function (node) {
2271
+ if (isStaticNode(node)) {
2272
+ return true;
2273
+ }
2274
+ // After isStaticNode early-return, node is CellNode or
2275
+ // CellRangeNode — both have a defined position. The cast
2276
+ // bridges a TS narrowing limitation across the union.
2277
+ var pos = node.position;
2278
+ if (!includeSource &&
2279
+ isCellCoordinate(pos) &&
2280
+ isCellCoordinate(source)) {
2281
+ return !isEqualPosition(pos, source);
2282
+ }
2283
+ if (includeSource &&
2284
+ !isCellCoordinate(pos) &&
2285
+ !isCellCoordinate(source)) {
2286
+ return !isAreasEqual(pos, source);
2287
+ }
2288
+ return true;
2289
+ });
2290
+ }, []);
2291
+ // Get precedents from formula string
2292
+ // Does not check with DAG
2293
+ var getPrecedentsFromFormulaString = useCallback(function (value, source) {
2294
+ var e_44, _a;
2295
+ var dependencies = getCalculator().dependencies(value, source);
2296
+ var nodes = [];
2297
+ try {
2298
+ for (var dependencies_2 = __values(dependencies), dependencies_2_1 = dependencies_2.next(); !dependencies_2_1.done; dependencies_2_1 = dependencies_2.next()) {
2299
+ var pos = dependencies_2_1.value;
2300
+ if (isStaticReference(pos)) {
2301
+ // Named-range static reference. Build a StaticNode shape
2302
+ // — caller treats it as a non-cell precedent.
2303
+ nodes.push(new StaticNode(makeKey(pos)));
2304
+ }
2305
+ else if (isCellCoordinate(pos)) {
2306
+ nodes.push(new CellNode(makeKey(pos), pos));
2307
+ }
2308
+ else {
2309
+ nodes.push(new CellRangeNode(makeKey(pos), pos));
2310
+ }
2311
+ }
2312
+ }
2313
+ catch (e_44_1) { e_44 = { error: e_44_1 }; }
2314
+ finally {
2315
+ try {
2316
+ if (dependencies_2_1 && !dependencies_2_1.done && (_a = dependencies_2.return)) _a.call(dependencies_2);
2317
+ }
2318
+ finally { if (e_44) throw e_44.error; }
2319
+ }
2320
+ return nodes;
2321
+ }, []);
2322
+ // Is array formula
2323
+ var isArrayFormula = useCallbackRef(useCallback(function (position) {
2324
+ return (getCalculator().isArray(position) ||
2325
+ getCalculator().isInArrayRange(position));
2326
+ }, []));
2327
+ // Get all dependents of a cell. Returns a mixed list — narrow with
2328
+ // the `isCellNode`/`isStaticNode` helpers at call sites (NOT
2329
+ // `instanceof`, which breaks across bundler module instances).
2330
+ var getDependents = useCallback(function (source, includeSource) {
2331
+ return getCalculator()
2332
+ .getDependents(source)
2333
+ .filter(
2334
+ // Ignore source
2335
+ function (node) {
2336
+ if (isStaticNode(node)) {
2337
+ return true;
2338
+ }
2339
+ // Array formulas
2340
+ if (isArrayFormula(node.position)) {
2341
+ return true;
2342
+ }
2343
+ // For cell range
2344
+ if (!includeSource && isCellRangeNode(node)) {
2345
+ return !isAreasEqual(node.position, source);
2346
+ }
2347
+ if (!includeSource &&
2348
+ isCellCoordinate(source) &&
2349
+ isCellNode(node)) {
2350
+ return (node.position.rowIndex !== source.rowIndex ||
2351
+ node.position.columnIndex !== source.columnIndex);
2352
+ }
2353
+ return true;
2354
+ });
2355
+ }, [isArrayFormula]);
2356
+ /**
2357
+ * Process the calculation operation queue.
2358
+ *
2359
+ * Optimization: Instead of using shift() which is O(n) per call (making the
2360
+ * entire loop O(n²)), we swap the queue with an empty array and iterate
2361
+ * with a for loop. This makes the entire operation O(n).
2362
+ *
2363
+ * If new operations are enqueued during processing (via processSingleOperation),
2364
+ * they go into the new empty array and will trigger a new requestAnimationFrame
2365
+ * via the enqueue logic.
2366
+ */
2367
+ var processOperationQueue = useCallback(function () {
2368
+ var e_45, _a, e_46, _b, e_47, _c, e_48, _d;
2369
+ // Swap queue with empty array - O(1) operation
2370
+ var operations = operationQueue.current;
2371
+ if (operations.length === 0)
2372
+ return;
2373
+ operationQueue.current = [];
2374
+ // Process all operations - O(n) total
2375
+ for (var i = 0; i < operations.length; i++) {
2376
+ var operation = operations[i];
2377
+ if (operation) {
2378
+ var clearedArrayRange = operation.type !== "dirty" && isArrayFormula(operation.position)
2379
+ ? getCalculator().getArrayRange(operation.position)
2380
+ : undefined;
2381
+ if (operation.type === "remove") {
2382
+ // Only publish undefined result for formulas or array formulas
2383
+ // Static cells don't need calculation results
2384
+ var userEnteredValue = getFinalUserEnteredValue(operation.position);
2385
+ if (isAFormula(userEnteredValue) ||
2386
+ isArrayFormula(operation.position)) {
2387
+ initialArrayResults.current.set(makeKey(operation.position), [
2388
+ operation.position,
2389
+ undefined,
2390
+ ]);
2391
+ }
2392
+ }
2393
+ if (operation.type !== "dirty" && isArrayFormula(operation.position)) {
2394
+ var parentCandidates = new Map();
2395
+ try {
2396
+ for (var _e = (e_45 = void 0, __values(createArraySideEffectsAndGetResults({
2397
+ position: operation.position,
2398
+ getDependents: getDependents,
2399
+ }))), _f = _e.next(); !_f.done; _f = _e.next()) {
2400
+ var _g = __read(_f.value, 2), key = _g[0], value = _g[1];
2401
+ initialArrayResults.current.set(key, value);
2402
+ var _h = __read(value, 1), cellPosition = _h[0];
2403
+ var parent_1 = getCalculator().getClosestArrayParentCell(cellPosition);
2404
+ if (parent_1 &&
2405
+ !isEqualPosition(parent_1, cellPosition) &&
2406
+ !isEqualPosition(parent_1, operation.position)) {
2407
+ parentCandidates.set(makeKey(parent_1), parent_1);
2408
+ }
2409
+ }
2410
+ }
2411
+ catch (e_45_1) { e_45 = { error: e_45_1 }; }
2412
+ finally {
2413
+ try {
2414
+ if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
2415
+ }
2416
+ finally { if (e_45) throw e_45.error; }
2417
+ }
2418
+ try {
2419
+ for (var _j = (e_46 = void 0, __values(parentCandidates.values())), _k = _j.next(); !_k.done; _k = _j.next()) {
2420
+ var parent_2 = _k.value;
2421
+ getCalculator().markAsDirty(parent_2);
2422
+ }
2423
+ }
2424
+ catch (e_46_1) { e_46 = { error: e_46_1 }; }
2425
+ finally {
2426
+ try {
2427
+ if (_k && !_k.done && (_b = _j.return)) _b.call(_j);
2428
+ }
2429
+ finally { if (e_46) throw e_46.error; }
2430
+ }
2431
+ if (clearedArrayRange) {
2432
+ try {
2433
+ for (var _l = (e_47 = void 0, __values(getCalculator().arrayRangeMap)), _m = _l.next(); !_m.done; _m = _l.next()) {
2434
+ var _o = __read(_m.value, 2), key = _o[0], range = _o[1];
2435
+ if (!rangesOverlap(range, clearedArrayRange)) {
2436
+ continue;
2437
+ }
2438
+ var anchor = getCalculator().arrayReferenceMap.get(key);
2439
+ if (anchor && !isEqualPosition(anchor, operation.position)) {
2440
+ getCalculator().markAsDirty(anchor);
2441
+ }
2442
+ }
2443
+ }
2444
+ catch (e_47_1) { e_47 = { error: e_47_1 }; }
2445
+ finally {
2446
+ try {
2447
+ if (_m && !_m.done && (_c = _l.return)) _c.call(_l);
2448
+ }
2449
+ finally { if (e_47) throw e_47.error; }
2450
+ }
2451
+ }
2452
+ }
2453
+ var arrayParent = getCalculator().getClosestArrayParentCell(operation.position);
2454
+ if (arrayParent && !isEqualPosition(arrayParent, operation.position)) {
2455
+ try {
2456
+ for (var _p = (e_48 = void 0, __values(createArraySideEffectsAndGetResults({
2457
+ position: arrayParent,
2458
+ shouldRemoveArrayReference: false,
2459
+ getDependents: getDependents,
2460
+ }))), _q = _p.next(); !_q.done; _q = _p.next()) {
2461
+ var _r = __read(_q.value, 2), key = _r[0], value = _r[1];
2462
+ initialArrayResults.current.set(key, value);
2463
+ }
2464
+ }
2465
+ catch (e_48_1) { e_48 = { error: e_48_1 }; }
2466
+ finally {
2467
+ try {
2468
+ if (_q && !_q.done && (_d = _p.return)) _d.call(_p);
2469
+ }
2470
+ finally { if (e_48) throw e_48.error; }
2471
+ }
2472
+ }
2473
+ // Backend driven
2474
+ // When a backend sets a effective value of a formula
2475
+ // Only update the dependent cells.
2476
+ // This can be removed if the agent can do cell dependency computation
2477
+ // And update the changed cells in the back-end
2478
+ if (operation.source === "backend") {
2479
+ var graph = getCalculator().graph;
2480
+ var hasRanges = graph.ranges.size > 0;
2481
+ var shouldResolveDependents = hasRanges;
2482
+ if (!hasRanges) {
2483
+ if (graph.hasNode(operation.position)) {
2484
+ var node = graph.getNode(operation.position);
2485
+ shouldResolveDependents = node.dependentKeys.size > 0;
2486
+ }
2487
+ else {
2488
+ shouldResolveDependents = false;
2489
+ }
2490
+ }
2491
+ if (!shouldResolveDependents) {
2492
+ continue;
2493
+ }
2494
+ var dependents = getDependents(operation.position);
2495
+ dependents.forEach(function (dependent) {
2496
+ if (isCellNode(dependent)) {
2497
+ // CellNode.position is always defined — assertion to
2498
+ // bridge a TS narrowing limitation across the union.
2499
+ processSingleOperation({
2500
+ type: "dirty",
2501
+ position: dependent.position,
2502
+ });
2503
+ }
2504
+ });
2505
+ }
2506
+ else {
2507
+ // Process operation
2508
+ processSingleOperation(operation);
2509
+ }
2510
+ }
2511
+ }
2512
+ }, [
2513
+ createArraySideEffectsAndGetResults,
2514
+ getDependents,
2515
+ processSingleOperation,
2516
+ ]);
2517
+ // Add to calculation queue
2518
+ // Stable reference prevents re-render of grid
2519
+ var enqueueCalculation = useCallbackRef(useCallback(function (operation) {
2520
+ if (operationQueue.current.push(operation) === 1) {
2521
+ // The RAF callback runs the queue processing + initial publish
2522
+ // synchronously, so a throw here escapes straight to
2523
+ // `window.onerror` (the `$exception` twin of the fire-and-forget
2524
+ // rejection guarded in `startCalculation`). Contain it the same
2525
+ // way: abort this pass, leave the queue for the next trigger.
2526
+ requestAnimationFrame(function () {
2527
+ var _a;
2528
+ try {
2529
+ var hasValueAffectingNonEphemeralOp = operationQueue.current.some(function (queued) {
2530
+ return !ephemeralCellsRef.current.has(makeKey(queued.position));
2531
+ });
2532
+ if (hasValueAffectingNonEphemeralOp) {
2533
+ // Add ephemeral functions
2534
+ (_a = operationQueue.current).push.apply(_a, __spreadArray([], __read(getEphemeralCells()), false));
2535
+ }
2536
+ // Process operation queuu
2537
+ processOperationQueue();
2538
+ var initialResults = initialArrayResults.current;
2539
+ var shouldPublishInitialResults = initialResults.size > 0;
2540
+ if (shouldPublishInitialResults) {
2541
+ initialArrayResults.current = new Map();
2542
+ publishResults(initialResults.values());
2543
+ requestAnimationFrame(function () {
2544
+ scheduleStartCalculation();
2545
+ });
2546
+ return;
2547
+ }
2548
+ // Start calculation
2549
+ scheduleStartCalculation(initialResults);
2550
+ }
2551
+ catch (err) {
2552
+ console.error("[spreadsheet-state] recalculation pass aborted:", err);
2553
+ }
2554
+ });
2555
+ }
2556
+ }, [processOperationQueue, processSingleOperation, scheduleStartCalculation]));
2557
+ // Delete all sheet references
2558
+ var deleteSheetReferences = useCallback(function (sheetId) {
2559
+ return getCalculator().deleteSheet(sheetId);
2560
+ }, []);
2561
+ var enqueueStructureChange = useCallbackRef(useCallback(function (change) {
2562
+ var range = getInvalidationRangeFromStructureChange(change);
2563
+ if (!range) {
2564
+ return;
2565
+ }
2566
+ getCalculator().invalidateCacheForRange(range.sheetId, range.startRowIndex, range.startColumnIndex, range.endRowIndex, range.endColumnIndex);
2567
+ }, []));
2568
+ var clearRangeCache = useCallbackRef(useCallback(function () {
2569
+ getCalculator().clearRangeCache();
2570
+ }, []));
2571
+ // Used for formula preview
2572
+ var onRequestCalculate = useCallback(function (value, sheetId, rowIndex, columnIndex, options) { return __awaiter(void 0, void 0, void 0, function () {
2573
+ var isArray, disablePreview, skipOnDemand, previousOverrides, position, precedents, isCircular, isPreview, err_4;
2574
+ var _a, _b, _c, _d, _e;
2575
+ return __generator(this, function (_f) {
2576
+ switch (_f.label) {
2577
+ case 0:
2578
+ isArray = (_a = options === null || options === void 0 ? void 0 : options.isArray) !== null && _a !== void 0 ? _a : false;
2579
+ disablePreview = (_b = options === null || options === void 0 ? void 0 : options.disablePreview) !== null && _b !== void 0 ? _b : false;
2580
+ skipOnDemand = (_c = options === null || options === void 0 ? void 0 : options.skipOnDemand) !== null && _c !== void 0 ? _c : true;
2581
+ if (skipOnDemand && onDemandPattern) {
2582
+ onDemandPattern.lastIndex = 0;
2583
+ }
2584
+ if (skipOnDemand && isAFormula(value) && (onDemandPattern === null || onDemandPattern === void 0 ? void 0 : onDemandPattern.test(value))) {
2585
+ return [2 /*return*/, undefined];
2586
+ }
2587
+ previousOverrides = overridesRef.current;
2588
+ overridesRef.current = (_d = options === null || options === void 0 ? void 0 : options.overrides) !== null && _d !== void 0 ? _d : null;
2589
+ position = { sheetId: sheetId, rowIndex: rowIndex, columnIndex: columnIndex };
2590
+ _f.label = 1;
2591
+ case 1:
2592
+ _f.trys.push([1, 3, 4, 5]);
2593
+ if (((_e = iterativeCalculationRef.current) === null || _e === void 0 ? void 0 : _e.enabled) &&
2594
+ isAFormula(value) &&
2595
+ !disablePreview) {
2596
+ precedents = getPrecedentsFromFormulaString(value.slice(1), position);
2597
+ isCircular = precedents.some(function (node) {
2598
+ var range = node.position;
2599
+ // Named-range static nodes have no grid position — they
2600
+ // can't be a circular self-reference.
2601
+ if (!range)
2602
+ return false;
2603
+ if ("rowIndex" in range) {
2604
+ return (range.sheetId === sheetId &&
2605
+ range.rowIndex === rowIndex &&
2606
+ range.columnIndex === columnIndex);
2607
+ }
2608
+ return (range.sheetId === sheetId &&
2609
+ rowIndex >= range.startRowIndex &&
2610
+ rowIndex <= range.endRowIndex &&
2611
+ columnIndex >= range.startColumnIndex &&
2612
+ columnIndex <= range.endColumnIndex);
2613
+ });
2614
+ if (isCircular) {
2615
+ return [2 /*return*/, undefined];
2616
+ }
2617
+ }
2618
+ isPreview = true;
2619
+ return [4 /*yield*/, getCalculator().calculate(value.slice(1), position, isArray, isPreview, disablePreview)];
2620
+ case 2: return [2 /*return*/, _f.sent()];
2621
+ case 3:
2622
+ err_4 = _f.sent();
2623
+ // Formula errors (#NAME?, #REF!, …) are values, not
2624
+ // exceptions — the recalc loop stores them as cell values,
2625
+ // and fire-and-forget preview callers (charts, status bar,
2626
+ // filter-by-condition) have no rejection handler, so a throw
2627
+ // here escapes as an unhandled promise rejection.
2628
+ if (err_4 instanceof FormulaError) {
2629
+ return [2 /*return*/, err_4];
2630
+ }
2631
+ throw err_4;
2632
+ case 4:
2633
+ overridesRef.current = previousOverrides !== null && previousOverrides !== void 0 ? previousOverrides : null;
2634
+ return [7 /*endfinally*/];
2635
+ case 5: return [2 /*return*/];
2636
+ }
2637
+ });
2638
+ }); }, []);
2639
+ // Get all nodes from calculator
2640
+ var getGraphNodes = useCallback(function () {
2641
+ return getCalculator().graph.nodes;
2642
+ }, []);
2643
+ // Get sheet-bound nodes from the per-sheet bucket. Cheaper than
2644
+ // `getGraphNodes()` for callers that only care about a single sheet —
2645
+ // structural ops use this for the formula-cell sweep so cost scales with
2646
+ // `nodes_in_sheet` rather than `nodes_in_workbook`.
2647
+ var getGraphNodesInSheet = useCallback(function (sheetId) {
2648
+ return getCalculator().graph.getNodesInSheet(sheetId);
2649
+ }, []);
2650
+ // Add a static reference
2651
+ var addStaticReference = useCallback(function (source, sourcePosition) {
2652
+ return getCalculator().addStaticReference(source, sourcePosition);
2653
+ }, []);
2654
+ var addFormulaToGraph = useCallbackRef(useCallback(function (formulaValue, position) {
2655
+ if (!formulaValue) {
2656
+ return;
2657
+ }
2658
+ getCalculator().addFormulaToGraph(formulaValue, position);
2659
+ }, []));
2660
+ // Remove static reference
2661
+ var removeStaticReference = useCallback(function (source) {
2662
+ return getCalculator().removeStaticReference(source);
2663
+ }, []);
2664
+ // Reset calculator
2665
+ var onResetCalculator = useCallbackRef(useCallback(function () {
2666
+ isFullRecalcRef.current = true;
2667
+ // Reset graph
2668
+ getCalculator().graph.reset();
2669
+ getCalculator().arrayRangeMap.clear();
2670
+ getCalculator().arrayRangeMap.clear();
2671
+ }, []));
2672
+ /**
2673
+ * Get dependency graph
2674
+ */
2675
+ var getDependencyGraph = useCallbackRef(useCallback(function () {
2676
+ return getCalculator().graph.toJSON();
2677
+ }, []));
2678
+ // Update dependency graph
2679
+ var updateDependencyGraph = useCallbackRef(useCallback(function (nodes) {
2680
+ // Reset graph
2681
+ getCalculator().graph.reset();
2682
+ // Update graph
2683
+ getCalculator().graph.fromJSON(JSON.parse(nodes));
2684
+ }, []));
2685
+ var noopCalculationApi = useMemo(function () { return ({
2686
+ enqueueCalculation: function () { },
2687
+ enqueueGraphOperation: function () { },
2688
+ getPrecedents: function () { return []; },
2689
+ getPrecedentsFromFormulaString: function () { return []; },
2690
+ getDependents: function () { return []; },
2691
+ enqueueStructureChange: function () { },
2692
+ clearRangeCache: function () { },
2693
+ deleteSheetReferences: function () { },
2694
+ onRequestCalculate: function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
2695
+ return [2 /*return*/, undefined];
2696
+ }); }); },
2697
+ getGraphNodes: function () { return new Map(); },
2698
+ getGraphNodesInSheet: function () { return undefined; },
2699
+ addStaticReference: function () { },
2700
+ addFormulaToGraph: function () { },
2701
+ removeStaticReference: function () { },
2702
+ onResetCalculator: function () { },
2703
+ getDependencyGraph: function () { return "[]"; },
2704
+ updateDependencyGraph: function () { },
2705
+ isArrayFormula: function () { return false; },
2706
+ applyNamedRanges: function (_list) { },
2707
+ }); }, []);
2708
+ var api = {
2709
+ enqueueCalculation: enqueueCalculation,
2710
+ enqueueGraphOperation: enqueueGraphOperation,
2711
+ getPrecedents: getPrecedents,
2712
+ getPrecedentsFromFormulaString: getPrecedentsFromFormulaString,
2713
+ getDependents: getDependents,
2714
+ enqueueStructureChange: enqueueStructureChange,
2715
+ clearRangeCache: clearRangeCache,
2716
+ deleteSheetReferences: deleteSheetReferences,
2717
+ onRequestCalculate: onRequestCalculate,
2718
+ getGraphNodes: getGraphNodes,
2719
+ getGraphNodesInSheet: getGraphNodesInSheet,
2720
+ addStaticReference: addStaticReference,
2721
+ addFormulaToGraph: addFormulaToGraph,
2722
+ removeStaticReference: removeStaticReference,
2723
+ onResetCalculator: onResetCalculator,
2724
+ getDependencyGraph: getDependencyGraph,
2725
+ updateDependencyGraph: updateDependencyGraph,
2726
+ isArrayFormula: isArrayFormula,
2727
+ // Phase 9 — exposed so `useCalculationInitialize` can guarantee
2728
+ // named ranges are registered BEFORE cell formulas are parsed
2729
+ // (otherwise cells using a named range would form no DAG edge
2730
+ // to its static node — Excel registers names workbook-wide
2731
+ // before any cell evaluates).
2732
+ applyNamedRanges: applyNamedRanges,
2733
+ };
2734
+ return enabled ? api : noopCalculationApi;
2735
+ };