@rowsncolumns/spreadsheet 10.2.74 → 10.2.76

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 (280) hide show
  1. package/dist/cjs/api/excel-validation-kinds.d.ts +71 -0
  2. package/dist/cjs/api/excel-validation-kinds.d.ts.map +1 -0
  3. package/dist/cjs/api/excel-validation-kinds.js +304 -0
  4. package/dist/cjs/api/fill-series.d.ts +38 -0
  5. package/dist/cjs/api/fill-series.d.ts.map +1 -0
  6. package/dist/cjs/api/fill-series.js +89 -0
  7. package/dist/cjs/api/go-to-special.d.ts +32 -0
  8. package/dist/cjs/api/go-to-special.d.ts.map +1 -0
  9. package/dist/cjs/api/go-to-special.js +111 -0
  10. package/dist/cjs/api/spreadsheet-api.d.ts +6 -2
  11. package/dist/cjs/api/spreadsheet-api.d.ts.map +1 -1
  12. package/dist/cjs/api/spreadsheet-api.js +9 -3
  13. package/dist/cjs/api/validation-tooltip.d.ts +17 -0
  14. package/dist/cjs/api/validation-tooltip.d.ts.map +1 -0
  15. package/dist/cjs/api/validation-tooltip.js +42 -0
  16. package/dist/cjs/atoms/advanced-filter-dialog.atom.d.ts +28 -0
  17. package/dist/cjs/atoms/advanced-filter-dialog.atom.d.ts.map +1 -0
  18. package/dist/cjs/atoms/advanced-filter-dialog.atom.js +32 -0
  19. package/dist/cjs/atoms/fill-options.atom.d.ts +36 -0
  20. package/dist/cjs/atoms/fill-options.atom.d.ts.map +1 -0
  21. package/dist/cjs/atoms/fill-options.atom.js +11 -0
  22. package/dist/cjs/atoms/fill-series-dialog.atom.d.ts +26 -0
  23. package/dist/cjs/atoms/fill-series-dialog.atom.d.ts.map +1 -0
  24. package/dist/cjs/atoms/fill-series-dialog.atom.js +14 -0
  25. package/dist/cjs/atoms/go-to-dialog.atom.d.ts +11 -1
  26. package/dist/cjs/atoms/go-to-dialog.atom.d.ts.map +1 -1
  27. package/dist/cjs/atoms/goal-seek-dialog.atom.d.ts +29 -0
  28. package/dist/cjs/atoms/goal-seek-dialog.atom.d.ts.map +1 -0
  29. package/dist/cjs/atoms/goal-seek-dialog.atom.js +30 -0
  30. package/dist/cjs/atoms/index.d.ts +3 -0
  31. package/dist/cjs/atoms/index.d.ts.map +1 -1
  32. package/dist/cjs/atoms/index.js +3 -0
  33. package/dist/cjs/atoms/subtotal-dialog.atom.d.ts +39 -0
  34. package/dist/cjs/atoms/subtotal-dialog.atom.d.ts.map +1 -0
  35. package/dist/cjs/atoms/subtotal-dialog.atom.js +30 -0
  36. package/dist/cjs/atoms/text-to-columns-dialog.atom.d.ts +34 -0
  37. package/dist/cjs/atoms/text-to-columns-dialog.atom.d.ts.map +1 -0
  38. package/dist/cjs/atoms/text-to-columns-dialog.atom.js +36 -0
  39. package/dist/cjs/atoms/watch-window.atom.d.ts +37 -0
  40. package/dist/cjs/atoms/watch-window.atom.d.ts.map +1 -0
  41. package/dist/cjs/atoms/watch-window.atom.js +61 -0
  42. package/dist/cjs/components/advanced-filter-dialog/index.d.ts +28 -0
  43. package/dist/cjs/components/advanced-filter-dialog/index.d.ts.map +1 -0
  44. package/dist/cjs/components/advanced-filter-dialog/index.js +134 -0
  45. package/dist/cjs/components/calculation-options-dialog/index.d.ts +33 -0
  46. package/dist/cjs/components/calculation-options-dialog/index.d.ts.map +1 -0
  47. package/dist/cjs/components/calculation-options-dialog/index.js +69 -0
  48. package/dist/cjs/components/canvas-grid/index.d.ts.map +1 -1
  49. package/dist/cjs/components/canvas-grid/index.js +328 -71
  50. package/dist/cjs/components/canvas-grid/typings.d.ts +31 -5
  51. package/dist/cjs/components/canvas-grid/typings.d.ts.map +1 -1
  52. package/dist/cjs/components/cell/alignment.d.ts +30 -0
  53. package/dist/cjs/components/cell/alignment.d.ts.map +1 -1
  54. package/dist/cjs/components/cell/alignment.js +56 -1
  55. package/dist/cjs/components/cell/index.d.ts.map +1 -1
  56. package/dist/cjs/components/cell/index.js +15 -7
  57. package/dist/cjs/components/cell-diff/index.d.ts +3 -2
  58. package/dist/cjs/components/cell-diff/index.d.ts.map +1 -1
  59. package/dist/cjs/components/cell-editor/helpers.d.ts +9 -0
  60. package/dist/cjs/components/cell-editor/helpers.d.ts.map +1 -1
  61. package/dist/cjs/components/cell-editor/helpers.js +8 -1
  62. package/dist/cjs/components/cell-editor/helpers.spec.js +14 -0
  63. package/dist/cjs/components/cell-editor/index.d.ts.map +1 -1
  64. package/dist/cjs/components/cell-editor/index.js +7 -3
  65. package/dist/cjs/components/context-menu/index.d.ts +6 -1
  66. package/dist/cjs/components/context-menu/index.d.ts.map +1 -1
  67. package/dist/cjs/components/context-menu/index.js +146 -3
  68. package/dist/cjs/components/embeds/embed-component.d.ts.map +1 -1
  69. package/dist/cjs/components/embeds/embed-component.js +16 -1
  70. package/dist/cjs/components/fill-series-dialog/index.d.ts +29 -0
  71. package/dist/cjs/components/fill-series-dialog/index.d.ts.map +1 -0
  72. package/dist/cjs/components/fill-series-dialog/index.js +156 -0
  73. package/dist/cjs/components/go-to-dialog/index.d.ts +11 -1
  74. package/dist/cjs/components/go-to-dialog/index.d.ts.map +1 -1
  75. package/dist/cjs/components/go-to-dialog/index.js +67 -24
  76. package/dist/cjs/components/goal-seek-dialog/index.d.ts +32 -0
  77. package/dist/cjs/components/goal-seek-dialog/index.d.ts.map +1 -0
  78. package/dist/cjs/components/goal-seek-dialog/index.js +149 -0
  79. package/dist/cjs/components/selection/fill-options-menu.d.ts +32 -0
  80. package/dist/cjs/components/selection/fill-options-menu.d.ts.map +1 -0
  81. package/dist/cjs/components/selection/fill-options-menu.js +65 -0
  82. package/dist/cjs/components/selection/index.d.ts +1 -1
  83. package/dist/cjs/components/selection/index.d.ts.map +1 -1
  84. package/dist/cjs/components/selection/index.js +4 -2
  85. package/dist/cjs/components/selection/types.d.ts +11 -1
  86. package/dist/cjs/components/selection/types.d.ts.map +1 -1
  87. package/dist/cjs/components/subtotal-dialog/index.d.ts +30 -0
  88. package/dist/cjs/components/subtotal-dialog/index.d.ts.map +1 -0
  89. package/dist/cjs/components/subtotal-dialog/index.js +126 -0
  90. package/dist/cjs/components/text-to-columns-dialog/index.d.ts +37 -0
  91. package/dist/cjs/components/text-to-columns-dialog/index.d.ts.map +1 -0
  92. package/dist/cjs/components/text-to-columns-dialog/index.js +166 -0
  93. package/dist/cjs/components/toolbar/background-color-selector.d.ts +13 -1
  94. package/dist/cjs/components/toolbar/background-color-selector.d.ts.map +1 -1
  95. package/dist/cjs/components/toolbar/background-color-selector.js +57 -11
  96. package/dist/cjs/components/toolbar/cell-style-selector.d.ts +15 -2
  97. package/dist/cjs/components/toolbar/cell-style-selector.d.ts.map +1 -1
  98. package/dist/cjs/components/toolbar/cell-style-selector.js +56 -3
  99. package/dist/cjs/components/toolbar/fill-selectors.d.ts +49 -0
  100. package/dist/cjs/components/toolbar/fill-selectors.d.ts.map +1 -0
  101. package/dist/cjs/components/toolbar/fill-selectors.js +196 -0
  102. package/dist/cjs/components/toolbar/index.d.ts +1 -0
  103. package/dist/cjs/components/toolbar/index.d.ts.map +1 -1
  104. package/dist/cjs/components/toolbar/index.js +1 -0
  105. package/dist/cjs/components/toolbar/text-format-selector.d.ts +9 -0
  106. package/dist/cjs/components/toolbar/text-format-selector.d.ts.map +1 -1
  107. package/dist/cjs/components/toolbar/text-format-selector.js +15 -3
  108. package/dist/cjs/components/toolbar/text-horizontal-align-selector.d.ts +8 -0
  109. package/dist/cjs/components/toolbar/text-horizontal-align-selector.d.ts.map +1 -1
  110. package/dist/cjs/components/toolbar/text-horizontal-align-selector.js +23 -4
  111. package/dist/cjs/components/watch-window/index.d.ts +25 -0
  112. package/dist/cjs/components/watch-window/index.d.ts.map +1 -0
  113. package/dist/cjs/components/watch-window/index.js +63 -0
  114. package/dist/cjs/hooks/use-cell-renderer.d.ts.map +1 -1
  115. package/dist/cjs/hooks/use-cell-renderer.js +17 -6
  116. package/dist/cjs/hooks/use-editable.d.ts +11 -2
  117. package/dist/cjs/hooks/use-editable.d.ts.map +1 -1
  118. package/dist/cjs/hooks/use-editable.js +8 -0
  119. package/dist/cjs/hooks/use-editor-submit.d.ts +32 -3
  120. package/dist/cjs/hooks/use-editor-submit.d.ts.map +1 -1
  121. package/dist/cjs/hooks/use-editor-submit.js +111 -2
  122. package/dist/cjs/hooks/use-get-tooltip.d.ts.map +1 -1
  123. package/dist/cjs/hooks/use-get-tooltip.js +7 -2
  124. package/dist/cjs/hooks/use-keyboard-handler.d.ts.map +1 -1
  125. package/dist/cjs/hooks/use-keyboard-handler.js +27 -14
  126. package/dist/cjs/hooks/use-selection-renderer.d.ts +13 -2
  127. package/dist/cjs/hooks/use-selection-renderer.d.ts.map +1 -1
  128. package/dist/cjs/hooks/use-selection-renderer.js +21 -4
  129. package/dist/cjs/hooks/use-selection.d.ts +54 -4
  130. package/dist/cjs/hooks/use-selection.d.ts.map +1 -1
  131. package/dist/cjs/hooks/use-selection.js +232 -37
  132. package/dist/cjs/index.d.ts +12 -0
  133. package/dist/cjs/index.d.ts.map +1 -1
  134. package/dist/cjs/index.js +11 -0
  135. package/dist/cjs/release-date.js +1 -1
  136. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  137. package/dist/cjs/types.d.ts +156 -5
  138. package/dist/cjs/types.d.ts.map +1 -1
  139. package/dist/cjs/types.js +19 -1
  140. package/dist/esm/api/excel-validation-kinds.d.ts +71 -0
  141. package/dist/esm/api/excel-validation-kinds.d.ts.map +1 -0
  142. package/dist/esm/api/excel-validation-kinds.js +287 -0
  143. package/dist/esm/api/fill-series.d.ts +38 -0
  144. package/dist/esm/api/fill-series.d.ts.map +1 -0
  145. package/dist/esm/api/fill-series.js +78 -0
  146. package/dist/esm/api/go-to-special.d.ts +32 -0
  147. package/dist/esm/api/go-to-special.d.ts.map +1 -0
  148. package/dist/esm/api/go-to-special.js +96 -0
  149. package/dist/esm/api/spreadsheet-api.d.ts +6 -2
  150. package/dist/esm/api/spreadsheet-api.d.ts.map +1 -1
  151. package/dist/esm/api/spreadsheet-api.js +8 -3
  152. package/dist/esm/api/validation-tooltip.d.ts +17 -0
  153. package/dist/esm/api/validation-tooltip.d.ts.map +1 -0
  154. package/dist/esm/api/validation-tooltip.js +34 -0
  155. package/dist/esm/atoms/advanced-filter-dialog.atom.d.ts +28 -0
  156. package/dist/esm/atoms/advanced-filter-dialog.atom.d.ts.map +1 -0
  157. package/dist/esm/atoms/advanced-filter-dialog.atom.js +21 -0
  158. package/dist/esm/atoms/fill-options.atom.d.ts +36 -0
  159. package/dist/esm/atoms/fill-options.atom.d.ts.map +1 -0
  160. package/dist/esm/atoms/fill-options.atom.js +5 -0
  161. package/dist/esm/atoms/fill-series-dialog.atom.d.ts +26 -0
  162. package/dist/esm/atoms/fill-series-dialog.atom.d.ts.map +1 -0
  163. package/dist/esm/atoms/fill-series-dialog.atom.js +9 -0
  164. package/dist/esm/atoms/go-to-dialog.atom.d.ts +11 -1
  165. package/dist/esm/atoms/go-to-dialog.atom.d.ts.map +1 -1
  166. package/dist/esm/atoms/goal-seek-dialog.atom.d.ts +29 -0
  167. package/dist/esm/atoms/goal-seek-dialog.atom.d.ts.map +1 -0
  168. package/dist/esm/atoms/goal-seek-dialog.atom.js +21 -0
  169. package/dist/esm/atoms/index.d.ts +3 -0
  170. package/dist/esm/atoms/index.d.ts.map +1 -1
  171. package/dist/esm/atoms/index.js +3 -0
  172. package/dist/esm/atoms/subtotal-dialog.atom.d.ts +39 -0
  173. package/dist/esm/atoms/subtotal-dialog.atom.d.ts.map +1 -0
  174. package/dist/esm/atoms/subtotal-dialog.atom.js +21 -0
  175. package/dist/esm/atoms/text-to-columns-dialog.atom.d.ts +34 -0
  176. package/dist/esm/atoms/text-to-columns-dialog.atom.d.ts.map +1 -0
  177. package/dist/esm/atoms/text-to-columns-dialog.atom.js +25 -0
  178. package/dist/esm/atoms/watch-window.atom.d.ts +37 -0
  179. package/dist/esm/atoms/watch-window.atom.d.ts.map +1 -0
  180. package/dist/esm/atoms/watch-window.atom.js +37 -0
  181. package/dist/esm/components/advanced-filter-dialog/index.d.ts +28 -0
  182. package/dist/esm/components/advanced-filter-dialog/index.d.ts.map +1 -0
  183. package/dist/esm/components/advanced-filter-dialog/index.js +125 -0
  184. package/dist/esm/components/calculation-options-dialog/index.d.ts +33 -0
  185. package/dist/esm/components/calculation-options-dialog/index.d.ts.map +1 -0
  186. package/dist/esm/components/calculation-options-dialog/index.js +61 -0
  187. package/dist/esm/components/canvas-grid/index.d.ts.map +1 -1
  188. package/dist/esm/components/canvas-grid/index.js +266 -26
  189. package/dist/esm/components/canvas-grid/typings.d.ts +31 -5
  190. package/dist/esm/components/canvas-grid/typings.d.ts.map +1 -1
  191. package/dist/esm/components/cell/alignment.d.ts +30 -0
  192. package/dist/esm/components/cell/alignment.d.ts.map +1 -1
  193. package/dist/esm/components/cell/alignment.js +51 -0
  194. package/dist/esm/components/cell/index.d.ts.map +1 -1
  195. package/dist/esm/components/cell/index.js +16 -8
  196. package/dist/esm/components/cell-diff/index.d.ts +3 -2
  197. package/dist/esm/components/cell-diff/index.d.ts.map +1 -1
  198. package/dist/esm/components/cell-editor/helpers.d.ts +9 -0
  199. package/dist/esm/components/cell-editor/helpers.d.ts.map +1 -1
  200. package/dist/esm/components/cell-editor/helpers.js +6 -0
  201. package/dist/esm/components/cell-editor/helpers.spec.js +15 -1
  202. package/dist/esm/components/cell-editor/index.d.ts.map +1 -1
  203. package/dist/esm/components/cell-editor/index.js +8 -4
  204. package/dist/esm/components/context-menu/index.d.ts +6 -1
  205. package/dist/esm/components/context-menu/index.d.ts.map +1 -1
  206. package/dist/esm/components/context-menu/index.js +139 -4
  207. package/dist/esm/components/embeds/embed-component.d.ts.map +1 -1
  208. package/dist/esm/components/embeds/embed-component.js +17 -1
  209. package/dist/esm/components/fill-series-dialog/index.d.ts +29 -0
  210. package/dist/esm/components/fill-series-dialog/index.d.ts.map +1 -0
  211. package/dist/esm/components/fill-series-dialog/index.js +151 -0
  212. package/dist/esm/components/go-to-dialog/index.d.ts +11 -1
  213. package/dist/esm/components/go-to-dialog/index.d.ts.map +1 -1
  214. package/dist/esm/components/go-to-dialog/index.js +63 -23
  215. package/dist/esm/components/goal-seek-dialog/index.d.ts +32 -0
  216. package/dist/esm/components/goal-seek-dialog/index.d.ts.map +1 -0
  217. package/dist/esm/components/goal-seek-dialog/index.js +125 -0
  218. package/dist/esm/components/selection/fill-options-menu.d.ts +32 -0
  219. package/dist/esm/components/selection/fill-options-menu.d.ts.map +1 -0
  220. package/dist/esm/components/selection/fill-options-menu.js +63 -0
  221. package/dist/esm/components/selection/index.d.ts +1 -1
  222. package/dist/esm/components/selection/index.d.ts.map +1 -1
  223. package/dist/esm/components/selection/index.js +4 -2
  224. package/dist/esm/components/selection/types.d.ts +11 -1
  225. package/dist/esm/components/selection/types.d.ts.map +1 -1
  226. package/dist/esm/components/subtotal-dialog/index.d.ts +30 -0
  227. package/dist/esm/components/subtotal-dialog/index.d.ts.map +1 -0
  228. package/dist/esm/components/subtotal-dialog/index.js +115 -0
  229. package/dist/esm/components/text-to-columns-dialog/index.d.ts +37 -0
  230. package/dist/esm/components/text-to-columns-dialog/index.d.ts.map +1 -0
  231. package/dist/esm/components/text-to-columns-dialog/index.js +147 -0
  232. package/dist/esm/components/toolbar/background-color-selector.d.ts +13 -1
  233. package/dist/esm/components/toolbar/background-color-selector.d.ts.map +1 -1
  234. package/dist/esm/components/toolbar/background-color-selector.js +61 -11
  235. package/dist/esm/components/toolbar/cell-style-selector.d.ts +15 -2
  236. package/dist/esm/components/toolbar/cell-style-selector.d.ts.map +1 -1
  237. package/dist/esm/components/toolbar/cell-style-selector.js +46 -2
  238. package/dist/esm/components/toolbar/fill-selectors.d.ts +49 -0
  239. package/dist/esm/components/toolbar/fill-selectors.d.ts.map +1 -0
  240. package/dist/esm/components/toolbar/fill-selectors.js +162 -0
  241. package/dist/esm/components/toolbar/index.d.ts +1 -0
  242. package/dist/esm/components/toolbar/index.d.ts.map +1 -1
  243. package/dist/esm/components/toolbar/index.js +1 -0
  244. package/dist/esm/components/toolbar/text-format-selector.d.ts +9 -0
  245. package/dist/esm/components/toolbar/text-format-selector.d.ts.map +1 -1
  246. package/dist/esm/components/toolbar/text-format-selector.js +14 -2
  247. package/dist/esm/components/toolbar/text-horizontal-align-selector.d.ts +8 -0
  248. package/dist/esm/components/toolbar/text-horizontal-align-selector.d.ts.map +1 -1
  249. package/dist/esm/components/toolbar/text-horizontal-align-selector.js +21 -5
  250. package/dist/esm/components/watch-window/index.d.ts +25 -0
  251. package/dist/esm/components/watch-window/index.d.ts.map +1 -0
  252. package/dist/esm/components/watch-window/index.js +54 -0
  253. package/dist/esm/hooks/use-cell-renderer.d.ts.map +1 -1
  254. package/dist/esm/hooks/use-cell-renderer.js +17 -6
  255. package/dist/esm/hooks/use-editable.d.ts +11 -2
  256. package/dist/esm/hooks/use-editable.d.ts.map +1 -1
  257. package/dist/esm/hooks/use-editable.js +8 -0
  258. package/dist/esm/hooks/use-editor-submit.d.ts +32 -3
  259. package/dist/esm/hooks/use-editor-submit.d.ts.map +1 -1
  260. package/dist/esm/hooks/use-editor-submit.js +82 -3
  261. package/dist/esm/hooks/use-get-tooltip.d.ts.map +1 -1
  262. package/dist/esm/hooks/use-get-tooltip.js +7 -2
  263. package/dist/esm/hooks/use-keyboard-handler.d.ts.map +1 -1
  264. package/dist/esm/hooks/use-keyboard-handler.js +27 -14
  265. package/dist/esm/hooks/use-selection-renderer.d.ts +13 -2
  266. package/dist/esm/hooks/use-selection-renderer.d.ts.map +1 -1
  267. package/dist/esm/hooks/use-selection-renderer.js +22 -5
  268. package/dist/esm/hooks/use-selection.d.ts +54 -4
  269. package/dist/esm/hooks/use-selection.d.ts.map +1 -1
  270. package/dist/esm/hooks/use-selection.js +220 -36
  271. package/dist/esm/index.d.ts +12 -0
  272. package/dist/esm/index.d.ts.map +1 -1
  273. package/dist/esm/index.js +11 -0
  274. package/dist/esm/release-date.js +1 -1
  275. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  276. package/dist/esm/types.d.ts +156 -5
  277. package/dist/esm/types.d.ts.map +1 -1
  278. package/dist/esm/types.js +18 -0
  279. package/dist/spreadsheet.min.css +1 -1
  280. package/package.json +7 -7
