@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,1633 @@
1
+ import { __assign, __generator, __read, __values } from "tslib";
2
+ import { isStaticNode } from "@rowsncolumns/dag";
3
+ import { isCellCoordinate } from "@rowsncolumns/dag";
4
+ import { tokenVocabulary } from "@rowsncolumns/fast-formula-parser";
5
+ import { addressToCell, desanitizeSheetName, getDefaultDateFormat, getDefaultDateTimeFormat, getDefaultTimeFormat, isNil, } from "@rowsncolumns/utils";
6
+ import { defaultCellCoords, SheetCell } from "../sheet-cell";
7
+ import { changeDecimals, getCurrentDecimalCountInPattern, getDecimalPlaces, } from "./decimals";
8
+ export var createSheetDraft = function (draft, sheetId, rowIndex) {
9
+ var _a;
10
+ // Get sheet reference once
11
+ var sheet = draft[sheetId];
12
+ if (!sheet) {
13
+ sheet = draft[sheetId] = [];
14
+ }
15
+ if (!isNil(rowIndex)) {
16
+ // Direct assignment, single proxy access
17
+ if (!((_a = sheet[rowIndex]) === null || _a === void 0 ? void 0 : _a.values)) {
18
+ sheet[rowIndex] = { values: [] };
19
+ }
20
+ }
21
+ return sheet;
22
+ };
23
+ // Clone entire row
24
+ export var cloneRowWithFormatting = function (rowData) {
25
+ var _a;
26
+ if (!rowData) {
27
+ return { values: [] };
28
+ }
29
+ var sheetCell = new SheetCell();
30
+ var values = (_a = rowData === null || rowData === void 0 ? void 0 : rowData.values) === null || _a === void 0 ? void 0 : _a.map(function (cellData) {
31
+ sheetCell.assign(1, defaultCellCoords, cellData);
32
+ return sheetCell.cloneWithFormatting().getCellData();
33
+ });
34
+ return {
35
+ values: values,
36
+ };
37
+ };
38
+ // Clone cell
39
+ export var cloneCellWithFormatting = function (celLData) {
40
+ var sheetCell = new SheetCell(1, defaultCellCoords, celLData);
41
+ return sheetCell.cloneWithFormatting().getCellData();
42
+ };
43
+ /**
44
+ * "Generic" precedent types — these don't carry styling intent so a
45
+ * later, more specific format can override them. Used by the
46
+ * first-specific-wins merging rule in `processPrecedentCell`.
47
+ */
48
+ var isGenericNumberFormatType = function (type) { return !type || type === "NUMBER" || type === "GENERAL"; };
49
+ /**
50
+ * Date-family types — when the derived (resolved) type is one of these
51
+ * and the precedent's type is also in this set, we preserve the
52
+ * precedent's exact custom pattern instead of synthesizing a locale
53
+ * default. Mirrors Excel's behaviour for date-arithmetic functions
54
+ * (EDATE, EOMONTH, …) where `=EDATE(A1, 1)` keeps A1's custom pattern.
55
+ */
56
+ var isDateFamilyType = function (type) { return type === "DATE" || type === "TIME" || type === "DATE_TIME"; };
57
+ var customNumberFormatMap = {
58
+ COUNT: "NUMBER",
59
+ };
60
+ var formatDerivationRules = {
61
+ SUMIFS: { type: "fixed_index", index: 0 },
62
+ AVERAGEIFS: { type: "fixed_index", index: 0 },
63
+ MINIFS: { type: "fixed_index", index: 0 },
64
+ MAXIFS: { type: "fixed_index", index: 0 },
65
+ FILTER: { type: "fixed_index", index: 0 },
66
+ XLOOKUP: { type: "fixed_index", index: 2 },
67
+ INDEX: { type: "fixed_index", index: 0 },
68
+ SORT: { type: "fixed_index", index: 0 },
69
+ SORTBY: { type: "fixed_index", index: 0 },
70
+ UNIQUE: { type: "fixed_index", index: 0 },
71
+ TAKE: { type: "fixed_index", index: 0 },
72
+ DROP: { type: "fixed_index", index: 0 },
73
+ TOCOL: { type: "fixed_index", index: 0 },
74
+ TOROW: { type: "fixed_index", index: 0 },
75
+ WRAPROWS: { type: "fixed_index", index: 0 },
76
+ WRAPCOLS: { type: "fixed_index", index: 0 },
77
+ CHOOSECOLS: { type: "fixed_index", index: 0 },
78
+ CHOOSEROWS: { type: "fixed_index", index: 0 },
79
+ TRANSPOSE: { type: "fixed_index", index: 0 },
80
+ SUMIF: {
81
+ type: "conditional_index",
82
+ getIndex: function (count) { return (count >= 3 ? 2 : 0); },
83
+ },
84
+ AVERAGEIF: {
85
+ type: "conditional_index",
86
+ getIndex: function (count) { return (count >= 3 ? 2 : 0); },
87
+ },
88
+ VLOOKUP: { type: "vlookup", tableIndex: 1, colIndexArg: 2 },
89
+ HLOOKUP: { type: "hlookup", tableIndex: 1, rowIndexArg: 2 },
90
+ // Statistical functions that inherit format from their data array.
91
+ // Excel renders `MEDIAN(currency_range)` etc. with the data's
92
+ // format. All take the data array as the first arg.
93
+ MEDIAN: { type: "fixed_index", index: 0 },
94
+ MODE: { type: "fixed_index", index: 0 },
95
+ "MODE.SNGL": { type: "fixed_index", index: 0 },
96
+ "MODE.MULT": { type: "fixed_index", index: 0 },
97
+ PERCENTILE: { type: "fixed_index", index: 0 },
98
+ "PERCENTILE.INC": { type: "fixed_index", index: 0 },
99
+ "PERCENTILE.EXC": { type: "fixed_index", index: 0 },
100
+ QUARTILE: { type: "fixed_index", index: 0 },
101
+ "QUARTILE.INC": { type: "fixed_index", index: 0 },
102
+ "QUARTILE.EXC": { type: "fixed_index", index: 0 },
103
+ LARGE: { type: "fixed_index", index: 0 },
104
+ SMALL: { type: "fixed_index", index: 0 },
105
+ TRIMMEAN: { type: "fixed_index", index: 0 },
106
+ GEOMEAN: { type: "fixed_index", index: 0 },
107
+ HARMEAN: { type: "fixed_index", index: 0 },
108
+ AVERAGEA: { type: "fixed_index", index: 0 },
109
+ MINA: { type: "fixed_index", index: 0 },
110
+ MAXA: { type: "fixed_index", index: 0 },
111
+ // VAR and STDEV: Excel keeps the data format on display (units are a
112
+ // formatting concern, not a value-unit concern). VAR is technically
113
+ // squared, but spreadsheets don't track units — match Excel.
114
+ VAR: { type: "fixed_index", index: 0 },
115
+ "VAR.S": { type: "fixed_index", index: 0 },
116
+ "VAR.P": { type: "fixed_index", index: 0 },
117
+ VARA: { type: "fixed_index", index: 0 },
118
+ VARPA: { type: "fixed_index", index: 0 },
119
+ STDEV: { type: "fixed_index", index: 0 },
120
+ "STDEV.S": { type: "fixed_index", index: 0 },
121
+ "STDEV.P": { type: "fixed_index", index: 0 },
122
+ STDEVA: { type: "fixed_index", index: 0 },
123
+ STDEVPA: { type: "fixed_index", index: 0 },
124
+ // FORECAST(x, known_ys, known_xs) — inherits from y values (index 1).
125
+ FORECAST: { type: "fixed_index", index: 1 },
126
+ "FORECAST.LINEAR": { type: "fixed_index", index: 1 },
127
+ "FORECAST.ETS": { type: "fixed_index", index: 1 },
128
+ // Financial functions — inherit CURRENCY from the principal arg
129
+ // (matches Excel's behaviour where `=PMT(rate, n, pv)` on a currency
130
+ // principal renders as currency). Arg positions reference the
131
+ // standard Excel signatures.
132
+ PMT: { type: "fixed_index", index: 2 }, // PMT(rate, nper, pv, [fv], [type])
133
+ PV: { type: "fixed_index", index: 2 }, // PV(rate, nper, pmt, [fv], [type])
134
+ FV: { type: "fixed_index", index: 2 }, // FV(rate, nper, pmt, [pv], [type])
135
+ NPV: { type: "fixed_index", index: 1 }, // NPV(rate, value1, ...)
136
+ XNPV: { type: "fixed_index", index: 1 }, // XNPV(rate, values, dates)
137
+ IPMT: { type: "fixed_index", index: 3 }, // IPMT(rate, per, nper, pv, [fv], [type])
138
+ PPMT: { type: "fixed_index", index: 3 }, // PPMT(rate, per, nper, pv, [fv], [type])
139
+ CUMIPMT: { type: "fixed_index", index: 2 }, // CUMIPMT(rate, nper, pv, start, end, type)
140
+ CUMPRINC: { type: "fixed_index", index: 2 }, // CUMPRINC(rate, nper, pv, start, end, type)
141
+ DDB: { type: "fixed_index", index: 0 }, // DDB(cost, salvage, life, period, [factor])
142
+ SLN: { type: "fixed_index", index: 0 }, // SLN(cost, salvage, life)
143
+ SYD: { type: "fixed_index", index: 0 }, // SYD(cost, salvage, life, per)
144
+ DB: { type: "fixed_index", index: 0 }, // DB(cost, salvage, life, period, [month])
145
+ };
146
+ var functionReturnTypes = {
147
+ // ─── Date/time — extractors (return scalar numbers) ────────────────
148
+ MONTH: "NUMBER",
149
+ YEAR: "NUMBER",
150
+ DAY: "NUMBER",
151
+ DAYS: "NUMBER",
152
+ HOUR: "NUMBER",
153
+ MINUTE: "NUMBER",
154
+ SECOND: "NUMBER",
155
+ WEEKDAY: "NUMBER",
156
+ WEEKNUM: "NUMBER",
157
+ ISOWEEKNUM: "NUMBER",
158
+ YEARFRAC: "NUMBER",
159
+ DATEDIF: "NUMBER",
160
+ DATEVALUE: "NUMBER",
161
+ TIMEVALUE: "NUMBER",
162
+ NETWORKDAYS: "NUMBER",
163
+ "NETWORKDAYS.INTL": "NUMBER",
164
+ DAYS360: "NUMBER",
165
+ // ─── Date/time — date producers (must render as DATE/TIME/DATE_TIME) ─
166
+ NOW: "DATE_TIME",
167
+ TODAY: "DATE",
168
+ DATE: "DATE",
169
+ TIME: "TIME",
170
+ EDATE: "DATE",
171
+ EOMONTH: "DATE",
172
+ // WORKDAY returns a date serial number — must render as DATE, not
173
+ // raw NUMBER (was a bug: cells showed e.g. "45292" instead of the
174
+ // calendar date).
175
+ WORKDAY: "DATE",
176
+ "WORKDAY.INTL": "DATE",
177
+ // ─── Aggregation / rounding (return NUMBER; CURRENCY precedent
178
+ // preserved via the "expectedOutputType === NUMBER + numFormat
179
+ // CURRENCY → keep numFormat" branch) ──────────────────────────
180
+ SUM: "NUMBER",
181
+ SUMPRODUCT: "NUMBER",
182
+ SUMSQ: "NUMBER",
183
+ ROUND: "NUMBER",
184
+ ROUNDUP: "NUMBER",
185
+ ROUNDDOWN: "NUMBER",
186
+ TRUNC: "NUMBER",
187
+ QUOTIENT: "NUMBER",
188
+ CEILING: "NUMBER",
189
+ FLOOR: "NUMBER",
190
+ MROUND: "NUMBER",
191
+ INT: "NUMBER",
192
+ MOD: "NUMBER",
193
+ // ─── Math/trig (return scalar NUMBER) ──────────────────────────────
194
+ POWER: "NUMBER",
195
+ SQRT: "NUMBER",
196
+ EXP: "NUMBER",
197
+ LN: "NUMBER",
198
+ LOG: "NUMBER",
199
+ LOG10: "NUMBER",
200
+ SIGN: "NUMBER",
201
+ SIN: "NUMBER",
202
+ COS: "NUMBER",
203
+ TAN: "NUMBER",
204
+ ASIN: "NUMBER",
205
+ ACOS: "NUMBER",
206
+ ATAN: "NUMBER",
207
+ ATAN2: "NUMBER",
208
+ SINH: "NUMBER",
209
+ COSH: "NUMBER",
210
+ TANH: "NUMBER",
211
+ ASINH: "NUMBER",
212
+ ACOSH: "NUMBER",
213
+ ATANH: "NUMBER",
214
+ DEGREES: "NUMBER",
215
+ RADIANS: "NUMBER",
216
+ PI: "NUMBER",
217
+ FACT: "NUMBER",
218
+ FACTDOUBLE: "NUMBER",
219
+ COMBIN: "NUMBER",
220
+ COMBINA: "NUMBER",
221
+ PERMUT: "NUMBER",
222
+ PERMUTATIONA: "NUMBER",
223
+ GCD: "NUMBER",
224
+ LCM: "NUMBER",
225
+ // ─── Random/value conversion ───────────────────────────────────────
226
+ RAND: "NUMBER",
227
+ RANDBETWEEN: "NUMBER",
228
+ VALUE: "NUMBER",
229
+ N: "NUMBER",
230
+ // ─── Statistical — scalar results (NUMBER) ─────────────────────────
231
+ AVEDEV: "NUMBER",
232
+ DEVSQ: "NUMBER",
233
+ KURT: "NUMBER",
234
+ SKEW: "NUMBER",
235
+ "SKEW.P": "NUMBER",
236
+ COVAR: "NUMBER",
237
+ "COVARIANCE.S": "NUMBER",
238
+ "COVARIANCE.P": "NUMBER",
239
+ CORREL: "NUMBER",
240
+ RSQ: "NUMBER",
241
+ SLOPE: "NUMBER",
242
+ INTERCEPT: "NUMBER",
243
+ STEYX: "NUMBER",
244
+ PEARSON: "NUMBER",
245
+ // ─── Financial — rate/period scalars (NUMBER); CURRENCY-returning
246
+ // financial functions live in `formatDerivationRules` instead ──
247
+ XIRR: "NUMBER",
248
+ IRR: "NUMBER",
249
+ MIRR: "NUMBER",
250
+ RATE: "NUMBER",
251
+ NPER: "NUMBER",
252
+ EFFECT: "NUMBER",
253
+ NOMINAL: "NUMBER",
254
+ // ─── Counts & positions (COUNT, displays as NUMBER) ────────────────
255
+ MATCH: "COUNT",
256
+ XMATCH: "COUNT",
257
+ COUNT: "COUNT",
258
+ COUNTA: "COUNT",
259
+ COUNTBLANK: "COUNT",
260
+ COUNTIF: "COUNT",
261
+ COUNTIFS: "COUNT",
262
+ ROW: "COUNT",
263
+ ROWS: "COUNT",
264
+ COLUMN: "COUNT",
265
+ COLUMNS: "COUNT",
266
+ RANK: "COUNT",
267
+ "RANK.EQ": "COUNT",
268
+ "RANK.AVG": "COUNT",
269
+ FREQUENCY: "COUNT",
270
+ LEN: "COUNT",
271
+ SEARCH: "COUNT",
272
+ SEARCHB: "COUNT",
273
+ FIND: "COUNT",
274
+ FINDB: "COUNT",
275
+ // ─── Text producers ─────────────────────────────────────────────────
276
+ TEXT: "TEXT",
277
+ LEFT: "TEXT",
278
+ LEFTB: "TEXT",
279
+ RIGHT: "TEXT",
280
+ RIGHTB: "TEXT",
281
+ MID: "TEXT",
282
+ MIDB: "TEXT",
283
+ LOWER: "TEXT",
284
+ UPPER: "TEXT",
285
+ PROPER: "TEXT",
286
+ TRIM: "TEXT",
287
+ CLEAN: "TEXT",
288
+ SUBSTITUTE: "TEXT",
289
+ REPLACE: "TEXT",
290
+ REPLACEB: "TEXT",
291
+ REPT: "TEXT",
292
+ CONCAT: "TEXT",
293
+ CONCATENATE: "TEXT",
294
+ TEXTJOIN: "TEXT",
295
+ ADDRESS: "TEXT",
296
+ CHAR: "TEXT",
297
+ UNICHAR: "TEXT",
298
+ T: "TEXT",
299
+ DOLLAR: "TEXT",
300
+ FIXED: "TEXT",
301
+ BAHTTEXT: "TEXT",
302
+ // ─── Aggregation with formatDerivationRules entries (NUMBER base —
303
+ // specific-arg inheritance is in `formatDerivationRules`) ──────
304
+ SUMIFS: "NUMBER",
305
+ SUMIF: "NUMBER",
306
+ AVERAGEIFS: "NUMBER",
307
+ AVERAGEIF: "NUMBER",
308
+ MINIFS: "NUMBER",
309
+ MAXIFS: "NUMBER",
310
+ };
311
+ var currencyDecimalAdjustmentFunctions = new Set([
312
+ "ROUND",
313
+ "ROUNDUP",
314
+ "ROUNDDOWN",
315
+ "TRUNC",
316
+ "INT",
317
+ "MROUND",
318
+ "CEILING",
319
+ "FLOOR",
320
+ "QUOTIENT",
321
+ ]);
322
+ // Get all function names from formula
323
+ var functionRegex = /([A-Za-z0-9_]+)\s*\(/g;
324
+ export var getFunctionNamesFromFormula = function (formula) {
325
+ var match;
326
+ var matches = [];
327
+ while ((match = functionRegex.exec(formula))) {
328
+ var _a = __read(match, 2), _1 = _a[0], functionName = _a[1];
329
+ if (functionName) {
330
+ matches.push(functionName);
331
+ }
332
+ }
333
+ return matches;
334
+ };
335
+ var getSheetNameFromToken = function (token) {
336
+ if (!token)
337
+ return undefined;
338
+ if (token.tokenType.name === tokenVocabulary.Sheet.name) {
339
+ return token.image.slice(0, -1);
340
+ }
341
+ if (token.tokenType.name === tokenVocabulary.SheetQuoted.name) {
342
+ var cleanSheetName = desanitizeSheetName(token.image);
343
+ return cleanSheetName ? cleanSheetName.slice(0, -1) : undefined;
344
+ }
345
+ return undefined;
346
+ };
347
+ var getDirectReferenceBounds = function (formula, tokenizer, sheetId, getSheetId) {
348
+ var _a, _b, _c;
349
+ if (!formula)
350
+ return [];
351
+ var trimmed = formula.trim();
352
+ if (!trimmed.startsWith("="))
353
+ return [];
354
+ var tokens = tokenizer(trimmed.slice(1));
355
+ var bounds = [];
356
+ var pendingSheetId;
357
+ for (var i = 0; i < tokens.length; i++) {
358
+ var token = tokens[i];
359
+ var tokenSheetName = getSheetNameFromToken(token);
360
+ if (tokenSheetName) {
361
+ pendingSheetId = getSheetId(tokenSheetName);
362
+ continue;
363
+ }
364
+ if (token.tokenType.name !== tokenVocabulary.Cell.name) {
365
+ continue;
366
+ }
367
+ var refSheetId = token.sheetName
368
+ ? getSheetId(token.sheetName)
369
+ : pendingSheetId !== null && pendingSheetId !== void 0 ? pendingSheetId : sheetId;
370
+ pendingSheetId = undefined;
371
+ var startCell = addressToCell(token.image);
372
+ if (!startCell)
373
+ continue;
374
+ if (((_a = tokens[i + 1]) === null || _a === void 0 ? void 0 : _a.tokenType.name) === tokenVocabulary.Colon.name &&
375
+ ((_b = tokens[i + 2]) === null || _b === void 0 ? void 0 : _b.tokenType.name) === tokenVocabulary.Cell.name) {
376
+ var endCell = addressToCell((_c = tokens[i + 2]) === null || _c === void 0 ? void 0 : _c.image);
377
+ if (endCell) {
378
+ bounds.push({
379
+ sheetId: refSheetId,
380
+ minRow: Math.min(startCell.rowIndex, endCell.rowIndex),
381
+ maxRow: Math.max(startCell.rowIndex, endCell.rowIndex),
382
+ minCol: Math.min(startCell.columnIndex, endCell.columnIndex),
383
+ maxCol: Math.max(startCell.columnIndex, endCell.columnIndex),
384
+ });
385
+ i += 2;
386
+ continue;
387
+ }
388
+ }
389
+ bounds.push({
390
+ sheetId: refSheetId,
391
+ minRow: startCell.rowIndex,
392
+ maxRow: startCell.rowIndex,
393
+ minCol: startCell.columnIndex,
394
+ maxCol: startCell.columnIndex,
395
+ });
396
+ }
397
+ return bounds;
398
+ };
399
+ var filterPrecedentsByBounds = function (precedents, bounds) {
400
+ if (bounds.length === 0)
401
+ return precedents;
402
+ var intersects = function (b, row, col) {
403
+ return row >= b.minRow && row <= b.maxRow && col >= b.minCol && col <= b.maxCol;
404
+ };
405
+ var rangeIntersects = function (b, startRow, startCol, endRow, endCol) {
406
+ return !(startRow > b.maxRow ||
407
+ endRow < b.minRow ||
408
+ startCol > b.maxCol ||
409
+ endCol < b.minCol);
410
+ };
411
+ var filtered = precedents.filter(function (p) {
412
+ var e_1, _a;
413
+ if (isStaticNode(p))
414
+ return true;
415
+ try {
416
+ for (var bounds_1 = __values(bounds), bounds_1_1 = bounds_1.next(); !bounds_1_1.done; bounds_1_1 = bounds_1.next()) {
417
+ var b = bounds_1_1.value;
418
+ if (p.position.sheetId !== b.sheetId) {
419
+ continue;
420
+ }
421
+ if (isCellCoordinate(p.position)) {
422
+ if (intersects(b, p.position.rowIndex, p.position.columnIndex)) {
423
+ return true;
424
+ }
425
+ }
426
+ else if (rangeIntersects(b, p.position.startRowIndex, p.position.startColumnIndex, p.position.endRowIndex, p.position.endColumnIndex)) {
427
+ return true;
428
+ }
429
+ }
430
+ }
431
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
432
+ finally {
433
+ try {
434
+ if (bounds_1_1 && !bounds_1_1.done && (_a = bounds_1.return)) _a.call(bounds_1);
435
+ }
436
+ finally { if (e_1) throw e_1.error; }
437
+ }
438
+ return false;
439
+ });
440
+ return filtered.length > 0 ? filtered : precedents;
441
+ };
442
+ var sheetCell = new SheetCell();
443
+ export var deriveEffectiveNumberFormatFromPrecedents = function (formula, precedents, draft, tokenizer, sheetId, rowIndex, columnIndex, locale, getSheetId, cellXfsRegistry, getDataValidationById, calculatedValue,
444
+ /**
445
+ * Optional resolver for a precedent's effective `numberFormat`. When a
446
+ * precedent is itself a formula cell with no `uf.numberFormat`, its
447
+ * format is derived (not persisted on cellData), so reading
448
+ * `sheetCell.getNumberFormat()` would miss it. The resolver lets the
449
+ * caller recurse through formula chains so `C1 = B1 = A1` inherits A1's
450
+ * format. When omitted, only the precedent's persisted
451
+ * `uf.numberFormat` is consulted.
452
+ */
453
+ resolvePrecedentNumberFormat) {
454
+ var e_2, _a;
455
+ var _b, _c, _d, _e;
456
+ if (formula === void 0) { formula = ""; }
457
+ // Assign sheet cell
458
+ sheetCell.assign(sheetId, defaultCellCoords, (_d = (_c = (_b = draft === null || draft === void 0 ? void 0 : draft[sheetId]) === null || _b === void 0 ? void 0 : _b[rowIndex]) === null || _c === void 0 ? void 0 : _c.values) === null || _d === void 0 ? void 0 : _d[columnIndex], {
459
+ locale: locale,
460
+ cellXfsRegistry: cellXfsRegistry,
461
+ getDataValidationById: getDataValidationById,
462
+ });
463
+ // Check if has user entered format
464
+ // User entered format always has precedence over
465
+ // format derived from precedents
466
+ if ((_e = sheetCell.userEnteredFormat) === null || _e === void 0 ? void 0 : _e.numberFormat) {
467
+ return sheetCell.userEnteredFormat.numberFormat;
468
+ }
469
+ if (shouldSkipPrecedentFormatInheritance(formula)) {
470
+ return undefined;
471
+ }
472
+ // Priority
473
+ // NUMBER -> PERCENTAGE -> CURRENCY
474
+ var numFormat = undefined;
475
+ // Expected return type from function
476
+ var expectedOutputType = undefined;
477
+ var shouldAdjustCurrencyDecimals = false;
478
+ var maxDecimals = 0;
479
+ var match;
480
+ var isIndirectReference = formula
481
+ .trim()
482
+ .toUpperCase()
483
+ .startsWith("=INDIRECT(");
484
+ functionRegex.lastIndex = 0;
485
+ while ((match = functionRegex.exec(formula))) {
486
+ var _f = __read(match, 2), _2 = _f[0], functionName = _f[1];
487
+ var functionDefault = isIndirectReference
488
+ ? undefined
489
+ : functionReturnTypes[functionName.toUpperCase()];
490
+ if (currencyDecimalAdjustmentFunctions.has(functionName.toUpperCase())) {
491
+ shouldAdjustCurrencyDecimals = true;
492
+ }
493
+ if (!expectedOutputType) {
494
+ expectedOutputType = functionDefault;
495
+ }
496
+ else if (functionDefault === "NUMBER" && expectedOutputType === "DATE") {
497
+ // if the function returns a number but the expected type is a date,
498
+ // assume the output is a date
499
+ expectedOutputType = "DATE";
500
+ }
501
+ }
502
+ // Set effective format
503
+ var effectivePrecedents = precedents;
504
+ var indirectCurrentRowAddressMatch = formula
505
+ .trim()
506
+ .match(/^=INDIRECT\(\s*ADDRESS\(\s*ROW\(\)\s*,\s*(\d+)\s*\)\s*\)$/i);
507
+ if (indirectCurrentRowAddressMatch) {
508
+ effectivePrecedents = [
509
+ {
510
+ position: {
511
+ sheetId: sheetId,
512
+ rowIndex: rowIndex,
513
+ columnIndex: Number(indirectCurrentRowAddressMatch[1]),
514
+ },
515
+ },
516
+ ];
517
+ }
518
+ var topLevelFunctionName;
519
+ var directBounds = getDirectReferenceBounds(formula, tokenizer, sheetId, getSheetId);
520
+ effectivePrecedents = filterPrecedentsByBounds(effectivePrecedents, directBounds);
521
+ var upperFormula = formula === null || formula === void 0 ? void 0 : formula.trim().toUpperCase();
522
+ if (upperFormula) {
523
+ var functionNameMatch = upperFormula.match(/^=([A-Z0-9_]+)\(/);
524
+ topLevelFunctionName = functionNameMatch ? functionNameMatch[1] : undefined;
525
+ var rule = topLevelFunctionName
526
+ ? formatDerivationRules[topLevelFunctionName]
527
+ : undefined;
528
+ if (rule) {
529
+ var args = extractTopLevelArgs(formula, upperFormula.split("(")[0]);
530
+ if (rule.type === "fixed_index" || rule.type === "conditional_index") {
531
+ var targetIndex = rule.type === "fixed_index"
532
+ ? rule.index
533
+ : rule.getIndex(args.length);
534
+ if (targetIndex >= 0 && targetIndex < args.length) {
535
+ effectivePrecedents = filterPrecedentsByAddress(precedents, args[targetIndex], sheetId, getSheetId);
536
+ }
537
+ }
538
+ else if (rule.type === "vlookup" || rule.type === "hlookup") {
539
+ // VLOOKUP / HLOOKUP: Excel returns the format of the matched cell
540
+ // in the literal-numbered column/row of the table range. Restrict
541
+ // derivation to that single column/row so a currency-formatted
542
+ // unrelated column in the table doesn't leak its format into the
543
+ // result.
544
+ var tableArg = args[rule.tableIndex];
545
+ var indexArg = args[rule.type === "vlookup" ? rule.colIndexArg : rule.rowIndexArg];
546
+ var offset = parseLiteralInt(indexArg);
547
+ if (tableArg && offset && offset >= 1) {
548
+ effectivePrecedents = filterPrecedentsByTableOffset(precedents, tableArg, offset, rule.type === "vlookup" ? "column" : "row", sheetId, getSheetId);
549
+ }
550
+ else if (tableArg) {
551
+ // Fallback: literal index unreadable (e.g. formula expression).
552
+ // Filter to the whole table — still better than walking every
553
+ // precedent.
554
+ effectivePrecedents = filterPrecedentsByAddress(precedents, tableArg, sheetId, getSheetId);
555
+ }
556
+ }
557
+ }
558
+ }
559
+ var processPrecedentCell = function (precedentSheetId, precedentRowIndex, precedentColumnIndex) {
560
+ var _a, _b, _c, _d;
561
+ sheetCell.assign(precedentSheetId, {
562
+ rowIndex: precedentRowIndex,
563
+ columnIndex: precedentColumnIndex,
564
+ }, (_c = (_b = (_a = draft === null || draft === void 0 ? void 0 : draft[precedentSheetId]) === null || _a === void 0 ? void 0 : _a[precedentRowIndex]) === null || _b === void 0 ? void 0 : _b.values) === null || _c === void 0 ? void 0 : _c[precedentColumnIndex], {
565
+ locale: locale,
566
+ cellXfsRegistry: cellXfsRegistry,
567
+ getDataValidationById: getDataValidationById,
568
+ });
569
+ // Prefer the resolver: it returns `uf.numberFormat` for plain cells
570
+ // and the recursively-derived format for formula cells, so chains
571
+ // like `C1 = B1 = A1` propagate A1's format through B1 to C1.
572
+ // Falls back to the precedent's persisted `uf.numberFormat` when no
573
+ // resolver is wired (callers without a derive-graph, e.g. exporters).
574
+ var curNumFormat = (_d = resolvePrecedentNumberFormat === null || resolvePrecedentNumberFormat === void 0 ? void 0 : resolvePrecedentNumberFormat(precedentSheetId, precedentRowIndex, precedentColumnIndex)) !== null && _d !== void 0 ? _d : sheetCell.getNumberFormat();
575
+ var currentValue = sheetCell.getEffectiveValue();
576
+ if (typeof currentValue === "number") {
577
+ maxDecimals = Math.max(maxDecimals, getDecimalPlaces(currentValue, locale));
578
+ }
579
+ if (curNumFormat) {
580
+ maxDecimals = Math.max(maxDecimals, getCurrentDecimalCountInPattern(curNumFormat.pattern));
581
+ if (curNumFormat.type === "TEXT" &&
582
+ numFormat &&
583
+ numFormat.type &&
584
+ numFormat.type !== "TEXT") {
585
+ return;
586
+ }
587
+ // Excel's rule: the **first** non-generic precedent format wins.
588
+ // Generic = NUMBER/GENERAL/COUNT (no specific styling intent), so a
589
+ // later CURRENCY/PERCENT/DATE/etc. can upgrade it; but once a
590
+ // specific format is locked in we don't let a different specific
591
+ // format override it (e.g. PERCENT then CURRENCY → keep PERCENT,
592
+ // matching Excel; previously priority-based merging picked the
593
+ // higher-priority one regardless of position).
594
+ if (!numFormat || isGenericNumberFormatType(numFormat.type)) {
595
+ numFormat = curNumFormat;
596
+ }
597
+ }
598
+ };
599
+ try {
600
+ for (var effectivePrecedents_1 = __values(effectivePrecedents), effectivePrecedents_1_1 = effectivePrecedents_1.next(); !effectivePrecedents_1_1.done; effectivePrecedents_1_1 = effectivePrecedents_1.next()) {
601
+ var precedent = effectivePrecedents_1_1.value;
602
+ // Ignore static node
603
+ if (isStaticNode(precedent)) {
604
+ continue;
605
+ }
606
+ var precedentSheetId = precedent.position.sheetId;
607
+ if (isCellCoordinate(precedent.position)) {
608
+ processPrecedentCell(precedentSheetId, precedent.position.rowIndex, precedent.position.columnIndex);
609
+ continue;
610
+ }
611
+ // Anchor-only derivation: Excel inherits a range's number format from
612
+ // its first cell (top-left). This makes derivation O(1) per range and
613
+ // keeps it consistent with the anchor-only cache fingerprint so a
614
+ // non-anchor format change doesn't leak a different result than what
615
+ // the cache would return.
616
+ processPrecedentCell(precedentSheetId, precedent.position.startRowIndex, precedent.position.startColumnIndex);
617
+ }
618
+ }
619
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
620
+ finally {
621
+ try {
622
+ if (effectivePrecedents_1_1 && !effectivePrecedents_1_1.done && (_a = effectivePrecedents_1.return)) _a.call(effectivePrecedents_1);
623
+ }
624
+ finally { if (e_2) throw e_2.error; }
625
+ }
626
+ // Get decimal places from the calculated value
627
+ // This respects ROUND's output - if ROUND(x, 0) gives 456, it has 0 decimals
628
+ var calculatedDecimals = typeof calculatedValue === "number"
629
+ ? getDecimalPlaces(calculatedValue, locale)
630
+ : undefined;
631
+ if (typeof calculatedValue === "number") {
632
+ maxDecimals = Math.max(maxDecimals, calculatedDecimals !== null && calculatedDecimals !== void 0 ? calculatedDecimals : 0);
633
+ }
634
+ if (!numFormat && maxDecimals > 0) {
635
+ numFormat = { type: "NUMBER" };
636
+ }
637
+ var applyDecimalHeuristic = function (format) {
638
+ var _a;
639
+ // `#` is the implicit integer pattern inferred from plain numeric cells,
640
+ // but it suppresses zero. Formula results should still display a derived
641
+ // zero; an explicitly formatted formula cell returned above remains
642
+ // untouched.
643
+ if (calculatedValue === 0 &&
644
+ (format === null || format === void 0 ? void 0 : format.type) === "NUMBER" &&
645
+ format.pattern === "#") {
646
+ return __assign(__assign({}, format), { pattern: "0" });
647
+ }
648
+ // For CURRENCY type, use the calculated value's decimal places
649
+ // This ensures ROUND(SUM(F9), 0) shows 0 decimals even if precedent has 2
650
+ if ((format === null || format === void 0 ? void 0 : format.type) === "CURRENCY" &&
651
+ shouldAdjustCurrencyDecimals &&
652
+ calculatedDecimals !== undefined &&
653
+ format.pattern) {
654
+ var patternDecimals = getCurrentDecimalCountInPattern(format.pattern);
655
+ // Only adjust if calculated value has fewer decimals than the pattern
656
+ // (respects ROUND's intent to reduce decimals)
657
+ if (calculatedDecimals < patternDecimals) {
658
+ return __assign(__assign({}, format), { pattern: changeDecimals(format.pattern, calculatedDecimals, false) });
659
+ }
660
+ }
661
+ // Original heuristic for NUMBER type
662
+ if ((format === null || format === void 0 ? void 0 : format.type) === "NUMBER" && maxDecimals > 0) {
663
+ var basePattern = (_a = format.pattern) !== null && _a !== void 0 ? _a : "0";
664
+ return __assign(__assign({}, format), { pattern: changeDecimals(basePattern, Math.min(maxDecimals, 3), false) });
665
+ }
666
+ return format;
667
+ };
668
+ // Useful for Percentages
669
+ // 20% x 50 => number
670
+ if (numFormat) {
671
+ // Does not support structured references as of now
672
+ var astDerivedNumberFormat = getNumberFormatFromFormulaAst(formula, numFormat, draft, tokenizer, sheetId, getSheetId, cellXfsRegistry, getDataValidationById, locale);
673
+ if (astDerivedNumberFormat) {
674
+ return applyDecimalHeuristic(astDerivedNumberFormat);
675
+ }
676
+ }
677
+ // If we could not derive from function
678
+ if (expectedOutputType === undefined) {
679
+ return applyDecimalHeuristic(numFormat);
680
+ }
681
+ // Number variations
682
+ if (expectedOutputType === "NUMBER" &&
683
+ ((numFormat === null || numFormat === void 0 ? void 0 : numFormat.type) === "CURRENCY" ||
684
+ (numFormat === null || numFormat === void 0 ? void 0 : numFormat.type) === "PERCENT" ||
685
+ (numFormat === null || numFormat === void 0 ? void 0 : numFormat.type) === "SCIENTIFIC")) {
686
+ return numFormat;
687
+ }
688
+ // Date variations
689
+ if (expectedOutputType === "DATE" && (numFormat === null || numFormat === void 0 ? void 0 : numFormat.type) === "DATE_TIME") {
690
+ return numFormat;
691
+ }
692
+ if (expectedOutputType !== (numFormat === null || numFormat === void 0 ? void 0 : numFormat.type)) {
693
+ var resolvedType = expectedOutputType in customNumberFormatMap
694
+ ? customNumberFormatMap[expectedOutputType]
695
+ : expectedOutputType;
696
+ var resolvedNumberFormat = {
697
+ type: resolvedType,
698
+ };
699
+ // Date/time types need a concrete pattern — without one the renderer
700
+ // falls back to "General" and shows the serial number (the
701
+ // =TODAY() bug). When the precedent itself is a date-family format
702
+ // with a pattern, inherit that pattern (e.g. `=EDATE(A1, 1)` keeps
703
+ // A1's custom `yyyy-mm-dd` instead of falling back to the locale
704
+ // default). Otherwise mirror the format toolbar's default for the
705
+ // type.
706
+ if (isDateFamilyType(resolvedNumberFormat.type) &&
707
+ isDateFamilyType(numFormat === null || numFormat === void 0 ? void 0 : numFormat.type) &&
708
+ (numFormat === null || numFormat === void 0 ? void 0 : numFormat.pattern)) {
709
+ resolvedNumberFormat.pattern = numFormat.pattern;
710
+ }
711
+ else if (resolvedNumberFormat.type === "DATE_TIME") {
712
+ resolvedNumberFormat.pattern = getDefaultDateTimeFormat(locale);
713
+ }
714
+ else if (resolvedNumberFormat.type === "DATE") {
715
+ resolvedNumberFormat.pattern = getDefaultDateFormat(locale);
716
+ }
717
+ else if (resolvedNumberFormat.type === "TIME") {
718
+ resolvedNumberFormat.pattern = getDefaultTimeFormat(locale);
719
+ }
720
+ // Preserve pattern from precedent cells for CURRENCY type
721
+ // This ensures currency symbols (€, $, etc.) are preserved
722
+ if (resolvedNumberFormat.type === "CURRENCY" &&
723
+ (numFormat === null || numFormat === void 0 ? void 0 : numFormat.type) === "CURRENCY" &&
724
+ numFormat.pattern) {
725
+ resolvedNumberFormat.pattern = numFormat.pattern;
726
+ }
727
+ return applyDecimalHeuristic(resolvedNumberFormat);
728
+ }
729
+ return applyDecimalHeuristic(numFormat);
730
+ };
731
+ /**
732
+ * Like `deriveEffectiveNumberFormatFromPrecedents` but synthesizes the
733
+ * `precedents` array from the formula's direct cell/range references —
734
+ * used by the XLSX/ODS/CSV exporters which don't have a calc graph.
735
+ *
736
+ * Internally calls `deriveEffectiveNumberFormatFromPrecedents`, so all the
737
+ * function-specific rules (FILTER source range, ROUND decimals, IFERROR,
738
+ * function return types, etc.) are honored — render and export produce
739
+ * the same format for the same formula.
740
+ */
741
+ export var deriveEffectiveNumberFormatFromFormula = function (formula, sheetId, rowIndex, columnIndex, draft, tokenizer, getSheetId, locale, cellXfsRegistry, getDataValidationById, calculatedValue) {
742
+ var e_3, _a;
743
+ if (!formula || !formula.trim().startsWith("="))
744
+ return undefined;
745
+ var bounds = getDirectReferenceBounds(formula, tokenizer, sheetId, getSheetId);
746
+ // Synthesize precedents — one CellNode per cell in each bound. The
747
+ // existing implementation re-filters precedents by the same bounds, so
748
+ // this produces identical input.
749
+ var precedents = [];
750
+ try {
751
+ for (var bounds_2 = __values(bounds), bounds_2_1 = bounds_2.next(); !bounds_2_1.done; bounds_2_1 = bounds_2.next()) {
752
+ var bound = bounds_2_1.value;
753
+ for (var r = bound.minRow; r <= bound.maxRow; r++) {
754
+ for (var c = bound.minCol; c <= bound.maxCol; c++) {
755
+ precedents.push({
756
+ position: {
757
+ sheetId: bound.sheetId,
758
+ rowIndex: r,
759
+ columnIndex: c,
760
+ },
761
+ });
762
+ }
763
+ }
764
+ }
765
+ }
766
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
767
+ finally {
768
+ try {
769
+ if (bounds_2_1 && !bounds_2_1.done && (_a = bounds_2.return)) _a.call(bounds_2);
770
+ }
771
+ finally { if (e_3) throw e_3.error; }
772
+ }
773
+ return deriveEffectiveNumberFormatFromPrecedents(formula, precedents, draft, tokenizer, sheetId, rowIndex, columnIndex, locale, getSheetId, cellXfsRegistry, getDataValidationById, calculatedValue);
774
+ };
775
+ var resolveResultsType = function (type) {
776
+ if (!type)
777
+ return undefined;
778
+ if (type in customNumberFormatMap) {
779
+ return customNumberFormatMap[type];
780
+ }
781
+ return type;
782
+ };
783
+ var parseNumberFormatAst = function (formula, tokenizer, sheetId, getSheetId) {
784
+ if (!formula.startsWith("=")) {
785
+ return undefined;
786
+ }
787
+ var tokens = tokenizer(formula.slice(1));
788
+ var index = 0;
789
+ var emptyStopTokens = new Set();
790
+ var peek = function () { return tokens[index]; };
791
+ var next = function () { return tokens[index++]; };
792
+ var shouldStop = function (stopTokens) {
793
+ return !!peek() && stopTokens.has(peek().tokenType.name);
794
+ };
795
+ var parseCellOrRange = function (cellToken, explicitSheetId) {
796
+ var _a, _b;
797
+ var startCell = addressToCell(cellToken.image);
798
+ if (!startCell)
799
+ return undefined;
800
+ var resolvedSheetId = cellToken.sheetName
801
+ ? getSheetId(cellToken.sheetName)
802
+ : explicitSheetId !== null && explicitSheetId !== void 0 ? explicitSheetId : sheetId;
803
+ if (((_a = peek()) === null || _a === void 0 ? void 0 : _a.tokenType.name) === tokenVocabulary.Colon.name &&
804
+ ((_b = tokens[index + 1]) === null || _b === void 0 ? void 0 : _b.tokenType.name) === tokenVocabulary.Cell.name) {
805
+ next();
806
+ var endCellToken = next();
807
+ var endCell = addressToCell(endCellToken.image);
808
+ if (!endCell) {
809
+ return {
810
+ kind: "cell_reference",
811
+ sheetId: resolvedSheetId,
812
+ rowIndex: startCell.rowIndex,
813
+ columnIndex: startCell.columnIndex,
814
+ };
815
+ }
816
+ return {
817
+ kind: "range_reference",
818
+ sheetId: resolvedSheetId,
819
+ startRowIndex: startCell.rowIndex,
820
+ startColumnIndex: startCell.columnIndex,
821
+ endRowIndex: endCell.rowIndex,
822
+ endColumnIndex: endCell.columnIndex,
823
+ };
824
+ }
825
+ return {
826
+ kind: "cell_reference",
827
+ sheetId: resolvedSheetId,
828
+ rowIndex: startCell.rowIndex,
829
+ columnIndex: startCell.columnIndex,
830
+ };
831
+ };
832
+ var parseExpression = function (stopTokens) { return parseComparison(stopTokens); };
833
+ var parseComparison = function (stopTokens) {
834
+ var _a;
835
+ var left = parseConcat(stopTokens);
836
+ while (left && !shouldStop(stopTokens)) {
837
+ var name_1 = (_a = peek()) === null || _a === void 0 ? void 0 : _a.tokenType.name;
838
+ if (name_1 === tokenVocabulary.EqOp.name ||
839
+ name_1 === tokenVocabulary.NeqOp.name ||
840
+ name_1 === tokenVocabulary.GtOp.name ||
841
+ name_1 === tokenVocabulary.GteOp.name ||
842
+ name_1 === tokenVocabulary.LtOp.name ||
843
+ name_1 === tokenVocabulary.LteOp.name) {
844
+ next();
845
+ var right = parseConcat(stopTokens);
846
+ if (!right)
847
+ break;
848
+ left = { kind: "binary", op: "COMPARE", left: left, right: right };
849
+ continue;
850
+ }
851
+ break;
852
+ }
853
+ return left;
854
+ };
855
+ var parseConcat = function (stopTokens) {
856
+ var _a;
857
+ var left = parseAddSub(stopTokens);
858
+ while (left && !shouldStop(stopTokens)) {
859
+ if (((_a = peek()) === null || _a === void 0 ? void 0 : _a.tokenType.name) === tokenVocabulary.ConcatOp.name) {
860
+ next();
861
+ var right = parseAddSub(stopTokens);
862
+ if (!right)
863
+ break;
864
+ left = { kind: "binary", op: "CONCAT", left: left, right: right };
865
+ continue;
866
+ }
867
+ break;
868
+ }
869
+ return left;
870
+ };
871
+ var parseAddSub = function (stopTokens) {
872
+ var _a;
873
+ var left = parseMulDiv(stopTokens);
874
+ while (left && !shouldStop(stopTokens)) {
875
+ var name_2 = (_a = peek()) === null || _a === void 0 ? void 0 : _a.tokenType.name;
876
+ if (name_2 === tokenVocabulary.PlusOp.name ||
877
+ name_2 === tokenVocabulary.MinOp.name) {
878
+ next();
879
+ var right = parseMulDiv(stopTokens);
880
+ if (!right)
881
+ break;
882
+ left = {
883
+ kind: "binary",
884
+ op: name_2 === tokenVocabulary.PlusOp.name ? "ADD" : "SUB",
885
+ left: left,
886
+ right: right,
887
+ };
888
+ continue;
889
+ }
890
+ break;
891
+ }
892
+ return left;
893
+ };
894
+ var parseMulDiv = function (stopTokens) {
895
+ var _a;
896
+ var left = parsePower(stopTokens);
897
+ while (left && !shouldStop(stopTokens)) {
898
+ var name_3 = (_a = peek()) === null || _a === void 0 ? void 0 : _a.tokenType.name;
899
+ if (name_3 === tokenVocabulary.MulOp.name ||
900
+ name_3 === tokenVocabulary.DivOp.name) {
901
+ next();
902
+ var right = parsePower(stopTokens);
903
+ if (!right)
904
+ break;
905
+ left = {
906
+ kind: "binary",
907
+ op: name_3 === tokenVocabulary.MulOp.name ? "MUL" : "DIV",
908
+ left: left,
909
+ right: right,
910
+ };
911
+ continue;
912
+ }
913
+ break;
914
+ }
915
+ return left;
916
+ };
917
+ var parsePower = function (stopTokens) {
918
+ var _a;
919
+ var left = parseUnary(stopTokens);
920
+ while (left && !shouldStop(stopTokens)) {
921
+ if (((_a = peek()) === null || _a === void 0 ? void 0 : _a.tokenType.name) === tokenVocabulary.ExOp.name) {
922
+ next();
923
+ var right = parseUnary(stopTokens);
924
+ if (!right)
925
+ break;
926
+ left = { kind: "binary", op: "EXP", left: left, right: right };
927
+ continue;
928
+ }
929
+ break;
930
+ }
931
+ return left;
932
+ };
933
+ var parseUnary = function (stopTokens) {
934
+ var _a;
935
+ var name = (_a = peek()) === null || _a === void 0 ? void 0 : _a.tokenType.name;
936
+ if (name === tokenVocabulary.PlusOp.name ||
937
+ name === tokenVocabulary.MinOp.name) {
938
+ next();
939
+ var operand = parseUnary(stopTokens);
940
+ if (!operand)
941
+ return undefined;
942
+ return {
943
+ kind: "unary",
944
+ op: name === tokenVocabulary.PlusOp.name ? "PLUS" : "MINUS",
945
+ operand: operand,
946
+ };
947
+ }
948
+ return parsePostfix(stopTokens);
949
+ };
950
+ var parsePostfix = function (stopTokens) {
951
+ var _a;
952
+ var left = parsePrimary(stopTokens);
953
+ while (left && !shouldStop(stopTokens)) {
954
+ if (((_a = peek()) === null || _a === void 0 ? void 0 : _a.tokenType.name) === tokenVocabulary.PercentOp.name) {
955
+ next();
956
+ left = { kind: "postfix_percent", operand: left };
957
+ continue;
958
+ }
959
+ break;
960
+ }
961
+ return left;
962
+ };
963
+ var parseFunction = function () {
964
+ var _a, _b;
965
+ var token = next();
966
+ var functionName = token.image.slice(0, -1).toUpperCase();
967
+ var argStopTokens = new Set([
968
+ tokenVocabulary.Comma.name,
969
+ tokenVocabulary.CloseParen.name,
970
+ ]);
971
+ var args = [];
972
+ while (index < tokens.length) {
973
+ if (((_a = peek()) === null || _a === void 0 ? void 0 : _a.tokenType.name) === tokenVocabulary.CloseParen.name) {
974
+ next();
975
+ break;
976
+ }
977
+ var parsedArg = parseExpression(argStopTokens);
978
+ args.push(parsedArg !== null && parsedArg !== void 0 ? parsedArg : { kind: "unknown" });
979
+ var nextName = (_b = peek()) === null || _b === void 0 ? void 0 : _b.tokenType.name;
980
+ if (nextName === tokenVocabulary.Comma.name) {
981
+ next();
982
+ continue;
983
+ }
984
+ if (nextName === tokenVocabulary.CloseParen.name) {
985
+ next();
986
+ break;
987
+ }
988
+ if (nextName === undefined) {
989
+ break;
990
+ }
991
+ next();
992
+ }
993
+ return {
994
+ kind: "function_call",
995
+ name: functionName,
996
+ args: args,
997
+ };
998
+ };
999
+ var parsePrimary = function (stopTokens) {
1000
+ var _a;
1001
+ if (shouldStop(stopTokens)) {
1002
+ return undefined;
1003
+ }
1004
+ var token = peek();
1005
+ if (!token)
1006
+ return undefined;
1007
+ var name = token.tokenType.name;
1008
+ if (name === tokenVocabulary.Number.name) {
1009
+ next();
1010
+ return { kind: "number_literal" };
1011
+ }
1012
+ if (name === tokenVocabulary.String.name) {
1013
+ next();
1014
+ return { kind: "string_literal" };
1015
+ }
1016
+ if (name === tokenVocabulary.Boolean.name) {
1017
+ next();
1018
+ return { kind: "boolean_literal" };
1019
+ }
1020
+ if (name === tokenVocabulary.Cell.name) {
1021
+ var cellToken = next();
1022
+ return parseCellOrRange(cellToken);
1023
+ }
1024
+ if (name === tokenVocabulary.Sheet.name ||
1025
+ name === tokenVocabulary.SheetQuoted.name) {
1026
+ var sheetToken = next();
1027
+ var parsedSheetName = getSheetNameFromToken(sheetToken);
1028
+ var explicitSheetId = parsedSheetName
1029
+ ? getSheetId(parsedSheetName)
1030
+ : sheetId;
1031
+ var cellToken = peek();
1032
+ if ((cellToken === null || cellToken === void 0 ? void 0 : cellToken.tokenType.name) !== tokenVocabulary.Cell.name) {
1033
+ return { kind: "unknown" };
1034
+ }
1035
+ next();
1036
+ return parseCellOrRange(cellToken, explicitSheetId);
1037
+ }
1038
+ if (name === tokenVocabulary.Function.name) {
1039
+ return parseFunction();
1040
+ }
1041
+ if (name === tokenVocabulary.OpenParen.name) {
1042
+ next();
1043
+ var node = parseExpression(new Set([tokenVocabulary.CloseParen.name]));
1044
+ if (((_a = peek()) === null || _a === void 0 ? void 0 : _a.tokenType.name) === tokenVocabulary.CloseParen.name) {
1045
+ next();
1046
+ }
1047
+ return node;
1048
+ }
1049
+ next();
1050
+ return { kind: "unknown" };
1051
+ };
1052
+ return parseExpression(emptyStopTokens);
1053
+ };
1054
+ var deriveNumberFormatTypeFromAst = function (ast, derivedNumberFormat, draft, getDataValidationById, cellXfsRegistry) {
1055
+ var getCellFormatType = function (targetSheetId, rowIndex, columnIndex) {
1056
+ var _a, _b, _c, _d;
1057
+ sheetCell.assign(targetSheetId, { rowIndex: rowIndex, columnIndex: columnIndex }, (_c = (_b = (_a = draft === null || draft === void 0 ? void 0 : draft[targetSheetId]) === null || _a === void 0 ? void 0 : _a[rowIndex]) === null || _b === void 0 ? void 0 : _b.values) === null || _c === void 0 ? void 0 : _c[columnIndex], { cellXfsRegistry: cellXfsRegistry, getDataValidationById: getDataValidationById });
1058
+ return (_d = sheetCell.getNumberFormat()) === null || _d === void 0 ? void 0 : _d.type;
1059
+ };
1060
+ var isDateLike = function (type) {
1061
+ return type === "DATE" || type === "DATE_TIME" || type === "TIME";
1062
+ };
1063
+ var isCurrencyLike = function (type) {
1064
+ return type === "CURRENCY" || type === "ACCOUNTING";
1065
+ };
1066
+ var isPercentLike = function (type) {
1067
+ return type === "PERCENT";
1068
+ };
1069
+ var isNumericLike = function (type) {
1070
+ return type === "NUMBER" ||
1071
+ type === "GENERAL" ||
1072
+ type === "SCIENTIFIC" ||
1073
+ type === "FRACTION" ||
1074
+ type === "SPECIAL" ||
1075
+ isCurrencyLike(type) ||
1076
+ isPercentLike(type);
1077
+ };
1078
+ var mergeValueTypes = function (types) {
1079
+ var _a;
1080
+ var filtered = types.filter(function (type) { return !!type; });
1081
+ if (filtered.length === 0)
1082
+ return undefined;
1083
+ if (filtered.every(function (type) { return type === filtered[0]; })) {
1084
+ return filtered[0];
1085
+ }
1086
+ if (filtered.some(isCurrencyLike)) {
1087
+ return (_a = filtered.find(isCurrencyLike)) !== null && _a !== void 0 ? _a : filtered[0];
1088
+ }
1089
+ if (filtered.every(isPercentLike)) {
1090
+ return "PERCENT";
1091
+ }
1092
+ if (filtered.some(isPercentLike)) {
1093
+ return "NUMBER";
1094
+ }
1095
+ if (filtered.every(isDateLike)) {
1096
+ return filtered[0];
1097
+ }
1098
+ return filtered[0];
1099
+ };
1100
+ var deriveAggregateType = function (functionName, argTypes) {
1101
+ var _a, _b, _c, _d;
1102
+ var filtered = argTypes.filter(function (type) { return !!type; });
1103
+ if (filtered.length === 0)
1104
+ return undefined;
1105
+ var hasCurrency = filtered.some(isCurrencyLike);
1106
+ var allPercent = filtered.every(isPercentLike);
1107
+ var hasPercent = filtered.some(isPercentLike);
1108
+ var allDate = filtered.every(isDateLike);
1109
+ if (functionName === "MIN" || functionName === "MAX") {
1110
+ if (allDate)
1111
+ return filtered[0];
1112
+ if (hasCurrency)
1113
+ return (_a = filtered.find(isCurrencyLike)) !== null && _a !== void 0 ? _a : "NUMBER";
1114
+ if (allPercent)
1115
+ return "PERCENT";
1116
+ if (hasPercent)
1117
+ return "NUMBER";
1118
+ return (_b = filtered[0]) !== null && _b !== void 0 ? _b : "NUMBER";
1119
+ }
1120
+ if (functionName === "SUM" || functionName === "AVERAGE") {
1121
+ if (hasCurrency)
1122
+ return (_c = filtered.find(isCurrencyLike)) !== null && _c !== void 0 ? _c : "NUMBER";
1123
+ if (allPercent)
1124
+ return "PERCENT";
1125
+ if (hasPercent)
1126
+ return "NUMBER";
1127
+ if (allDate)
1128
+ return "NUMBER";
1129
+ return (_d = filtered[0]) !== null && _d !== void 0 ? _d : "NUMBER";
1130
+ }
1131
+ return filtered[0];
1132
+ };
1133
+ var preferNumericType = function (left, right) {
1134
+ if (isCurrencyLike(left))
1135
+ return left;
1136
+ if (isCurrencyLike(right))
1137
+ return right;
1138
+ if (isPercentLike(left) && isPercentLike(right))
1139
+ return "PERCENT";
1140
+ if (isPercentLike(left))
1141
+ return right !== null && right !== void 0 ? right : "NUMBER";
1142
+ if (isPercentLike(right))
1143
+ return left !== null && left !== void 0 ? left : "NUMBER";
1144
+ return left !== null && left !== void 0 ? left : right;
1145
+ };
1146
+ var combineTypes = function (op, left, right) {
1147
+ if (op === "CONCAT")
1148
+ return "TEXT";
1149
+ if (op === "COMPARE")
1150
+ return "GENERAL";
1151
+ if (op === "ADD" || op === "SUB") {
1152
+ if (isDateLike(left) && isDateLike(right))
1153
+ return "NUMBER";
1154
+ if (isDateLike(left) && isNumericLike(right))
1155
+ return left;
1156
+ if (isDateLike(right) && isNumericLike(left))
1157
+ return right;
1158
+ return preferNumericType(left, right);
1159
+ }
1160
+ if (op === "MUL") {
1161
+ if (isPercentLike(left) && isPercentLike(right))
1162
+ return "NUMBER";
1163
+ if (isPercentLike(left) && isNumericLike(right))
1164
+ return right;
1165
+ if (isPercentLike(right) && isNumericLike(left))
1166
+ return left;
1167
+ if (isDateLike(left) || isDateLike(right))
1168
+ return "NUMBER";
1169
+ if (isCurrencyLike(left) && isCurrencyLike(right))
1170
+ return "NUMBER";
1171
+ if (isCurrencyLike(left) && isNumericLike(right))
1172
+ return left;
1173
+ if (isCurrencyLike(right) && isNumericLike(left))
1174
+ return right;
1175
+ return preferNumericType(left, right);
1176
+ }
1177
+ if (op === "DIV") {
1178
+ if (isDateLike(left) || isDateLike(right))
1179
+ return "NUMBER";
1180
+ if (isCurrencyLike(left) && isCurrencyLike(right))
1181
+ return "NUMBER";
1182
+ if (isCurrencyLike(left) && isNumericLike(right))
1183
+ return left;
1184
+ if (isCurrencyLike(right) && isNumericLike(left))
1185
+ return "NUMBER";
1186
+ if (isPercentLike(left) && isPercentLike(right))
1187
+ return "NUMBER";
1188
+ if (isPercentLike(left) && isNumericLike(right))
1189
+ return right;
1190
+ if (isPercentLike(right) && isNumericLike(left))
1191
+ return left;
1192
+ return preferNumericType(left, right);
1193
+ }
1194
+ if (op === "EXP")
1195
+ return "NUMBER";
1196
+ return left !== null && left !== void 0 ? left : right;
1197
+ };
1198
+ var inferNodeType = function (node) {
1199
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
1200
+ if (!node)
1201
+ return undefined;
1202
+ switch (node.kind) {
1203
+ case "number_literal":
1204
+ return "NUMBER";
1205
+ case "string_literal":
1206
+ return "TEXT";
1207
+ case "boolean_literal":
1208
+ return "NUMBER";
1209
+ case "cell_reference":
1210
+ return ((_a = getCellFormatType(node.sheetId, node.rowIndex, node.columnIndex)) !== null && _a !== void 0 ? _a : derivedNumberFormat.type);
1211
+ case "range_reference":
1212
+ return ((_b = getCellFormatType(node.sheetId, node.startRowIndex, node.startColumnIndex)) !== null && _b !== void 0 ? _b : derivedNumberFormat.type);
1213
+ case "unary":
1214
+ return inferNodeType(node.operand);
1215
+ case "postfix_percent":
1216
+ return "PERCENT";
1217
+ case "binary":
1218
+ return combineTypes(node.op, inferNodeType(node.left), inferNodeType(node.right));
1219
+ case "function_call": {
1220
+ var args = node.args.map(function (arg) { return inferNodeType(arg); });
1221
+ var functionName = node.name;
1222
+ if (functionName === "IF") {
1223
+ var trueType = args[1];
1224
+ var falseType = args[2];
1225
+ return ((_c = mergeValueTypes([trueType, falseType])) !== null && _c !== void 0 ? _c : derivedNumberFormat.type);
1226
+ }
1227
+ if (functionName === "IFS") {
1228
+ var valueTypes = [];
1229
+ for (var i = 1; i < args.length; i += 2) {
1230
+ valueTypes.push(args[i]);
1231
+ }
1232
+ return (_d = mergeValueTypes(valueTypes)) !== null && _d !== void 0 ? _d : derivedNumberFormat.type;
1233
+ }
1234
+ if (functionName === "IFERROR" || functionName === "IFNA") {
1235
+ return ((_e = mergeValueTypes([args[0], args[1]])) !== null && _e !== void 0 ? _e : derivedNumberFormat.type);
1236
+ }
1237
+ if (functionName === "CHOOSE") {
1238
+ // CHOOSE(index, choice1, choice2, …) — result is one of the
1239
+ // choices, so merge their types like IF/IFS.
1240
+ return ((_f = mergeValueTypes(args.slice(1))) !== null && _f !== void 0 ? _f : derivedNumberFormat.type);
1241
+ }
1242
+ if (functionName === "SWITCH") {
1243
+ // SWITCH(expression, val1, result1, [val2, result2, …], [default]).
1244
+ // Results sit at indices 2, 4, … and an even total arg count
1245
+ // means there's a trailing default at the last position.
1246
+ var valueTypes = [];
1247
+ for (var i = 2; i < args.length; i += 2) {
1248
+ valueTypes.push(args[i]);
1249
+ }
1250
+ if (args.length % 2 === 0) {
1251
+ valueTypes.push(args[args.length - 1]);
1252
+ }
1253
+ return (_g = mergeValueTypes(valueTypes)) !== null && _g !== void 0 ? _g : derivedNumberFormat.type;
1254
+ }
1255
+ if (functionName === "ROUND" ||
1256
+ functionName === "ROUNDUP" ||
1257
+ functionName === "ROUNDDOWN" ||
1258
+ functionName === "ABS" ||
1259
+ functionName === "INT") {
1260
+ return (_h = args[0]) !== null && _h !== void 0 ? _h : derivedNumberFormat.type;
1261
+ }
1262
+ if (functionName === "MOD" || functionName === "POWER") {
1263
+ return "NUMBER";
1264
+ }
1265
+ if (functionName === "SUMPRODUCT") {
1266
+ var filtered = args.filter(function (type) { return !!type; });
1267
+ if (filtered.some(isCurrencyLike)) {
1268
+ return (_j = filtered.find(isCurrencyLike)) !== null && _j !== void 0 ? _j : "NUMBER";
1269
+ }
1270
+ return "NUMBER";
1271
+ }
1272
+ if (functionName === "SUM" ||
1273
+ functionName === "AVERAGE" ||
1274
+ functionName === "MIN" ||
1275
+ functionName === "MAX") {
1276
+ return ((_k = deriveAggregateType(functionName, args)) !== null && _k !== void 0 ? _k : derivedNumberFormat.type);
1277
+ }
1278
+ var rule = formatDerivationRules[functionName];
1279
+ if (rule) {
1280
+ var targetIndex = void 0;
1281
+ if (rule.type === "fixed_index") {
1282
+ targetIndex = rule.index;
1283
+ }
1284
+ else if (rule.type === "conditional_index") {
1285
+ targetIndex = rule.getIndex(args.length);
1286
+ }
1287
+ if (targetIndex !== undefined && args[targetIndex]) {
1288
+ return args[targetIndex];
1289
+ }
1290
+ }
1291
+ var defaultType = functionReturnTypes[functionName];
1292
+ if (defaultType === "NUMBER") {
1293
+ if (derivedNumberFormat.type === "PERCENT" ||
1294
+ derivedNumberFormat.type === "CURRENCY" ||
1295
+ derivedNumberFormat.type === "ACCOUNTING" ||
1296
+ derivedNumberFormat.type === "SCIENTIFIC") {
1297
+ return derivedNumberFormat.type;
1298
+ }
1299
+ }
1300
+ return (_l = resolveResultsType(defaultType)) !== null && _l !== void 0 ? _l : derivedNumberFormat.type;
1301
+ }
1302
+ case "unknown":
1303
+ return undefined;
1304
+ }
1305
+ };
1306
+ return inferNodeType(ast);
1307
+ };
1308
+ /**
1309
+ * Two phase inference:
1310
+ * 1) parse formula tokens into AST
1311
+ * 2) derive number format type from the AST semantics
1312
+ */
1313
+ export var getNumberFormatTypeFromFormula = function (formula, derivedNumberFormat, draft, tokenizer, sheetId, getSheetId, cellXfsRegistry, getDataValidationById) {
1314
+ var ast = parseNumberFormatAst(formula, tokenizer, sheetId, getSheetId);
1315
+ if (!ast) {
1316
+ return undefined;
1317
+ }
1318
+ return deriveNumberFormatTypeFromAst(ast, derivedNumberFormat, draft, getDataValidationById, cellXfsRegistry);
1319
+ };
1320
+ /**
1321
+ * AST-based format derivation from formula semantics.
1322
+ * Uses the parser-backed type analysis and preserves source pattern when
1323
+ * the resolved type is unchanged.
1324
+ */
1325
+ export var getNumberFormatFromFormulaAst = function (formula, derivedNumberFormat, draft, tokenizer, sheetId, getSheetId, cellXfsRegistry, getDataValidationById, locale) {
1326
+ var resolvedType = getNumberFormatTypeFromFormula(formula, derivedNumberFormat, draft, tokenizer, sheetId, getSheetId, cellXfsRegistry, getDataValidationById);
1327
+ if (!resolvedType) {
1328
+ return undefined;
1329
+ }
1330
+ // Keep the exact source pattern for passthrough/same-type formulas
1331
+ // (or when the source is a date-family pattern and the resolved type
1332
+ // is also date-family — keeps `yyyy-mm-dd` etc. through date math).
1333
+ if (resolvedType === derivedNumberFormat.type) {
1334
+ return __assign({ type: resolvedType }, (derivedNumberFormat.pattern
1335
+ ? { pattern: derivedNumberFormat.pattern }
1336
+ : {}));
1337
+ }
1338
+ if (isDateFamilyType(resolvedType) &&
1339
+ isDateFamilyType(derivedNumberFormat.type) &&
1340
+ derivedNumberFormat.pattern) {
1341
+ return { type: resolvedType, pattern: derivedNumberFormat.pattern };
1342
+ }
1343
+ // Date-family resolved types without an inheritable pattern need a
1344
+ // concrete default — otherwise the renderer falls back to "General"
1345
+ // and surfaces the serial number (`=NOW()` showed `45000.5` instead
1346
+ // of a date-time string when the calculated-decimals heuristic above
1347
+ // set `numFormat = { type: "NUMBER" }` and the AST then resolved to
1348
+ // DATE_TIME, dropping the pattern).
1349
+ if (resolvedType === "DATE_TIME") {
1350
+ return { type: resolvedType, pattern: getDefaultDateTimeFormat(locale) };
1351
+ }
1352
+ if (resolvedType === "DATE") {
1353
+ return { type: resolvedType, pattern: getDefaultDateFormat(locale) };
1354
+ }
1355
+ if (resolvedType === "TIME") {
1356
+ return { type: resolvedType, pattern: getDefaultTimeFormat(locale) };
1357
+ }
1358
+ return { type: resolvedType };
1359
+ };
1360
+ // Seems hacky ony for percentage
1361
+ export var isPercentageType = function (token, sheetId, draft, cellXfsRegistry, getDataValidationById) {
1362
+ var _a, _b, _c;
1363
+ var cell = token ? addressToCell(token.image) : undefined;
1364
+ if (cell) {
1365
+ var sheetCell_1 = new SheetCell(sheetId, cell, (_c = (_b = (_a = draft === null || draft === void 0 ? void 0 : draft[sheetId]) === null || _a === void 0 ? void 0 : _a[cell.rowIndex]) === null || _b === void 0 ? void 0 : _b.values) === null || _c === void 0 ? void 0 : _c[cell.columnIndex], { cellXfsRegistry: cellXfsRegistry, getDataValidationById: getDataValidationById });
1366
+ var curNumFormat = sheetCell_1.getNumberFormat();
1367
+ return (curNumFormat === null || curNumFormat === void 0 ? void 0 : curNumFormat.type) === "PERCENT";
1368
+ }
1369
+ return false;
1370
+ };
1371
+ // Seems hacky ony for percentage
1372
+ export var isDateType = function (token, sheetId, draft, cellXfsRegistry, getDataValidationById) {
1373
+ var _a, _b, _c;
1374
+ var cell = token ? addressToCell(token.image) : undefined;
1375
+ if (cell) {
1376
+ var sheetCell_2 = new SheetCell(sheetId, cell, (_c = (_b = (_a = draft === null || draft === void 0 ? void 0 : draft[sheetId]) === null || _a === void 0 ? void 0 : _a[cell.rowIndex]) === null || _b === void 0 ? void 0 : _b.values) === null || _c === void 0 ? void 0 : _c[cell.columnIndex], { cellXfsRegistry: cellXfsRegistry, getDataValidationById: getDataValidationById });
1377
+ var curNumFormat = sheetCell_2.getNumberFormat();
1378
+ return (curNumFormat === null || curNumFormat === void 0 ? void 0 : curNumFormat.type) === "DATE" || (curNumFormat === null || curNumFormat === void 0 ? void 0 : curNumFormat.type) === "DATE_TIME";
1379
+ }
1380
+ return false;
1381
+ };
1382
+ var numericLiteralRegex = /^[-+]?(?:\d+(\.\d*)?|\.\d+)$/;
1383
+ var shouldSkipPrecedentFormatInheritance = function (formula) {
1384
+ if (!formula) {
1385
+ return false;
1386
+ }
1387
+ var trimmed = formula.trim();
1388
+ var upper = trimmed.toUpperCase();
1389
+ if (upper.startsWith("=IF(")) {
1390
+ var args = extractTopLevelArgs(trimmed, "=IF");
1391
+ if (args.length < 3) {
1392
+ return false;
1393
+ }
1394
+ var _a = __read(args, 3), trueArg = _a[1], falseArg = _a[2];
1395
+ return (numericLiteralRegex.test(trueArg.trim()) &&
1396
+ numericLiteralRegex.test(falseArg.trim()));
1397
+ }
1398
+ if (upper.startsWith("=CHOOSE(")) {
1399
+ var args = extractTopLevelArgs(trimmed, "=CHOOSE");
1400
+ if (args.length < 2) {
1401
+ return false;
1402
+ }
1403
+ var options = args.slice(1);
1404
+ return options.every(function (option) { return numericLiteralRegex.test(option.trim()); });
1405
+ }
1406
+ return false;
1407
+ };
1408
+ var extractTopLevelArgs = function (formula, prefix) {
1409
+ var upper = formula.toUpperCase();
1410
+ var startIndex = upper.indexOf(prefix);
1411
+ if (startIndex === -1) {
1412
+ return [];
1413
+ }
1414
+ var parenIndex = startIndex + prefix.length;
1415
+ if (formula[parenIndex] !== "(") {
1416
+ return [];
1417
+ }
1418
+ parenIndex += 1;
1419
+ var args = [];
1420
+ var depth = 0;
1421
+ var current = "";
1422
+ var inString = false;
1423
+ for (var i = parenIndex; i < formula.length; i++) {
1424
+ var char = formula[i];
1425
+ if (char === '"' && formula[i - 1] !== "\\") {
1426
+ inString = !inString;
1427
+ }
1428
+ if (!inString) {
1429
+ if (char === "(") {
1430
+ depth++;
1431
+ }
1432
+ else if (char === ")") {
1433
+ if (depth === 0) {
1434
+ args.push(current);
1435
+ break;
1436
+ }
1437
+ depth--;
1438
+ }
1439
+ else if (char === "," && depth === 0) {
1440
+ args.push(current);
1441
+ current = "";
1442
+ continue;
1443
+ }
1444
+ }
1445
+ current += char;
1446
+ }
1447
+ return args.map(function (arg) { return arg.trim(); });
1448
+ };
1449
+ /**
1450
+ * Peek an iterable
1451
+ * @param iterator
1452
+ * @returns
1453
+ */
1454
+ export var peekIterable = function (iterator) {
1455
+ var items = Array.from(iterator); // Consume entire iterator
1456
+ var peeked = items.length > 0
1457
+ ? { done: false, value: items[0] }
1458
+ : { done: true, value: undefined };
1459
+ var rebuiltIterator = function () {
1460
+ return __generator(this, function (_a) {
1461
+ switch (_a.label) {
1462
+ case 0: return [5 /*yield**/, __values(items)];
1463
+ case 1:
1464
+ _a.sent();
1465
+ return [2 /*return*/];
1466
+ }
1467
+ });
1468
+ };
1469
+ return { peeked: peeked, rebuiltIterator: rebuiltIterator };
1470
+ };
1471
+ export var deriveCellFromPrecedents = function (formula, precedents, draft, sheetId, locale, cellXfsRegistry) {
1472
+ var e_4, _a;
1473
+ var _b, _c, _d, _e;
1474
+ if (formula === void 0) { formula = ""; }
1475
+ var trimmedFormula = (_b = formula === null || formula === void 0 ? void 0 : formula.trim()) !== null && _b !== void 0 ? _b : "";
1476
+ var directRefRegex = /^=\s*('?[^'!]+?'!)?\$?[A-Z]+\$?\d+$/i;
1477
+ if (!directRefRegex.test(trimmedFormula)) {
1478
+ return undefined;
1479
+ }
1480
+ var sheetCell = new SheetCell(sheetId, defaultCellCoords);
1481
+ try {
1482
+ for (var precedents_1 = __values(precedents), precedents_1_1 = precedents_1.next(); !precedents_1_1.done; precedents_1_1 = precedents_1.next()) {
1483
+ var precedent = precedents_1_1.value;
1484
+ // Ignore static node
1485
+ if (isStaticNode(precedent)) {
1486
+ continue;
1487
+ }
1488
+ var rowIndex = void 0;
1489
+ var columnIndex = void 0;
1490
+ var sheetId_1 = precedent.position.sheetId;
1491
+ // Get the first cell from a range
1492
+ if (isCellCoordinate(precedent.position)) {
1493
+ rowIndex = precedent.position.rowIndex;
1494
+ columnIndex = precedent.position.columnIndex;
1495
+ }
1496
+ else {
1497
+ rowIndex = precedent.position.startRowIndex;
1498
+ columnIndex = precedent.position.startColumnIndex;
1499
+ }
1500
+ sheetCell.assign(sheetId_1, {
1501
+ rowIndex: rowIndex,
1502
+ columnIndex: columnIndex,
1503
+ }, (_e = (_d = (_c = draft === null || draft === void 0 ? void 0 : draft[sheetId_1]) === null || _c === void 0 ? void 0 : _c[rowIndex]) === null || _d === void 0 ? void 0 : _d.values) === null || _e === void 0 ? void 0 : _e[columnIndex], {
1504
+ locale: locale,
1505
+ cellXfsRegistry: cellXfsRegistry,
1506
+ });
1507
+ return sheetCell.getCellData();
1508
+ }
1509
+ }
1510
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
1511
+ finally {
1512
+ try {
1513
+ if (precedents_1_1 && !precedents_1_1.done && (_a = precedents_1.return)) _a.call(precedents_1);
1514
+ }
1515
+ finally { if (e_4) throw e_4.error; }
1516
+ }
1517
+ };
1518
+ /**
1519
+ * Parse a literal integer from a VLOOKUP/HLOOKUP col/row-index argument.
1520
+ * Returns undefined for non-literal expressions so the caller can fall
1521
+ * back to a coarser filter.
1522
+ */
1523
+ var parseLiteralInt = function (raw) {
1524
+ if (!raw)
1525
+ return undefined;
1526
+ var trimmed = raw.trim();
1527
+ if (!/^-?\d+$/.test(trimmed))
1528
+ return undefined;
1529
+ var n = Number(trimmed);
1530
+ return Number.isFinite(n) ? n : undefined;
1531
+ };
1532
+ /**
1533
+ * Filter precedents to a single anchor cell inside a table range, used by
1534
+ * VLOOKUP (`column`) and HLOOKUP (`row`). The anchor is the cell at the
1535
+ * table's start row + selected column (vlookup), or start column +
1536
+ * selected row (hlookup) — matching Excel's first-cell format inheritance
1537
+ * for the looked-up column/row. `offset` is 1-based.
1538
+ */
1539
+ var filterPrecedentsByTableOffset = function (precedents, tableAddress, offset, axis, currentSheetId, getSheetId) {
1540
+ var targetSheetId = currentSheetId;
1541
+ var rangeStr = tableAddress;
1542
+ if (tableAddress.includes("!")) {
1543
+ var lastBang = tableAddress.lastIndexOf("!");
1544
+ var sheetName = tableAddress
1545
+ .substring(0, lastBang)
1546
+ .replace(/^'|'$/g, "");
1547
+ rangeStr = tableAddress.substring(lastBang + 1);
1548
+ targetSheetId = getSheetId(sheetName);
1549
+ }
1550
+ var parts = rangeStr.split(":");
1551
+ var start = parts.length === 2 ? addressToCell(parts[0]) : addressToCell(rangeStr);
1552
+ var end = parts.length === 2 ? addressToCell(parts[1]) : start;
1553
+ if (!start || !end)
1554
+ return precedents;
1555
+ var minRow = Math.min(start.rowIndex, end.rowIndex);
1556
+ var maxRow = Math.max(start.rowIndex, end.rowIndex);
1557
+ var minCol = Math.min(start.columnIndex, end.columnIndex);
1558
+ var maxCol = Math.max(start.columnIndex, end.columnIndex);
1559
+ // Anchor cell: table-start row × (start col + col_index - 1) for VLOOKUP,
1560
+ // (start row + row_index - 1) × table-start col for HLOOKUP.
1561
+ var anchorRow = axis === "row" ? minRow + (offset - 1) : minRow;
1562
+ var anchorCol = axis === "column" ? minCol + (offset - 1) : minCol;
1563
+ // Out-of-bounds offset → can't form an anchor; fall back to the whole
1564
+ // table so derivation still has something to work with.
1565
+ if (anchorRow < minRow || anchorRow > maxRow || anchorCol < minCol || anchorCol > maxCol) {
1566
+ return filterPrecedentsByAddress(precedents, tableAddress, currentSheetId, getSheetId);
1567
+ }
1568
+ return precedents.filter(function (p) {
1569
+ if (isStaticNode(p))
1570
+ return true;
1571
+ if (p.position.sheetId !== targetSheetId)
1572
+ return false;
1573
+ if (isCellCoordinate(p.position)) {
1574
+ return (p.position.rowIndex === anchorRow &&
1575
+ p.position.columnIndex === anchorCol);
1576
+ }
1577
+ var _a = p.position, startRowIndex = _a.startRowIndex, startColumnIndex = _a.startColumnIndex, endRowIndex = _a.endRowIndex, endColumnIndex = _a.endColumnIndex;
1578
+ return (startRowIndex <= anchorRow &&
1579
+ endRowIndex >= anchorRow &&
1580
+ startColumnIndex <= anchorCol &&
1581
+ endColumnIndex >= anchorCol);
1582
+ });
1583
+ };
1584
+ var filterPrecedentsByAddress = function (precedents, address, currentSheetId, getSheetId) {
1585
+ var targetSheetId = currentSheetId;
1586
+ var rangeStr = address;
1587
+ if (address.includes("!")) {
1588
+ var lastBang = address.lastIndexOf("!");
1589
+ var sheetName = address.substring(0, lastBang).replace(/^'|'$/g, "");
1590
+ rangeStr = address.substring(lastBang + 1);
1591
+ targetSheetId = getSheetId(sheetName);
1592
+ }
1593
+ var parts = rangeStr.split(":");
1594
+ var start;
1595
+ var end;
1596
+ if (parts.length === 2) {
1597
+ start = addressToCell(parts[0]);
1598
+ end = addressToCell(parts[1]);
1599
+ }
1600
+ else {
1601
+ start = addressToCell(rangeStr);
1602
+ end = start;
1603
+ }
1604
+ if (!start || !end)
1605
+ return precedents;
1606
+ var bounds = {
1607
+ minRow: Math.min(start.rowIndex, end.rowIndex),
1608
+ maxRow: Math.max(start.rowIndex, end.rowIndex),
1609
+ minCol: Math.min(start.columnIndex, end.columnIndex),
1610
+ maxCol: Math.max(start.columnIndex, end.columnIndex),
1611
+ };
1612
+ var filtered = precedents.filter(function (p) {
1613
+ if (isStaticNode(p))
1614
+ return true;
1615
+ if (p.position.sheetId !== targetSheetId)
1616
+ return false;
1617
+ if (isCellCoordinate(p.position)) {
1618
+ var _a = p.position, rowIndex = _a.rowIndex, columnIndex = _a.columnIndex;
1619
+ return (rowIndex >= bounds.minRow &&
1620
+ rowIndex <= bounds.maxRow &&
1621
+ columnIndex >= bounds.minCol &&
1622
+ columnIndex <= bounds.maxCol);
1623
+ }
1624
+ else {
1625
+ var _b = p.position, startRowIndex = _b.startRowIndex, startColumnIndex = _b.startColumnIndex, endRowIndex = _b.endRowIndex, endColumnIndex = _b.endColumnIndex;
1626
+ return !(startRowIndex > bounds.maxRow ||
1627
+ endRowIndex < bounds.minRow ||
1628
+ startColumnIndex > bounds.maxCol ||
1629
+ endColumnIndex < bounds.minCol);
1630
+ }
1631
+ });
1632
+ return filtered.length > 0 ? filtered : precedents;
1633
+ };