@@ -20,9 +20,13 @@ var cf_window_1 = require("../../api/cf-window");
20
20
  var selections_1 = require("../../api/selections");
21
21
  var spreadsheet_api_1 = require("../../api/spreadsheet-api");
22
22
  var table_1 = require("../../api/table");
23
+ var validation_tooltip_1 = require("../../api/validation-tooltip");
24
+ var go_to_special_1 = require("../../api/go-to-special");
25
+ var excel_validation_kinds_1 = require("../../api/excel-validation-kinds");
23
26
  var validation_1 = require("../../api/validation");
24
27
  var atoms_1 = require("../../atoms");
25
28
  var active_editor_atom_1 = require("../../atoms/active-editor.atom");
29
+ var watch_window_atom_1 = require("../../atoms/watch-window.atom");
26
30
  var editing_cell_atom_1 = require("../../atoms/editing-cell.atom");
27
31
  var formula_bar_editor_value_atom_1 = require("../../atoms/formula-bar-editor-value.atom");
28
32
  var formula_selection_state_atom_1 = require("../../atoms/formula-selection-state.atom");
@@ -86,6 +90,7 @@ var use_touch_1 = require("../../hooks/use-touch");
86
90
  var spreadsheet_provider_1 = require("../../providers/spreadsheet-provider");
87
91
  var scroll_subscriber_1 = require("../../signals/scroll-subscriber");
88
92
  var themes_1 = require("../../themes");
93
+ var fill_series_1 = require("../../api/fill-series");
89
94
  var cell_1 = require("../cell");
90
95
  var cell_editor_1 = require("../cell-editor");
91
96
  var context_menu_1 = require("../context-menu");
@@ -104,7 +109,7 @@ var helpers_2 = require("./helpers");
104
109
  * @returns
105
110
  */
106
111
  function CanvasGridComponent(props, forwardedRef) {
107
- var licenseKey = props.licenseKey, sheetId = props.sheetId, instanceId = props.instanceId, _a = props.activeCell, activeCell = _a === void 0 ? config_1.DEFAULT_ACTIVE_CELL : _a, _b = props.selections, selections = _b === void 0 ? config_1.DEFAULT_ARRAY : _b, _c = props.frozenColumnCount, frozenColumnCount = _c === void 0 ? 0 : _c, _d = props.frozenRowCount, frozenRowCount = _d === void 0 ? 0 : _d, _e = props.rowCount, rowCount = _e === void 0 ? config_1.DEFAULT_ROW_COUNT : _e, _f = props.columnCount, columnCount = _f === void 0 ? config_1.DEFAULT_COLUMN_COUNT : _f, autoFocus = props.autoFocus, basicFilter = props.basicFilter, tables = props.tables, namedRanges = props.namedRanges, _g = props.bandedRanges, bandedRanges = _g === void 0 ? config_1.DEFAULT_ARRAY : _g, _h = props.tableBorderColor, tableBorderColor = _h === void 0 ? "#008000" : _h, _j = props.filterIconColor, filterIconColor = _j === void 0 ? "#008000" : _j, conditionalFormats = props.conditionalFormats, _k = props.showFilterIcon, showFilterIcon = _k === void 0 ? true : _k, _l = props.showCalculatedColumnIcon, showCalculatedColumnIcon = _l === void 0 ? true : _l, _m = props.showHeaders, showHeaders = _m === void 0 ? true : _m, _o = props.defaultColumnWidth, defaultColumnWidth = _o === void 0 ? config_1.DEFAULT_COLUMN_WIDTH : _o, _p = props.defaultRowHeight, defaultRowHeight = _p === void 0 ? config_1.DEFAULT_ROW_HEIGHT : _p, _q = props.columnHeaderHeight, columnHeaderHeight = _q === void 0 ? config_1.COLUMN_HEADER_HEIGHT : _q, _r = props.rowHeaderWidth, rowHeaderWidth = _r === void 0 ? config_1.ROW_HEADER_WIDTH : _r, _s = props.gridLineColor, gridLineColor = _s === void 0 ? config_1.GRIDLINE_COLOR : _s, _t = props.cellBackgroundColor, cellBackgroundColor = _t === void 0 ? config_1.DEFAULT_CELL_BACKGROUND_COLOR : _t, _u = props.cellColor, cellColor = _u === void 0 ? config_1.DEFAULT_CELL_COLOR : _u, _v = props.headerBorderColor, headerBorderColor = _v === void 0 ? config_1.DEFAULT_HEADER_BORDER_COLOR : _v, _w = props.headerBackgroundColor, headerBackgroundColor = _w === void 0 ? config_1.DEFAULT_HEADER_BG : _w, _x = props.headerColor, headerColor = _x === void 0 ? config_1.DEFAULT_HEADER_COLOR : _x, _y = props.headerActiveBackgroundColor, headerActiveBackgroundColor = _y === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_BG : _y, _z = props.headerSelectedBackgroundColor, headerSelectedBackgroundColor = _z === void 0 ? config_1.DEFAULT_HEADER_SELECTED_BG : _z, _0 = props.headerSelectedColor, headerSelectedColor = _0 === void 0 ? "white" : _0, _1 = props.headerTableBackgroundColor, headerTableBackgroundColor = _1 === void 0 ? config_1.DEFAULT_HEADER_TABLE_BG : _1, _2 = props.headerTableActiveBackgroundColor, headerTableActiveBackgroundColor = _2 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_TABLE_BG : _2, _3 = props.headerTableSelectedBackgroundColor, headerTableSelectedBackgroundColor = _3 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_TABLE_BG : _3, _4 = props.frozenShadowColor, frozenShadowColor = _4 === void 0 ? headerBorderColor : _4, _5 = props.frozenShadowThickness, frozenShadowThickness = _5 === void 0 ? 1 : _5, _6 = props.selectionBackgroundColor, selectionBackgroundColor = _6 === void 0 ? config_1.SELECTION_BG : _6, _7 = props.selectionBorderColor, selectionBorderColor = _7 === void 0 ? config_1.SELECTION_BORDER : _7, _8 = props.selectionDragBorderColor, selectionDragBorderColor = _8 === void 0 ? config_1.SELECTION_BORDER : _8, chartSelectedColor = props.chartSelectedColor, _9 = props.chipBackgroundColor, chipBackgroundColor = _9 === void 0 ? config_1.CHIP_COLOR : _9, _10 = props.merges, merges = _10 === void 0 ? config_1.DEFAULT_ARRAY : _10, borderStyles = props.borderStyles, protectedRanges = props.protectedRanges, _11 = props.isWorkbookProtected, isWorkbookProtectedProp = _11 === void 0 ? false : _11, getSheetProtection = props.getSheetProtection, pivotTables = props.pivotTables, charts = props.charts, embeds = props.embeds, slicers = props.slicers, _12 = props.rowMetadata, rowMetadata = _12 === void 0 ? config_1.DEFAULT_ARRAY : _12, _13 = props.columnMetadata, columnMetadata = _13 === void 0 ? config_1.DEFAULT_ARRAY : _13, _14 = props.scale, scale = _14 === void 0 ? 1 : _14, _15 = props.zoomSpeed, zoomSpeed = _15 === void 0 ? 1 : _15, _16 = props.overscanCount, overscanCount = _16 === void 0 ? 3 : _16, _17 = props.enableEditOnEnterKey, enableEditOnEnterKey = _17 === void 0 ? true : _17, _18 = props.enableTextOverflow, enableTextOverflow = _18 === void 0 ? true : _18, _showGridLines = props.showGridLines, _19 = props.showFormulas, showFormulas = _19 === void 0 ? false : _19, _20 = props.protectFormulas, protectFormulas = _20 === void 0 ? false : _20, _21 = props.showFrozenSeparator, showFrozenSeparator = _21 === void 0 ? true : _21, _22 = props.HeaderCell, HeaderCell = _22 === void 0 ? header_cell_1.HeaderCell : _22, _23 = props.Cell, Cell = _23 === void 0 ? cell_1.Cell : _23, _24 = props.SelectionTitleComponent, SelectionTitleComponent = _24 === void 0 ? title_1.SelectionTitle : _24, _25 = props.CellEditor, CellEditor = _25 === void 0 ? cell_editor_1.CellEditor : _25, CellTooltip = props.CellTooltip, _26 = props.ContextMenu, ContextMenu = _26 === void 0 ? context_menu_1.ContextMenu : _26, _27 = props.ContextMenuWrapper, ContextMenuWrapper = _27 === void 0 ? use_context_menu_1.DefaultContextMenuWrapper : _27, _28 = props.FilterBox, FilterBox = _28 === void 0 ? filter_box_1.FilterBox : _28, _29 = props.HeaderMoveDragComponent, HeaderMoveDragComponent = _29 === void 0 ? header_move_1.HeaderMoveDragComponent : _29, SuggestionsDropdown = props.SuggestionsDropdown, _30 = props.stickyEditor, stickyEditor = _30 === void 0 ? true : _30, _31 = props.scrollSnap, scrollSnap = _31 === void 0 ? false : _31, scrollThrottleTimeout = props.scrollThrottleTimeout, preventBrowserDefaultScroll = props.preventBrowserDefaultScroll, _32 = props.mouseMoveThrottleTimeout, mouseMoveThrottleTimeout = _32 === void 0 ? 60 : _32, _33 = props.tooltipIntentInterval, tooltipIntentInterval = _33 === void 0 ? 60 : _33, selectionPolicy = props.selectionPolicy, users = props.users, userId = props.userId, renderCollaboratorCursor = props.renderCollaboratorCursor, functionDescriptions = props.functionDescriptions, _34 = props.showHeaderMenuButton, showHeaderMenuButton = _34 === void 0 ? true : _34, _35 = props.scrollbarSize, scrollbarSize = _35 === void 0 ? config_1.SCROLLBAR_SIZE : _35, _36 = props.theme, theme = _36 === void 0 ? config_1.defaultSpreadsheetTheme : _36, _37 = props.showNotes, showNotes = _37 === void 0 ? true : _37, _38 = props.showComments, showComments = _38 === void 0 ? true : _38, locale = props.locale, agentSuggestions = props.agentSuggestions, onReviewSuggestion = props.onReviewSuggestion, onShowFormulas = props.onShowFormulas, getDataRowCount = props.getDataRowCount, getChartComponent = props.getChartComponent, getEmbedComponent = props.getEmbedComponent, getSlicerComponent = props.getSlicerComponent, onChange = props.onChange, onChangeBatch = props.onChangeBatch, onExpandCollapse = props.onExpandCollapse, onPivotDrillDown = props.onPivotDrillDown, onDelete = props.onDelete, onChangeEditorValue = props.onChangeEditorValue, onFill = props.onFill, onRequestCalculate = props.onRequestCalculate, onChangeActiveCell = props.onChangeActiveCell, onChangeActiveSheet = props.onChangeActiveSheet, onChangeSelections = props.onChangeSelections, getSheetName = props.getSheetName, getSheetId = props.getSheetId, getCellData = props.getCellData, getNoteProp = props.getNote, getTextFormatRuns = props.getTextFormatRuns, getDataValidation = props.getDataValidation, getEffectiveFormat = props.getEffectiveFormat, getFormattedValueProp = props.getFormattedValue, getTooltipContent = props.getTooltipContent, errorResolutionComponent = props.errorResolutionComponent, getEffectiveValueProp = props.getEffectiveValue, getUserEnteredExtendedValue = props.getUserEnteredExtendedValue, getEffectiveExtendedValue = props.getEffectiveExtendedValue, getSheetRowCount = props.getSheetRowCount, getSheetColumnCount = props.getSheetColumnCount, getCellPopoverContent = props.getCellPopoverContent, onScroll = props.onScroll, onViewPortChange = props.onViewPortChange, _39 = props.windowConditionalFormats, windowConditionalFormats = _39 === void 0 ? false : _39, _40 = props.engineConditionalFormatResults, engineConditionalFormatResults = _40 === void 0 ? false : _40, onResize = props.onResize, onAutoResize = props.onAutoResize, onHideColumn = props.onHideColumn, onHideRow = props.onHideRow, onShowColumn = props.onShowColumn, onShowRow = props.onShowRow, onGroupRows = props.onGroupRows, onUngroupRows = props.onUngroupRows, onCollapseRowGroup = props.onCollapseRowGroup, onExpandRowGroup = props.onExpandRowGroup, onGroupColumns = props.onGroupColumns, onUngroupColumns = props.onUngroupColumns, onCollapseColumnGroup = props.onCollapseColumnGroup, onExpandColumnGroup = props.onExpandColumnGroup, onSetOutlineDepth = props.onSetOutlineDepth, onDeleteRow = props.onDeleteRow, onDeleteColumn = props.onDeleteColumn, onInsertRow = props.onInsertRow, onInsertColumn = props.onInsertColumn, onInsertCellsShiftDown = props.onInsertCellsShiftDown, onInsertCellsShiftRight = props.onInsertCellsShiftRight, onDeleteCellsShiftLeft = props.onDeleteCellsShiftLeft, onDeleteCellsShiftUp = props.onDeleteCellsShiftUp, onClearContents = props.onClearContents, onMoveColumns = props.onMoveColumns, onMoveRows = props.onMoveRows, onSelectNextSheet = props.onSelectNextSheet, onSelectPreviousSheet = props.onSelectPreviousSheet, onCreateNewSheet = props.onCreateNewSheet, onKeyDown = props.onKeyDown, onChangeFormatting = props.onChangeFormatting, onRepeatFormatting = props.onRepeatFormatting, onClearFormatting = props.onClearFormatting, onRequestEditProtectedRange = props.onRequestEditProtectedRange, onMoveChart = props.onMoveChart, onResizeChart = props.onResizeChart, onDeleteChart = props.onDeleteChart, onMoveEmbed = props.onMoveEmbed, onResizeEmbed = props.onResizeEmbed, onDeleteEmbed = props.onDeleteEmbed, onRequestEditEmbed = props.onRequestEditEmbed, onMoveSlicer = props.onMoveSlicer, onResizeSlicer = props.onResizeSlicer, onDeleteSlicer = props.onDeleteSlicer, onRequestEditSlicer = props.onRequestEditSlicer, onFillRange = props.onFillRange, disableFillRightShortcut = props.disableFillRightShortcut, keymap = props.keymap, onCalculateNow = props.onCalculateNow, onRequestGoTo = props.onRequestGoTo, onMoveSelection = props.onMoveSelection, onInsertTime = props.onInsertTime, onInsertDate = props.onInsertDate, onInsertDateTime = props.onInsertDateTime, onInsertAutoSum = props.onInsertAutoSum, onUndo = props.onUndo, onRedo = props.onRedo, onPaste = props.onPaste, onCopy = props.onCopy, onCut = props.onCut, onSortColumn = props.onSortColumn, onSortTable = props.onSortTable, onFilterTable = props.onFilterTable, onFilterPivot = props.onFilterPivot, onResizeTable = props.onResizeTable, onRequestEditTable = props.onRequestEditTable, onRequestEditPivotTable = props.onRequestEditPivotTable, onRequestDeletePivotTable = props.onRequestDeletePivotTable, onRemoveTable = props.onRemoveTable, onCreateTable = props.onCreateTable, onInsertTableColumn = props.onInsertTableColumn, onDeleteTableColumn = props.onDeleteTableColumn, onInsertTableRow = props.onInsertTableRow, onDeleteTableRow = props.onDeleteTableRow, onCreateBasicFilter = props.onCreateBasicFilter, onRequestDefineNamedRange = props.onRequestDefineNamedRange, onRequestFormatCells = props.onRequestFormatCells, onRequestConditionalFormat = props.onRequestConditionalFormat, onRequestDataValidation = props.onRequestDataValidation, onRequestInsertComment = props.onRequestInsertComment, onRequestInsertLink = props.onRequestInsertLink, onFreezeColumn = props.onFreezeColumn, onFreezeRow = props.onFreezeRow, onUpdateNote = props.onUpdateNote, onProtectRange = props.onProtectRange, onUnProtectRange = props.onUnProtectRange, onSortRange = props.onSortRange, onRequestSearch = props.onRequestSearch, onRequestReplace = props.onRequestReplace, onRequestResize = props.onRequestResize, _41 = props.getRowHeaderText, getRowHeaderText = _41 === void 0 ? helpers_1.getDefaultRowHeader : _41, _42 = props.getColumnHeaderText, getColumnHeaderText = _42 === void 0 ? helpers_1.getDefaultColumnHeader : _42, getAdditionalCellSpacing = props.getAdditionalCellSpacing, _43 = props.tokenizer, defaultTokenizer = _43 === void 0 ? calculator_1.tokenize : _43, onChangeScale = props.onChangeScale, onRemoveLink = props.onRemoveLink, onSelectLink = props.onSelectLink, onSplitTextToColumns = props.onSplitTextToColumns, onRemoveDuplicates = props.onRemoveDuplicates, onRequestExpand = props.onRequestExpand, cellExpandPredicate = props.cellExpandPredicate, _44 = props.StructuredResult, StructuredResult = _44 === void 0 ? cell_structured_1.StructuredResultRenderer : _44, getMentions = props.getMentions, getStructuredPropertiesProp = props.getStructuredProperties, getFunctionParameterSuggestions = props.getFunctionParameterSuggestions, shouldFetchFunctionParameters = props.shouldFetchFunctionParameters, MentionTagComponent = props.MentionTagComponent, MentionDropdownItemComponent = props.MentionDropdownItemComponent, _45 = props.showSelectionResizeHandles, showSelectionResizeHandles = _45 === void 0 ? true : _45, enableMagicFill = props.enableMagicFill, _46 = props.enableQuickEdit, enableQuickEdit = _46 === void 0 ? true : _46, MagicFillComponent = props.MagicFillComponent, MagicFillContent = props.MagicFillContent, QuickEdit = props.QuickEdit, PasteMenu = props.PasteMenu, SuggestionAction = props.SuggestionAction, HiddenRowMarkers = props.HiddenRowMarkers, HiddenColumnMarkers = props.HiddenColumnMarkers, enableResizerOverflow = props.enableResizerOverflow, className = props.className, _47 = props.defaultFontSizePoint, defaultFontSizePoint = _47 === void 0 ? config_1.DEFAULT_FONT_SIZE_PT : _47, readonly = props.readonly, _48 = props.isComparing, isComparing = _48 === void 0 ? false : _48, getCellDiff = props.getCellDiff, enableDataBoundaryNavigation = props.enableDataBoundaryNavigation, footerHeight = props.footerHeight, footerComponent = props.footerComponent, arrowComponents = props.arrowComponents,
112
+ var licenseKey = props.licenseKey, sheetId = props.sheetId, instanceId = props.instanceId, _a = props.activeCell, activeCell = _a === void 0 ? config_1.DEFAULT_ACTIVE_CELL : _a, _b = props.selections, selections = _b === void 0 ? config_1.DEFAULT_ARRAY : _b, _c = props.frozenColumnCount, frozenColumnCount = _c === void 0 ? 0 : _c, _d = props.frozenRowCount, frozenRowCount = _d === void 0 ? 0 : _d, _e = props.rowCount, rowCount = _e === void 0 ? config_1.DEFAULT_ROW_COUNT : _e, _f = props.columnCount, columnCount = _f === void 0 ? config_1.DEFAULT_COLUMN_COUNT : _f, autoFocus = props.autoFocus, basicFilter = props.basicFilter, tables = props.tables, namedRanges = props.namedRanges, _g = props.bandedRanges, bandedRanges = _g === void 0 ? config_1.DEFAULT_ARRAY : _g, _h = props.tableBorderColor, tableBorderColor = _h === void 0 ? "#008000" : _h, _j = props.filterIconColor, filterIconColor = _j === void 0 ? "#008000" : _j, conditionalFormats = props.conditionalFormats, _k = props.showFilterIcon, showFilterIcon = _k === void 0 ? true : _k, _l = props.showCalculatedColumnIcon, showCalculatedColumnIcon = _l === void 0 ? true : _l, _m = props.showHeaders, showHeaders = _m === void 0 ? true : _m, _o = props.defaultColumnWidth, defaultColumnWidth = _o === void 0 ? config_1.DEFAULT_COLUMN_WIDTH : _o, _p = props.defaultRowHeight, defaultRowHeight = _p === void 0 ? config_1.DEFAULT_ROW_HEIGHT : _p, _q = props.columnHeaderHeight, columnHeaderHeight = _q === void 0 ? config_1.COLUMN_HEADER_HEIGHT : _q, _r = props.rowHeaderWidth, rowHeaderWidth = _r === void 0 ? config_1.ROW_HEADER_WIDTH : _r, _s = props.gridLineColor, gridLineColor = _s === void 0 ? config_1.GRIDLINE_COLOR : _s, _t = props.cellBackgroundColor, cellBackgroundColor = _t === void 0 ? config_1.DEFAULT_CELL_BACKGROUND_COLOR : _t, _u = props.cellColor, cellColor = _u === void 0 ? config_1.DEFAULT_CELL_COLOR : _u, _v = props.headerBorderColor, headerBorderColor = _v === void 0 ? config_1.DEFAULT_HEADER_BORDER_COLOR : _v, _w = props.headerBackgroundColor, headerBackgroundColor = _w === void 0 ? config_1.DEFAULT_HEADER_BG : _w, _x = props.headerColor, headerColor = _x === void 0 ? config_1.DEFAULT_HEADER_COLOR : _x, _y = props.headerActiveBackgroundColor, headerActiveBackgroundColor = _y === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_BG : _y, _z = props.headerSelectedBackgroundColor, headerSelectedBackgroundColor = _z === void 0 ? config_1.DEFAULT_HEADER_SELECTED_BG : _z, _0 = props.headerSelectedColor, headerSelectedColor = _0 === void 0 ? "white" : _0, _1 = props.headerTableBackgroundColor, headerTableBackgroundColor = _1 === void 0 ? config_1.DEFAULT_HEADER_TABLE_BG : _1, _2 = props.headerTableActiveBackgroundColor, headerTableActiveBackgroundColor = _2 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_TABLE_BG : _2, _3 = props.headerTableSelectedBackgroundColor, headerTableSelectedBackgroundColor = _3 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_TABLE_BG : _3, _4 = props.frozenShadowColor, frozenShadowColor = _4 === void 0 ? headerBorderColor : _4, _5 = props.frozenShadowThickness, frozenShadowThickness = _5 === void 0 ? 1 : _5, _6 = props.selectionBackgroundColor, selectionBackgroundColor = _6 === void 0 ? config_1.SELECTION_BG : _6, _7 = props.selectionBorderColor, selectionBorderColor = _7 === void 0 ? config_1.SELECTION_BORDER : _7, _8 = props.selectionDragBorderColor, selectionDragBorderColor = _8 === void 0 ? config_1.SELECTION_BORDER : _8, chartSelectedColor = props.chartSelectedColor, _9 = props.chipBackgroundColor, chipBackgroundColor = _9 === void 0 ? config_1.CHIP_COLOR : _9, _10 = props.merges, merges = _10 === void 0 ? config_1.DEFAULT_ARRAY : _10, borderStyles = props.borderStyles, protectedRanges = props.protectedRanges, _11 = props.isWorkbookProtected, isWorkbookProtectedProp = _11 === void 0 ? false : _11, getSheetProtection = props.getSheetProtection, pivotTables = props.pivotTables, charts = props.charts, embeds = props.embeds, slicers = props.slicers, _12 = props.rowMetadata, rowMetadata = _12 === void 0 ? config_1.DEFAULT_ARRAY : _12, _13 = props.columnMetadata, columnMetadata = _13 === void 0 ? config_1.DEFAULT_ARRAY : _13, _14 = props.scale, scale = _14 === void 0 ? 1 : _14, _15 = props.zoomSpeed, zoomSpeed = _15 === void 0 ? 1 : _15, _16 = props.overscanCount, overscanCount = _16 === void 0 ? 3 : _16, _17 = props.enableEditOnEnterKey, enableEditOnEnterKey = _17 === void 0 ? true : _17, _18 = props.enableTextOverflow, enableTextOverflow = _18 === void 0 ? true : _18, _showGridLines = props.showGridLines, _19 = props.showFormulas, showFormulas = _19 === void 0 ? false : _19, _20 = props.protectFormulas, protectFormulas = _20 === void 0 ? false : _20, _21 = props.showFrozenSeparator, showFrozenSeparator = _21 === void 0 ? true : _21, _22 = props.HeaderCell, HeaderCell = _22 === void 0 ? header_cell_1.HeaderCell : _22, _23 = props.Cell, Cell = _23 === void 0 ? cell_1.Cell : _23, _24 = props.SelectionTitleComponent, SelectionTitleComponent = _24 === void 0 ? title_1.SelectionTitle : _24, _25 = props.CellEditor, CellEditor = _25 === void 0 ? cell_editor_1.CellEditor : _25, CellTooltip = props.CellTooltip, _26 = props.ContextMenu, ContextMenu = _26 === void 0 ? context_menu_1.ContextMenu : _26, _27 = props.ContextMenuWrapper, ContextMenuWrapper = _27 === void 0 ? use_context_menu_1.DefaultContextMenuWrapper : _27, _28 = props.FilterBox, FilterBox = _28 === void 0 ? filter_box_1.FilterBox : _28, _29 = props.HeaderMoveDragComponent, HeaderMoveDragComponent = _29 === void 0 ? header_move_1.HeaderMoveDragComponent : _29, SuggestionsDropdown = props.SuggestionsDropdown, _30 = props.stickyEditor, stickyEditor = _30 === void 0 ? true : _30, _31 = props.scrollSnap, scrollSnap = _31 === void 0 ? false : _31, scrollThrottleTimeout = props.scrollThrottleTimeout, preventBrowserDefaultScroll = props.preventBrowserDefaultScroll, _32 = props.mouseMoveThrottleTimeout, mouseMoveThrottleTimeout = _32 === void 0 ? 60 : _32, _33 = props.tooltipIntentInterval, tooltipIntentInterval = _33 === void 0 ? 60 : _33, selectionPolicy = props.selectionPolicy, users = props.users, userId = props.userId, renderCollaboratorCursor = props.renderCollaboratorCursor, functionDescriptions = props.functionDescriptions, _34 = props.showHeaderMenuButton, showHeaderMenuButton = _34 === void 0 ? true : _34, _35 = props.scrollbarSize, scrollbarSize = _35 === void 0 ? config_1.SCROLLBAR_SIZE : _35, _36 = props.theme, theme = _36 === void 0 ? config_1.defaultSpreadsheetTheme : _36, _37 = props.showNotes, showNotes = _37 === void 0 ? true : _37, _38 = props.showComments, showComments = _38 === void 0 ? true : _38, locale = props.locale, agentSuggestions = props.agentSuggestions, onReviewSuggestion = props.onReviewSuggestion, onShowFormulas = props.onShowFormulas, getDataRowCount = props.getDataRowCount, getChartComponent = props.getChartComponent, getEmbedComponent = props.getEmbedComponent, getSlicerComponent = props.getSlicerComponent, onChange = props.onChange, onChangeBatch = props.onChangeBatch, onExpandCollapse = props.onExpandCollapse, onPivotDrillDown = props.onPivotDrillDown, onDelete = props.onDelete, onChangeEditorValue = props.onChangeEditorValue, onFill = props.onFill, onRequestCalculate = props.onRequestCalculate, onChangeActiveCell = props.onChangeActiveCell, onChangeActiveSheet = props.onChangeActiveSheet, onChangeSelections = props.onChangeSelections, getSheetName = props.getSheetName, getSheetId = props.getSheetId, getCellData = props.getCellData, getNoteProp = props.getNote, getTextFormatRuns = props.getTextFormatRuns, getDataValidation = props.getDataValidation, getEffectiveFormat = props.getEffectiveFormat, getFormattedValueProp = props.getFormattedValue, getTooltipContent = props.getTooltipContent, errorResolutionComponent = props.errorResolutionComponent, getEffectiveValueProp = props.getEffectiveValue, getUserEnteredExtendedValue = props.getUserEnteredExtendedValue, getEffectiveExtendedValue = props.getEffectiveExtendedValue, getSheetRowCount = props.getSheetRowCount, getSheetColumnCount = props.getSheetColumnCount, getCellPopoverContent = props.getCellPopoverContent, onScroll = props.onScroll, onViewPortChange = props.onViewPortChange, _39 = props.windowConditionalFormats, windowConditionalFormats = _39 === void 0 ? false : _39, _40 = props.engineConditionalFormatResults, engineConditionalFormatResults = _40 === void 0 ? false : _40, onResize = props.onResize, onAutoResize = props.onAutoResize, onHideColumn = props.onHideColumn, onHideRow = props.onHideRow, onShowColumn = props.onShowColumn, onShowRow = props.onShowRow, onGroupRows = props.onGroupRows, onUngroupRows = props.onUngroupRows, onCollapseRowGroup = props.onCollapseRowGroup, onExpandRowGroup = props.onExpandRowGroup, onGroupColumns = props.onGroupColumns, onUngroupColumns = props.onUngroupColumns, onCollapseColumnGroup = props.onCollapseColumnGroup, onExpandColumnGroup = props.onExpandColumnGroup, onSetOutlineDepth = props.onSetOutlineDepth, onDeleteRow = props.onDeleteRow, onDeleteColumn = props.onDeleteColumn, onInsertRow = props.onInsertRow, onInsertColumn = props.onInsertColumn, onInsertCellsShiftDown = props.onInsertCellsShiftDown, onInsertCellsShiftRight = props.onInsertCellsShiftRight, onDeleteCellsShiftLeft = props.onDeleteCellsShiftLeft, onDeleteCellsShiftUp = props.onDeleteCellsShiftUp, onClearContents = props.onClearContents, onMoveColumns = props.onMoveColumns, onMoveRows = props.onMoveRows, onSelectNextSheet = props.onSelectNextSheet, onSelectPreviousSheet = props.onSelectPreviousSheet, onCreateNewSheet = props.onCreateNewSheet, onKeyDown = props.onKeyDown, onChangeFormatting = props.onChangeFormatting, onRepeatFormatting = props.onRepeatFormatting, onClearFormatting = props.onClearFormatting, onRequestEditProtectedRange = props.onRequestEditProtectedRange, onMoveChart = props.onMoveChart, onResizeChart = props.onResizeChart, onDeleteChart = props.onDeleteChart, onMoveEmbed = props.onMoveEmbed, onResizeEmbed = props.onResizeEmbed, onDeleteEmbed = props.onDeleteEmbed, onRequestEditEmbed = props.onRequestEditEmbed, onMoveSlicer = props.onMoveSlicer, onResizeSlicer = props.onResizeSlicer, onDeleteSlicer = props.onDeleteSlicer, onRequestEditSlicer = props.onRequestEditSlicer, onFillRange = props.onFillRange, disableFillRightShortcut = props.disableFillRightShortcut, keymap = props.keymap, onCalculateNow = props.onCalculateNow, onRequestGoTo = props.onRequestGoTo, onMoveSelection = props.onMoveSelection, onInsertTime = props.onInsertTime, onInsertDate = props.onInsertDate, onInsertDateTime = props.onInsertDateTime, onInsertAutoSum = props.onInsertAutoSum, onUndo = props.onUndo, onRedo = props.onRedo, onPaste = props.onPaste, onCopy = props.onCopy, onCut = props.onCut, onSortColumn = props.onSortColumn, onSortTable = props.onSortTable, onFilterTable = props.onFilterTable, onFilterPivot = props.onFilterPivot, onResizeTable = props.onResizeTable, onRequestEditTable = props.onRequestEditTable, onRequestEditPivotTable = props.onRequestEditPivotTable, onRequestDeletePivotTable = props.onRequestDeletePivotTable, onRemoveTable = props.onRemoveTable, onCreateTable = props.onCreateTable, onInsertTableColumn = props.onInsertTableColumn, onDeleteTableColumn = props.onDeleteTableColumn, onInsertTableRow = props.onInsertTableRow, onDeleteTableRow = props.onDeleteTableRow, onCreateBasicFilter = props.onCreateBasicFilter, onRequestDefineNamedRange = props.onRequestDefineNamedRange, onRequestFormatCells = props.onRequestFormatCells, onRequestConditionalFormat = props.onRequestConditionalFormat, onRequestDataValidation = props.onRequestDataValidation, onRequestInsertComment = props.onRequestInsertComment, onRequestInsertLink = props.onRequestInsertLink, onFreezeColumn = props.onFreezeColumn, onFreezeRow = props.onFreezeRow, onUpdateNote = props.onUpdateNote, onProtectRange = props.onProtectRange, onUnProtectRange = props.onUnProtectRange, onSortRange = props.onSortRange, onRequestSearch = props.onRequestSearch, onRequestReplace = props.onRequestReplace, onRequestResize = props.onRequestResize, _41 = props.getRowHeaderText, getRowHeaderText = _41 === void 0 ? helpers_1.getDefaultRowHeader : _41, _42 = props.getColumnHeaderText, getColumnHeaderText = _42 === void 0 ? helpers_1.getDefaultColumnHeader : _42, getAdditionalCellSpacing = props.getAdditionalCellSpacing, _43 = props.tokenizer, defaultTokenizer = _43 === void 0 ? calculator_1.tokenize : _43, onChangeScale = props.onChangeScale, onRemoveLink = props.onRemoveLink, onSelectLink = props.onSelectLink, onSplitTextToColumns = props.onSplitTextToColumns, onRemoveDuplicates = props.onRemoveDuplicates, onGoalSeek = props.onGoalSeek, onSubtotal = props.onSubtotal, onAdvancedFilter = props.onAdvancedFilter, onRequestExpand = props.onRequestExpand, cellExpandPredicate = props.cellExpandPredicate, _44 = props.StructuredResult, StructuredResult = _44 === void 0 ? cell_structured_1.StructuredResultRenderer : _44, getMentions = props.getMentions, getStructuredPropertiesProp = props.getStructuredProperties, getFunctionParameterSuggestions = props.getFunctionParameterSuggestions, shouldFetchFunctionParameters = props.shouldFetchFunctionParameters, MentionTagComponent = props.MentionTagComponent, MentionDropdownItemComponent = props.MentionDropdownItemComponent, _45 = props.showSelectionResizeHandles, showSelectionResizeHandles = _45 === void 0 ? true : _45, enableMagicFill = props.enableMagicFill, _46 = props.enableQuickEdit, enableQuickEdit = _46 === void 0 ? true : _46, MagicFillComponent = props.MagicFillComponent, MagicFillContent = props.MagicFillContent, QuickEdit = props.QuickEdit, PasteMenu = props.PasteMenu, SuggestionAction = props.SuggestionAction, HiddenRowMarkers = props.HiddenRowMarkers, HiddenColumnMarkers = props.HiddenColumnMarkers, enableResizerOverflow = props.enableResizerOverflow, className = props.className, _47 = props.defaultFontSizePoint, defaultFontSizePoint = _47 === void 0 ? config_1.DEFAULT_FONT_SIZE_PT : _47, readonly = props.readonly, _48 = props.isComparing, isComparing = _48 === void 0 ? false : _48, getCellDiff = props.getCellDiff, enableDataBoundaryNavigation = props.enableDataBoundaryNavigation, footerHeight = props.footerHeight, footerComponent = props.footerComponent, arrowComponents = props.arrowComponents,
108
113
  // Host-driven filter props. `hostHiddenRowRanges`
109
114
  // supplies compact [start, end] hidden-row tuples; `getFilterValues` supplies a
110
115
  // column's distinct values. Both let a million-row filter render without scanning
@@ -116,7 +121,7 @@ function CanvasGridComponent(props, forwardedRef) {
116
121
  // defaults to `getFormattedValue` inside `useGetValuesFromRange`.
117
122
  getValidationSourceValue = props.getValidationSourceValue,
118
123
  // Unused props only for api
119
- onChangeBorder = props.onChangeBorder, onDuplicateSheet = props.onDuplicateSheet, onCreateConditionalFormattingRule = props.onCreateConditionalFormattingRule, onDeleteConditionalFormattingRule = props.onDeleteConditionalFormattingRule, onUpdateConditionalFormattingRule = props.onUpdateConditionalFormattingRule, onCreateDataValidationRule = props.onCreateDataValidationRule, onUpdateDataValidationRule = props.onUpdateDataValidationRule, onDeleteDataValidationRule = props.onDeleteDataValidationRule, onCreateChart = props.onCreateChart, onDeleteSheet = props.onDeleteSheet, onCreateEmbed = props.onCreateEmbed, onDecreaseIndent = props.onDecreaseIndent, onIncreaseIndent = props.onIncreaseIndent, onChangeTheme = props.onChangeTheme, onChangeDecimals = props.onChangeDecimals, onUpdateSheet = props.onUpdateSheet, onChangeBatchStream = props.onChangeBatchStream, onBlur = props.onBlur, rest = tslib_1.__rest(props, ["licenseKey", "sheetId", "instanceId", "activeCell", "selections", "frozenColumnCount", "frozenRowCount", "rowCount", "columnCount", "autoFocus", "basicFilter", "tables", "namedRanges", "bandedRanges", "tableBorderColor", "filterIconColor", "conditionalFormats", "showFilterIcon", "showCalculatedColumnIcon", "showHeaders", "defaultColumnWidth", "defaultRowHeight", "columnHeaderHeight", "rowHeaderWidth", "gridLineColor", "cellBackgroundColor", "cellColor", "headerBorderColor", "headerBackgroundColor", "headerColor", "headerActiveBackgroundColor", "headerSelectedBackgroundColor", "headerSelectedColor", "headerTableBackgroundColor", "headerTableActiveBackgroundColor", "headerTableSelectedBackgroundColor", "frozenShadowColor", "frozenShadowThickness", "selectionBackgroundColor", "selectionBorderColor", "selectionDragBorderColor", "chartSelectedColor", "chipBackgroundColor", "merges", "borderStyles", "protectedRanges", "isWorkbookProtected", "getSheetProtection", "pivotTables", "charts", "embeds", "slicers", "rowMetadata", "columnMetadata", "scale", "zoomSpeed", "overscanCount", "enableEditOnEnterKey", "enableTextOverflow", "showGridLines", "showFormulas", "protectFormulas", "showFrozenSeparator", "HeaderCell", "Cell", "SelectionTitleComponent", "CellEditor", "CellTooltip", "ContextMenu", "ContextMenuWrapper", "FilterBox", "HeaderMoveDragComponent", "SuggestionsDropdown", "stickyEditor", "scrollSnap", "scrollThrottleTimeout", "preventBrowserDefaultScroll", "mouseMoveThrottleTimeout", "tooltipIntentInterval", "selectionPolicy", "users", "userId", "renderCollaboratorCursor", "functionDescriptions", "showHeaderMenuButton", "scrollbarSize", "theme", "showNotes", "showComments", "locale", "agentSuggestions", "onReviewSuggestion", "onShowFormulas", "getDataRowCount", "getChartComponent", "getEmbedComponent", "getSlicerComponent", "onChange", "onChangeBatch", "onExpandCollapse", "onPivotDrillDown", "onDelete", "onChangeEditorValue", "onFill", "onRequestCalculate", "onChangeActiveCell", "onChangeActiveSheet", "onChangeSelections", "getSheetName", "getSheetId", "getCellData", "getNote", "getTextFormatRuns", "getDataValidation", "getEffectiveFormat", "getFormattedValue", "getTooltipContent", "errorResolutionComponent", "getEffectiveValue", "getUserEnteredExtendedValue", "getEffectiveExtendedValue", "getSheetRowCount", "getSheetColumnCount", "getCellPopoverContent", "onScroll", "onViewPortChange", "windowConditionalFormats", "engineConditionalFormatResults", "onResize", "onAutoResize", "onHideColumn", "onHideRow", "onShowColumn", "onShowRow", "onGroupRows", "onUngroupRows", "onCollapseRowGroup", "onExpandRowGroup", "onGroupColumns", "onUngroupColumns", "onCollapseColumnGroup", "onExpandColumnGroup", "onSetOutlineDepth", "onDeleteRow", "onDeleteColumn", "onInsertRow", "onInsertColumn", "onInsertCellsShiftDown", "onInsertCellsShiftRight", "onDeleteCellsShiftLeft", "onDeleteCellsShiftUp", "onClearContents", "onMoveColumns", "onMoveRows", "onSelectNextSheet", "onSelectPreviousSheet", "onCreateNewSheet", "onKeyDown", "onChangeFormatting", "onRepeatFormatting", "onClearFormatting", "onRequestEditProtectedRange", "onMoveChart", "onResizeChart", "onDeleteChart", "onMoveEmbed", "onResizeEmbed", "onDeleteEmbed", "onRequestEditEmbed", "onMoveSlicer", "onResizeSlicer", "onDeleteSlicer", "onRequestEditSlicer", "onFillRange", "disableFillRightShortcut", "keymap", "onCalculateNow", "onRequestGoTo", "onMoveSelection", "onInsertTime", "onInsertDate", "onInsertDateTime", "onInsertAutoSum", "onUndo", "onRedo", "onPaste", "onCopy", "onCut", "onSortColumn", "onSortTable", "onFilterTable", "onFilterPivot", "onResizeTable", "onRequestEditTable", "onRequestEditPivotTable", "onRequestDeletePivotTable", "onRemoveTable", "onCreateTable", "onInsertTableColumn", "onDeleteTableColumn", "onInsertTableRow", "onDeleteTableRow", "onCreateBasicFilter", "onRequestDefineNamedRange", "onRequestFormatCells", "onRequestConditionalFormat", "onRequestDataValidation", "onRequestInsertComment", "onRequestInsertLink", "onFreezeColumn", "onFreezeRow", "onUpdateNote", "onProtectRange", "onUnProtectRange", "onSortRange", "onRequestSearch", "onRequestReplace", "onRequestResize", "getRowHeaderText", "getColumnHeaderText", "getAdditionalCellSpacing", "tokenizer", "onChangeScale", "onRemoveLink", "onSelectLink", "onSplitTextToColumns", "onRemoveDuplicates", "onRequestExpand", "cellExpandPredicate", "StructuredResult", "getMentions", "getStructuredProperties", "getFunctionParameterSuggestions", "shouldFetchFunctionParameters", "MentionTagComponent", "MentionDropdownItemComponent", "showSelectionResizeHandles", "enableMagicFill", "enableQuickEdit", "MagicFillComponent", "MagicFillContent", "QuickEdit", "PasteMenu", "SuggestionAction", "HiddenRowMarkers", "HiddenColumnMarkers", "enableResizerOverflow", "className", "defaultFontSizePoint", "readonly", "isComparing", "getCellDiff", "enableDataBoundaryNavigation", "footerHeight", "footerComponent", "arrowComponents", "hostHiddenRowRanges", "getFilterValues", "getFilterColors", "getValidationSourceValue", "onChangeBorder", "onDuplicateSheet", "onCreateConditionalFormattingRule", "onDeleteConditionalFormattingRule", "onUpdateConditionalFormattingRule", "onCreateDataValidationRule", "onUpdateDataValidationRule", "onDeleteDataValidationRule", "onCreateChart", "onDeleteSheet", "onCreateEmbed", "onDecreaseIndent", "onIncreaseIndent", "onChangeTheme", "onChangeDecimals", "onUpdateSheet", "onChangeBatchStream", "onBlur"]);
124
+ onChangeBorder = props.onChangeBorder, onDuplicateSheet = props.onDuplicateSheet, onCreateConditionalFormattingRule = props.onCreateConditionalFormattingRule, onDeleteConditionalFormattingRule = props.onDeleteConditionalFormattingRule, onUpdateConditionalFormattingRule = props.onUpdateConditionalFormattingRule, onCreateDataValidationRule = props.onCreateDataValidationRule, onUpdateDataValidationRule = props.onUpdateDataValidationRule, onDeleteDataValidationRule = props.onDeleteDataValidationRule, onCreateChart = props.onCreateChart, onDeleteSheet = props.onDeleteSheet, onCreateEmbed = props.onCreateEmbed, onDecreaseIndent = props.onDecreaseIndent, onIncreaseIndent = props.onIncreaseIndent, onChangeTheme = props.onChangeTheme, onChangeDecimals = props.onChangeDecimals, onUpdateSheet = props.onUpdateSheet, onChangeBatchStream = props.onChangeBatchStream, onBlur = props.onBlur, rest = tslib_1.__rest(props, ["licenseKey", "sheetId", "instanceId", "activeCell", "selections", "frozenColumnCount", "frozenRowCount", "rowCount", "columnCount", "autoFocus", "basicFilter", "tables", "namedRanges", "bandedRanges", "tableBorderColor", "filterIconColor", "conditionalFormats", "showFilterIcon", "showCalculatedColumnIcon", "showHeaders", "defaultColumnWidth", "defaultRowHeight", "columnHeaderHeight", "rowHeaderWidth", "gridLineColor", "cellBackgroundColor", "cellColor", "headerBorderColor", "headerBackgroundColor", "headerColor", "headerActiveBackgroundColor", "headerSelectedBackgroundColor", "headerSelectedColor", "headerTableBackgroundColor", "headerTableActiveBackgroundColor", "headerTableSelectedBackgroundColor", "frozenShadowColor", "frozenShadowThickness", "selectionBackgroundColor", "selectionBorderColor", "selectionDragBorderColor", "chartSelectedColor", "chipBackgroundColor", "merges", "borderStyles", "protectedRanges", "isWorkbookProtected", "getSheetProtection", "pivotTables", "charts", "embeds", "slicers", "rowMetadata", "columnMetadata", "scale", "zoomSpeed", "overscanCount", "enableEditOnEnterKey", "enableTextOverflow", "showGridLines", "showFormulas", "protectFormulas", "showFrozenSeparator", "HeaderCell", "Cell", "SelectionTitleComponent", "CellEditor", "CellTooltip", "ContextMenu", "ContextMenuWrapper", "FilterBox", "HeaderMoveDragComponent", "SuggestionsDropdown", "stickyEditor", "scrollSnap", "scrollThrottleTimeout", "preventBrowserDefaultScroll", "mouseMoveThrottleTimeout", "tooltipIntentInterval", "selectionPolicy", "users", "userId", "renderCollaboratorCursor", "functionDescriptions", "showHeaderMenuButton", "scrollbarSize", "theme", "showNotes", "showComments", "locale", "agentSuggestions", "onReviewSuggestion", "onShowFormulas", "getDataRowCount", "getChartComponent", "getEmbedComponent", "getSlicerComponent", "onChange", "onChangeBatch", "onExpandCollapse", "onPivotDrillDown", "onDelete", "onChangeEditorValue", "onFill", "onRequestCalculate", "onChangeActiveCell", "onChangeActiveSheet", "onChangeSelections", "getSheetName", "getSheetId", "getCellData", "getNote", "getTextFormatRuns", "getDataValidation", "getEffectiveFormat", "getFormattedValue", "getTooltipContent", "errorResolutionComponent", "getEffectiveValue", "getUserEnteredExtendedValue", "getEffectiveExtendedValue", "getSheetRowCount", "getSheetColumnCount", "getCellPopoverContent", "onScroll", "onViewPortChange", "windowConditionalFormats", "engineConditionalFormatResults", "onResize", "onAutoResize", "onHideColumn", "onHideRow", "onShowColumn", "onShowRow", "onGroupRows", "onUngroupRows", "onCollapseRowGroup", "onExpandRowGroup", "onGroupColumns", "onUngroupColumns", "onCollapseColumnGroup", "onExpandColumnGroup", "onSetOutlineDepth", "onDeleteRow", "onDeleteColumn", "onInsertRow", "onInsertColumn", "onInsertCellsShiftDown", "onInsertCellsShiftRight", "onDeleteCellsShiftLeft", "onDeleteCellsShiftUp", "onClearContents", "onMoveColumns", "onMoveRows", "onSelectNextSheet", "onSelectPreviousSheet", "onCreateNewSheet", "onKeyDown", "onChangeFormatting", "onRepeatFormatting", "onClearFormatting", "onRequestEditProtectedRange", "onMoveChart", "onResizeChart", "onDeleteChart", "onMoveEmbed", "onResizeEmbed", "onDeleteEmbed", "onRequestEditEmbed", "onMoveSlicer", "onResizeSlicer", "onDeleteSlicer", "onRequestEditSlicer", "onFillRange", "disableFillRightShortcut", "keymap", "onCalculateNow", "onRequestGoTo", "onMoveSelection", "onInsertTime", "onInsertDate", "onInsertDateTime", "onInsertAutoSum", "onUndo", "onRedo", "onPaste", "onCopy", "onCut", "onSortColumn", "onSortTable", "onFilterTable", "onFilterPivot", "onResizeTable", "onRequestEditTable", "onRequestEditPivotTable", "onRequestDeletePivotTable", "onRemoveTable", "onCreateTable", "onInsertTableColumn", "onDeleteTableColumn", "onInsertTableRow", "onDeleteTableRow", "onCreateBasicFilter", "onRequestDefineNamedRange", "onRequestFormatCells", "onRequestConditionalFormat", "onRequestDataValidation", "onRequestInsertComment", "onRequestInsertLink", "onFreezeColumn", "onFreezeRow", "onUpdateNote", "onProtectRange", "onUnProtectRange", "onSortRange", "onRequestSearch", "onRequestReplace", "onRequestResize", "getRowHeaderText", "getColumnHeaderText", "getAdditionalCellSpacing", "tokenizer", "onChangeScale", "onRemoveLink", "onSelectLink", "onSplitTextToColumns", "onRemoveDuplicates", "onGoalSeek", "onSubtotal", "onAdvancedFilter", "onRequestExpand", "cellExpandPredicate", "StructuredResult", "getMentions", "getStructuredProperties", "getFunctionParameterSuggestions", "shouldFetchFunctionParameters", "MentionTagComponent", "MentionDropdownItemComponent", "showSelectionResizeHandles", "enableMagicFill", "enableQuickEdit", "MagicFillComponent", "MagicFillContent", "QuickEdit", "PasteMenu", "SuggestionAction", "HiddenRowMarkers", "HiddenColumnMarkers", "enableResizerOverflow", "className", "defaultFontSizePoint", "readonly", "isComparing", "getCellDiff", "enableDataBoundaryNavigation", "footerHeight", "footerComponent", "arrowComponents", "hostHiddenRowRanges", "getFilterValues", "getFilterColors", "getValidationSourceValue", "onChangeBorder", "onDuplicateSheet", "onCreateConditionalFormattingRule", "onDeleteConditionalFormattingRule", "onUpdateConditionalFormattingRule", "onCreateDataValidationRule", "onUpdateDataValidationRule", "onDeleteDataValidationRule", "onCreateChart", "onDeleteSheet", "onCreateEmbed", "onDecreaseIndent", "onIncreaseIndent", "onChangeTheme", "onChangeDecimals", "onUpdateSheet", "onChangeBatchStream", "onBlur"]);
120
125
  /**
121
126
  * Fire onBlur only when the cell editor blurs to an element outside the
122
127
  * spreadsheet. Routed through `useEditable` so we hook the always-focused
@@ -225,10 +230,13 @@ function CanvasGridComponent(props, forwardedRef) {
225
230
  var cellEditorInstance = (0, formula_bar_editor_value_atom_1.useCellEditorInstance)();
226
231
  // Paste menu
227
232
  var _50 = tslib_1.__read((0, atoms_1.useShowPasteMenu)(), 2), showPasteMenu = _50[0], setShowPasteMenu = _50[1];
233
+ // Auto Fill Options smart tag / right-drag fill menu + Series dialog
234
+ var _51 = tslib_1.__read((0, atoms_1.useFillOptionsState)(), 2), fillOptions = _51[0], setFillOptions = _51[1];
235
+ var openFillSeriesDialog = (0, atoms_1.useOpenFillSeriesDialog)();
228
236
  // Shared state
229
237
  var formulaMode = (0, atoms_1.useFormulaModeValue)();
230
238
  var formulaSelections = (0, formula_selections_atom_1.useFormulaSelections)();
231
- var _51 = tslib_1.__read((0, editing_cell_atom_1.useEditingCell)(), 2), editingCellCoordinate = _51[0], setEditingCellCoordinate = _51[1];
239
+ var _52 = tslib_1.__read((0, editing_cell_atom_1.useEditingCell)(), 2), editingCellCoordinate = _52[0], setEditingCellCoordinate = _52[1];
232
240
  var setFormulabarEditorValue = (0, formula_bar_editor_value_atom_1.useSetFormulabarEditorValue)();
233
241
  var setFormulaBarTextFormatRuns = (0, formula_bar_editor_value_atom_1.useSetFormulaBarTextFormatRuns)();
234
242
  var canSelectCells = (0, formula_selection_state_atom_1.useFormulaCanSelectCells)();
@@ -236,7 +244,7 @@ function CanvasGridComponent(props, forwardedRef) {
236
244
  var setFormulaState = (0, formula_selection_state_atom_1.useSetFormulaSelectionState)();
237
245
  var activeEditor = (0, active_editor_atom_1.useActiveEditor)();
238
246
  // Magic fill state
239
- var _52 = tslib_1.__read((0, magic_fill_state_atom_1.useQuickEditState)(), 2), quickEditValues = _52[0], setQuickEditState = _52[1];
247
+ var _53 = tslib_1.__read((0, magic_fill_state_atom_1.useQuickEditState)(), 2), quickEditValues = _53[0], setQuickEditState = _53[1];
240
248
  var setNoteEditorCell = (0, atoms_1.useSetNoteEditorCell)();
241
249
  var setPinnedTooltip = (0, atoms_1.useSetPinnedTooltip)();
242
250
  var setSpreadsheetApi = (0, spreadsheet_api_atom_1.useSetSpreadsheetApi)();
@@ -247,7 +255,7 @@ function CanvasGridComponent(props, forwardedRef) {
247
255
  var instanceStore = (0, jotai_1.useStore)({ store: spreadsheet_provider_1.multiInstanceStore });
248
256
  // To access closures
249
257
  var hoveredCellRef = (0, use_stable_ref_1.useStableRef)(hoveredCell);
250
- var _53 = tslib_1.__read((0, use_resize_observer_1.useResizeObserver)(), 2), gridContainerRef = _53[0], _54 = _53[1], width = _54.width, height = _54.height;
258
+ var _54 = tslib_1.__read((0, use_resize_observer_1.useResizeObserver)(), 2), gridContainerRef = _54[0], _55 = _54[1], width = _55.width, height = _55.height;
251
259
  var defaultFrozenDims = showHeaders ? 1 : 0;
252
260
  var frozenRows = Math.max(defaultFrozenDims, (frozenRowCount !== null && frozenRowCount !== void 0 ? frozenRowCount : 0) + defaultFrozenDims);
253
261
  var frozenColumns = Math.max(defaultFrozenDims, (frozenColumnCount !== null && frozenColumnCount !== void 0 ? frozenColumnCount : 0) + defaultFrozenDims);
@@ -259,9 +267,9 @@ function CanvasGridComponent(props, forwardedRef) {
259
267
  var sheetRowCount = Math.min(config_1.MAX_ROW_COUNT + 1, rowCount + 1);
260
268
  var sheetColumnCount = Math.min(config_1.MAX_COLUMN_COUNT + 1, columnCount + 1);
261
269
  // License key validator
262
- var _55 = tslib_1.__read((0, use_licensekey_validator_1.useLicenseKeyValidator)({
270
+ var _56 = tslib_1.__read((0, use_licensekey_validator_1.useLicenseKeyValidator)({
263
271
  licenseKey: licenseKey,
264
- }), 3), _ = _55[0], licenseType = _55[1], validatorResult = _55[2];
272
+ }), 3), _ = _56[0], licenseType = _56[1], validatorResult = _56[2];
265
273
  var isRestricted = licenseType === "solo";
266
274
  // Grid line width
267
275
  var gridLineWidth = 1 * scale;
@@ -1077,11 +1085,11 @@ function CanvasGridComponent(props, forwardedRef) {
1077
1085
  * Touch support
1078
1086
  * Mainly for scrolling
1079
1087
  */
1080
- var _56 = (0, use_touch_1.useTouch)({
1088
+ var _57 = (0, use_touch_1.useTouch)({
1081
1089
  scrollTo: scrollTo,
1082
1090
  scale: scale,
1083
1091
  onChangeScale: onChangeScale,
1084
- }), onTouchStart = _56.onTouchStart, onDimensionsChange = _56.onDimensionsChange, scrollToTouchDevice = _56.scrollToTouchDevice, onAfterScrollToCell = _56.onAfterScrollToCell;
1092
+ }), onTouchStart = _57.onTouchStart, onDimensionsChange = _57.onDimensionsChange, scrollToTouchDevice = _57.scrollToTouchDevice, onAfterScrollToCell = _57.onAfterScrollToCell;
1085
1093
  /**
1086
1094
  * Conditional-formatting evaluation window: the padded, tile-quantized
1087
1095
  * viewport. The raw viewport lives in a ref (no render per scroll frame);
@@ -1089,7 +1097,7 @@ function CanvasGridComponent(props, forwardedRef) {
1089
1097
  * `startTransition` so the CF recompute is low-priority and interruptible —
1090
1098
  * scrolling never blocks on it.
1091
1099
  */
1092
- var _57 = tslib_1.__read((0, react_1.useState)(cf_window_1.CF_INITIAL_WINDOW), 2), cfWindow = _57[0], setCfWindow = _57[1];
1100
+ var _58 = tslib_1.__read((0, react_1.useState)(cf_window_1.CF_INITIAL_WINDOW), 2), cfWindow = _58[0], setCfWindow = _58[1];
1093
1101
  var cfWindowRef = (0, react_1.useRef)(null);
1094
1102
  var handleViewPortChange = (0, react_1.useCallback)(function (viewport) {
1095
1103
  onViewPortChange === null || onViewPortChange === void 0 ? void 0 : onViewPortChange(viewport);
@@ -1321,14 +1329,14 @@ function CanvasGridComponent(props, forwardedRef) {
1321
1329
  tokenizer: defaultTokenizer,
1322
1330
  });
1323
1331
  // Helper function to convert a selection to readable selection address
1324
- var _58 = tslib_1.__read((0, use_create_address_from_selection_1.useCreateAddressFromSelection)({
1332
+ var _59 = tslib_1.__read((0, use_create_address_from_selection_1.useCreateAddressFromSelection)({
1325
1333
  sheetId: sheetId,
1326
1334
  rowCount: rowCount,
1327
1335
  columnCount: columnCount,
1328
1336
  tables: tables !== null && tables !== void 0 ? tables : undefined,
1329
1337
  namedRanges: namedRanges !== null && namedRanges !== void 0 ? namedRanges : undefined,
1330
1338
  merges: merges,
1331
- }), 2), getAddressFromSelection = _58[0], getR1C1AddressFromSelection = _58[1];
1339
+ }), 2), getAddressFromSelection = _59[0], getR1C1AddressFromSelection = _59[1];
1332
1340
  /**
1333
1341
  * Exports a data region as image
1334
1342
  */
@@ -1374,7 +1382,7 @@ function CanvasGridComponent(props, forwardedRef) {
1374
1382
  * Get user entered value from a range
1375
1383
  * of cells
1376
1384
  */
1377
- var _59 = tslib_1.__read((0, use_get_values_from_range_1.useGetValuesFromRange)({
1385
+ var _60 = tslib_1.__read((0, use_get_values_from_range_1.useGetValuesFromRange)({
1378
1386
  sheetId: sheetId,
1379
1387
  getSelectionsFromFormula: getSelectionsFromFormula,
1380
1388
  getFormattedValue: getFormattedValue,
@@ -1382,7 +1390,7 @@ function CanvasGridComponent(props, forwardedRef) {
1382
1390
  getSheetId: getSheetId,
1383
1391
  onRequestCalculate: onRequestCalculate,
1384
1392
  getValidationSourceValue: getValidationSourceValue,
1385
- }), 3), getFormattedValuesFromAddress = _59[0], getEffectiveValuesFromRange = _59[1], getFormattedValuesFromAddressAsync = _59[2];
1393
+ }), 3), getFormattedValuesFromAddress = _60[0], getEffectiveValuesFromRange = _60[1], getFormattedValuesFromAddressAsync = _60[2];
1386
1394
  /**
1387
1395
  * Get all formatted values from range as a single 1d array
1388
1396
  */
@@ -1439,6 +1447,23 @@ function CanvasGridComponent(props, forwardedRef) {
1439
1447
  if (rule.allowBlank && isBlank) {
1440
1448
  return undefined;
1441
1449
  }
1450
+ // A typed formula is validated on its RESULT once the calculator has
1451
+ // run (Excel enters `=5` into a whole-number cell and checks the 5) —
1452
+ // its text can never be decided here, so it stays flag-only.
1453
+ if ((0, excel_validation_kinds_1.isFormulaEntry)(value)) {
1454
+ return undefined;
1455
+ }
1456
+ // Excel's Whole number / Time / Text length kinds (authored or imported
1457
+ // with `xlsxSource`) are decided synchronously from the typed text when
1458
+ // their bounds are literals — Excel blocks a decimal in a whole-number
1459
+ // cell at entry, not after a recalc.
1460
+ var excelKindVerdict = (0, excel_validation_kinds_1.checkExcelValidationValue)(rule, value);
1461
+ if (excelKindVerdict !== undefined) {
1462
+ var excelDecision = (0, validation_1.decideValidationCommit)(alert, excelKindVerdict);
1463
+ return excelDecision === "proceed"
1464
+ ? undefined
1465
+ : { decision: excelDecision, alert: alert };
1466
+ }
1442
1467
  if ((0, utils_1.isDataValidationFormulaRule)(rule)) {
1443
1468
  // Enforce synchronously only where `checkBooleanRule` can decide the typed
1444
1469
  // value without the calculator: CUSTOM_FORMULA's sync branch is a stub, the
@@ -1702,7 +1727,7 @@ function CanvasGridComponent(props, forwardedRef) {
1702
1727
  * O(n)
1703
1728
  * Reduces Space Complexity by using `all`
1704
1729
  */
1705
- var _60 = tslib_1.__read((0, use_selected_rows_columns_1.useSelectedRowsColumns)({
1730
+ var _61 = tslib_1.__read((0, use_selected_rows_columns_1.useSelectedRowsColumns)({
1706
1731
  activeCell: activeCell,
1707
1732
  selections: selections,
1708
1733
  selectionLeftBound: selectionLeftBound,
@@ -1710,7 +1735,7 @@ function CanvasGridComponent(props, forwardedRef) {
1710
1735
  rowCount: rowCount,
1711
1736
  columnCount: columnCount,
1712
1737
  getCellBounds: getCellBounds,
1713
- }), 6), selectedRows = _60[0], selectedColumns = _60[1], selectedRowHeaders = _60[2], selectedColumnHeaders = _60[3], selectedRowHeadersIds = _60[4], selectedColumnHeadersIds = _60[5];
1738
+ }), 6), selectedRows = _61[0], selectedColumns = _61[1], selectedRowHeaders = _61[2], selectedColumnHeaders = _61[3], selectedRowHeadersIds = _61[4], selectedColumnHeadersIds = _61[5];
1714
1739
  // Named ranges for editor dropdown
1715
1740
  var getNamedRanges = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function () {
1716
1741
  return namedRanges === null || namedRanges === void 0 ? void 0 : namedRanges.map(function (range) { return ({
@@ -1780,7 +1805,7 @@ function CanvasGridComponent(props, forwardedRef) {
1780
1805
  * user can select entire column or row when selecting
1781
1806
  * header cells
1782
1807
  */
1783
- var _61 = (0, use_selection_interceptors_1.useSelectionInterceptors)({
1808
+ var _62 = (0, use_selection_interceptors_1.useSelectionInterceptors)({
1784
1809
  sheetId: sheetId,
1785
1810
  rowCount: rowCount,
1786
1811
  columnCount: columnCount,
@@ -1796,7 +1821,7 @@ function CanvasGridComponent(props, forwardedRef) {
1796
1821
  onChangeActiveCell: onChangeActiveCell,
1797
1822
  scrollToCell: scrollToCell,
1798
1823
  isMergedCell: isMergedCell,
1799
- }), onMouseDownInterceptor = _61.onMouseDownInterceptor, onMouseMoveInterceptor = _61.onMouseMoveInterceptor;
1824
+ }), onMouseDownInterceptor = _62.onMouseDownInterceptor, onMouseMoveInterceptor = _62.onMouseMoveInterceptor;
1800
1825
  /**
1801
1826
  * When user selections full rows
1802
1827
  * or columns, we have to ignore
@@ -1884,7 +1909,7 @@ function CanvasGridComponent(props, forwardedRef) {
1884
1909
  * Enables auto resizing
1885
1910
  * rows and columns
1886
1911
  */
1887
- var _62 = (0, use_sizer_1.useSizer)({
1912
+ var _63 = (0, use_sizer_1.useSizer)({
1888
1913
  frozenRows: frozenRows,
1889
1914
  frozenColumns: frozenColumns,
1890
1915
  scale: scale,
@@ -1907,7 +1932,7 @@ function CanvasGridComponent(props, forwardedRef) {
1907
1932
  getDataRowCount: getDataRowCount,
1908
1933
  fontSize: defaultFontSizePoint,
1909
1934
  resizeStrategy: "full",
1910
- }), getColumnWidth = _62.getColumnWidth, getRowHeight = _62.getRowHeight, getCellDimensions = _62.getCellDimensions, getCellDimensionsStable = _62.getCellDimensionsStable, getTextDimension = _62.getTextDimension;
1935
+ }), getColumnWidth = _63.getColumnWidth, getRowHeight = _63.getRowHeight, getCellDimensions = _63.getCellDimensions, getCellDimensionsStable = _63.getCellDimensionsStable, getTextDimension = _63.getTextDimension;
1911
1936
  /**
1912
1937
  * Called when user tries to
1913
1938
  * autofit a column or row
@@ -1980,7 +2005,7 @@ function CanvasGridComponent(props, forwardedRef) {
1980
2005
  /**
1981
2006
  * Popover cell
1982
2007
  */
1983
- var _63 = (0, use_cell_popover_1.useCellPopover)({
2008
+ var _64 = (0, use_cell_popover_1.useCellPopover)({
1984
2009
  sheetId: sheetId,
1985
2010
  getCellPopoverContent: getCellPopoverContent !== null && getCellPopoverContent !== void 0 ? getCellPopoverContent : getFormattedValue,
1986
2011
  getCellOffsetFromCoords: getCellOffsetFromCoords,
@@ -1988,35 +2013,24 @@ function CanvasGridComponent(props, forwardedRef) {
1988
2013
  isFrozenColumn: isFrozenColumn,
1989
2014
  isFrozenRow: isFrozenRow,
1990
2015
  onChangeActiveSheet: onChangeActiveSheet,
1991
- }), popoverComponent = _63.popoverComponent, popoverRange = _63.popoverRange, showCellPopover = _63.showCellPopover, hideCellPopover = _63.hideCellPopover;
2016
+ }), popoverComponent = _64.popoverComponent, popoverRange = _64.popoverRange, showCellPopover = _64.showCellPopover, hideCellPopover = _64.hideCellPopover;
1992
2017
  /**
1993
2018
  * Get tooltip component of a cell
1994
2019
  * Only error, invalid values are
1995
2020
  * shown in tooltip
1996
2021
  */
1997
2022
  /**
1998
- * Compose host tooltip content with the data-validation input message.
1999
- * Host-provided content wins; otherwise, when the cell is not already showing
2000
- * an error / invalid marker, surface the rule's input message (Excel's
2001
- * "show input message when cell is selected").
2023
+ * Compose host tooltip content with the data-validation messages. Host-
2024
+ * provided content wins; otherwise the rule's input message (Excel's "show
2025
+ * input message when cell is selected") or, on an Invalid cell, the rule's
2026
+ * custom error alert text see `getDataValidationTooltipContent`.
2002
2027
  */
2003
2028
  var getTooltipContentWithValidation = (0, react_1.useCallback)(function (tooltipSheetId, rowIndex, columnIndex) {
2004
2029
  var hostContent = getTooltipContent === null || getTooltipContent === void 0 ? void 0 : getTooltipContent(tooltipSheetId, rowIndex, columnIndex);
2005
2030
  if (hostContent != null) {
2006
2031
  return hostContent;
2007
2032
  }
2008
- var error = getErrorValue(tooltipSheetId, rowIndex, columnIndex);
2009
- if ((error === null || error === void 0 ? void 0 : error.type) === "Error" || (error === null || error === void 0 ? void 0 : error.type) === "Invalid") {
2010
- return undefined;
2011
- }
2012
- var rule = getDataValidationRule(tooltipSheetId, rowIndex, columnIndex);
2013
- var inputMessage = rule === null || rule === void 0 ? void 0 : rule.inputMessage;
2014
- if (!inputMessage || (!inputMessage.title && !inputMessage.message)) {
2015
- return undefined;
2016
- }
2017
- return (react_1.default.createElement("div", { className: "bg-rnc-background text-rnc-foreground p-2 shadow-md rounded-md border-l-4 border-solid border-l-blue-700 max-w-[300px] flex flex-col gap-0.5" },
2018
- inputMessage.title ? (react_1.default.createElement("div", { className: "font-bold font-system text-sm" }, inputMessage.title)) : null,
2019
- inputMessage.message ? (react_1.default.createElement("div", { className: "text-xs font-system whitespace-pre-wrap" }, inputMessage.message)) : null));
2033
+ return (0, validation_tooltip_1.getDataValidationTooltipContent)(getDataValidationRule(tooltipSheetId, rowIndex, columnIndex), getErrorValue(tooltipSheetId, rowIndex, columnIndex));
2020
2034
  }, [getTooltipContent, getErrorValue, getDataValidationRule]);
2021
2035
  var getTooltip = (0, use_get_tooltip_1.useGetTooltip)({
2022
2036
  sheetId: sheetId,
@@ -2041,10 +2055,164 @@ function CanvasGridComponent(props, forwardedRef) {
2041
2055
  var dataRegionBoundaries = (0, react_1.useMemo)(function () {
2042
2056
  return tables === null || tables === void 0 ? void 0 : tables.filter(function (table) { return table.sheetId === sheetId; }).map(function (table) { return table.range; });
2043
2057
  }, [tables, sheetId]);
2058
+ /**
2059
+ * True when a source cell of a fill is date-formatted — the fill menu then
2060
+ * adds Fill Days / Weekdays / Months / Years (Excel shows them only for
2061
+ * date sources). Reads the cell's own format first, then the effective
2062
+ * (style-plane) format so rnc-backed cells count too.
2063
+ */
2064
+ var sourceHasDates = (0, react_1.useCallback)(function (fillSheetId, sources) {
2065
+ var e_11, _a;
2066
+ var _b, _c, _d, _e, _f;
2067
+ var visited = 0;
2068
+ try {
2069
+ for (var sources_1 = tslib_1.__values(sources), sources_1_1 = sources_1.next(); !sources_1_1.done; sources_1_1 = sources_1.next()) {
2070
+ var range = sources_1_1.value.range;
2071
+ for (var r = range.startRowIndex; r <= range.endRowIndex; r++) {
2072
+ for (var c = range.startColumnIndex; c <= range.endColumnIndex; c++) {
2073
+ // Bounded scan: a whole-column source would otherwise cost a full walk.
2074
+ if (++visited > 256)
2075
+ return false;
2076
+ var uf = (_b = getCellData === null || getCellData === void 0 ? void 0 : getCellData(fillSheetId, r, c)) === null || _b === void 0 ? void 0 : _b.userEnteredFormat;
2077
+ var type = (_d = (uf && "numberFormat" in uf ? (_c = uf.numberFormat) === null || _c === void 0 ? void 0 : _c.type : undefined)) !== null && _d !== void 0 ? _d : (_f = (_e = getEffectiveFormat === null || getEffectiveFormat === void 0 ? void 0 : getEffectiveFormat(fillSheetId, r, c)) === null || _e === void 0 ? void 0 : _e.numberFormat) === null || _f === void 0 ? void 0 : _f.type;
2078
+ if (type === "DATE" || type === "DATE_TIME")
2079
+ return true;
2080
+ }
2081
+ }
2082
+ }
2083
+ }
2084
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
2085
+ finally {
2086
+ try {
2087
+ if (sources_1_1 && !sources_1_1.done && (_a = sources_1.return)) _a.call(sources_1);
2088
+ }
2089
+ finally { if (e_11) throw e_11.error; }
2090
+ }
2091
+ return false;
2092
+ }, [getCellData, getEffectiveFormat]);
2093
+ /**
2094
+ * A fill-handle drag ended: park the gesture so the Auto Fill Options smart
2095
+ * tag (left drag — already filled) or the right-drag fill menu (nothing
2096
+ * filled yet) can re-choose the fill type.
2097
+ */
2098
+ var handleFillHandleRelease = (0, react_1.useCallback)(function (release) {
2099
+ if (readonly)
2100
+ return;
2101
+ setFillOptions({
2102
+ sheetId: release.sheetId,
2103
+ activeCell: release.activeCell,
2104
+ fillSelection: release.fillSelection,
2105
+ selections: release.selections,
2106
+ fillType: undefined,
2107
+ hasDates: sourceHasDates(release.sheetId, release.selections.length
2108
+ ? release.selections
2109
+ : [{ range: (0, grid_1.cellToArea)(release.activeCell) }]),
2110
+ mode: release.button === "right" ? "menu" : "smart-tag",
2111
+ });
2112
+ }, [readonly, setFillOptions, sourceHasDates]);
2113
+ /**
2114
+ * An entry of the fill menu was picked: re-issue the fill from the (still
2115
+ * intact) source with the explicit type. The target is simply overwritten
2116
+ * with the new result — no undo round-trip needed because the source
2117
+ * selection is never touched by a fill.
2118
+ */
2119
+ var handleChooseFillType = (0, react_1.useCallback)(function (fillType) {
2120
+ if (!fillOptions)
2121
+ return;
2122
+ onFill === null || onFill === void 0 ? void 0 : onFill(fillOptions.sheetId, fillOptions.activeCell, fillOptions.fillSelection, fillOptions.selections, undefined, fillType);
2123
+ setFillOptions(tslib_1.__assign(tslib_1.__assign({}, fillOptions), { fillType: fillType, mode: "smart-tag" }));
2124
+ focusSheet();
2125
+ }, [fillOptions, onFill, setFillOptions, focusSheet]);
2126
+ var handleCloseFillOptions = (0, react_1.useCallback)(function () {
2127
+ // Only the right-drag menu is "cancel on close"; the smart tag stays.
2128
+ if ((fillOptions === null || fillOptions === void 0 ? void 0 : fillOptions.mode) === "menu")
2129
+ setFillOptions(null);
2130
+ }, [fillOptions, setFillOptions]);
2131
+ /**
2132
+ * Run Excel's Series dialog result: the target range's first row (Series
2133
+ * in Columns) / first column (Rows) is the seed line; `stop` may shrink or
2134
+ * extend the target along the axis from the seed's last value.
2135
+ */
2136
+ var applyFillSeriesSpec = (0, react_1.useCallback)(function (fillSheetId, cell, target, spec) {
2137
+ var seed = (0, fill_series_1.seedRangeForSeriesSpec)(target.range, spec);
2138
+ var fillRange = (0, fill_series_1.fillRangeForSeriesSpec)({
2139
+ target: target.range,
2140
+ seed: seed,
2141
+ spec: spec,
2142
+ getSeedValue: function (r, c) {
2143
+ var value = getEffectiveValue(fillSheetId, r, c);
2144
+ return typeof value === "number" ? value : undefined;
2145
+ },
2146
+ rowCount: rowCount,
2147
+ columnCount: columnCount,
2148
+ });
2149
+ if (!fillRange)
2150
+ return;
2151
+ var fillType = spec.type === "linear"
2152
+ ? spec.trend
2153
+ ? "LinearTrend"
2154
+ : "FillSeries"
2155
+ : spec.type === "growth"
2156
+ ? "GrowthTrend"
2157
+ : spec.type === "date"
2158
+ ? spec.dateUnit === "weekday"
2159
+ ? "FillWeekdays"
2160
+ : spec.dateUnit === "month"
2161
+ ? "FillMonths"
2162
+ : spec.dateUnit === "year"
2163
+ ? "FillYears"
2164
+ : "FillDays"
2165
+ : undefined;
2166
+ onFill === null || onFill === void 0 ? void 0 : onFill(fillSheetId, cell, { range: fillRange }, [tslib_1.__assign(tslib_1.__assign({}, target), { range: seed })], undefined, fillType, { series: spec });
2167
+ onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(fillSheetId, [tslib_1.__assign(tslib_1.__assign({}, target), { range: fillRange })]);
2168
+ }, [getEffectiveValue, onFill, onChangeSelections, rowCount, columnCount]);
2169
+ /** Open the Series dialog for a range (the current selection by default). */
2170
+ var openFillSeriesDialogFor = (0, react_1.useCallback)(function (target, initialIn) {
2171
+ var _a;
2172
+ var selection = (_a = target !== null && target !== void 0 ? target : selections[selections.length - 1]) !== null && _a !== void 0 ? _a : { range: (0, grid_1.cellToArea)(activeCell) };
2173
+ openFillSeriesDialog({
2174
+ sheetId: sheetId,
2175
+ activeCell: activeCell,
2176
+ selection: selection,
2177
+ initialIn: initialIn,
2178
+ onApply: function (spec) {
2179
+ return applyFillSeriesSpec(sheetId, activeCell, selection, spec);
2180
+ },
2181
+ });
2182
+ }, [selections, activeCell, sheetId, openFillSeriesDialog, applyFillSeriesSpec]);
2183
+ /** "Series…" on the right-drag fill menu: the drag's target is the range, its axis the default. */
2184
+ var handleOpenFillSeriesDialog = (0, react_1.useCallback)(function () {
2185
+ var _a;
2186
+ if (!fillOptions)
2187
+ return;
2188
+ var range = fillOptions.fillSelection.range;
2189
+ var source = (_a = fillOptions.selections[0]) === null || _a === void 0 ? void 0 : _a.range;
2190
+ var initialIn = source &&
2191
+ (range.endRowIndex > source.endRowIndex ||
2192
+ range.startRowIndex < source.startRowIndex)
2193
+ ? "columns"
2194
+ : "rows";
2195
+ setFillOptions(null);
2196
+ openFillSeriesDialogFor({ range: range }, initialIn);
2197
+ }, [fillOptions, setFillOptions, openFillSeriesDialogFor]);
2198
+ // The smart tag belongs to one fill; moving on (a new active cell) drops it.
2199
+ // Keyed on the cell's coordinates, not the object — a re-created `activeCell`
2200
+ // with the same coordinates must not dismiss it.
2201
+ (0, react_1.useEffect)(function () {
2202
+ setFillOptions(null);
2203
+ }, [activeCell.rowIndex, activeCell.columnIndex, sheetId, setFillOptions]);
2204
+ /**
2205
+ * Fill handle dragged BACK inside the selection (Excel): the dragged-over cells lose their
2206
+ * contents — formats stay unless Ctrl/Cmd was held — through the same `onDelete` path as the
2207
+ * Delete key, so both engines (legacy `useOnDelete`, rnc `delete-cells`) clear identically.
2208
+ */
2209
+ var handleFillShrink = (0, react_1.useCallback)(function (sheetId, activeCell, clearRange, options) {
2210
+ onDelete === null || onDelete === void 0 ? void 0 : onDelete(sheetId, activeCell, [{ range: clearRange }], (options === null || options === void 0 ? void 0 : options.modifier) === "toggle" ? "all" : "contents");
2211
+ }, [onDelete]);
2044
2212
  /**
2045
2213
  * Handle grid selections
2046
2214
  */
2047
- var _64 = (0, use_selection_1.useSelection)({
2215
+ var _65 = (0, use_selection_1.useSelection)({
2048
2216
  sheetId: sheetId,
2049
2217
  getDataRowCount: getDataRowCount,
2050
2218
  enableDataBoundaryNavigation: enableDataBoundaryNavigation,
@@ -2072,6 +2240,8 @@ function CanvasGridComponent(props, forwardedRef) {
2072
2240
  scrollToCell: scrollToCell,
2073
2241
  isMergedCell: isMergedCell,
2074
2242
  onFill: onFill,
2243
+ onFillHandleRelease: handleFillHandleRelease,
2244
+ onFillShrink: handleFillShrink,
2075
2245
  onMoveSelection: onMoveSelection,
2076
2246
  isHiddenColumn: isHiddenColumn,
2077
2247
  isHiddenRow: isHiddenRow,
@@ -2079,11 +2249,11 @@ function CanvasGridComponent(props, forwardedRef) {
2079
2249
  isColumnHeader: isColumnHeader,
2080
2250
  isTouchDevice: helpers_1.isTouchDevice,
2081
2251
  dataRegionBoundaries: dataRegionBoundaries,
2082
- }), onMouseDownSelection = _64.onMouseDown, onPointerDownSelection = _64.onPointerDown, onKeyDownSelection = _64.onKeyDown, fillSelection = _64.fillSelection, onFillHandleMouseDown = _64.onFillHandleMouseDown, onFillHandleDoubleClick = _64.onFillHandleDoubleClick, isDragging = _64.isDragging, isFilling = _64.isFilling, isSelectionInProgress = _64.isSelectionInProgress, draggedSelection = _64.draggedSelection, onSelectionMouseDown = _64.onSelectionMouseDown, setActiveCell = _64.setActiveCell, initialDraggedSelection = _64.initialDraggedSelection, updateSelectionStartEndReference = _64.updateSelectionStartEndReference, selectColumn = _64.selectColumn, getContentfulGridRangeAroundCell = _64.getContentfulGridRangeAroundCell, newSelection = _64.newSelection, modifySelection = _64.modifySelection, clearSelections = _64.clearSelections;
2252
+ }), onMouseDownSelection = _65.onMouseDown, onPointerDownSelection = _65.onPointerDown, onKeyDownSelection = _65.onKeyDown, fillSelection = _65.fillSelection, fillShrink = _65.fillShrink, onFillHandleMouseDown = _65.onFillHandleMouseDown, onFillHandleDoubleClick = _65.onFillHandleDoubleClick, isDragging = _65.isDragging, isFilling = _65.isFilling, isSelectionInProgress = _65.isSelectionInProgress, draggedSelection = _65.draggedSelection, onSelectionMouseDown = _65.onSelectionMouseDown, setActiveCell = _65.setActiveCell, initialDraggedSelection = _65.initialDraggedSelection, updateSelectionStartEndReference = _65.updateSelectionStartEndReference, selectColumn = _65.selectColumn, getContentfulGridRangeAroundCell = _65.getContentfulGridRangeAroundCell, newSelection = _65.newSelection, modifySelection = _65.modifySelection, clearSelections = _65.clearSelections;
2083
2253
  /**
2084
2254
  * Copy, Paste and Cut hook
2085
2255
  */
2086
- var _65 = (0, use_copy_paste_cut_1.useCopyPasteCut)({
2256
+ var _66 = (0, use_copy_paste_cut_1.useCopyPasteCut)({
2087
2257
  activeCell: activeCell,
2088
2258
  selections: selections,
2089
2259
  sheetId: sheetId,
@@ -2091,7 +2261,7 @@ function CanvasGridComponent(props, forwardedRef) {
2091
2261
  onPaste: onPaste,
2092
2262
  onCopy: onCopy,
2093
2263
  onCut: onCut,
2094
- }), copiedSelections = _65.copiedSelections, clearCopiedSelections = _65.clearCopiedSelections, copy = _65.copy, cut = _65.cut, paste = _65.paste, onInternalCopy = _65.onInternalCopy, onInternalCut = _65.onInternalCut, onInternalPaste = _65.onInternalPaste;
2264
+ }), copiedSelections = _66.copiedSelections, clearCopiedSelections = _66.clearCopiedSelections, copy = _66.copy, cut = _66.cut, paste = _66.paste, onInternalCopy = _66.onInternalCopy, onInternalCut = _66.onInternalCut, onInternalPaste = _66.onInternalPaste;
2095
2265
  /**
2096
2266
  * Paste Special dialog (context menu → Paste special…, Ctrl+Alt+V). The
2097
2267
  * dialog is host-mounted (`PasteSpecialDialogHost`); its request routes
@@ -2145,6 +2315,21 @@ function CanvasGridComponent(props, forwardedRef) {
2145
2315
  getSheetName,
2146
2316
  onRequestCalculate,
2147
2317
  ]);
2318
+ /**
2319
+ * Watch Window: "Add to Watch Window" is offered only while a
2320
+ * `WatchWindowHost` is mounted; the live getters are published below once
2321
+ * `navigateToSheetRange` exists.
2322
+ */
2323
+ var addWatch = (0, watch_window_atom_1.useAddWatch)();
2324
+ var isWatchWindowMounted = (0, watch_window_atom_1.useIsWatchWindowMounted)();
2325
+ var setWatchWindowContext = (0, watch_window_atom_1.useSetWatchWindowContext)();
2326
+ var requestAddWatch = (0, react_1.useMemo)(function () {
2327
+ if (!isWatchWindowMounted)
2328
+ return undefined;
2329
+ return function (watchSheetId, cell) {
2330
+ return addWatch(tslib_1.__assign({ sheetId: watchSheetId }, cell));
2331
+ };
2332
+ }, [isWatchWindowMounted, addWatch]);
2148
2333
  /**
2149
2334
  * Go To (Ctrl+G / F5). A host `onRequestGoTo` wins; otherwise the built-in
2150
2335
  * dialog opens — but only while a `GoToDialogHost` is mounted, so a host
@@ -2234,6 +2419,8 @@ function CanvasGridComponent(props, forwardedRef) {
2234
2419
  onChange: onChange,
2235
2420
  getCommitValidation: getCommitValidation,
2236
2421
  showValidationAlert: showValidationAlert,
2422
+ selections: selections,
2423
+ onChangeBatch: onChangeBatch,
2237
2424
  });
2238
2425
  /**
2239
2426
  * User cancels editing the cell
@@ -2313,7 +2500,7 @@ function CanvasGridComponent(props, forwardedRef) {
2313
2500
  * Get context Menu component
2314
2501
  */
2315
2502
  var getContextMenu = (0, react_1.useCallback)(function (cell) {
2316
- return (react_1.default.createElement(ContextMenu, { activeCell: activeCell, selections: selections, sheetId: sheetId, frozenRows: frozenRows, frozenColumns: frozenColumns, onHideColumn: isRestricted ? undefined : onHideColumn, onShowColumn: isRestricted ? undefined : onShowColumn, onShowRow: isRestricted ? undefined : onShowRow, onHideRow: isRestricted ? undefined : onHideRow, onGroupRows: isRestricted ? undefined : onGroupRows, onUngroupRows: isRestricted ? undefined : onUngroupRows, onGroupColumns: isRestricted ? undefined : onGroupColumns, onUngroupColumns: isRestricted ? undefined : onUngroupColumns, isHiddenColumn: isHiddenColumn, isHiddenRow: isHiddenRow, onDeleteColumn: onDeleteColumn, onDeleteRow: onDeleteRow, onInsertRow: onInsertRow, onInsertColumn: onInsertColumn, onInsertCellsShiftDown: onInsertCellsShiftDown, onInsertCellsShiftRight: onInsertCellsShiftRight, onDeleteCellsShiftLeft: onDeleteCellsShiftLeft, onDeleteCellsShiftUp: onDeleteCellsShiftUp, onClearContents: onClearContents, onFreezeColumn: onFreezeColumn, onFreezeRow: onFreezeRow, focusSheet: focusSheet, onSortColumn: onSortColumn, onInsertNote: onInsertNote, onProtectRange: onProtectRange, onUnProtectRange: onUnProtectRange, onSortRange: onSortRange, onRequestDefineNamedRange: onRequestDefineNamedRange, protectedRanges: protectedRanges, isRowHeader: isRowHeader(cell.columnIndex), isColumnHeader: isColumnHeader(cell.rowIndex), selectedRowHeadersIds: selectedRowHeadersIds, selectedColumnHeadersIds: selectedColumnHeadersIds, onCopy: copy, onCut: cut, onPaste: paste, onRequestPasteSpecial: requestPasteSpecial, onRequestEvaluateFormula: requestEvaluateFormula, isActiveCellFormula: Boolean(getFormulaValue(sheetId, activeCell.rowIndex, activeCell.columnIndex)), onRequestResize: onRequestResize, isSheetFocused: isSheetFocused, tables: activeTables, pivotTables: pivotTables, basicFilter: basicFilter, onRequestEditTable: onRequestEditTable, onRequestEditPivotTable: onRequestEditPivotTable, onRemoveTable: onRemoveTable, onRequestDeletePivotTable: onRequestDeletePivotTable, onPivotDrillDown: onPivotDrillDown, onRequestFormatCells: onRequestFormatCells, onRequestConditionalFormat: onRequestConditionalFormat, onRequestDataValidation: onRequestDataValidation, onClearFormatting: onClearFormatting, onCreateTable: onCreateTable, onCreateBasicFilter: onCreateBasicFilter, onInsertTableColumn: onInsertTableColumn, onDeleteTableColumn: onDeleteTableColumn, onInsertTableRow: onInsertTableRow, onDeleteTableRow: onDeleteTableRow, onFilterTable: onFilterTable, onSortTable: onSortTable, getFormattedValue: getFormattedValue, getFormattedValuesFromRange: getFormattedValuesFromRange, isTableHeader: isTableHeader, readonly: readonly, onSplitTextToColumns: onSplitTextToColumns, onRemoveDuplicates: onRemoveDuplicates, onChange: onChange, getCellData: getCellData, onAddQuickEdit: onAddQuickEdit, enableMagicFill: enableMagicFill }));
2503
+ return (react_1.default.createElement(ContextMenu, { activeCell: activeCell, selections: selections, sheetId: sheetId, frozenRows: frozenRows, frozenColumns: frozenColumns, onHideColumn: isRestricted ? undefined : onHideColumn, onShowColumn: isRestricted ? undefined : onShowColumn, onShowRow: isRestricted ? undefined : onShowRow, onHideRow: isRestricted ? undefined : onHideRow, onGroupRows: isRestricted ? undefined : onGroupRows, onUngroupRows: isRestricted ? undefined : onUngroupRows, onGroupColumns: isRestricted ? undefined : onGroupColumns, onUngroupColumns: isRestricted ? undefined : onUngroupColumns, isHiddenColumn: isHiddenColumn, isHiddenRow: isHiddenRow, onDeleteColumn: onDeleteColumn, onDeleteRow: onDeleteRow, onInsertRow: onInsertRow, onInsertColumn: onInsertColumn, onInsertCellsShiftDown: onInsertCellsShiftDown, onInsertCellsShiftRight: onInsertCellsShiftRight, onDeleteCellsShiftLeft: onDeleteCellsShiftLeft, onDeleteCellsShiftUp: onDeleteCellsShiftUp, onClearContents: onClearContents, onFreezeColumn: onFreezeColumn, onFreezeRow: onFreezeRow, focusSheet: focusSheet, onSortColumn: onSortColumn, onInsertNote: onInsertNote, onProtectRange: onProtectRange, onUnProtectRange: onUnProtectRange, onSortRange: onSortRange, onRequestDefineNamedRange: onRequestDefineNamedRange, protectedRanges: protectedRanges, isRowHeader: isRowHeader(cell.columnIndex), isColumnHeader: isColumnHeader(cell.rowIndex), selectedRowHeadersIds: selectedRowHeadersIds, selectedColumnHeadersIds: selectedColumnHeadersIds, onCopy: copy, onCut: cut, onPaste: paste, onRequestPasteSpecial: requestPasteSpecial, onRequestEvaluateFormula: requestEvaluateFormula, onRequestAddWatch: requestAddWatch, isActiveCellFormula: Boolean(getFormulaValue(sheetId, activeCell.rowIndex, activeCell.columnIndex)), onRequestResize: onRequestResize, isSheetFocused: isSheetFocused, tables: activeTables, pivotTables: pivotTables, basicFilter: basicFilter, onRequestEditTable: onRequestEditTable, onRequestEditPivotTable: onRequestEditPivotTable, onRemoveTable: onRemoveTable, onRequestDeletePivotTable: onRequestDeletePivotTable, onPivotDrillDown: onPivotDrillDown, onRequestFormatCells: onRequestFormatCells, onRequestConditionalFormat: onRequestConditionalFormat, onRequestDataValidation: onRequestDataValidation, onClearFormatting: onClearFormatting, onCreateTable: onCreateTable, onCreateBasicFilter: onCreateBasicFilter, onInsertTableColumn: onInsertTableColumn, onDeleteTableColumn: onDeleteTableColumn, onInsertTableRow: onInsertTableRow, onDeleteTableRow: onDeleteTableRow, onFilterTable: onFilterTable, onSortTable: onSortTable, getFormattedValue: getFormattedValue, getFormattedValuesFromRange: getFormattedValuesFromRange, isTableHeader: isTableHeader, readonly: readonly, onSplitTextToColumns: onSplitTextToColumns, onRemoveDuplicates: onRemoveDuplicates, onGoalSeek: onGoalSeek, onSubtotal: onSubtotal, onAdvancedFilter: onAdvancedFilter, onChange: onChange, getCellData: getCellData, onAddQuickEdit: onAddQuickEdit, enableMagicFill: enableMagicFill }));
2317
2504
  }, [
2318
2505
  isRestricted,
2319
2506
  activeCell,
@@ -2381,6 +2568,9 @@ function CanvasGridComponent(props, forwardedRef) {
2381
2568
  enableMagicFill,
2382
2569
  onSplitTextToColumns,
2383
2570
  onRemoveDuplicates,
2571
+ onGoalSeek,
2572
+ onSubtotal,
2573
+ onAdvancedFilter,
2384
2574
  onChange,
2385
2575
  getCellData,
2386
2576
  onRequestDeletePivotTable,
@@ -2398,7 +2588,7 @@ function CanvasGridComponent(props, forwardedRef) {
2398
2588
  * Displays Context menu when user right clicks
2399
2589
  * the grid
2400
2590
  */
2401
- var _66 = (0, use_context_menu_1.useContextMenu)({
2591
+ var _67 = (0, use_context_menu_1.useContextMenu)({
2402
2592
  getCellCoordsFromOffset: getCellCoordsFromOffset,
2403
2593
  getRelativePositionFromOffset: getRelativePositionFromOffset,
2404
2594
  isRowHeader: isRowHeader,
@@ -2407,7 +2597,7 @@ function CanvasGridComponent(props, forwardedRef) {
2407
2597
  getCellOffsetFromCoords: getCellOffsetFromCoords,
2408
2598
  getScrollPosition: getScrollPosition,
2409
2599
  ContextMenuWrapper: ContextMenuWrapper,
2410
- }), onContextMenu = _66.onContextMenu, contextMenuComponent = _66.contextMenuComponent, onRequestCloseContextMenu = _66.onRequestClose, showContextMenu = _66.showContextMenu;
2600
+ }), onContextMenu = _67.onContextMenu, contextMenuComponent = _67.contextMenuComponent, onRequestCloseContextMenu = _67.onRequestClose, showContextMenu = _67.showContextMenu;
2411
2601
  /**
2412
2602
  * Shortcut handlers for formatting
2413
2603
  * TODO: Decide on the output
@@ -2487,7 +2677,7 @@ function CanvasGridComponent(props, forwardedRef) {
2487
2677
  /**
2488
2678
  * Allow grid to be ediable
2489
2679
  */
2490
- var _67 = (0, use_editable_1.useEditable)({
2680
+ var _68 = (0, use_editable_1.useEditable)({
2491
2681
  sheetId: sheetId,
2492
2682
  enableEditOnEnterKey: enableEditOnEnterKey,
2493
2683
  canEdit: canEditCell,
@@ -2536,11 +2726,11 @@ function CanvasGridComponent(props, forwardedRef) {
2536
2726
  onCopy: onInternalCopy,
2537
2727
  onPaste: onInternalPaste,
2538
2728
  onCut: onInternalCut,
2539
- }), onMouseDownEditable = _67.onMouseDown, onDoubleClickEditable = _67.onDoubleClick, editorComponent = _67.editorComponent, isEditInProgress = _67.isEditInProgress, makeEditable = _67.makeEditable, editCell = _67.editCell, setEditorValue = _67.setEditorValue, hideEditor = _67.hideEditor, getNextFocusableCell = _67.getNextFocusableCell, submitEditor = _67.submitEditor, cancelEditor = _67.cancelEditor, commit = _67.commit;
2729
+ }), onMouseDownEditable = _68.onMouseDown, onDoubleClickEditable = _68.onDoubleClick, editorComponent = _68.editorComponent, isEditInProgress = _68.isEditInProgress, makeEditable = _68.makeEditable, editCell = _68.editCell, setEditorValue = _68.setEditorValue, hideEditor = _68.hideEditor, getNextFocusableCell = _68.getNextFocusableCell, submitEditor = _68.submitEditor, cancelEditor = _68.cancelEditor, commit = _68.commit;
2540
2730
  /**
2541
2731
  * Move rows and columns
2542
2732
  */
2543
- var _68 = (0, use_move_columns_rows_1.useMoveColumnsAndRows)({
2733
+ var _69 = (0, use_move_columns_rows_1.useMoveColumnsAndRows)({
2544
2734
  getCellOffsetFromCoords: getCellOffsetFromCoords,
2545
2735
  getCellCoordsFromOffset: getCellCoordsFromOffset,
2546
2736
  getRelativePositionFromOffset: getRelativePositionFromOffset,
@@ -2563,11 +2753,11 @@ function CanvasGridComponent(props, forwardedRef) {
2563
2753
  sheetId: sheetId,
2564
2754
  disabled: isRestricted,
2565
2755
  HeaderMoveDragComponent: HeaderMoveDragComponent,
2566
- }), draggableColumns = _68.draggableColumns, draggableRows = _68.draggableRows, isDraggingRowsAndColumns = _68.isDragging;
2756
+ }), draggableColumns = _69.draggableColumns, draggableRows = _69.draggableRows, isDraggingRowsAndColumns = _69.isDragging;
2567
2757
  /**
2568
2758
  * Header actions
2569
2759
  */
2570
- var _69 = (0, use_header_actions_1.useHeaderActions)({
2760
+ var _70 = (0, use_header_actions_1.useHeaderActions)({
2571
2761
  activeCell: isSelectionInProgress || isFilling || isDragging ? null : hoveredCell,
2572
2762
  getScrollPosition: getScrollPosition,
2573
2763
  getCellOffsetFromCoords: getCellOffsetFromCoords,
@@ -2594,7 +2784,7 @@ function CanvasGridComponent(props, forwardedRef) {
2594
2784
  selectedRowHeadersIds: selectedRowHeadersIds,
2595
2785
  selectedColumnHeadersIds: selectedColumnHeadersIds,
2596
2786
  enableResizerOverflow: enableResizerOverflow,
2597
- }), headerMenuComponent = _69.headerMenuComponent, isHeaderMenuInFrozenColumn = _69.isHeaderMenuInFrozenColumn, headerResizer = _69.headerResizer, isDraggingHeader = _69.isDragging;
2787
+ }), headerMenuComponent = _70.headerMenuComponent, isHeaderMenuInFrozenColumn = _70.isHeaderMenuInFrozenColumn, headerResizer = _70.headerResizer, isDraggingHeader = _70.isDragging;
2598
2788
  /**
2599
2789
  * Close tooltip
2600
2790
  */
@@ -2636,7 +2826,7 @@ function CanvasGridComponent(props, forwardedRef) {
2636
2826
  /**
2637
2827
  * Show basicFilter panels
2638
2828
  */
2639
- var _70 = (0, use_filter_1.useFilter)({
2829
+ var _71 = (0, use_filter_1.useFilter)({
2640
2830
  sheetId: sheetId,
2641
2831
  scale: scale,
2642
2832
  theme: theme,
@@ -2661,9 +2851,9 @@ function CanvasGridComponent(props, forwardedRef) {
2661
2851
  // Live filter state so the open popup tracks Auto-apply spec changes.
2662
2852
  basicFilter: basicFilter,
2663
2853
  tables: activeTables,
2664
- }), showFilter = _70.showFilter, hideFilter = _70.hideFilter, filterComponent = _70.filterComponent;
2854
+ }), showFilter = _71.showFilter, hideFilter = _71.hideFilter, filterComponent = _71.filterComponent;
2665
2855
  // Table resize
2666
- var _71 = (0, use_table_resizer_1.useTableResizer)({
2856
+ var _72 = (0, use_table_resizer_1.useTableResizer)({
2667
2857
  sheetId: sheetId,
2668
2858
  tables: tables !== null && tables !== void 0 ? tables : undefined,
2669
2859
  theme: theme,
@@ -2674,11 +2864,11 @@ function CanvasGridComponent(props, forwardedRef) {
2674
2864
  scrollToCell: scrollToCell,
2675
2865
  onResizeTable: onResizeTable,
2676
2866
  focusSheet: focusSheet,
2677
- }), tableResizers = _71.tableResizers, isResizingTable = _71.isResizingTable;
2867
+ }), tableResizers = _72.tableResizers, isResizingTable = _72.isResizingTable;
2678
2868
  /**
2679
2869
  * Displays resizable/draggable charts
2680
2870
  */
2681
- var _72 = (0, use_embeds_charts_1.useEmbedsCharts)({
2871
+ var _73 = (0, use_embeds_charts_1.useEmbedsCharts)({
2682
2872
  charts: charts,
2683
2873
  embeds: embeds,
2684
2874
  slicers: slicers,
@@ -2715,7 +2905,7 @@ function CanvasGridComponent(props, forwardedRef) {
2715
2905
  backgroundColor: cellBackgroundColor,
2716
2906
  disabled: isRestricted,
2717
2907
  readonly: readonly,
2718
- }), chartComponents = _72.chartComponents, embedComponents = _72.embedComponents, slicerComponents = _72.slicerComponents, onMouseDownCharts = _72.onMouseDown;
2908
+ }), chartComponents = _73.chartComponents, embedComponents = _73.embedComponents, slicerComponents = _73.slicerComponents, onMouseDownCharts = _73.onMouseDown;
2719
2909
  /**
2720
2910
  * Callback when user clicks Filter icon
2721
2911
  * Show Filter dropdown here
@@ -2845,6 +3035,8 @@ function CanvasGridComponent(props, forwardedRef) {
2845
3035
  hideCellPopover();
2846
3036
  // Hide paste mnenu
2847
3037
  setShowPasteMenu(false);
3038
+ // Hide the Auto Fill Options smart tag (its own mousedown never reaches here)
3039
+ setFillOptions(null);
2848
3040
  // Remove pinned tooltip
2849
3041
  onUnpinTooltip();
2850
3042
  }, [
@@ -2856,6 +3048,7 @@ function CanvasGridComponent(props, forwardedRef) {
2856
3048
  setFormulaState,
2857
3049
  hideCellPopover,
2858
3050
  setShowPasteMenu,
3051
+ setFillOptions,
2859
3052
  onUnpinTooltip,
2860
3053
  focusSheet,
2861
3054
  ]);
@@ -2970,7 +3163,7 @@ function CanvasGridComponent(props, forwardedRef) {
2970
3163
  /**
2971
3164
  * Render Cells in the grid
2972
3165
  */
2973
- var _73 = tslib_1.__read((0, use_cell_renderer_1.useCellRenderer)({
3166
+ var _74 = tslib_1.__read((0, use_cell_renderer_1.useCellRenderer)({
2974
3167
  sheetId: sheetId,
2975
3168
  showGridLines: showGridLines,
2976
3169
  scale: scale,
@@ -3036,7 +3229,7 @@ function CanvasGridComponent(props, forwardedRef) {
3036
3229
  onOverflow: handleOverflow,
3037
3230
  isComparing: isComparing,
3038
3231
  getCellDiff: getCellDiff,
3039
- }), 4), cellBackgroundRenderer = _73[0], cellRenderer = _73[1], cellOverlayRenderer = _73[2], headerCellRenderer = _73[3];
3232
+ }), 4), cellBackgroundRenderer = _74[0], cellRenderer = _74[1], cellOverlayRenderer = _74[2], headerCellRenderer = _74[3];
3040
3233
  /**
3041
3234
  * When user selects a selection for moving
3042
3235
  * If its a table, we select the entire column
@@ -3072,11 +3265,11 @@ function CanvasGridComponent(props, forwardedRef) {
3072
3265
  tokenizer: tokenizer,
3073
3266
  });
3074
3267
  // Selection move: drag a formula reference via its border covers
3075
- var _74 = (0, use_selection_move_1.useSelectionMove)({
3268
+ var _75 = (0, use_selection_move_1.useSelectionMove)({
3076
3269
  getCellCoordsFromOffset: getCellCoordsFromOffset,
3077
3270
  scrollToCell: scrollToCell,
3078
3271
  tokenizer: tokenizer,
3079
- }), onMouseDownMoveSelection = _74.onMouseDownMoveSelection, isDraggingMoveSelection = _74.isDragging;
3272
+ }), onMouseDownMoveSelection = _75.onMouseDownMoveSelection, isDraggingMoveSelection = _75.isDragging;
3080
3273
  /**
3081
3274
  * Hide fill handle
3082
3275
  * 1. When user is in edit mode
@@ -3089,9 +3282,9 @@ function CanvasGridComponent(props, forwardedRef) {
3089
3282
  /**
3090
3283
  * Flashing
3091
3284
  */
3092
- var _75 = (0, use_flash_1.useFlash)({
3285
+ var _76 = (0, use_flash_1.useFlash)({
3093
3286
  theme: theme,
3094
- }), flash = _75.flash, mark = _75.mark, unmark = _75.unmark, onFlashEnd = _75.onFlashEnd, flashingBorders = _75.flashingBorders;
3287
+ }), flash = _76.flash, mark = _76.mark, unmark = _76.unmark, onFlashEnd = _76.onFlashEnd, flashingBorders = _76.flashingBorders;
3095
3288
  // Cache hover ids
3096
3289
  var cachedHoveredSelectionIds = (0, use_hovered_selection_ids_1.useHoveredSelectionIds)({
3097
3290
  selections: selections,
@@ -3101,9 +3294,12 @@ function CanvasGridComponent(props, forwardedRef) {
3101
3294
  /**
3102
3295
  * Selection Renderer
3103
3296
  */
3297
+ // The drag-back preview reuses the fill overlay geometry but greys the cells about to be cleared.
3298
+ var fillShrinkOverlay = (0, react_1.useMemo)(function () { return (fillShrink ? { range: fillShrink.clearRange } : undefined); }, [fillShrink]);
3104
3299
  var selectionRenderer = (0, use_selection_renderer_1.useSelectionRenderer)({
3105
3300
  sheetId: sheetId,
3106
3301
  scale: scale,
3302
+ isFillShrink: fillShrink !== undefined,
3107
3303
  onSelectionMouseDown: onSelectionElementMouseDown,
3108
3304
  onMouseDownResizeHandle: onMouseDownResizeHandle,
3109
3305
  onMouseDownMoveSelection: onMouseDownMoveSelection,
@@ -3132,6 +3328,10 @@ function CanvasGridComponent(props, forwardedRef) {
3132
3328
  readonly: readonly,
3133
3329
  onSplitTextToColumns: onSplitTextToColumns,
3134
3330
  showPasteMenu: showPasteMenu,
3331
+ fillOptions: fillOptions,
3332
+ onChooseFillType: handleChooseFillType,
3333
+ onOpenFillSeriesDialog: handleOpenFillSeriesDialog,
3334
+ onCloseFillOptions: handleCloseFillOptions,
3135
3335
  hoveredCell: delayedHoveredCell,
3136
3336
  onRemoveQuickEdit: onRemoveQuickEdit,
3137
3337
  onAddQuickEdit: onAddQuickEdit,
@@ -3167,7 +3367,7 @@ function CanvasGridComponent(props, forwardedRef) {
3167
3367
  quickEditValues: quickEditValues,
3168
3368
  });
3169
3369
  // Hidden column markers
3170
- var _76 = tslib_1.__read((0, use_hidden_dimension_markers_1.useHiddenDimensionMarkers)({
3370
+ var _77 = tslib_1.__read((0, use_hidden_dimension_markers_1.useHiddenDimensionMarkers)({
3171
3371
  sheetId: sheetId,
3172
3372
  columnMetadata: columnMetadata,
3173
3373
  rowMetadata: rowMetadata,
@@ -3180,7 +3380,7 @@ function CanvasGridComponent(props, forwardedRef) {
3180
3380
  columnCount: columnCount,
3181
3381
  HiddenRowMarkers: HiddenRowMarkers,
3182
3382
  HiddenColumnMarkers: HiddenColumnMarkers,
3183
- }), 4), hiddenColumnMarkers = _76[0], frozenHiddenColumnMarkers = _76[1], hiddenRowMarkers = _76[2], frozenHiddenRowMarkers = _76[3];
3383
+ }), 4), hiddenColumnMarkers = _77[0], frozenHiddenColumnMarkers = _77[1], hiddenRowMarkers = _77[2], frozenHiddenRowMarkers = _77[3];
3184
3384
  // Zoom lister
3185
3385
  var onMouseWheel = (0, use_scale_listener_1.useScaleListener)({
3186
3386
  zoomSpeed: zoomSpeed,
@@ -3205,9 +3405,19 @@ function CanvasGridComponent(props, forwardedRef) {
3205
3405
  setActiveCell: setActiveCell,
3206
3406
  flash: flash,
3207
3407
  });
3208
- // Built-in Go To: resolve against the workbook, then select + scroll.
3408
+ // Built-in Go To: resolve against the workbook, then select + scroll. Go
3409
+ // To Special scans the current selection (the whole sheet for a single
3410
+ // cell) through the host's `getCellData`.
3209
3411
  (0, use_isomorphic_layout_effect_1.useIsomorphicLayoutEffect)(function () {
3210
- builtInGoToRef.current = function (goToSheetId, goToActiveCell) {
3412
+ builtInGoToRef.current = function (goToSheetId, goToActiveCell, goToSelections) {
3413
+ var scanRange = (goToSelections === null || goToSelections === void 0 ? void 0 : goToSelections.length) && goToSelections[0]
3414
+ ? goToSelections[0].range
3415
+ : {
3416
+ startRowIndex: 1,
3417
+ endRowIndex: Math.max(1, sheetRowCount - 1),
3418
+ startColumnIndex: 1,
3419
+ endColumnIndex: Math.max(1, sheetColumnCount - 1),
3420
+ };
3211
3421
  openGoToDialog({
3212
3422
  sheetId: goToSheetId,
3213
3423
  activeCell: goToActiveCell,
@@ -3220,9 +3430,54 @@ function CanvasGridComponent(props, forwardedRef) {
3220
3430
  navigateToSheetRange(range, { enableFlash: false });
3221
3431
  focusSheet();
3222
3432
  },
3433
+ special: getCellData
3434
+ ? {
3435
+ resolve: function (kind) {
3436
+ return (0, go_to_special_1.resolveGoToSpecial)(kind, {
3437
+ sheetId: goToSheetId,
3438
+ range: scanRange,
3439
+ getCellData: getCellData,
3440
+ isRowHidden: isHiddenRow,
3441
+ isColumnHidden: isHiddenColumn,
3442
+ });
3443
+ },
3444
+ onSelectRanges: function (ranges) {
3445
+ var first = ranges[0];
3446
+ if (!first)
3447
+ return;
3448
+ setActiveCell(goToSheetId, {
3449
+ rowIndex: first.startRowIndex,
3450
+ columnIndex: first.startColumnIndex,
3451
+ });
3452
+ onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(goToSheetId, ranges.map(function (range) { return ({ range: range }); }));
3453
+ focusSheet();
3454
+ },
3455
+ }
3456
+ : undefined,
3223
3457
  });
3224
3458
  };
3225
3459
  });
3460
+ // Watch Window live getters — republished per render while a host is
3461
+ // mounted so the panel tracks recalculation.
3462
+ (0, use_isomorphic_layout_effect_1.useIsomorphicLayoutEffect)(function () {
3463
+ if (!isWatchWindowMounted)
3464
+ return;
3465
+ setWatchWindowContext({
3466
+ getSheetName: getSheetName,
3467
+ getFormattedValue: getFormattedValue,
3468
+ getFormula: getFormulaValue,
3469
+ onNavigate: function (cell) {
3470
+ navigateToSheetRange({
3471
+ sheetId: cell.sheetId,
3472
+ startRowIndex: cell.rowIndex,
3473
+ endRowIndex: cell.rowIndex,
3474
+ startColumnIndex: cell.columnIndex,
3475
+ endColumnIndex: cell.columnIndex,
3476
+ }, { enableFlash: false });
3477
+ focusSheet();
3478
+ },
3479
+ });
3480
+ });
3226
3481
  // Dispatch keyboard event
3227
3482
  var dispatchEvent = (0, react_1.useCallback)(function (event) {
3228
3483
  var _a, _b;
@@ -3305,7 +3560,7 @@ function CanvasGridComponent(props, forwardedRef) {
3305
3560
  });
3306
3561
  // Pivot placeholders
3307
3562
  var pivotPlaceholders = (0, react_1.useMemo)(function () {
3308
- var e_11, _a;
3563
+ var e_12, _a;
3309
3564
  var _b, _c;
3310
3565
  var placeholders = [];
3311
3566
  var displayIdx = 0;
@@ -3321,12 +3576,12 @@ function CanvasGridComponent(props, forwardedRef) {
3321
3576
  }
3322
3577
  }
3323
3578
  }
3324
- catch (e_11_1) { e_11 = { error: e_11_1 }; }
3579
+ catch (e_12_1) { e_12 = { error: e_12_1 }; }
3325
3580
  finally {
3326
3581
  try {
3327
3582
  if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
3328
3583
  }
3329
- finally { if (e_11) throw e_11.error; }
3584
+ finally { if (e_12) throw e_12.error; }
3330
3585
  }
3331
3586
  return placeholders;
3332
3587
  }, [pivotTables, sheetId, onRequestEditPivotTable, getCellOffsetFromCoords]);
@@ -3403,12 +3658,14 @@ function CanvasGridComponent(props, forwardedRef) {
3403
3658
  });
3404
3659
  // props reference for spreadsheet api
3405
3660
  propsReferenceRef.current = props;
3661
+ var openFillSeriesDialogForRef = (0, use_stable_ref_1.useStableRef)(openFillSeriesDialogFor);
3406
3662
  // Expose a spreadsheet API
3407
3663
  (0, use_isomorphic_layout_effect_1.useIsomorphicLayoutEffect)(function () {
3408
3664
  var stableMethods = {
3409
3665
  getUserEnteredValue: getUserEnteredStringValueStable,
3410
3666
  scrollToCell: scrollToCell,
3411
3667
  commit: commit,
3668
+ openFillSeriesDialog: function () { var _a; return (_a = openFillSeriesDialogForRef.current) === null || _a === void 0 ? void 0 : _a.call(openFillSeriesDialogForRef); },
3412
3669
  };
3413
3670
  setSpreadsheetApi(new spreadsheet_api_1.SpreadsheetApi(propsReferenceRef, stableMethods, store, instanceStore, instanceId));
3414
3671
  }, []);
@@ -3490,7 +3747,7 @@ function CanvasGridComponent(props, forwardedRef) {
3490
3747
  width === 0 || height === 0 ? (react_1.default.createElement("div", { className: "flex border-solid border-rnc-border border border-t border-b flex-1 justify-center items-center" },
3491
3748
  react_1.default.createElement("div", { className: "space-y-2" },
3492
3749
  react_1.default.createElement(ui_1.Skeleton, { className: "h-4 w-[250px]" }),
3493
- react_1.default.createElement(ui_1.Skeleton, { className: "h-4 w-[250px]" })))) : (react_1.default.createElement(grid_5.Grid, { ref: gridRef, overscanCount: overscanCount, rowCount: sheetRowCount, columnCount: sheetColumnCount, rowHeight: rowHeight, columnWidth: columnWidth, itemRenderer: cellRenderer, headerRenderer: headerCellRenderer, selectionRenderer: selectionRenderer, gridLineColor: gridLineColor, gridLineWidth: gridLineWidth, borderStyles: finalBorderStyles, mergedCells: merges, scale: scale, width: width, height: height, frozenColumns: frozenColumns, frozenRows: frozenRows, activeCell: activeCell, selections: formulaMode ? formulaSelections : selections, FillHandle: fill_handle_1.FillHandle, showFillHandle: showFillHandle, fillHandleSize: fillHandleSize, showGridLines: showGridLines, enableCellOverlay: true, enableCellBackground: true, enableSelectionDrag: enableSelectionDrag, showFrozenColumnShadow: showFrozenSeparator, showFrozenRowShadow: showFrozenSeparator, selectionBorderColor: selectionBorderColor, selectionBackgroundColor: selectionBackgroundColor, fillhandleBorderColor: cellBackgroundColor, isDraggingSelection: isDragging, fillSelection: fillSelection, onPointerDown: handlePointerDown, onPointerUp: handlePointerUp, onMouseDown: handleMouseDown, onDoubleClick: handleDoubleClick, onFillHandleMouseDown: onFillHandleMouseDown, onFillHandleDoubleClick: onFillHandleDoubleClick,
3750
+ react_1.default.createElement(ui_1.Skeleton, { className: "h-4 w-[250px]" })))) : (react_1.default.createElement(grid_5.Grid, { ref: gridRef, overscanCount: overscanCount, rowCount: sheetRowCount, columnCount: sheetColumnCount, rowHeight: rowHeight, columnWidth: columnWidth, itemRenderer: cellRenderer, headerRenderer: headerCellRenderer, selectionRenderer: selectionRenderer, gridLineColor: gridLineColor, gridLineWidth: gridLineWidth, borderStyles: finalBorderStyles, mergedCells: merges, scale: scale, width: width, height: height, frozenColumns: frozenColumns, frozenRows: frozenRows, activeCell: activeCell, selections: formulaMode ? formulaSelections : selections, FillHandle: fill_handle_1.FillHandle, showFillHandle: showFillHandle, fillHandleSize: fillHandleSize, showGridLines: showGridLines, enableCellOverlay: true, enableCellBackground: true, enableSelectionDrag: enableSelectionDrag, showFrozenColumnShadow: showFrozenSeparator, showFrozenRowShadow: showFrozenSeparator, selectionBorderColor: selectionBorderColor, selectionBackgroundColor: selectionBackgroundColor, fillhandleBorderColor: cellBackgroundColor, isDraggingSelection: isDragging, fillSelection: fillShrinkOverlay !== null && fillShrinkOverlay !== void 0 ? fillShrinkOverlay : fillSelection, onPointerDown: handlePointerDown, onPointerUp: handlePointerUp, onMouseDown: handleMouseDown, onDoubleClick: handleDoubleClick, onFillHandleMouseDown: onFillHandleMouseDown, onFillHandleDoubleClick: onFillHandleDoubleClick,
3494
3751
  // Dimension of fill handle
3495
3752
  scrollToCellOffset: 4, scrollbarSize: scrollbarSize, isHiddenCell: isHiddenCell, isHiddenColumn: isHiddenColumn, isHiddenRow: isHiddenRow, visibleRowRanges: visibleRowRanges, isHiddenOverlay: isHiddenOverlay, isHiddenBackground: isHiddenBackground, overlayRenderer: cellOverlayRenderer, backgroundRenderer: cellBackgroundRenderer, shadowSettings: shadowSettings, onScroll: handleScroll, onViewPortChange: handleViewPortChange, autoFocus: autoFocus, snap: scrollSnap, scrollThrottleTimeout: scrollThrottleTimeout, preventBrowserDefaultScroll: preventBrowserDefaultScroll, showHeaders: showHeaders, gridChildren: gridChildren, onTouchStart: onTouchStart, onDimensionsChange: onDimensionsChange, extendScrollSize: helpers_1.isTouchDevice || helpers_1.isFirefox, isTouchDevice: helpers_1.isTouchDevice, frozenShadowThickness: frozenShadowThickness, onAfterScrollToCell: onAfterScrollToCell, estimatedRowHeight: defaultRowHeight, estimatedColumnWidth: defaultColumnWidth, footerHeight: footerHeight, footerComponent: footerComponent, getOverflowBuffer: getOverflowBuffer, getFrozenColumnOverflowCells: getFrozenColumnOverflowCells })),
3496
3753
  tooltipComponent,