@rowsncolumns/spreadsheet 10.2.68

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 (1434) hide show
  1. package/LICENSE.md +100 -0
  2. package/Readme.md +9 -0
  3. package/dist/cjs/api/animate.d.ts +36 -0
  4. package/dist/cjs/api/animate.d.ts.map +1 -0
  5. package/dist/cjs/api/animate.js +123 -0
  6. package/dist/cjs/api/banded-ranges.d.ts +16 -0
  7. package/dist/cjs/api/banded-ranges.d.ts.map +1 -0
  8. package/dist/cjs/api/banded-ranges.js +134 -0
  9. package/dist/cjs/api/cf-engine.d.ts +36 -0
  10. package/dist/cjs/api/cf-engine.d.ts.map +1 -0
  11. package/dist/cjs/api/cf-engine.js +73 -0
  12. package/dist/cjs/api/cf-overlays.d.ts +7 -0
  13. package/dist/cjs/api/cf-overlays.d.ts.map +1 -0
  14. package/dist/cjs/api/cf-overlays.js +136 -0
  15. package/dist/cjs/api/cf-window.d.ts +45 -0
  16. package/dist/cjs/api/cf-window.d.ts.map +1 -0
  17. package/dist/cjs/api/cf-window.js +143 -0
  18. package/dist/cjs/api/colors.d.ts +8 -0
  19. package/dist/cjs/api/colors.d.ts.map +1 -0
  20. package/dist/cjs/api/colors.js +31 -0
  21. package/dist/cjs/api/copy-paste.d.ts +10 -0
  22. package/dist/cjs/api/copy-paste.d.ts.map +1 -0
  23. package/dist/cjs/api/copy-paste.js +28 -0
  24. package/dist/cjs/api/fill-patterns.d.ts +5 -0
  25. package/dist/cjs/api/fill-patterns.d.ts.map +1 -0
  26. package/dist/cjs/api/fill-patterns.js +202 -0
  27. package/dist/cjs/api/font-loader.d.ts +8 -0
  28. package/dist/cjs/api/font-loader.d.ts.map +1 -0
  29. package/dist/cjs/api/font-loader.js +162 -0
  30. package/dist/cjs/api/heatmap.d.ts +4 -0
  31. package/dist/cjs/api/heatmap.d.ts.map +1 -0
  32. package/dist/cjs/api/heatmap.js +177 -0
  33. package/dist/cjs/api/scheduler.d.ts +8 -0
  34. package/dist/cjs/api/scheduler.d.ts.map +1 -0
  35. package/dist/cjs/api/scheduler.js +19 -0
  36. package/dist/cjs/api/scroller.d.ts +134 -0
  37. package/dist/cjs/api/scroller.d.ts.map +1 -0
  38. package/dist/cjs/api/scroller.js +702 -0
  39. package/dist/cjs/api/selections.d.ts +111 -0
  40. package/dist/cjs/api/selections.d.ts.map +1 -0
  41. package/dist/cjs/api/selections.js +407 -0
  42. package/dist/cjs/api/spreadsheet-api.d.ts +271 -0
  43. package/dist/cjs/api/spreadsheet-api.d.ts.map +1 -0
  44. package/dist/cjs/api/spreadsheet-api.js +811 -0
  45. package/dist/cjs/api/table.d.ts +11 -0
  46. package/dist/cjs/api/table.d.ts.map +1 -0
  47. package/dist/cjs/api/table.js +17 -0
  48. package/dist/cjs/api/validation.d.ts +98 -0
  49. package/dist/cjs/api/validation.d.ts.map +1 -0
  50. package/dist/cjs/api/validation.js +506 -0
  51. package/dist/cjs/atoms/active-editor.atom.d.ts +8 -0
  52. package/dist/cjs/atoms/active-editor.atom.d.ts.map +1 -0
  53. package/dist/cjs/atoms/active-editor.atom.js +12 -0
  54. package/dist/cjs/atoms/cell-input-context.atom.d.ts +15 -0
  55. package/dist/cjs/atoms/cell-input-context.atom.d.ts.map +1 -0
  56. package/dist/cjs/atoms/cell-input-context.atom.js +24 -0
  57. package/dist/cjs/atoms/editing-cell.atom.d.ts +7 -0
  58. package/dist/cjs/atoms/editing-cell.atom.d.ts.map +1 -0
  59. package/dist/cjs/atoms/editing-cell.atom.js +9 -0
  60. package/dist/cjs/atoms/formula-bar-editor-value.atom.d.ts +19 -0
  61. package/dist/cjs/atoms/formula-bar-editor-value.atom.d.ts.map +1 -0
  62. package/dist/cjs/atoms/formula-bar-editor-value.atom.js +44 -0
  63. package/dist/cjs/atoms/formula-mode.atom.d.ts +7 -0
  64. package/dist/cjs/atoms/formula-mode.atom.d.ts.map +1 -0
  65. package/dist/cjs/atoms/formula-mode.atom.js +11 -0
  66. package/dist/cjs/atoms/formula-selection-state.atom.d.ts +16 -0
  67. package/dist/cjs/atoms/formula-selection-state.atom.d.ts.map +1 -0
  68. package/dist/cjs/atoms/formula-selection-state.atom.js +32 -0
  69. package/dist/cjs/atoms/formula-selections.atom.d.ts +8 -0
  70. package/dist/cjs/atoms/formula-selections.atom.d.ts.map +1 -0
  71. package/dist/cjs/atoms/formula-selections.atom.js +9 -0
  72. package/dist/cjs/atoms/index.d.ts +18 -0
  73. package/dist/cjs/atoms/index.d.ts.map +1 -0
  74. package/dist/cjs/atoms/index.js +22 -0
  75. package/dist/cjs/atoms/loading-indicator.atom.d.ts +12 -0
  76. package/dist/cjs/atoms/loading-indicator.atom.d.ts.map +1 -0
  77. package/dist/cjs/atoms/loading-indicator.atom.js +22 -0
  78. package/dist/cjs/atoms/magic-fill-state.atom.d.ts +5 -0
  79. package/dist/cjs/atoms/magic-fill-state.atom.d.ts.map +1 -0
  80. package/dist/cjs/atoms/magic-fill-state.atom.js +12 -0
  81. package/dist/cjs/atoms/paste-menu.atom.d.ts +6 -0
  82. package/dist/cjs/atoms/paste-menu.atom.d.ts.map +1 -0
  83. package/dist/cjs/atoms/paste-menu.atom.js +9 -0
  84. package/dist/cjs/atoms/persistent-tooltip.atom.d.ts +11 -0
  85. package/dist/cjs/atoms/persistent-tooltip.atom.d.ts.map +1 -0
  86. package/dist/cjs/atoms/persistent-tooltip.atom.js +34 -0
  87. package/dist/cjs/atoms/popover.atom.d.ts +7 -0
  88. package/dist/cjs/atoms/popover.atom.d.ts.map +1 -0
  89. package/dist/cjs/atoms/popover.atom.js +9 -0
  90. package/dist/cjs/atoms/range-selector.atom.d.ts +6 -0
  91. package/dist/cjs/atoms/range-selector.atom.d.ts.map +1 -0
  92. package/dist/cjs/atoms/range-selector.atom.js +11 -0
  93. package/dist/cjs/atoms/selected-chart-embed.atom.d.ts +6 -0
  94. package/dist/cjs/atoms/selected-chart-embed.atom.d.ts.map +1 -0
  95. package/dist/cjs/atoms/selected-chart-embed.atom.js +9 -0
  96. package/dist/cjs/atoms/sheet-context.atom.d.ts +66 -0
  97. package/dist/cjs/atoms/sheet-context.atom.d.ts.map +1 -0
  98. package/dist/cjs/atoms/sheet-context.atom.js +142 -0
  99. package/dist/cjs/atoms/sheet-status-display.atom.d.ts +15 -0
  100. package/dist/cjs/atoms/sheet-status-display.atom.d.ts.map +1 -0
  101. package/dist/cjs/atoms/sheet-status-display.atom.js +18 -0
  102. package/dist/cjs/atoms/show-formula-help.atom.d.ts +8 -0
  103. package/dist/cjs/atoms/show-formula-help.atom.d.ts.map +1 -0
  104. package/dist/cjs/atoms/show-formula-help.atom.js +20 -0
  105. package/dist/cjs/atoms/sort-dialog.atom.d.ts +22 -0
  106. package/dist/cjs/atoms/sort-dialog.atom.d.ts.map +1 -0
  107. package/dist/cjs/atoms/sort-dialog.atom.js +14 -0
  108. package/dist/cjs/atoms/spreadsheet-api.atom.d.ts +5 -0
  109. package/dist/cjs/atoms/spreadsheet-api.atom.d.ts.map +1 -0
  110. package/dist/cjs/atoms/spreadsheet-api.atom.js +11 -0
  111. package/dist/cjs/atoms/validation-alert.atom.d.ts +27 -0
  112. package/dist/cjs/atoms/validation-alert.atom.d.ts.map +1 -0
  113. package/dist/cjs/atoms/validation-alert.atom.js +23 -0
  114. package/dist/cjs/components/bottom-bar/index.d.ts +7 -0
  115. package/dist/cjs/components/bottom-bar/index.d.ts.map +1 -0
  116. package/dist/cjs/components/bottom-bar/index.js +11 -0
  117. package/dist/cjs/components/canvas-grid/helpers.d.ts +15 -0
  118. package/dist/cjs/components/canvas-grid/helpers.d.ts.map +1 -0
  119. package/dist/cjs/components/canvas-grid/helpers.js +53 -0
  120. package/dist/cjs/components/canvas-grid/index.d.ts +7 -0
  121. package/dist/cjs/components/canvas-grid/index.d.ts.map +1 -0
  122. package/dist/cjs/components/canvas-grid/index.js +3413 -0
  123. package/dist/cjs/components/canvas-grid/typings.d.ts +2027 -0
  124. package/dist/cjs/components/canvas-grid/typings.d.ts.map +1 -0
  125. package/dist/cjs/components/canvas-grid/typings.js +9 -0
  126. package/dist/cjs/components/cell/alignment.d.ts +70 -0
  127. package/dist/cjs/components/cell/alignment.d.ts.map +1 -0
  128. package/dist/cjs/components/cell/alignment.js +137 -0
  129. package/dist/cjs/components/cell/cell-background.d.ts +15 -0
  130. package/dist/cjs/components/cell/cell-background.d.ts.map +1 -0
  131. package/dist/cjs/components/cell/cell-background.js +171 -0
  132. package/dist/cjs/components/cell/cell-text-runs.d.ts +98 -0
  133. package/dist/cjs/components/cell/cell-text-runs.d.ts.map +1 -0
  134. package/dist/cjs/components/cell/cell-text-runs.js +470 -0
  135. package/dist/cjs/components/cell/helpers.d.ts +3 -0
  136. package/dist/cjs/components/cell/helpers.d.ts.map +1 -0
  137. package/dist/cjs/components/cell/helpers.js +20 -0
  138. package/dist/cjs/components/cell/index.d.ts +4 -0
  139. package/dist/cjs/components/cell/index.d.ts.map +1 -0
  140. package/dist/cjs/components/cell/index.js +272 -0
  141. package/dist/cjs/components/cell/rich-text.d.ts +82 -0
  142. package/dist/cjs/components/cell/rich-text.d.ts.map +1 -0
  143. package/dist/cjs/components/cell/rich-text.js +211 -0
  144. package/dist/cjs/components/cell/typings.d.ts +190 -0
  145. package/dist/cjs/components/cell/typings.d.ts.map +1 -0
  146. package/dist/cjs/components/cell/typings.js +2 -0
  147. package/dist/cjs/components/cell-arrow/index.d.ts +14 -0
  148. package/dist/cjs/components/cell-arrow/index.d.ts.map +1 -0
  149. package/dist/cjs/components/cell-arrow/index.js +28 -0
  150. package/dist/cjs/components/cell-calculated/index.d.ts +17 -0
  151. package/dist/cjs/components/cell-calculated/index.d.ts.map +1 -0
  152. package/dist/cjs/components/cell-calculated/index.js +20 -0
  153. package/dist/cjs/components/cell-checkbox/index.d.ts +14 -0
  154. package/dist/cjs/components/cell-checkbox/index.d.ts.map +1 -0
  155. package/dist/cjs/components/cell-checkbox/index.js +29 -0
  156. package/dist/cjs/components/cell-diff/index.d.ts +42 -0
  157. package/dist/cjs/components/cell-diff/index.d.ts.map +1 -0
  158. package/dist/cjs/components/cell-diff/index.js +94 -0
  159. package/dist/cjs/components/cell-editor/calendar-popup.d.ts +9 -0
  160. package/dist/cjs/components/cell-editor/calendar-popup.d.ts.map +1 -0
  161. package/dist/cjs/components/cell-editor/calendar-popup.js +25 -0
  162. package/dist/cjs/components/cell-editor/formula-result-preview.d.ts +9 -0
  163. package/dist/cjs/components/cell-editor/formula-result-preview.d.ts.map +1 -0
  164. package/dist/cjs/components/cell-editor/formula-result-preview.js +26 -0
  165. package/dist/cjs/components/cell-editor/helpers.d.ts +11 -0
  166. package/dist/cjs/components/cell-editor/helpers.d.ts.map +1 -0
  167. package/dist/cjs/components/cell-editor/helpers.js +41 -0
  168. package/dist/cjs/components/cell-editor/helpers.spec.d.ts +2 -0
  169. package/dist/cjs/components/cell-editor/helpers.spec.d.ts.map +1 -0
  170. package/dist/cjs/components/cell-editor/helpers.spec.js +18 -0
  171. package/dist/cjs/components/cell-editor/index.d.ts +146 -0
  172. package/dist/cjs/components/cell-editor/index.d.ts.map +1 -0
  173. package/dist/cjs/components/cell-editor/index.js +268 -0
  174. package/dist/cjs/components/cell-editor/style.d.ts +9 -0
  175. package/dist/cjs/components/cell-editor/style.d.ts.map +1 -0
  176. package/dist/cjs/components/cell-editor/style.js +31 -0
  177. package/dist/cjs/components/cell-error/index.d.ts +14 -0
  178. package/dist/cjs/components/cell-error/index.d.ts.map +1 -0
  179. package/dist/cjs/components/cell-error/index.js +24 -0
  180. package/dist/cjs/components/cell-expand/index.d.ts +15 -0
  181. package/dist/cjs/components/cell-expand/index.d.ts.map +1 -0
  182. package/dist/cjs/components/cell-expand/index.js +31 -0
  183. package/dist/cjs/components/cell-filter/index.d.ts +21 -0
  184. package/dist/cjs/components/cell-filter/index.d.ts.map +1 -0
  185. package/dist/cjs/components/cell-filter/index.js +40 -0
  186. package/dist/cjs/components/cell-group/index.d.ts +17 -0
  187. package/dist/cjs/components/cell-group/index.d.ts.map +1 -0
  188. package/dist/cjs/components/cell-group/index.js +32 -0
  189. package/dist/cjs/components/cell-input/cell-input.d.ts +123 -0
  190. package/dist/cjs/components/cell-input/cell-input.d.ts.map +1 -0
  191. package/dist/cjs/components/cell-input/cell-input.js +68 -0
  192. package/dist/cjs/components/cell-input/formula-bar-cell-input.d.ts +21 -0
  193. package/dist/cjs/components/cell-input/formula-bar-cell-input.d.ts.map +1 -0
  194. package/dist/cjs/components/cell-input/formula-bar-cell-input.js +63 -0
  195. package/dist/cjs/components/cell-input/index.d.ts +3 -0
  196. package/dist/cjs/components/cell-input/index.d.ts.map +1 -0
  197. package/dist/cjs/components/cell-input/index.js +5 -0
  198. package/dist/cjs/components/cell-input/style.d.ts +6 -0
  199. package/dist/cjs/components/cell-input/style.d.ts.map +1 -0
  200. package/dist/cjs/components/cell-input/style.js +14 -0
  201. package/dist/cjs/components/cell-overlay/index.d.ts +25 -0
  202. package/dist/cjs/components/cell-overlay/index.d.ts.map +1 -0
  203. package/dist/cjs/components/cell-overlay/index.js +161 -0
  204. package/dist/cjs/components/cell-structured/index.d.ts +8 -0
  205. package/dist/cjs/components/cell-structured/index.d.ts.map +1 -0
  206. package/dist/cjs/components/cell-structured/index.js +21 -0
  207. package/dist/cjs/components/cell-structured/sparkline-math.d.ts +54 -0
  208. package/dist/cjs/components/cell-structured/sparkline-math.d.ts.map +1 -0
  209. package/dist/cjs/components/cell-structured/sparkline-math.js +111 -0
  210. package/dist/cjs/components/cell-structured/sparkline.d.ts +6 -0
  211. package/dist/cjs/components/cell-structured/sparkline.d.ts.map +1 -0
  212. package/dist/cjs/components/cell-structured/sparkline.js +256 -0
  213. package/dist/cjs/components/cell-structured/types.d.ts +23 -0
  214. package/dist/cjs/components/cell-structured/types.d.ts.map +1 -0
  215. package/dist/cjs/components/cell-structured/types.js +2 -0
  216. package/dist/cjs/components/cell-tooltip/index.d.ts +28 -0
  217. package/dist/cjs/components/cell-tooltip/index.d.ts.map +1 -0
  218. package/dist/cjs/components/cell-tooltip/index.js +55 -0
  219. package/dist/cjs/components/cell-tooltip/note-editor.d.ts +12 -0
  220. package/dist/cjs/components/cell-tooltip/note-editor.d.ts.map +1 -0
  221. package/dist/cjs/components/cell-tooltip/note-editor.js +26 -0
  222. package/dist/cjs/components/cell-tooltip/style.d.ts +3 -0
  223. package/dist/cjs/components/cell-tooltip/style.d.ts.map +1 -0
  224. package/dist/cjs/components/cell-tooltip/style.js +11 -0
  225. package/dist/cjs/components/context-menu/index.d.ts +80 -0
  226. package/dist/cjs/components/context-menu/index.d.ts.map +1 -0
  227. package/dist/cjs/components/context-menu/index.js +666 -0
  228. package/dist/cjs/components/context-menu/menu.d.ts +10 -0
  229. package/dist/cjs/components/context-menu/menu.d.ts.map +1 -0
  230. package/dist/cjs/components/context-menu/menu.js +15 -0
  231. package/dist/cjs/components/context-menu/style.d.ts +6 -0
  232. package/dist/cjs/components/context-menu/style.d.ts.map +1 -0
  233. package/dist/cjs/components/context-menu/style.js +16 -0
  234. package/dist/cjs/components/embeds/chart-component.d.ts +16 -0
  235. package/dist/cjs/components/embeds/chart-component.d.ts.map +1 -0
  236. package/dist/cjs/components/embeds/chart-component.js +12 -0
  237. package/dist/cjs/components/embeds/embed-component.d.ts +17 -0
  238. package/dist/cjs/components/embeds/embed-component.d.ts.map +1 -0
  239. package/dist/cjs/components/embeds/embed-component.js +128 -0
  240. package/dist/cjs/components/embeds/embed-draggable.d.ts +43 -0
  241. package/dist/cjs/components/embeds/embed-draggable.d.ts.map +1 -0
  242. package/dist/cjs/components/embeds/embed-draggable.js +117 -0
  243. package/dist/cjs/components/embeds/index.d.ts +5 -0
  244. package/dist/cjs/components/embeds/index.d.ts.map +1 -0
  245. package/dist/cjs/components/embeds/index.js +7 -0
  246. package/dist/cjs/components/embeds/shape-geometry.d.ts +10 -0
  247. package/dist/cjs/components/embeds/shape-geometry.d.ts.map +1 -0
  248. package/dist/cjs/components/embeds/shape-geometry.js +265 -0
  249. package/dist/cjs/components/embeds/shape-svg.d.ts +56 -0
  250. package/dist/cjs/components/embeds/shape-svg.d.ts.map +1 -0
  251. package/dist/cjs/components/embeds/shape-svg.js +165 -0
  252. package/dist/cjs/components/embeds/slicer-component.d.ts +27 -0
  253. package/dist/cjs/components/embeds/slicer-component.d.ts.map +1 -0
  254. package/dist/cjs/components/embeds/slicer-component.js +283 -0
  255. package/dist/cjs/components/fill-handle/index.d.ts +7 -0
  256. package/dist/cjs/components/fill-handle/index.d.ts.map +1 -0
  257. package/dist/cjs/components/fill-handle/index.js +19 -0
  258. package/dist/cjs/components/filter-box/filter-by-color.d.ts +28 -0
  259. package/dist/cjs/components/filter-box/filter-by-color.d.ts.map +1 -0
  260. package/dist/cjs/components/filter-box/filter-by-color.js +104 -0
  261. package/dist/cjs/components/filter-box/filter-by-condition.d.ts +13 -0
  262. package/dist/cjs/components/filter-box/filter-by-condition.d.ts.map +1 -0
  263. package/dist/cjs/components/filter-box/filter-by-condition.js +47 -0
  264. package/dist/cjs/components/filter-box/filter-by-value.d.ts +9 -0
  265. package/dist/cjs/components/filter-box/filter-by-value.d.ts.map +1 -0
  266. package/dist/cjs/components/filter-box/filter-by-value.js +86 -0
  267. package/dist/cjs/components/filter-box/index.d.ts +50 -0
  268. package/dist/cjs/components/filter-box/index.d.ts.map +1 -0
  269. package/dist/cjs/components/filter-box/index.js +357 -0
  270. package/dist/cjs/components/floating-cell-editor/index.d.ts +83 -0
  271. package/dist/cjs/components/floating-cell-editor/index.d.ts.map +1 -0
  272. package/dist/cjs/components/floating-cell-editor/index.js +180 -0
  273. package/dist/cjs/components/formula-bar/index.d.ts +11 -0
  274. package/dist/cjs/components/formula-bar/index.d.ts.map +1 -0
  275. package/dist/cjs/components/formula-bar/index.js +19 -0
  276. package/dist/cjs/components/formula-bar/style.d.ts +4 -0
  277. package/dist/cjs/components/formula-bar/style.d.ts.map +1 -0
  278. package/dist/cjs/components/formula-bar/style.js +16 -0
  279. package/dist/cjs/components/formula-input/index.d.ts +17 -0
  280. package/dist/cjs/components/formula-input/index.d.ts.map +1 -0
  281. package/dist/cjs/components/formula-input/index.js +92 -0
  282. package/dist/cjs/components/grid-footer/index.d.ts +14 -0
  283. package/dist/cjs/components/grid-footer/index.d.ts.map +1 -0
  284. package/dist/cjs/components/grid-footer/index.js +40 -0
  285. package/dist/cjs/components/header-cell/index.d.ts +10 -0
  286. package/dist/cjs/components/header-cell/index.d.ts.map +1 -0
  287. package/dist/cjs/components/header-cell/index.js +25 -0
  288. package/dist/cjs/components/header-menu/index.d.ts +13 -0
  289. package/dist/cjs/components/header-menu/index.d.ts.map +1 -0
  290. package/dist/cjs/components/header-menu/index.js +19 -0
  291. package/dist/cjs/components/header-move/index.d.ts +23 -0
  292. package/dist/cjs/components/header-move/index.d.ts.map +1 -0
  293. package/dist/cjs/components/header-move/index.js +46 -0
  294. package/dist/cjs/components/header-resizer/index.d.ts +19 -0
  295. package/dist/cjs/components/header-resizer/index.d.ts.map +1 -0
  296. package/dist/cjs/components/header-resizer/index.js +38 -0
  297. package/dist/cjs/components/hidden-markers/index.d.ts +15 -0
  298. package/dist/cjs/components/hidden-markers/index.d.ts.map +1 -0
  299. package/dist/cjs/components/hidden-markers/index.js +47 -0
  300. package/dist/cjs/components/hidden-markers/style.d.ts +5 -0
  301. package/dist/cjs/components/hidden-markers/style.d.ts.map +1 -0
  302. package/dist/cjs/components/hidden-markers/style.js +11 -0
  303. package/dist/cjs/components/insert-function-dialog/index.d.ts +32 -0
  304. package/dist/cjs/components/insert-function-dialog/index.d.ts.map +1 -0
  305. package/dist/cjs/components/insert-function-dialog/index.js +84 -0
  306. package/dist/cjs/components/loading-indicator/index.d.ts +7 -0
  307. package/dist/cjs/components/loading-indicator/index.d.ts.map +1 -0
  308. package/dist/cjs/components/loading-indicator/index.js +14 -0
  309. package/dist/cjs/components/outline-gutter/index.d.ts +44 -0
  310. package/dist/cjs/components/outline-gutter/index.d.ts.map +1 -0
  311. package/dist/cjs/components/outline-gutter/index.js +450 -0
  312. package/dist/cjs/components/pivot-placeholder/index.d.ts +12 -0
  313. package/dist/cjs/components/pivot-placeholder/index.d.ts.map +1 -0
  314. package/dist/cjs/components/pivot-placeholder/index.js +24 -0
  315. package/dist/cjs/components/print-preview/cell-styles.d.ts +18 -0
  316. package/dist/cjs/components/print-preview/cell-styles.d.ts.map +1 -0
  317. package/dist/cjs/components/print-preview/cell-styles.js +181 -0
  318. package/dist/cjs/components/print-preview/index.d.ts +5 -0
  319. package/dist/cjs/components/print-preview/index.d.ts.map +1 -0
  320. package/dist/cjs/components/print-preview/index.js +9 -0
  321. package/dist/cjs/components/print-preview/page-block.d.ts +62 -0
  322. package/dist/cjs/components/print-preview/page-block.d.ts.map +1 -0
  323. package/dist/cjs/components/print-preview/page-block.js +322 -0
  324. package/dist/cjs/components/print-preview/print-preview-dialog.d.ts +49 -0
  325. package/dist/cjs/components/print-preview/print-preview-dialog.d.ts.map +1 -0
  326. package/dist/cjs/components/print-preview/print-preview-dialog.js +374 -0
  327. package/dist/cjs/components/print-preview/run-print.d.ts +11 -0
  328. package/dist/cjs/components/print-preview/run-print.d.ts.map +1 -0
  329. package/dist/cjs/components/print-preview/run-print.js +72 -0
  330. package/dist/cjs/components/print-preview/settings.d.ts +130 -0
  331. package/dist/cjs/components/print-preview/settings.d.ts.map +1 -0
  332. package/dist/cjs/components/print-preview/settings.js +236 -0
  333. package/dist/cjs/components/print-preview/use-page-layout.d.ts +60 -0
  334. package/dist/cjs/components/print-preview/use-page-layout.d.ts.map +1 -0
  335. package/dist/cjs/components/print-preview/use-page-layout.js +161 -0
  336. package/dist/cjs/components/range-selector/index.d.ts +25 -0
  337. package/dist/cjs/components/range-selector/index.d.ts.map +1 -0
  338. package/dist/cjs/components/range-selector/index.js +250 -0
  339. package/dist/cjs/components/resizer/index.d.ts +9 -0
  340. package/dist/cjs/components/resizer/index.d.ts.map +1 -0
  341. package/dist/cjs/components/resizer/index.js +46 -0
  342. package/dist/cjs/components/selection/avatar.d.ts +14 -0
  343. package/dist/cjs/components/selection/avatar.d.ts.map +1 -0
  344. package/dist/cjs/components/selection/avatar.js +17 -0
  345. package/dist/cjs/components/selection/index.d.ts +9 -0
  346. package/dist/cjs/components/selection/index.d.ts.map +1 -0
  347. package/dist/cjs/components/selection/index.js +179 -0
  348. package/dist/cjs/components/selection/magic-fill.d.ts +26 -0
  349. package/dist/cjs/components/selection/magic-fill.d.ts.map +1 -0
  350. package/dist/cjs/components/selection/magic-fill.js +60 -0
  351. package/dist/cjs/components/selection/paste-menu.d.ts +10 -0
  352. package/dist/cjs/components/selection/paste-menu.d.ts.map +1 -0
  353. package/dist/cjs/components/selection/paste-menu.js +35 -0
  354. package/dist/cjs/components/selection/quick-edit.d.ts +14 -0
  355. package/dist/cjs/components/selection/quick-edit.d.ts.map +1 -0
  356. package/dist/cjs/components/selection/quick-edit.js +41 -0
  357. package/dist/cjs/components/selection/style.d.ts +15 -0
  358. package/dist/cjs/components/selection/style.d.ts.map +1 -0
  359. package/dist/cjs/components/selection/style.js +47 -0
  360. package/dist/cjs/components/selection/suggestion-action.d.ts +22 -0
  361. package/dist/cjs/components/selection/suggestion-action.d.ts.map +1 -0
  362. package/dist/cjs/components/selection/suggestion-action.js +61 -0
  363. package/dist/cjs/components/selection/title.d.ts +45 -0
  364. package/dist/cjs/components/selection/title.d.ts.map +1 -0
  365. package/dist/cjs/components/selection/title.js +93 -0
  366. package/dist/cjs/components/selection/types.d.ts +43 -0
  367. package/dist/cjs/components/selection/types.d.ts.map +1 -0
  368. package/dist/cjs/components/selection/types.js +2 -0
  369. package/dist/cjs/components/selection-input/index.d.ts +19 -0
  370. package/dist/cjs/components/selection-input/index.d.ts.map +1 -0
  371. package/dist/cjs/components/selection-input/index.js +30 -0
  372. package/dist/cjs/components/selection-input/style.d.ts +3 -0
  373. package/dist/cjs/components/selection-input/style.d.ts.map +1 -0
  374. package/dist/cjs/components/selection-input/style.js +11 -0
  375. package/dist/cjs/components/sheet-search/index.d.ts +41 -0
  376. package/dist/cjs/components/sheet-search/index.d.ts.map +1 -0
  377. package/dist/cjs/components/sheet-search/index.js +115 -0
  378. package/dist/cjs/components/sheet-status/index.d.ts +40 -0
  379. package/dist/cjs/components/sheet-status/index.d.ts.map +1 -0
  380. package/dist/cjs/components/sheet-status/index.js +154 -0
  381. package/dist/cjs/components/sheet-status/style.d.ts +4 -0
  382. package/dist/cjs/components/sheet-status/style.d.ts.map +1 -0
  383. package/dist/cjs/components/sheet-status/style.js +17 -0
  384. package/dist/cjs/components/sheet-switcher/index.d.ts +12 -0
  385. package/dist/cjs/components/sheet-switcher/index.d.ts.map +1 -0
  386. package/dist/cjs/components/sheet-switcher/index.js +39 -0
  387. package/dist/cjs/components/sheet-switcher/new-sheet-button.d.ts +4 -0
  388. package/dist/cjs/components/sheet-switcher/new-sheet-button.d.ts.map +1 -0
  389. package/dist/cjs/components/sheet-switcher/new-sheet-button.js +12 -0
  390. package/dist/cjs/components/sheet-tabs/context-menu.d.ts +43 -0
  391. package/dist/cjs/components/sheet-tabs/context-menu.d.ts.map +1 -0
  392. package/dist/cjs/components/sheet-tabs/context-menu.js +58 -0
  393. package/dist/cjs/components/sheet-tabs/index.d.ts +18 -0
  394. package/dist/cjs/components/sheet-tabs/index.d.ts.map +1 -0
  395. package/dist/cjs/components/sheet-tabs/index.js +231 -0
  396. package/dist/cjs/components/sheet-tabs/sheet-tab.d.ts +21 -0
  397. package/dist/cjs/components/sheet-tabs/sheet-tab.d.ts.map +1 -0
  398. package/dist/cjs/components/sheet-tabs/sheet-tab.js +135 -0
  399. package/dist/cjs/components/sheet-tabs/style.d.ts +10 -0
  400. package/dist/cjs/components/sheet-tabs/style.d.ts.map +1 -0
  401. package/dist/cjs/components/sheet-tabs/style.js +38 -0
  402. package/dist/cjs/components/sheet-tabs/types.d.ts +45 -0
  403. package/dist/cjs/components/sheet-tabs/types.d.ts.map +1 -0
  404. package/dist/cjs/components/sheet-tabs/types.js +2 -0
  405. package/dist/cjs/components/sort-range-dialog/index.d.ts +66 -0
  406. package/dist/cjs/components/sort-range-dialog/index.d.ts.map +1 -0
  407. package/dist/cjs/components/sort-range-dialog/index.js +260 -0
  408. package/dist/cjs/components/toolbar/background-color-selector.d.ts +19 -0
  409. package/dist/cjs/components/toolbar/background-color-selector.d.ts.map +1 -0
  410. package/dist/cjs/components/toolbar/background-color-selector.js +34 -0
  411. package/dist/cjs/components/toolbar/border-color-selector.d.ts +18 -0
  412. package/dist/cjs/components/toolbar/border-color-selector.d.ts.map +1 -0
  413. package/dist/cjs/components/toolbar/border-color-selector.js +31 -0
  414. package/dist/cjs/components/toolbar/border-line-style-options.d.ts +9 -0
  415. package/dist/cjs/components/toolbar/border-line-style-options.d.ts.map +1 -0
  416. package/dist/cjs/components/toolbar/border-line-style-options.js +48 -0
  417. package/dist/cjs/components/toolbar/border-line-style-selector.d.ts +9 -0
  418. package/dist/cjs/components/toolbar/border-line-style-selector.d.ts.map +1 -0
  419. package/dist/cjs/components/toolbar/border-line-style-selector.js +25 -0
  420. package/dist/cjs/components/toolbar/border-location-options.d.ts +11 -0
  421. package/dist/cjs/components/toolbar/border-location-options.d.ts.map +1 -0
  422. package/dist/cjs/components/toolbar/border-location-options.js +71 -0
  423. package/dist/cjs/components/toolbar/border-selector.d.ts +20 -0
  424. package/dist/cjs/components/toolbar/border-selector.d.ts.map +1 -0
  425. package/dist/cjs/components/toolbar/border-selector.js +65 -0
  426. package/dist/cjs/components/toolbar/buttons.d.ts +55 -0
  427. package/dist/cjs/components/toolbar/buttons.d.ts.map +1 -0
  428. package/dist/cjs/components/toolbar/buttons.js +216 -0
  429. package/dist/cjs/components/toolbar/cell-style-selector.d.ts +25 -0
  430. package/dist/cjs/components/toolbar/cell-style-selector.d.ts.map +1 -0
  431. package/dist/cjs/components/toolbar/cell-style-selector.js +531 -0
  432. package/dist/cjs/components/toolbar/color-selector.d.ts +13 -0
  433. package/dist/cjs/components/toolbar/color-selector.d.ts.map +1 -0
  434. package/dist/cjs/components/toolbar/color-selector.js +57 -0
  435. package/dist/cjs/components/toolbar/font-family-selector.d.ts +22 -0
  436. package/dist/cjs/components/toolbar/font-family-selector.d.ts.map +1 -0
  437. package/dist/cjs/components/toolbar/font-family-selector.js +183 -0
  438. package/dist/cjs/components/toolbar/font-size-selector.d.ts +10 -0
  439. package/dist/cjs/components/toolbar/font-size-selector.d.ts.map +1 -0
  440. package/dist/cjs/components/toolbar/font-size-selector.js +149 -0
  441. package/dist/cjs/components/toolbar/index.d.ts +25 -0
  442. package/dist/cjs/components/toolbar/index.d.ts.map +1 -0
  443. package/dist/cjs/components/toolbar/index.js +27 -0
  444. package/dist/cjs/components/toolbar/insert-menu.d.ts +22 -0
  445. package/dist/cjs/components/toolbar/insert-menu.d.ts.map +1 -0
  446. package/dist/cjs/components/toolbar/insert-menu.js +146 -0
  447. package/dist/cjs/components/toolbar/merge-cells-selector.d.ts +15 -0
  448. package/dist/cjs/components/toolbar/merge-cells-selector.d.ts.map +1 -0
  449. package/dist/cjs/components/toolbar/merge-cells-selector.js +56 -0
  450. package/dist/cjs/components/toolbar/scale-selector.d.ts +13 -0
  451. package/dist/cjs/components/toolbar/scale-selector.d.ts.map +1 -0
  452. package/dist/cjs/components/toolbar/scale-selector.js +78 -0
  453. package/dist/cjs/components/toolbar/style.d.ts +3 -0
  454. package/dist/cjs/components/toolbar/style.d.ts.map +1 -0
  455. package/dist/cjs/components/toolbar/style.js +11 -0
  456. package/dist/cjs/components/toolbar/table-actions.d.ts +15 -0
  457. package/dist/cjs/components/toolbar/table-actions.d.ts.map +1 -0
  458. package/dist/cjs/components/toolbar/table-actions.js +47 -0
  459. package/dist/cjs/components/toolbar/table-style-selector.d.ts +25 -0
  460. package/dist/cjs/components/toolbar/table-style-selector.d.ts.map +1 -0
  461. package/dist/cjs/components/toolbar/table-style-selector.js +494 -0
  462. package/dist/cjs/components/toolbar/text-color-selector.d.ts +20 -0
  463. package/dist/cjs/components/toolbar/text-color-selector.d.ts.map +1 -0
  464. package/dist/cjs/components/toolbar/text-color-selector.js +34 -0
  465. package/dist/cjs/components/toolbar/text-format-selector.d.ts +23 -0
  466. package/dist/cjs/components/toolbar/text-format-selector.d.ts.map +1 -0
  467. package/dist/cjs/components/toolbar/text-format-selector.js +263 -0
  468. package/dist/cjs/components/toolbar/text-horizontal-align-selector.d.ts +10 -0
  469. package/dist/cjs/components/toolbar/text-horizontal-align-selector.d.ts.map +1 -0
  470. package/dist/cjs/components/toolbar/text-horizontal-align-selector.js +42 -0
  471. package/dist/cjs/components/toolbar/text-vertical-align-selector.d.ts +9 -0
  472. package/dist/cjs/components/toolbar/text-vertical-align-selector.d.ts.map +1 -0
  473. package/dist/cjs/components/toolbar/text-vertical-align-selector.js +42 -0
  474. package/dist/cjs/components/toolbar/text-wrap-selector.d.ts +9 -0
  475. package/dist/cjs/components/toolbar/text-wrap-selector.d.ts.map +1 -0
  476. package/dist/cjs/components/toolbar/text-wrap-selector.js +41 -0
  477. package/dist/cjs/components/toolbar/theme-selector.d.ts +10 -0
  478. package/dist/cjs/components/toolbar/theme-selector.d.ts.map +1 -0
  479. package/dist/cjs/components/toolbar/theme-selector.js +32 -0
  480. package/dist/cjs/components/toolbar/toolbar.d.ts +12 -0
  481. package/dist/cjs/components/toolbar/toolbar.d.ts.map +1 -0
  482. package/dist/cjs/components/toolbar/toolbar.js +145 -0
  483. package/dist/cjs/components/toolbar/types.d.ts +2 -0
  484. package/dist/cjs/components/toolbar/types.d.ts.map +1 -0
  485. package/dist/cjs/components/toolbar/types.js +2 -0
  486. package/dist/cjs/components/toolbar/view-menu.d.ts +25 -0
  487. package/dist/cjs/components/toolbar/view-menu.d.ts.map +1 -0
  488. package/dist/cjs/components/toolbar/view-menu.js +46 -0
  489. package/dist/cjs/components/validation-alert-dialog/index.d.ts +15 -0
  490. package/dist/cjs/components/validation-alert-dialog/index.d.ts.map +1 -0
  491. package/dist/cjs/components/validation-alert-dialog/index.js +69 -0
  492. package/dist/cjs/config.d.ts +107 -0
  493. package/dist/cjs/config.d.ts.map +1 -0
  494. package/dist/cjs/config.js +270 -0
  495. package/dist/cjs/helpers/merged-cell-borders.d.ts +26 -0
  496. package/dist/cjs/helpers/merged-cell-borders.d.ts.map +1 -0
  497. package/dist/cjs/helpers/merged-cell-borders.js +44 -0
  498. package/dist/cjs/helpers.d.ts +118 -0
  499. package/dist/cjs/helpers.d.ts.map +1 -0
  500. package/dist/cjs/helpers.js +524 -0
  501. package/dist/cjs/hooks/index.d.ts +11 -0
  502. package/dist/cjs/hooks/index.d.ts.map +1 -0
  503. package/dist/cjs/hooks/index.js +13 -0
  504. package/dist/cjs/hooks/show-zeros.d.ts +13 -0
  505. package/dist/cjs/hooks/show-zeros.d.ts.map +1 -0
  506. package/dist/cjs/hooks/show-zeros.js +24 -0
  507. package/dist/cjs/hooks/use-async.d.ts +2 -0
  508. package/dist/cjs/hooks/use-async.d.ts.map +1 -0
  509. package/dist/cjs/hooks/use-async.js +37 -0
  510. package/dist/cjs/hooks/use-border-styles.d.ts +31 -0
  511. package/dist/cjs/hooks/use-border-styles.d.ts.map +1 -0
  512. package/dist/cjs/hooks/use-border-styles.js +433 -0
  513. package/dist/cjs/hooks/use-callback-ref.d.ts +6 -0
  514. package/dist/cjs/hooks/use-callback-ref.d.ts.map +1 -0
  515. package/dist/cjs/hooks/use-callback-ref.js +27 -0
  516. package/dist/cjs/hooks/use-cell-diff-highlight.d.ts +43 -0
  517. package/dist/cjs/hooks/use-cell-diff-highlight.d.ts.map +1 -0
  518. package/dist/cjs/hooks/use-cell-diff-highlight.js +83 -0
  519. package/dist/cjs/hooks/use-cell-popover.d.ts +55 -0
  520. package/dist/cjs/hooks/use-cell-popover.d.ts.map +1 -0
  521. package/dist/cjs/hooks/use-cell-popover.js +99 -0
  522. package/dist/cjs/hooks/use-cell-renderer.d.ts +226 -0
  523. package/dist/cjs/hooks/use-cell-renderer.d.ts.map +1 -0
  524. package/dist/cjs/hooks/use-cell-renderer.js +361 -0
  525. package/dist/cjs/hooks/use-column-color-icons.d.ts +43 -0
  526. package/dist/cjs/hooks/use-column-color-icons.d.ts.map +1 -0
  527. package/dist/cjs/hooks/use-column-color-icons.js +86 -0
  528. package/dist/cjs/hooks/use-conditional-formatting.d.ts +35 -0
  529. package/dist/cjs/hooks/use-conditional-formatting.d.ts.map +1 -0
  530. package/dist/cjs/hooks/use-conditional-formatting.js +720 -0
  531. package/dist/cjs/hooks/use-context-menu.d.ts +52 -0
  532. package/dist/cjs/hooks/use-context-menu.d.ts.map +1 -0
  533. package/dist/cjs/hooks/use-context-menu.js +83 -0
  534. package/dist/cjs/hooks/use-context-setter.d.ts +3 -0
  535. package/dist/cjs/hooks/use-context-setter.d.ts.map +1 -0
  536. package/dist/cjs/hooks/use-context-setter.js +132 -0
  537. package/dist/cjs/hooks/use-copy-paste-cut.d.ts +45 -0
  538. package/dist/cjs/hooks/use-copy-paste-cut.d.ts.map +1 -0
  539. package/dist/cjs/hooks/use-copy-paste-cut.js +329 -0
  540. package/dist/cjs/hooks/use-create-address-from-selection.d.ts +15 -0
  541. package/dist/cjs/hooks/use-create-address-from-selection.d.ts.map +1 -0
  542. package/dist/cjs/hooks/use-create-address-from-selection.js +75 -0
  543. package/dist/cjs/hooks/use-create-formula-tokenizer.d.ts +15 -0
  544. package/dist/cjs/hooks/use-create-formula-tokenizer.d.ts.map +1 -0
  545. package/dist/cjs/hooks/use-create-formula-tokenizer.js +67 -0
  546. package/dist/cjs/hooks/use-delayed-value.d.ts +8 -0
  547. package/dist/cjs/hooks/use-delayed-value.d.ts.map +1 -0
  548. package/dist/cjs/hooks/use-delayed-value.js +34 -0
  549. package/dist/cjs/hooks/use-editable.d.ts +366 -0
  550. package/dist/cjs/hooks/use-editable.d.ts.map +1 -0
  551. package/dist/cjs/hooks/use-editable.js +823 -0
  552. package/dist/cjs/hooks/use-editor-cancel.d.ts +25 -0
  553. package/dist/cjs/hooks/use-editor-cancel.d.ts.map +1 -0
  554. package/dist/cjs/hooks/use-editor-cancel.js +51 -0
  555. package/dist/cjs/hooks/use-editor-change.d.ts +13 -0
  556. package/dist/cjs/hooks/use-editor-change.d.ts.map +1 -0
  557. package/dist/cjs/hooks/use-editor-change.js +72 -0
  558. package/dist/cjs/hooks/use-editor-keydown.d.ts +11 -0
  559. package/dist/cjs/hooks/use-editor-keydown.d.ts.map +1 -0
  560. package/dist/cjs/hooks/use-editor-keydown.js +47 -0
  561. package/dist/cjs/hooks/use-editor-submit.d.ts +58 -0
  562. package/dist/cjs/hooks/use-editor-submit.d.ts.map +1 -0
  563. package/dist/cjs/hooks/use-editor-submit.js +97 -0
  564. package/dist/cjs/hooks/use-embeds-charts.d.ts +193 -0
  565. package/dist/cjs/hooks/use-embeds-charts.d.ts.map +1 -0
  566. package/dist/cjs/hooks/use-embeds-charts.js +284 -0
  567. package/dist/cjs/hooks/use-expand-cell.d.ts +35 -0
  568. package/dist/cjs/hooks/use-expand-cell.d.ts.map +1 -0
  569. package/dist/cjs/hooks/use-expand-cell.js +53 -0
  570. package/dist/cjs/hooks/use-export-range.d.ts +36 -0
  571. package/dist/cjs/hooks/use-export-range.d.ts.map +1 -0
  572. package/dist/cjs/hooks/use-export-range.js +259 -0
  573. package/dist/cjs/hooks/use-filter.d.ts +46 -0
  574. package/dist/cjs/hooks/use-filter.d.ts.map +1 -0
  575. package/dist/cjs/hooks/use-filter.js +181 -0
  576. package/dist/cjs/hooks/use-flash.d.ts +18 -0
  577. package/dist/cjs/hooks/use-flash.d.ts.map +1 -0
  578. package/dist/cjs/hooks/use-flash.js +77 -0
  579. package/dist/cjs/hooks/use-fonts.d.ts +8 -0
  580. package/dist/cjs/hooks/use-fonts.d.ts.map +1 -0
  581. package/dist/cjs/hooks/use-fonts.js +24 -0
  582. package/dist/cjs/hooks/use-formula-range-helpers.d.ts +21 -0
  583. package/dist/cjs/hooks/use-formula-range-helpers.d.ts.map +1 -0
  584. package/dist/cjs/hooks/use-formula-range-helpers.js +67 -0
  585. package/dist/cjs/hooks/use-get-tooltip.d.ts +52 -0
  586. package/dist/cjs/hooks/use-get-tooltip.d.ts.map +1 -0
  587. package/dist/cjs/hooks/use-get-tooltip.js +64 -0
  588. package/dist/cjs/hooks/use-get-values-from-range.d.ts +44 -0
  589. package/dist/cjs/hooks/use-get-values-from-range.d.ts.map +1 -0
  590. package/dist/cjs/hooks/use-get-values-from-range.js +194 -0
  591. package/dist/cjs/hooks/use-grid-children.d.ts +31 -0
  592. package/dist/cjs/hooks/use-grid-children.d.ts.map +1 -0
  593. package/dist/cjs/hooks/use-grid-children.js +139 -0
  594. package/dist/cjs/hooks/use-header-actions.d.ts +70 -0
  595. package/dist/cjs/hooks/use-header-actions.d.ts.map +1 -0
  596. package/dist/cjs/hooks/use-header-actions.js +256 -0
  597. package/dist/cjs/hooks/use-hidden-dimension-markers.d.ts +20 -0
  598. package/dist/cjs/hooks/use-hidden-dimension-markers.d.ts.map +1 -0
  599. package/dist/cjs/hooks/use-hidden-dimension-markers.js +138 -0
  600. package/dist/cjs/hooks/use-hidden-dimensions.d.ts +7 -0
  601. package/dist/cjs/hooks/use-hidden-dimensions.d.ts.map +1 -0
  602. package/dist/cjs/hooks/use-hidden-dimensions.js +60 -0
  603. package/dist/cjs/hooks/use-hovered-selection-ids.d.ts +9 -0
  604. package/dist/cjs/hooks/use-hovered-selection-ids.d.ts.map +1 -0
  605. package/dist/cjs/hooks/use-hovered-selection-ids.js +30 -0
  606. package/dist/cjs/hooks/use-isomorphic-layout-effect.d.ts +6 -0
  607. package/dist/cjs/hooks/use-isomorphic-layout-effect.d.ts.map +1 -0
  608. package/dist/cjs/hooks/use-isomorphic-layout-effect.js +11 -0
  609. package/dist/cjs/hooks/use-keyboard-handler.d.ts +57 -0
  610. package/dist/cjs/hooks/use-keyboard-handler.d.ts.map +1 -0
  611. package/dist/cjs/hooks/use-keyboard-handler.js +472 -0
  612. package/dist/cjs/hooks/use-licensekey-validator.d.ts +16 -0
  613. package/dist/cjs/hooks/use-licensekey-validator.d.ts.map +1 -0
  614. package/dist/cjs/hooks/use-licensekey-validator.js +180 -0
  615. package/dist/cjs/hooks/use-memo-compare.d.ts +2 -0
  616. package/dist/cjs/hooks/use-memo-compare.d.ts.map +1 -0
  617. package/dist/cjs/hooks/use-memo-compare.js +18 -0
  618. package/dist/cjs/hooks/use-merge.refs.d.ts +4 -0
  619. package/dist/cjs/hooks/use-merge.refs.d.ts.map +1 -0
  620. package/dist/cjs/hooks/use-merge.refs.js +29 -0
  621. package/dist/cjs/hooks/use-move-columns-rows.d.ts +46 -0
  622. package/dist/cjs/hooks/use-move-columns-rows.d.ts.map +1 -0
  623. package/dist/cjs/hooks/use-move-columns-rows.js +344 -0
  624. package/dist/cjs/hooks/use-navigate-sheet-range.d.ts +16 -0
  625. package/dist/cjs/hooks/use-navigate-sheet-range.d.ts.map +1 -0
  626. package/dist/cjs/hooks/use-navigate-sheet-range.js +36 -0
  627. package/dist/cjs/hooks/use-previous.d.ts +3 -0
  628. package/dist/cjs/hooks/use-previous.d.ts.map +1 -0
  629. package/dist/cjs/hooks/use-previous.js +12 -0
  630. package/dist/cjs/hooks/use-raf.d.ts +6 -0
  631. package/dist/cjs/hooks/use-raf.d.ts.map +1 -0
  632. package/dist/cjs/hooks/use-raf.js +35 -0
  633. package/dist/cjs/hooks/use-resize-observer.d.ts +6 -0
  634. package/dist/cjs/hooks/use-resize-observer.d.ts.map +1 -0
  635. package/dist/cjs/hooks/use-resize-observer.js +46 -0
  636. package/dist/cjs/hooks/use-scale-listener.d.ts +11 -0
  637. package/dist/cjs/hooks/use-scale-listener.d.ts.map +1 -0
  638. package/dist/cjs/hooks/use-scale-listener.js +52 -0
  639. package/dist/cjs/hooks/use-selected-rows-columns.d.ts +21 -0
  640. package/dist/cjs/hooks/use-selected-rows-columns.d.ts.map +1 -0
  641. package/dist/cjs/hooks/use-selected-rows-columns.js +74 -0
  642. package/dist/cjs/hooks/use-selection-aware-formatting.d.ts +13 -0
  643. package/dist/cjs/hooks/use-selection-aware-formatting.d.ts.map +1 -0
  644. package/dist/cjs/hooks/use-selection-aware-formatting.js +49 -0
  645. package/dist/cjs/hooks/use-selection-change.d.ts +10 -0
  646. package/dist/cjs/hooks/use-selection-change.d.ts.map +1 -0
  647. package/dist/cjs/hooks/use-selection-change.js +63 -0
  648. package/dist/cjs/hooks/use-selection-interceptors.d.ts +34 -0
  649. package/dist/cjs/hooks/use-selection-interceptors.d.ts.map +1 -0
  650. package/dist/cjs/hooks/use-selection-interceptors.js +131 -0
  651. package/dist/cjs/hooks/use-selection-move.d.ts +31 -0
  652. package/dist/cjs/hooks/use-selection-move.d.ts.map +1 -0
  653. package/dist/cjs/hooks/use-selection-move.js +155 -0
  654. package/dist/cjs/hooks/use-selection-renderer.d.ts +46 -0
  655. package/dist/cjs/hooks/use-selection-renderer.d.ts.map +1 -0
  656. package/dist/cjs/hooks/use-selection-renderer.js +145 -0
  657. package/dist/cjs/hooks/use-selection-resize.d.ts +30 -0
  658. package/dist/cjs/hooks/use-selection-resize.d.ts.map +1 -0
  659. package/dist/cjs/hooks/use-selection-resize.js +180 -0
  660. package/dist/cjs/hooks/use-selection.d.ts +185 -0
  661. package/dist/cjs/hooks/use-selection.d.ts.map +1 -0
  662. package/dist/cjs/hooks/use-selection.js +1515 -0
  663. package/dist/cjs/hooks/use-sheet-change-handler.d.ts +3 -0
  664. package/dist/cjs/hooks/use-sheet-change-handler.d.ts.map +1 -0
  665. package/dist/cjs/hooks/use-sheet-change-handler.js +38 -0
  666. package/dist/cjs/hooks/use-sizer.d.ts +164 -0
  667. package/dist/cjs/hooks/use-sizer.d.ts.map +1 -0
  668. package/dist/cjs/hooks/use-sizer.js +424 -0
  669. package/dist/cjs/hooks/use-spreadsheet-theme.d.ts +17 -0
  670. package/dist/cjs/hooks/use-spreadsheet-theme.d.ts.map +1 -0
  671. package/dist/cjs/hooks/use-spreadsheet-theme.js +55 -0
  672. package/dist/cjs/hooks/use-stable-ref.d.ts +2 -0
  673. package/dist/cjs/hooks/use-stable-ref.d.ts.map +1 -0
  674. package/dist/cjs/hooks/use-stable-ref.js +14 -0
  675. package/dist/cjs/hooks/use-structured-reference-selection.d.ts +23 -0
  676. package/dist/cjs/hooks/use-structured-reference-selection.d.ts.map +1 -0
  677. package/dist/cjs/hooks/use-structured-reference-selection.js +103 -0
  678. package/dist/cjs/hooks/use-table-resizer.d.ts +23 -0
  679. package/dist/cjs/hooks/use-table-resizer.d.ts.map +1 -0
  680. package/dist/cjs/hooks/use-table-resizer.js +112 -0
  681. package/dist/cjs/hooks/use-text-dimensions.d.ts +16 -0
  682. package/dist/cjs/hooks/use-text-dimensions.d.ts.map +1 -0
  683. package/dist/cjs/hooks/use-text-dimensions.js +40 -0
  684. package/dist/cjs/hooks/use-tooltip.d.ts +70 -0
  685. package/dist/cjs/hooks/use-tooltip.d.ts.map +1 -0
  686. package/dist/cjs/hooks/use-tooltip.js +79 -0
  687. package/dist/cjs/hooks/use-touch.d.ts +16 -0
  688. package/dist/cjs/hooks/use-touch.d.ts.map +1 -0
  689. package/dist/cjs/hooks/use-touch.js +237 -0
  690. package/dist/cjs/index.d.ts +69 -0
  691. package/dist/cjs/index.d.ts.map +1 -0
  692. package/dist/cjs/index.js +81 -0
  693. package/dist/cjs/providers/spreadsheet-provider.d.ts +25 -0
  694. package/dist/cjs/providers/spreadsheet-provider.d.ts.map +1 -0
  695. package/dist/cjs/providers/spreadsheet-provider.js +40 -0
  696. package/dist/cjs/release-date.d.ts +2 -0
  697. package/dist/cjs/release-date.d.ts.map +1 -0
  698. package/dist/cjs/release-date.js +7 -0
  699. package/dist/cjs/signals/scroll-subscriber.d.ts +4 -0
  700. package/dist/cjs/signals/scroll-subscriber.d.ts.map +1 -0
  701. package/dist/cjs/signals/scroll-subscriber.js +5 -0
  702. package/dist/cjs/test-setup.d.ts +2 -0
  703. package/dist/cjs/test-setup.d.ts.map +1 -0
  704. package/dist/cjs/test-setup.js +17 -0
  705. package/dist/cjs/themes.d.ts +13 -0
  706. package/dist/cjs/themes.d.ts.map +1 -0
  707. package/dist/cjs/themes.js +251 -0
  708. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  709. package/dist/cjs/types.d.ts +1215 -0
  710. package/dist/cjs/types.d.ts.map +1 -0
  711. package/dist/cjs/types.js +12 -0
  712. package/dist/cjs/utils/maybe.d.ts +12 -0
  713. package/dist/cjs/utils/maybe.d.ts.map +1 -0
  714. package/dist/cjs/utils/maybe.js +19 -0
  715. package/dist/cjs/vitest.config.d.ts +3 -0
  716. package/dist/cjs/vitest.config.d.ts.map +1 -0
  717. package/dist/cjs/vitest.config.js +24 -0
  718. package/dist/esm/api/animate.d.ts +36 -0
  719. package/dist/esm/api/animate.d.ts.map +1 -0
  720. package/dist/esm/api/animate.js +117 -0
  721. package/dist/esm/api/banded-ranges.d.ts +16 -0
  722. package/dist/esm/api/banded-ranges.d.ts.map +1 -0
  723. package/dist/esm/api/banded-ranges.js +118 -0
  724. package/dist/esm/api/cf-engine.d.ts +36 -0
  725. package/dist/esm/api/cf-engine.d.ts.map +1 -0
  726. package/dist/esm/api/cf-engine.js +54 -0
  727. package/dist/esm/api/cf-overlays.d.ts +7 -0
  728. package/dist/esm/api/cf-overlays.d.ts.map +1 -0
  729. package/dist/esm/api/cf-overlays.js +118 -0
  730. package/dist/esm/api/cf-window.d.ts +45 -0
  731. package/dist/esm/api/cf-window.d.ts.map +1 -0
  732. package/dist/esm/api/cf-window.js +109 -0
  733. package/dist/esm/api/colors.d.ts +8 -0
  734. package/dist/esm/api/colors.d.ts.map +1 -0
  735. package/dist/esm/api/colors.js +27 -0
  736. package/dist/esm/api/copy-paste.d.ts +10 -0
  737. package/dist/esm/api/copy-paste.d.ts.map +1 -0
  738. package/dist/esm/api/copy-paste.js +23 -0
  739. package/dist/esm/api/fill-patterns.d.ts +5 -0
  740. package/dist/esm/api/fill-patterns.d.ts.map +1 -0
  741. package/dist/esm/api/fill-patterns.js +196 -0
  742. package/dist/esm/api/font-loader.d.ts +8 -0
  743. package/dist/esm/api/font-loader.d.ts.map +1 -0
  744. package/dist/esm/api/font-loader.js +67 -0
  745. package/dist/esm/api/heatmap.d.ts +4 -0
  746. package/dist/esm/api/heatmap.d.ts.map +1 -0
  747. package/dist/esm/api/heatmap.js +167 -0
  748. package/dist/esm/api/scheduler.d.ts +8 -0
  749. package/dist/esm/api/scheduler.d.ts.map +1 -0
  750. package/dist/esm/api/scheduler.js +6 -0
  751. package/dist/esm/api/scroller.d.ts +134 -0
  752. package/dist/esm/api/scroller.d.ts.map +1 -0
  753. package/dist/esm/api/scroller.js +704 -0
  754. package/dist/esm/api/selections.d.ts +111 -0
  755. package/dist/esm/api/selections.d.ts.map +1 -0
  756. package/dist/esm/api/selections.js +365 -0
  757. package/dist/esm/api/spreadsheet-api.d.ts +271 -0
  758. package/dist/esm/api/spreadsheet-api.d.ts.map +1 -0
  759. package/dist/esm/api/spreadsheet-api.js +649 -0
  760. package/dist/esm/api/table.d.ts +11 -0
  761. package/dist/esm/api/table.d.ts.map +1 -0
  762. package/dist/esm/api/table.js +11 -0
  763. package/dist/esm/api/validation.d.ts +98 -0
  764. package/dist/esm/api/validation.d.ts.map +1 -0
  765. package/dist/esm/api/validation.js +470 -0
  766. package/dist/esm/atoms/active-editor.atom.d.ts +8 -0
  767. package/dist/esm/atoms/active-editor.atom.d.ts.map +1 -0
  768. package/dist/esm/atoms/active-editor.atom.js +6 -0
  769. package/dist/esm/atoms/cell-input-context.atom.d.ts +15 -0
  770. package/dist/esm/atoms/cell-input-context.atom.d.ts.map +1 -0
  771. package/dist/esm/atoms/cell-input-context.atom.js +20 -0
  772. package/dist/esm/atoms/editing-cell.atom.d.ts +7 -0
  773. package/dist/esm/atoms/editing-cell.atom.d.ts.map +1 -0
  774. package/dist/esm/atoms/editing-cell.atom.js +4 -0
  775. package/dist/esm/atoms/formula-bar-editor-value.atom.d.ts +19 -0
  776. package/dist/esm/atoms/formula-bar-editor-value.atom.d.ts.map +1 -0
  777. package/dist/esm/atoms/formula-bar-editor-value.atom.js +17 -0
  778. package/dist/esm/atoms/formula-mode.atom.d.ts +7 -0
  779. package/dist/esm/atoms/formula-mode.atom.d.ts.map +1 -0
  780. package/dist/esm/atoms/formula-mode.atom.js +5 -0
  781. package/dist/esm/atoms/formula-selection-state.atom.d.ts +16 -0
  782. package/dist/esm/atoms/formula-selection-state.atom.d.ts.map +1 -0
  783. package/dist/esm/atoms/formula-selection-state.atom.js +14 -0
  784. package/dist/esm/atoms/formula-selections.atom.d.ts +8 -0
  785. package/dist/esm/atoms/formula-selections.atom.d.ts.map +1 -0
  786. package/dist/esm/atoms/formula-selections.atom.js +4 -0
  787. package/dist/esm/atoms/index.d.ts +18 -0
  788. package/dist/esm/atoms/index.d.ts.map +1 -0
  789. package/dist/esm/atoms/index.js +17 -0
  790. package/dist/esm/atoms/loading-indicator.atom.d.ts +12 -0
  791. package/dist/esm/atoms/loading-indicator.atom.d.ts.map +1 -0
  792. package/dist/esm/atoms/loading-indicator.atom.js +17 -0
  793. package/dist/esm/atoms/magic-fill-state.atom.d.ts +5 -0
  794. package/dist/esm/atoms/magic-fill-state.atom.d.ts.map +1 -0
  795. package/dist/esm/atoms/magic-fill-state.atom.js +6 -0
  796. package/dist/esm/atoms/paste-menu.atom.d.ts +6 -0
  797. package/dist/esm/atoms/paste-menu.atom.d.ts.map +1 -0
  798. package/dist/esm/atoms/paste-menu.atom.js +4 -0
  799. package/dist/esm/atoms/persistent-tooltip.atom.d.ts +11 -0
  800. package/dist/esm/atoms/persistent-tooltip.atom.d.ts.map +1 -0
  801. package/dist/esm/atoms/persistent-tooltip.atom.js +13 -0
  802. package/dist/esm/atoms/popover.atom.d.ts +7 -0
  803. package/dist/esm/atoms/popover.atom.d.ts.map +1 -0
  804. package/dist/esm/atoms/popover.atom.js +4 -0
  805. package/dist/esm/atoms/range-selector.atom.d.ts +6 -0
  806. package/dist/esm/atoms/range-selector.atom.d.ts.map +1 -0
  807. package/dist/esm/atoms/range-selector.atom.js +7 -0
  808. package/dist/esm/atoms/selected-chart-embed.atom.d.ts +6 -0
  809. package/dist/esm/atoms/selected-chart-embed.atom.d.ts.map +1 -0
  810. package/dist/esm/atoms/selected-chart-embed.atom.js +4 -0
  811. package/dist/esm/atoms/sheet-context.atom.d.ts +66 -0
  812. package/dist/esm/atoms/sheet-context.atom.d.ts.map +1 -0
  813. package/dist/esm/atoms/sheet-context.atom.js +73 -0
  814. package/dist/esm/atoms/sheet-status-display.atom.d.ts +15 -0
  815. package/dist/esm/atoms/sheet-status-display.atom.d.ts.map +1 -0
  816. package/dist/esm/atoms/sheet-status-display.atom.js +11 -0
  817. package/dist/esm/atoms/show-formula-help.atom.d.ts +8 -0
  818. package/dist/esm/atoms/show-formula-help.atom.d.ts.map +1 -0
  819. package/dist/esm/atoms/show-formula-help.atom.js +13 -0
  820. package/dist/esm/atoms/sort-dialog.atom.d.ts +22 -0
  821. package/dist/esm/atoms/sort-dialog.atom.d.ts.map +1 -0
  822. package/dist/esm/atoms/sort-dialog.atom.js +9 -0
  823. package/dist/esm/atoms/spreadsheet-api.atom.d.ts +5 -0
  824. package/dist/esm/atoms/spreadsheet-api.atom.d.ts.map +1 -0
  825. package/dist/esm/atoms/spreadsheet-api.atom.js +4 -0
  826. package/dist/esm/atoms/validation-alert.atom.d.ts +27 -0
  827. package/dist/esm/atoms/validation-alert.atom.d.ts.map +1 -0
  828. package/dist/esm/atoms/validation-alert.atom.js +15 -0
  829. package/dist/esm/components/bottom-bar/index.d.ts +7 -0
  830. package/dist/esm/components/bottom-bar/index.d.ts.map +1 -0
  831. package/dist/esm/components/bottom-bar/index.js +5 -0
  832. package/dist/esm/components/canvas-grid/helpers.d.ts +15 -0
  833. package/dist/esm/components/canvas-grid/helpers.d.ts.map +1 -0
  834. package/dist/esm/components/canvas-grid/helpers.js +36 -0
  835. package/dist/esm/components/canvas-grid/index.d.ts +7 -0
  836. package/dist/esm/components/canvas-grid/index.d.ts.map +1 -0
  837. package/dist/esm/components/canvas-grid/index.js +3260 -0
  838. package/dist/esm/components/canvas-grid/typings.d.ts +2027 -0
  839. package/dist/esm/components/canvas-grid/typings.d.ts.map +1 -0
  840. package/dist/esm/components/canvas-grid/typings.js +8 -0
  841. package/dist/esm/components/cell/alignment.d.ts +70 -0
  842. package/dist/esm/components/cell/alignment.d.ts.map +1 -0
  843. package/dist/esm/components/cell/alignment.js +127 -0
  844. package/dist/esm/components/cell/cell-background.d.ts +15 -0
  845. package/dist/esm/components/cell/cell-background.d.ts.map +1 -0
  846. package/dist/esm/components/cell/cell-background.js +142 -0
  847. package/dist/esm/components/cell/cell-text-runs.d.ts +98 -0
  848. package/dist/esm/components/cell/cell-text-runs.d.ts.map +1 -0
  849. package/dist/esm/components/cell/cell-text-runs.js +379 -0
  850. package/dist/esm/components/cell/helpers.d.ts +3 -0
  851. package/dist/esm/components/cell/helpers.d.ts.map +1 -0
  852. package/dist/esm/components/cell/helpers.js +11 -0
  853. package/dist/esm/components/cell/index.d.ts +4 -0
  854. package/dist/esm/components/cell/index.d.ts.map +1 -0
  855. package/dist/esm/components/cell/index.js +257 -0
  856. package/dist/esm/components/cell/rich-text.d.ts +82 -0
  857. package/dist/esm/components/cell/rich-text.d.ts.map +1 -0
  858. package/dist/esm/components/cell/rich-text.js +167 -0
  859. package/dist/esm/components/cell/typings.d.ts +190 -0
  860. package/dist/esm/components/cell/typings.d.ts.map +1 -0
  861. package/dist/esm/components/cell/typings.js +1 -0
  862. package/dist/esm/components/cell-arrow/index.d.ts +14 -0
  863. package/dist/esm/components/cell-arrow/index.d.ts.map +1 -0
  864. package/dist/esm/components/cell-arrow/index.js +22 -0
  865. package/dist/esm/components/cell-calculated/index.d.ts +17 -0
  866. package/dist/esm/components/cell-calculated/index.d.ts.map +1 -0
  867. package/dist/esm/components/cell-calculated/index.js +14 -0
  868. package/dist/esm/components/cell-checkbox/index.d.ts +14 -0
  869. package/dist/esm/components/cell-checkbox/index.d.ts.map +1 -0
  870. package/dist/esm/components/cell-checkbox/index.js +23 -0
  871. package/dist/esm/components/cell-diff/index.d.ts +42 -0
  872. package/dist/esm/components/cell-diff/index.d.ts.map +1 -0
  873. package/dist/esm/components/cell-diff/index.js +90 -0
  874. package/dist/esm/components/cell-editor/calendar-popup.d.ts +9 -0
  875. package/dist/esm/components/cell-editor/calendar-popup.d.ts.map +1 -0
  876. package/dist/esm/components/cell-editor/calendar-popup.js +19 -0
  877. package/dist/esm/components/cell-editor/formula-result-preview.d.ts +9 -0
  878. package/dist/esm/components/cell-editor/formula-result-preview.d.ts.map +1 -0
  879. package/dist/esm/components/cell-editor/formula-result-preview.js +20 -0
  880. package/dist/esm/components/cell-editor/helpers.d.ts +11 -0
  881. package/dist/esm/components/cell-editor/helpers.d.ts.map +1 -0
  882. package/dist/esm/components/cell-editor/helpers.js +34 -0
  883. package/dist/esm/components/cell-editor/helpers.spec.d.ts +2 -0
  884. package/dist/esm/components/cell-editor/helpers.spec.d.ts.map +1 -0
  885. package/dist/esm/components/cell-editor/helpers.spec.js +16 -0
  886. package/dist/esm/components/cell-editor/index.d.ts +146 -0
  887. package/dist/esm/components/cell-editor/index.d.ts.map +1 -0
  888. package/dist/esm/components/cell-editor/index.js +266 -0
  889. package/dist/esm/components/cell-editor/style.d.ts +9 -0
  890. package/dist/esm/components/cell-editor/style.d.ts.map +1 -0
  891. package/dist/esm/components/cell-editor/style.js +11 -0
  892. package/dist/esm/components/cell-error/index.d.ts +14 -0
  893. package/dist/esm/components/cell-error/index.d.ts.map +1 -0
  894. package/dist/esm/components/cell-error/index.js +18 -0
  895. package/dist/esm/components/cell-expand/index.d.ts +15 -0
  896. package/dist/esm/components/cell-expand/index.d.ts.map +1 -0
  897. package/dist/esm/components/cell-expand/index.js +25 -0
  898. package/dist/esm/components/cell-filter/index.d.ts +21 -0
  899. package/dist/esm/components/cell-filter/index.d.ts.map +1 -0
  900. package/dist/esm/components/cell-filter/index.js +34 -0
  901. package/dist/esm/components/cell-group/index.d.ts +17 -0
  902. package/dist/esm/components/cell-group/index.d.ts.map +1 -0
  903. package/dist/esm/components/cell-group/index.js +26 -0
  904. package/dist/esm/components/cell-input/cell-input.d.ts +123 -0
  905. package/dist/esm/components/cell-input/cell-input.d.ts.map +1 -0
  906. package/dist/esm/components/cell-input/cell-input.js +63 -0
  907. package/dist/esm/components/cell-input/formula-bar-cell-input.d.ts +21 -0
  908. package/dist/esm/components/cell-input/formula-bar-cell-input.d.ts.map +1 -0
  909. package/dist/esm/components/cell-input/formula-bar-cell-input.js +57 -0
  910. package/dist/esm/components/cell-input/index.d.ts +3 -0
  911. package/dist/esm/components/cell-input/index.d.ts.map +1 -0
  912. package/dist/esm/components/cell-input/index.js +2 -0
  913. package/dist/esm/components/cell-input/style.d.ts +6 -0
  914. package/dist/esm/components/cell-input/style.d.ts.map +1 -0
  915. package/dist/esm/components/cell-input/style.js +6 -0
  916. package/dist/esm/components/cell-overlay/index.d.ts +25 -0
  917. package/dist/esm/components/cell-overlay/index.d.ts.map +1 -0
  918. package/dist/esm/components/cell-overlay/index.js +155 -0
  919. package/dist/esm/components/cell-structured/index.d.ts +8 -0
  920. package/dist/esm/components/cell-structured/index.d.ts.map +1 -0
  921. package/dist/esm/components/cell-structured/index.js +16 -0
  922. package/dist/esm/components/cell-structured/sparkline-math.d.ts +54 -0
  923. package/dist/esm/components/cell-structured/sparkline-math.d.ts.map +1 -0
  924. package/dist/esm/components/cell-structured/sparkline-math.js +80 -0
  925. package/dist/esm/components/cell-structured/sparkline.d.ts +6 -0
  926. package/dist/esm/components/cell-structured/sparkline.d.ts.map +1 -0
  927. package/dist/esm/components/cell-structured/sparkline.js +246 -0
  928. package/dist/esm/components/cell-structured/types.d.ts +23 -0
  929. package/dist/esm/components/cell-structured/types.d.ts.map +1 -0
  930. package/dist/esm/components/cell-structured/types.js +1 -0
  931. package/dist/esm/components/cell-tooltip/index.d.ts +28 -0
  932. package/dist/esm/components/cell-tooltip/index.d.ts.map +1 -0
  933. package/dist/esm/components/cell-tooltip/index.js +50 -0
  934. package/dist/esm/components/cell-tooltip/note-editor.d.ts +12 -0
  935. package/dist/esm/components/cell-tooltip/note-editor.d.ts.map +1 -0
  936. package/dist/esm/components/cell-tooltip/note-editor.js +19 -0
  937. package/dist/esm/components/cell-tooltip/style.d.ts +3 -0
  938. package/dist/esm/components/cell-tooltip/style.d.ts.map +1 -0
  939. package/dist/esm/components/cell-tooltip/style.js +4 -0
  940. package/dist/esm/components/context-menu/index.d.ts +80 -0
  941. package/dist/esm/components/context-menu/index.d.ts.map +1 -0
  942. package/dist/esm/components/context-menu/index.js +591 -0
  943. package/dist/esm/components/context-menu/menu.d.ts +10 -0
  944. package/dist/esm/components/context-menu/menu.d.ts.map +1 -0
  945. package/dist/esm/components/context-menu/menu.js +9 -0
  946. package/dist/esm/components/context-menu/style.d.ts +6 -0
  947. package/dist/esm/components/context-menu/style.d.ts.map +1 -0
  948. package/dist/esm/components/context-menu/style.js +7 -0
  949. package/dist/esm/components/embeds/chart-component.d.ts +16 -0
  950. package/dist/esm/components/embeds/chart-component.d.ts.map +1 -0
  951. package/dist/esm/components/embeds/chart-component.js +7 -0
  952. package/dist/esm/components/embeds/embed-component.d.ts +17 -0
  953. package/dist/esm/components/embeds/embed-component.d.ts.map +1 -0
  954. package/dist/esm/components/embeds/embed-component.js +124 -0
  955. package/dist/esm/components/embeds/embed-draggable.d.ts +43 -0
  956. package/dist/esm/components/embeds/embed-draggable.d.ts.map +1 -0
  957. package/dist/esm/components/embeds/embed-draggable.js +115 -0
  958. package/dist/esm/components/embeds/index.d.ts +5 -0
  959. package/dist/esm/components/embeds/index.d.ts.map +1 -0
  960. package/dist/esm/components/embeds/index.js +4 -0
  961. package/dist/esm/components/embeds/shape-geometry.d.ts +10 -0
  962. package/dist/esm/components/embeds/shape-geometry.d.ts.map +1 -0
  963. package/dist/esm/components/embeds/shape-geometry.js +224 -0
  964. package/dist/esm/components/embeds/shape-svg.d.ts +56 -0
  965. package/dist/esm/components/embeds/shape-svg.d.ts.map +1 -0
  966. package/dist/esm/components/embeds/shape-svg.js +149 -0
  967. package/dist/esm/components/embeds/slicer-component.d.ts +27 -0
  968. package/dist/esm/components/embeds/slicer-component.d.ts.map +1 -0
  969. package/dist/esm/components/embeds/slicer-component.js +231 -0
  970. package/dist/esm/components/fill-handle/index.d.ts +7 -0
  971. package/dist/esm/components/fill-handle/index.d.ts.map +1 -0
  972. package/dist/esm/components/fill-handle/index.js +13 -0
  973. package/dist/esm/components/filter-box/filter-by-color.d.ts +28 -0
  974. package/dist/esm/components/filter-box/filter-by-color.d.ts.map +1 -0
  975. package/dist/esm/components/filter-box/filter-by-color.js +88 -0
  976. package/dist/esm/components/filter-box/filter-by-condition.d.ts +13 -0
  977. package/dist/esm/components/filter-box/filter-by-condition.d.ts.map +1 -0
  978. package/dist/esm/components/filter-box/filter-by-condition.js +34 -0
  979. package/dist/esm/components/filter-box/filter-by-value.d.ts +9 -0
  980. package/dist/esm/components/filter-box/filter-by-value.d.ts.map +1 -0
  981. package/dist/esm/components/filter-box/filter-by-value.js +76 -0
  982. package/dist/esm/components/filter-box/index.d.ts +50 -0
  983. package/dist/esm/components/filter-box/index.d.ts.map +1 -0
  984. package/dist/esm/components/filter-box/index.js +337 -0
  985. package/dist/esm/components/floating-cell-editor/index.d.ts +83 -0
  986. package/dist/esm/components/floating-cell-editor/index.d.ts.map +1 -0
  987. package/dist/esm/components/floating-cell-editor/index.js +168 -0
  988. package/dist/esm/components/formula-bar/index.d.ts +11 -0
  989. package/dist/esm/components/formula-bar/index.d.ts.map +1 -0
  990. package/dist/esm/components/formula-bar/index.js +14 -0
  991. package/dist/esm/components/formula-bar/style.d.ts +4 -0
  992. package/dist/esm/components/formula-bar/style.d.ts.map +1 -0
  993. package/dist/esm/components/formula-bar/style.js +6 -0
  994. package/dist/esm/components/formula-input/index.d.ts +17 -0
  995. package/dist/esm/components/formula-input/index.d.ts.map +1 -0
  996. package/dist/esm/components/formula-input/index.js +85 -0
  997. package/dist/esm/components/grid-footer/index.d.ts +14 -0
  998. package/dist/esm/components/grid-footer/index.d.ts.map +1 -0
  999. package/dist/esm/components/grid-footer/index.js +33 -0
  1000. package/dist/esm/components/header-cell/index.d.ts +10 -0
  1001. package/dist/esm/components/header-cell/index.d.ts.map +1 -0
  1002. package/dist/esm/components/header-cell/index.js +21 -0
  1003. package/dist/esm/components/header-menu/index.d.ts +13 -0
  1004. package/dist/esm/components/header-menu/index.d.ts.map +1 -0
  1005. package/dist/esm/components/header-menu/index.js +13 -0
  1006. package/dist/esm/components/header-move/index.d.ts +23 -0
  1007. package/dist/esm/components/header-move/index.d.ts.map +1 -0
  1008. package/dist/esm/components/header-move/index.js +48 -0
  1009. package/dist/esm/components/header-resizer/index.d.ts +19 -0
  1010. package/dist/esm/components/header-resizer/index.d.ts.map +1 -0
  1011. package/dist/esm/components/header-resizer/index.js +33 -0
  1012. package/dist/esm/components/hidden-markers/index.d.ts +15 -0
  1013. package/dist/esm/components/hidden-markers/index.d.ts.map +1 -0
  1014. package/dist/esm/components/hidden-markers/index.js +39 -0
  1015. package/dist/esm/components/hidden-markers/style.d.ts +5 -0
  1016. package/dist/esm/components/hidden-markers/style.d.ts.map +1 -0
  1017. package/dist/esm/components/hidden-markers/style.js +4 -0
  1018. package/dist/esm/components/insert-function-dialog/index.d.ts +32 -0
  1019. package/dist/esm/components/insert-function-dialog/index.d.ts.map +1 -0
  1020. package/dist/esm/components/insert-function-dialog/index.js +75 -0
  1021. package/dist/esm/components/loading-indicator/index.d.ts +7 -0
  1022. package/dist/esm/components/loading-indicator/index.d.ts.map +1 -0
  1023. package/dist/esm/components/loading-indicator/index.js +8 -0
  1024. package/dist/esm/components/outline-gutter/index.d.ts +44 -0
  1025. package/dist/esm/components/outline-gutter/index.d.ts.map +1 -0
  1026. package/dist/esm/components/outline-gutter/index.js +395 -0
  1027. package/dist/esm/components/pivot-placeholder/index.d.ts +12 -0
  1028. package/dist/esm/components/pivot-placeholder/index.d.ts.map +1 -0
  1029. package/dist/esm/components/pivot-placeholder/index.js +18 -0
  1030. package/dist/esm/components/print-preview/cell-styles.d.ts +18 -0
  1031. package/dist/esm/components/print-preview/cell-styles.d.ts.map +1 -0
  1032. package/dist/esm/components/print-preview/cell-styles.js +174 -0
  1033. package/dist/esm/components/print-preview/index.d.ts +5 -0
  1034. package/dist/esm/components/print-preview/index.d.ts.map +1 -0
  1035. package/dist/esm/components/print-preview/index.js +2 -0
  1036. package/dist/esm/components/print-preview/page-block.d.ts +62 -0
  1037. package/dist/esm/components/print-preview/page-block.d.ts.map +1 -0
  1038. package/dist/esm/components/print-preview/page-block.js +308 -0
  1039. package/dist/esm/components/print-preview/print-preview-dialog.d.ts +49 -0
  1040. package/dist/esm/components/print-preview/print-preview-dialog.d.ts.map +1 -0
  1041. package/dist/esm/components/print-preview/print-preview-dialog.js +322 -0
  1042. package/dist/esm/components/print-preview/run-print.d.ts +11 -0
  1043. package/dist/esm/components/print-preview/run-print.d.ts.map +1 -0
  1044. package/dist/esm/components/print-preview/run-print.js +107 -0
  1045. package/dist/esm/components/print-preview/settings.d.ts +130 -0
  1046. package/dist/esm/components/print-preview/settings.d.ts.map +1 -0
  1047. package/dist/esm/components/print-preview/settings.js +227 -0
  1048. package/dist/esm/components/print-preview/use-page-layout.d.ts +60 -0
  1049. package/dist/esm/components/print-preview/use-page-layout.d.ts.map +1 -0
  1050. package/dist/esm/components/print-preview/use-page-layout.js +133 -0
  1051. package/dist/esm/components/range-selector/index.d.ts +25 -0
  1052. package/dist/esm/components/range-selector/index.d.ts.map +1 -0
  1053. package/dist/esm/components/range-selector/index.js +236 -0
  1054. package/dist/esm/components/resizer/index.d.ts +9 -0
  1055. package/dist/esm/components/resizer/index.d.ts.map +1 -0
  1056. package/dist/esm/components/resizer/index.js +39 -0
  1057. package/dist/esm/components/selection/avatar.d.ts +14 -0
  1058. package/dist/esm/components/selection/avatar.d.ts.map +1 -0
  1059. package/dist/esm/components/selection/avatar.js +15 -0
  1060. package/dist/esm/components/selection/index.d.ts +9 -0
  1061. package/dist/esm/components/selection/index.d.ts.map +1 -0
  1062. package/dist/esm/components/selection/index.js +192 -0
  1063. package/dist/esm/components/selection/magic-fill.d.ts +26 -0
  1064. package/dist/esm/components/selection/magic-fill.d.ts.map +1 -0
  1065. package/dist/esm/components/selection/magic-fill.js +52 -0
  1066. package/dist/esm/components/selection/paste-menu.d.ts +10 -0
  1067. package/dist/esm/components/selection/paste-menu.d.ts.map +1 -0
  1068. package/dist/esm/components/selection/paste-menu.js +29 -0
  1069. package/dist/esm/components/selection/quick-edit.d.ts +14 -0
  1070. package/dist/esm/components/selection/quick-edit.d.ts.map +1 -0
  1071. package/dist/esm/components/selection/quick-edit.js +41 -0
  1072. package/dist/esm/components/selection/style.d.ts +15 -0
  1073. package/dist/esm/components/selection/style.d.ts.map +1 -0
  1074. package/dist/esm/components/selection/style.js +22 -0
  1075. package/dist/esm/components/selection/suggestion-action.d.ts +22 -0
  1076. package/dist/esm/components/selection/suggestion-action.d.ts.map +1 -0
  1077. package/dist/esm/components/selection/suggestion-action.js +53 -0
  1078. package/dist/esm/components/selection/title.d.ts +45 -0
  1079. package/dist/esm/components/selection/title.d.ts.map +1 -0
  1080. package/dist/esm/components/selection/title.js +95 -0
  1081. package/dist/esm/components/selection/types.d.ts +43 -0
  1082. package/dist/esm/components/selection/types.d.ts.map +1 -0
  1083. package/dist/esm/components/selection/types.js +1 -0
  1084. package/dist/esm/components/selection-input/index.d.ts +19 -0
  1085. package/dist/esm/components/selection-input/index.d.ts.map +1 -0
  1086. package/dist/esm/components/selection-input/index.js +27 -0
  1087. package/dist/esm/components/selection-input/style.d.ts +3 -0
  1088. package/dist/esm/components/selection-input/style.d.ts.map +1 -0
  1089. package/dist/esm/components/selection-input/style.js +4 -0
  1090. package/dist/esm/components/sheet-search/index.d.ts +41 -0
  1091. package/dist/esm/components/sheet-search/index.d.ts.map +1 -0
  1092. package/dist/esm/components/sheet-search/index.js +106 -0
  1093. package/dist/esm/components/sheet-status/index.d.ts +40 -0
  1094. package/dist/esm/components/sheet-status/index.d.ts.map +1 -0
  1095. package/dist/esm/components/sheet-status/index.js +155 -0
  1096. package/dist/esm/components/sheet-status/style.d.ts +4 -0
  1097. package/dist/esm/components/sheet-status/style.d.ts.map +1 -0
  1098. package/dist/esm/components/sheet-status/style.js +7 -0
  1099. package/dist/esm/components/sheet-switcher/index.d.ts +12 -0
  1100. package/dist/esm/components/sheet-switcher/index.d.ts.map +1 -0
  1101. package/dist/esm/components/sheet-switcher/index.js +33 -0
  1102. package/dist/esm/components/sheet-switcher/new-sheet-button.d.ts +4 -0
  1103. package/dist/esm/components/sheet-switcher/new-sheet-button.d.ts.map +1 -0
  1104. package/dist/esm/components/sheet-switcher/new-sheet-button.js +7 -0
  1105. package/dist/esm/components/sheet-tabs/context-menu.d.ts +43 -0
  1106. package/dist/esm/components/sheet-tabs/context-menu.d.ts.map +1 -0
  1107. package/dist/esm/components/sheet-tabs/context-menu.js +50 -0
  1108. package/dist/esm/components/sheet-tabs/index.d.ts +18 -0
  1109. package/dist/esm/components/sheet-tabs/index.d.ts.map +1 -0
  1110. package/dist/esm/components/sheet-tabs/index.js +217 -0
  1111. package/dist/esm/components/sheet-tabs/sheet-tab.d.ts +21 -0
  1112. package/dist/esm/components/sheet-tabs/sheet-tab.d.ts.map +1 -0
  1113. package/dist/esm/components/sheet-tabs/sheet-tab.js +131 -0
  1114. package/dist/esm/components/sheet-tabs/style.d.ts +10 -0
  1115. package/dist/esm/components/sheet-tabs/style.d.ts.map +1 -0
  1116. package/dist/esm/components/sheet-tabs/style.js +16 -0
  1117. package/dist/esm/components/sheet-tabs/types.d.ts +45 -0
  1118. package/dist/esm/components/sheet-tabs/types.d.ts.map +1 -0
  1119. package/dist/esm/components/sheet-tabs/types.js +1 -0
  1120. package/dist/esm/components/sort-range-dialog/index.d.ts +66 -0
  1121. package/dist/esm/components/sort-range-dialog/index.d.ts.map +1 -0
  1122. package/dist/esm/components/sort-range-dialog/index.js +215 -0
  1123. package/dist/esm/components/toolbar/background-color-selector.d.ts +19 -0
  1124. package/dist/esm/components/toolbar/background-color-selector.d.ts.map +1 -0
  1125. package/dist/esm/components/toolbar/background-color-selector.js +28 -0
  1126. package/dist/esm/components/toolbar/border-color-selector.d.ts +18 -0
  1127. package/dist/esm/components/toolbar/border-color-selector.d.ts.map +1 -0
  1128. package/dist/esm/components/toolbar/border-color-selector.js +25 -0
  1129. package/dist/esm/components/toolbar/border-line-style-options.d.ts +9 -0
  1130. package/dist/esm/components/toolbar/border-line-style-options.d.ts.map +1 -0
  1131. package/dist/esm/components/toolbar/border-line-style-options.js +42 -0
  1132. package/dist/esm/components/toolbar/border-line-style-selector.d.ts +9 -0
  1133. package/dist/esm/components/toolbar/border-line-style-selector.d.ts.map +1 -0
  1134. package/dist/esm/components/toolbar/border-line-style-selector.js +19 -0
  1135. package/dist/esm/components/toolbar/border-location-options.d.ts +11 -0
  1136. package/dist/esm/components/toolbar/border-location-options.d.ts.map +1 -0
  1137. package/dist/esm/components/toolbar/border-location-options.js +64 -0
  1138. package/dist/esm/components/toolbar/border-selector.d.ts +20 -0
  1139. package/dist/esm/components/toolbar/border-selector.d.ts.map +1 -0
  1140. package/dist/esm/components/toolbar/border-selector.js +59 -0
  1141. package/dist/esm/components/toolbar/buttons.d.ts +55 -0
  1142. package/dist/esm/components/toolbar/buttons.d.ts.map +1 -0
  1143. package/dist/esm/components/toolbar/buttons.js +165 -0
  1144. package/dist/esm/components/toolbar/cell-style-selector.d.ts +25 -0
  1145. package/dist/esm/components/toolbar/cell-style-selector.d.ts.map +1 -0
  1146. package/dist/esm/components/toolbar/cell-style-selector.js +521 -0
  1147. package/dist/esm/components/toolbar/color-selector.d.ts +13 -0
  1148. package/dist/esm/components/toolbar/color-selector.d.ts.map +1 -0
  1149. package/dist/esm/components/toolbar/color-selector.js +52 -0
  1150. package/dist/esm/components/toolbar/font-family-selector.d.ts +22 -0
  1151. package/dist/esm/components/toolbar/font-family-selector.d.ts.map +1 -0
  1152. package/dist/esm/components/toolbar/font-family-selector.js +167 -0
  1153. package/dist/esm/components/toolbar/font-size-selector.d.ts +10 -0
  1154. package/dist/esm/components/toolbar/font-size-selector.d.ts.map +1 -0
  1155. package/dist/esm/components/toolbar/font-size-selector.js +139 -0
  1156. package/dist/esm/components/toolbar/index.d.ts +25 -0
  1157. package/dist/esm/components/toolbar/index.d.ts.map +1 -0
  1158. package/dist/esm/components/toolbar/index.js +24 -0
  1159. package/dist/esm/components/toolbar/insert-menu.d.ts +22 -0
  1160. package/dist/esm/components/toolbar/insert-menu.d.ts.map +1 -0
  1161. package/dist/esm/components/toolbar/insert-menu.js +143 -0
  1162. package/dist/esm/components/toolbar/merge-cells-selector.d.ts +15 -0
  1163. package/dist/esm/components/toolbar/merge-cells-selector.d.ts.map +1 -0
  1164. package/dist/esm/components/toolbar/merge-cells-selector.js +48 -0
  1165. package/dist/esm/components/toolbar/scale-selector.d.ts +13 -0
  1166. package/dist/esm/components/toolbar/scale-selector.d.ts.map +1 -0
  1167. package/dist/esm/components/toolbar/scale-selector.js +72 -0
  1168. package/dist/esm/components/toolbar/style.d.ts +3 -0
  1169. package/dist/esm/components/toolbar/style.d.ts.map +1 -0
  1170. package/dist/esm/components/toolbar/style.js +5 -0
  1171. package/dist/esm/components/toolbar/table-actions.d.ts +15 -0
  1172. package/dist/esm/components/toolbar/table-actions.d.ts.map +1 -0
  1173. package/dist/esm/components/toolbar/table-actions.js +37 -0
  1174. package/dist/esm/components/toolbar/table-style-selector.d.ts +25 -0
  1175. package/dist/esm/components/toolbar/table-style-selector.d.ts.map +1 -0
  1176. package/dist/esm/components/toolbar/table-style-selector.js +501 -0
  1177. package/dist/esm/components/toolbar/text-color-selector.d.ts +20 -0
  1178. package/dist/esm/components/toolbar/text-color-selector.d.ts.map +1 -0
  1179. package/dist/esm/components/toolbar/text-color-selector.js +28 -0
  1180. package/dist/esm/components/toolbar/text-format-selector.d.ts +23 -0
  1181. package/dist/esm/components/toolbar/text-format-selector.d.ts.map +1 -0
  1182. package/dist/esm/components/toolbar/text-format-selector.js +257 -0
  1183. package/dist/esm/components/toolbar/text-horizontal-align-selector.d.ts +10 -0
  1184. package/dist/esm/components/toolbar/text-horizontal-align-selector.d.ts.map +1 -0
  1185. package/dist/esm/components/toolbar/text-horizontal-align-selector.js +36 -0
  1186. package/dist/esm/components/toolbar/text-vertical-align-selector.d.ts +9 -0
  1187. package/dist/esm/components/toolbar/text-vertical-align-selector.d.ts.map +1 -0
  1188. package/dist/esm/components/toolbar/text-vertical-align-selector.js +36 -0
  1189. package/dist/esm/components/toolbar/text-wrap-selector.d.ts +9 -0
  1190. package/dist/esm/components/toolbar/text-wrap-selector.d.ts.map +1 -0
  1191. package/dist/esm/components/toolbar/text-wrap-selector.js +35 -0
  1192. package/dist/esm/components/toolbar/theme-selector.d.ts +10 -0
  1193. package/dist/esm/components/toolbar/theme-selector.d.ts.map +1 -0
  1194. package/dist/esm/components/toolbar/theme-selector.js +27 -0
  1195. package/dist/esm/components/toolbar/toolbar.d.ts +12 -0
  1196. package/dist/esm/components/toolbar/toolbar.d.ts.map +1 -0
  1197. package/dist/esm/components/toolbar/toolbar.js +133 -0
  1198. package/dist/esm/components/toolbar/types.d.ts +2 -0
  1199. package/dist/esm/components/toolbar/types.d.ts.map +1 -0
  1200. package/dist/esm/components/toolbar/types.js +1 -0
  1201. package/dist/esm/components/toolbar/view-menu.d.ts +25 -0
  1202. package/dist/esm/components/toolbar/view-menu.d.ts.map +1 -0
  1203. package/dist/esm/components/toolbar/view-menu.js +41 -0
  1204. package/dist/esm/components/validation-alert-dialog/index.d.ts +15 -0
  1205. package/dist/esm/components/validation-alert-dialog/index.d.ts.map +1 -0
  1206. package/dist/esm/components/validation-alert-dialog/index.js +63 -0
  1207. package/dist/esm/config.d.ts +107 -0
  1208. package/dist/esm/config.d.ts.map +1 -0
  1209. package/dist/esm/config.js +266 -0
  1210. package/dist/esm/helpers/merged-cell-borders.d.ts +26 -0
  1211. package/dist/esm/helpers/merged-cell-borders.d.ts.map +1 -0
  1212. package/dist/esm/helpers/merged-cell-borders.js +42 -0
  1213. package/dist/esm/helpers.d.ts +118 -0
  1214. package/dist/esm/helpers.d.ts.map +1 -0
  1215. package/dist/esm/helpers.js +455 -0
  1216. package/dist/esm/hooks/index.d.ts +11 -0
  1217. package/dist/esm/hooks/index.d.ts.map +1 -0
  1218. package/dist/esm/hooks/index.js +10 -0
  1219. package/dist/esm/hooks/show-zeros.d.ts +13 -0
  1220. package/dist/esm/hooks/show-zeros.d.ts.map +1 -0
  1221. package/dist/esm/hooks/show-zeros.js +19 -0
  1222. package/dist/esm/hooks/use-async.d.ts +2 -0
  1223. package/dist/esm/hooks/use-async.d.ts.map +1 -0
  1224. package/dist/esm/hooks/use-async.js +22 -0
  1225. package/dist/esm/hooks/use-border-styles.d.ts +31 -0
  1226. package/dist/esm/hooks/use-border-styles.d.ts.map +1 -0
  1227. package/dist/esm/hooks/use-border-styles.js +423 -0
  1228. package/dist/esm/hooks/use-callback-ref.d.ts +6 -0
  1229. package/dist/esm/hooks/use-callback-ref.d.ts.map +1 -0
  1230. package/dist/esm/hooks/use-callback-ref.js +15 -0
  1231. package/dist/esm/hooks/use-cell-diff-highlight.d.ts +43 -0
  1232. package/dist/esm/hooks/use-cell-diff-highlight.d.ts.map +1 -0
  1233. package/dist/esm/hooks/use-cell-diff-highlight.js +84 -0
  1234. package/dist/esm/hooks/use-cell-popover.d.ts +55 -0
  1235. package/dist/esm/hooks/use-cell-popover.d.ts.map +1 -0
  1236. package/dist/esm/hooks/use-cell-popover.js +91 -0
  1237. package/dist/esm/hooks/use-cell-renderer.d.ts +226 -0
  1238. package/dist/esm/hooks/use-cell-renderer.d.ts.map +1 -0
  1239. package/dist/esm/hooks/use-cell-renderer.js +372 -0
  1240. package/dist/esm/hooks/use-column-color-icons.d.ts +43 -0
  1241. package/dist/esm/hooks/use-column-color-icons.d.ts.map +1 -0
  1242. package/dist/esm/hooks/use-column-color-icons.js +83 -0
  1243. package/dist/esm/hooks/use-conditional-formatting.d.ts +35 -0
  1244. package/dist/esm/hooks/use-conditional-formatting.d.ts.map +1 -0
  1245. package/dist/esm/hooks/use-conditional-formatting.js +497 -0
  1246. package/dist/esm/hooks/use-context-menu.d.ts +52 -0
  1247. package/dist/esm/hooks/use-context-menu.d.ts.map +1 -0
  1248. package/dist/esm/hooks/use-context-menu.js +75 -0
  1249. package/dist/esm/hooks/use-context-setter.d.ts +3 -0
  1250. package/dist/esm/hooks/use-context-setter.d.ts.map +1 -0
  1251. package/dist/esm/hooks/use-context-setter.js +128 -0
  1252. package/dist/esm/hooks/use-copy-paste-cut.d.ts +45 -0
  1253. package/dist/esm/hooks/use-copy-paste-cut.d.ts.map +1 -0
  1254. package/dist/esm/hooks/use-copy-paste-cut.js +253 -0
  1255. package/dist/esm/hooks/use-create-address-from-selection.d.ts +15 -0
  1256. package/dist/esm/hooks/use-create-address-from-selection.d.ts.map +1 -0
  1257. package/dist/esm/hooks/use-create-address-from-selection.js +69 -0
  1258. package/dist/esm/hooks/use-create-formula-tokenizer.d.ts +15 -0
  1259. package/dist/esm/hooks/use-create-formula-tokenizer.d.ts.map +1 -0
  1260. package/dist/esm/hooks/use-create-formula-tokenizer.js +48 -0
  1261. package/dist/esm/hooks/use-delayed-value.d.ts +8 -0
  1262. package/dist/esm/hooks/use-delayed-value.d.ts.map +1 -0
  1263. package/dist/esm/hooks/use-delayed-value.js +30 -0
  1264. package/dist/esm/hooks/use-editable.d.ts +366 -0
  1265. package/dist/esm/hooks/use-editable.d.ts.map +1 -0
  1266. package/dist/esm/hooks/use-editable.js +803 -0
  1267. package/dist/esm/hooks/use-editor-cancel.d.ts +25 -0
  1268. package/dist/esm/hooks/use-editor-cancel.d.ts.map +1 -0
  1269. package/dist/esm/hooks/use-editor-cancel.js +45 -0
  1270. package/dist/esm/hooks/use-editor-change.d.ts +13 -0
  1271. package/dist/esm/hooks/use-editor-change.d.ts.map +1 -0
  1272. package/dist/esm/hooks/use-editor-change.js +67 -0
  1273. package/dist/esm/hooks/use-editor-keydown.d.ts +11 -0
  1274. package/dist/esm/hooks/use-editor-keydown.d.ts.map +1 -0
  1275. package/dist/esm/hooks/use-editor-keydown.js +42 -0
  1276. package/dist/esm/hooks/use-editor-submit.d.ts +58 -0
  1277. package/dist/esm/hooks/use-editor-submit.d.ts.map +1 -0
  1278. package/dist/esm/hooks/use-editor-submit.js +83 -0
  1279. package/dist/esm/hooks/use-embeds-charts.d.ts +193 -0
  1280. package/dist/esm/hooks/use-embeds-charts.d.ts.map +1 -0
  1281. package/dist/esm/hooks/use-embeds-charts.js +276 -0
  1282. package/dist/esm/hooks/use-expand-cell.d.ts +35 -0
  1283. package/dist/esm/hooks/use-expand-cell.d.ts.map +1 -0
  1284. package/dist/esm/hooks/use-expand-cell.js +46 -0
  1285. package/dist/esm/hooks/use-export-range.d.ts +36 -0
  1286. package/dist/esm/hooks/use-export-range.d.ts.map +1 -0
  1287. package/dist/esm/hooks/use-export-range.js +227 -0
  1288. package/dist/esm/hooks/use-filter.d.ts +46 -0
  1289. package/dist/esm/hooks/use-filter.d.ts.map +1 -0
  1290. package/dist/esm/hooks/use-filter.js +184 -0
  1291. package/dist/esm/hooks/use-flash.d.ts +18 -0
  1292. package/dist/esm/hooks/use-flash.d.ts.map +1 -0
  1293. package/dist/esm/hooks/use-flash.js +68 -0
  1294. package/dist/esm/hooks/use-fonts.d.ts +8 -0
  1295. package/dist/esm/hooks/use-fonts.d.ts.map +1 -0
  1296. package/dist/esm/hooks/use-fonts.js +14 -0
  1297. package/dist/esm/hooks/use-formula-range-helpers.d.ts +21 -0
  1298. package/dist/esm/hooks/use-formula-range-helpers.d.ts.map +1 -0
  1299. package/dist/esm/hooks/use-formula-range-helpers.js +60 -0
  1300. package/dist/esm/hooks/use-get-tooltip.d.ts +52 -0
  1301. package/dist/esm/hooks/use-get-tooltip.d.ts.map +1 -0
  1302. package/dist/esm/hooks/use-get-tooltip.js +57 -0
  1303. package/dist/esm/hooks/use-get-values-from-range.d.ts +44 -0
  1304. package/dist/esm/hooks/use-get-values-from-range.d.ts.map +1 -0
  1305. package/dist/esm/hooks/use-get-values-from-range.js +108 -0
  1306. package/dist/esm/hooks/use-grid-children.d.ts +31 -0
  1307. package/dist/esm/hooks/use-grid-children.d.ts.map +1 -0
  1308. package/dist/esm/hooks/use-grid-children.js +129 -0
  1309. package/dist/esm/hooks/use-header-actions.d.ts +70 -0
  1310. package/dist/esm/hooks/use-header-actions.d.ts.map +1 -0
  1311. package/dist/esm/hooks/use-header-actions.js +248 -0
  1312. package/dist/esm/hooks/use-hidden-dimension-markers.d.ts +20 -0
  1313. package/dist/esm/hooks/use-hidden-dimension-markers.d.ts.map +1 -0
  1314. package/dist/esm/hooks/use-hidden-dimension-markers.js +128 -0
  1315. package/dist/esm/hooks/use-hidden-dimensions.d.ts +7 -0
  1316. package/dist/esm/hooks/use-hidden-dimensions.d.ts.map +1 -0
  1317. package/dist/esm/hooks/use-hidden-dimensions.js +56 -0
  1318. package/dist/esm/hooks/use-hovered-selection-ids.d.ts +9 -0
  1319. package/dist/esm/hooks/use-hovered-selection-ids.d.ts.map +1 -0
  1320. package/dist/esm/hooks/use-hovered-selection-ids.js +25 -0
  1321. package/dist/esm/hooks/use-isomorphic-layout-effect.d.ts +6 -0
  1322. package/dist/esm/hooks/use-isomorphic-layout-effect.d.ts.map +1 -0
  1323. package/dist/esm/hooks/use-isomorphic-layout-effect.js +8 -0
  1324. package/dist/esm/hooks/use-keyboard-handler.d.ts +57 -0
  1325. package/dist/esm/hooks/use-keyboard-handler.d.ts.map +1 -0
  1326. package/dist/esm/hooks/use-keyboard-handler.js +472 -0
  1327. package/dist/esm/hooks/use-licensekey-validator.d.ts +16 -0
  1328. package/dist/esm/hooks/use-licensekey-validator.d.ts.map +1 -0
  1329. package/dist/esm/hooks/use-licensekey-validator.js +140 -0
  1330. package/dist/esm/hooks/use-memo-compare.d.ts +2 -0
  1331. package/dist/esm/hooks/use-memo-compare.d.ts.map +1 -0
  1332. package/dist/esm/hooks/use-memo-compare.js +13 -0
  1333. package/dist/esm/hooks/use-merge.refs.d.ts +4 -0
  1334. package/dist/esm/hooks/use-merge.refs.d.ts.map +1 -0
  1335. package/dist/esm/hooks/use-merge.refs.js +16 -0
  1336. package/dist/esm/hooks/use-move-columns-rows.d.ts +46 -0
  1337. package/dist/esm/hooks/use-move-columns-rows.d.ts.map +1 -0
  1338. package/dist/esm/hooks/use-move-columns-rows.js +333 -0
  1339. package/dist/esm/hooks/use-navigate-sheet-range.d.ts +16 -0
  1340. package/dist/esm/hooks/use-navigate-sheet-range.d.ts.map +1 -0
  1341. package/dist/esm/hooks/use-navigate-sheet-range.js +30 -0
  1342. package/dist/esm/hooks/use-previous.d.ts +3 -0
  1343. package/dist/esm/hooks/use-previous.d.ts.map +1 -0
  1344. package/dist/esm/hooks/use-previous.js +9 -0
  1345. package/dist/esm/hooks/use-raf.d.ts +6 -0
  1346. package/dist/esm/hooks/use-raf.d.ts.map +1 -0
  1347. package/dist/esm/hooks/use-raf.js +27 -0
  1348. package/dist/esm/hooks/use-resize-observer.d.ts +6 -0
  1349. package/dist/esm/hooks/use-resize-observer.d.ts.map +1 -0
  1350. package/dist/esm/hooks/use-resize-observer.js +40 -0
  1351. package/dist/esm/hooks/use-scale-listener.d.ts +11 -0
  1352. package/dist/esm/hooks/use-scale-listener.d.ts.map +1 -0
  1353. package/dist/esm/hooks/use-scale-listener.js +47 -0
  1354. package/dist/esm/hooks/use-selected-rows-columns.d.ts +21 -0
  1355. package/dist/esm/hooks/use-selected-rows-columns.d.ts.map +1 -0
  1356. package/dist/esm/hooks/use-selected-rows-columns.js +69 -0
  1357. package/dist/esm/hooks/use-selection-aware-formatting.d.ts +13 -0
  1358. package/dist/esm/hooks/use-selection-aware-formatting.d.ts.map +1 -0
  1359. package/dist/esm/hooks/use-selection-aware-formatting.js +39 -0
  1360. package/dist/esm/hooks/use-selection-change.d.ts +10 -0
  1361. package/dist/esm/hooks/use-selection-change.d.ts.map +1 -0
  1362. package/dist/esm/hooks/use-selection-change.js +57 -0
  1363. package/dist/esm/hooks/use-selection-interceptors.d.ts +34 -0
  1364. package/dist/esm/hooks/use-selection-interceptors.d.ts.map +1 -0
  1365. package/dist/esm/hooks/use-selection-interceptors.js +129 -0
  1366. package/dist/esm/hooks/use-selection-move.d.ts +31 -0
  1367. package/dist/esm/hooks/use-selection-move.d.ts.map +1 -0
  1368. package/dist/esm/hooks/use-selection-move.js +136 -0
  1369. package/dist/esm/hooks/use-selection-renderer.d.ts +46 -0
  1370. package/dist/esm/hooks/use-selection-renderer.d.ts.map +1 -0
  1371. package/dist/esm/hooks/use-selection-renderer.js +139 -0
  1372. package/dist/esm/hooks/use-selection-resize.d.ts +30 -0
  1373. package/dist/esm/hooks/use-selection-resize.d.ts.map +1 -0
  1374. package/dist/esm/hooks/use-selection-resize.js +160 -0
  1375. package/dist/esm/hooks/use-selection.d.ts +185 -0
  1376. package/dist/esm/hooks/use-selection.d.ts.map +1 -0
  1377. package/dist/esm/hooks/use-selection.js +1559 -0
  1378. package/dist/esm/hooks/use-sheet-change-handler.d.ts +3 -0
  1379. package/dist/esm/hooks/use-sheet-change-handler.d.ts.map +1 -0
  1380. package/dist/esm/hooks/use-sheet-change-handler.js +33 -0
  1381. package/dist/esm/hooks/use-sizer.d.ts +164 -0
  1382. package/dist/esm/hooks/use-sizer.d.ts.map +1 -0
  1383. package/dist/esm/hooks/use-sizer.js +357 -0
  1384. package/dist/esm/hooks/use-spreadsheet-theme.d.ts +17 -0
  1385. package/dist/esm/hooks/use-spreadsheet-theme.d.ts.map +1 -0
  1386. package/dist/esm/hooks/use-spreadsheet-theme.js +50 -0
  1387. package/dist/esm/hooks/use-stable-ref.d.ts +2 -0
  1388. package/dist/esm/hooks/use-stable-ref.d.ts.map +1 -0
  1389. package/dist/esm/hooks/use-stable-ref.js +10 -0
  1390. package/dist/esm/hooks/use-structured-reference-selection.d.ts +23 -0
  1391. package/dist/esm/hooks/use-structured-reference-selection.d.ts.map +1 -0
  1392. package/dist/esm/hooks/use-structured-reference-selection.js +118 -0
  1393. package/dist/esm/hooks/use-table-resizer.d.ts +23 -0
  1394. package/dist/esm/hooks/use-table-resizer.d.ts.map +1 -0
  1395. package/dist/esm/hooks/use-table-resizer.js +108 -0
  1396. package/dist/esm/hooks/use-text-dimensions.d.ts +16 -0
  1397. package/dist/esm/hooks/use-text-dimensions.d.ts.map +1 -0
  1398. package/dist/esm/hooks/use-text-dimensions.js +35 -0
  1399. package/dist/esm/hooks/use-tooltip.d.ts +70 -0
  1400. package/dist/esm/hooks/use-tooltip.d.ts.map +1 -0
  1401. package/dist/esm/hooks/use-tooltip.js +83 -0
  1402. package/dist/esm/hooks/use-touch.d.ts +16 -0
  1403. package/dist/esm/hooks/use-touch.d.ts.map +1 -0
  1404. package/dist/esm/hooks/use-touch.js +224 -0
  1405. package/dist/esm/index.d.ts +69 -0
  1406. package/dist/esm/index.d.ts.map +1 -0
  1407. package/dist/esm/index.js +75 -0
  1408. package/dist/esm/providers/spreadsheet-provider.d.ts +25 -0
  1409. package/dist/esm/providers/spreadsheet-provider.d.ts.map +1 -0
  1410. package/dist/esm/providers/spreadsheet-provider.js +27 -0
  1411. package/dist/esm/release-date.d.ts +2 -0
  1412. package/dist/esm/release-date.d.ts.map +1 -0
  1413. package/dist/esm/release-date.js +3 -0
  1414. package/dist/esm/signals/scroll-subscriber.d.ts +4 -0
  1415. package/dist/esm/signals/scroll-subscriber.d.ts.map +1 -0
  1416. package/dist/esm/signals/scroll-subscriber.js +2 -0
  1417. package/dist/esm/test-setup.d.ts +2 -0
  1418. package/dist/esm/test-setup.d.ts.map +1 -0
  1419. package/dist/esm/test-setup.js +15 -0
  1420. package/dist/esm/themes.d.ts +13 -0
  1421. package/dist/esm/themes.d.ts.map +1 -0
  1422. package/dist/esm/themes.js +264 -0
  1423. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  1424. package/dist/esm/types.d.ts +1215 -0
  1425. package/dist/esm/types.d.ts.map +1 -0
  1426. package/dist/esm/types.js +8 -0
  1427. package/dist/esm/utils/maybe.d.ts +12 -0
  1428. package/dist/esm/utils/maybe.d.ts.map +1 -0
  1429. package/dist/esm/utils/maybe.js +14 -0
  1430. package/dist/esm/vitest.config.d.ts +3 -0
  1431. package/dist/esm/vitest.config.d.ts.map +1 -0
  1432. package/dist/esm/vitest.config.js +22 -0
  1433. package/dist/spreadsheet.min.css +1 -0
  1434. package/package.json +73 -0
@@ -0,0 +1,1515 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useSelection = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var grid_1 = require("@rowsncolumns/grid");
6
+ var grid_2 = require("@rowsncolumns/grid");
7
+ var grid_3 = require("@rowsncolumns/grid");
8
+ var grid_4 = require("@rowsncolumns/grid");
9
+ var react_1 = require("react");
10
+ var scheduler_1 = require("../api/scheduler");
11
+ var config_1 = require("../config");
12
+ var use_callback_ref_1 = require("./use-callback-ref");
13
+ var defaultIsHidden = function () { return false; };
14
+ var defaultSelectionSpan = function () { return true; };
15
+ var getPossibleActiveCellFromSelections = function (selections) {
16
+ if (!selections.length)
17
+ return null;
18
+ var range = selections[selections.length - 1].range;
19
+ return {
20
+ rowIndex: range.startRowIndex,
21
+ columnIndex: range.startColumnIndex,
22
+ };
23
+ };
24
+ var cellIndexInSelection = function (cell, selections, selectionLeftBound, selectionTopBound) {
25
+ var id = (0, grid_4.cellIdentifier)(Math.max(selectionTopBound, cell.rowIndex), Math.max(selectionLeftBound, cell.columnIndex));
26
+ return selections.findIndex(function (sel) {
27
+ var boundedCells = (0, grid_4.getBoundedCells)(sel.range);
28
+ return boundedCells.has(id);
29
+ });
30
+ };
31
+ var cellEqualsSelection = function (cell, selections) {
32
+ if (cell === null)
33
+ return false;
34
+ return selections.some(function (sel) {
35
+ return (sel.range.startColumnIndex === cell.columnIndex &&
36
+ sel.range.startRowIndex === cell.rowIndex &&
37
+ sel.range.endColumnIndex === cell.columnIndex &&
38
+ sel.range.endRowIndex === cell.rowIndex);
39
+ });
40
+ };
41
+ var boundsSubsetOfSelection = function (range, selection) {
42
+ return (range.startRowIndex >= selection.startRowIndex &&
43
+ range.endRowIndex <= selection.endRowIndex &&
44
+ range.startColumnIndex >= selection.startColumnIndex &&
45
+ range.endColumnIndex <= selection.endColumnIndex);
46
+ };
47
+ /**
48
+ * Hook to enable selection in datagrid
49
+ * @param initialSelection
50
+ */
51
+ var useSelection = function (_a) {
52
+ var sheetId = _a.sheetId, activeCell = _a.activeCell, onChangeActiveCell = _a.onChangeActiveCell, selections = _a.selections, onChangeSelections = _a.onChangeSelections, _b = _a.columnCount, columnCount = _b === void 0 ? 0 : _b, _c = _a.rowCount, rowCount = _c === void 0 ? 0 : _c, _d = _a.selectionPolicy, selectionPolicy = _d === void 0 ? "multiple" : _d, _e = _a.newSelectionMode, newSelectionMode = _e === void 0 ? "clear" : _e, _f = _a.allowDeselectSelection, allowDeselectSelection = _f === void 0 ? true : _f, onFill = _a.onFill, _g = _a.isHiddenRow, isHiddenRow = _g === void 0 ? defaultIsHidden : _g, _h = _a.isHiddenColumn, isHiddenColumn = _h === void 0 ? defaultIsHidden : _h, _j = _a.alwaysScrollToActiveCell, alwaysScrollToActiveCell = _j === void 0 ? true : _j, _k = _a.selectionTopBound, selectionTopBound = _k === void 0 ? 0 : _k, _l = _a.selectionBottomBound, selectionBottomBound = _l === void 0 ? rowCount : _l, _m = _a.selectionLeftBound, selectionLeftBound = _m === void 0 ? 0 : _m, _o = _a.selectionRightBound, selectionRightBound = _o === void 0 ? columnCount : _o, mouseDownInterceptor = _a.mouseDownInterceptor, mouseMoveInterceptor = _a.mouseMoveInterceptor, _p = _a.mergedCells, mergedCells = _p === void 0 ? config_1.DEFAULT_ARRAY : _p, _q = _a.canSelectionSpanMergedCells, canSelectionSpanMergedCells = _q === void 0 ? defaultSelectionSpan : _q, getValue = _a.getValue, onMoveSelection = _a.onMoveSelection, getCellCoordsFromOffset = _a.getCellCoordsFromOffset, getCellBounds = _a.getCellBounds, getViewPort = _a.getViewPort, focus = _a.focus, scrollToCell = _a.scrollToCell, isMergedCell = _a.isMergedCell, enableSelectOnEnterKey = _a.enableSelectOnEnterKey, formulaMode = _a.formulaMode, isTouchDevice = _a.isTouchDevice, getDataRowCount = _a.getDataRowCount, isRowHeader = _a.isRowHeader, isColumnHeader = _a.isColumnHeader, _r = _a.enableDataBoundaryNavigation, enableDataBoundaryNavigation = _r === void 0 ? false : _r;
53
+ var _s = tslib_1.__read((0, react_1.useState)(), 2), fillSelection = _s[0], setFillSelection = _s[1];
54
+ var selectionStart = (0, react_1.useRef)(null);
55
+ var selectionEnd = (0, react_1.useRef)(null);
56
+ var isSelecting = (0, react_1.useRef)(false);
57
+ var isFilling = (0, react_1.useRef)(false);
58
+ var selectionsRef = (0, react_1.useRef)([]);
59
+ var fillSelectionRef = (0, react_1.useRef)(undefined);
60
+ var onChangeSelectionsRef = (0, use_callback_ref_1.useCallbackRef)(onChangeSelections);
61
+ /* Drag drop selection */
62
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
63
+ var _t = tslib_1.__read((0, react_1.useReducer)(function (s) { return s + 1; }, 0), 2), _ = _t[0], forceRender = _t[1];
64
+ var isDragging = (0, react_1.useRef)(false);
65
+ var hasUserMovedSelection = (0, react_1.useRef)(false);
66
+ var initialDraggedSelection = (0, react_1.useRef)(undefined);
67
+ var initialDraggedCell = (0, react_1.useRef)(undefined);
68
+ var draggedSelection = (0, react_1.useRef)(undefined);
69
+ var draggedSelectionIndex = (0, react_1.useRef)(undefined);
70
+ /**
71
+ * Need to store in ref because on mousemove and mouseup event that are
72
+ * registered in document
73
+ */
74
+ var activeCellRef = (0, react_1.useRef)(activeCell);
75
+ var mergedCellsRef = (0, react_1.useRef)(mergedCells);
76
+ (0, grid_3.useIsomorphicLayoutEffect)(function () {
77
+ activeCellRef.current = activeCell;
78
+ }, [activeCell]);
79
+ (0, grid_3.useIsomorphicLayoutEffect)(function () {
80
+ mergedCellsRef.current = mergedCells;
81
+ }, [mergedCells]);
82
+ (0, grid_3.useIsomorphicLayoutEffect)(function () {
83
+ selectionsRef.current = selections;
84
+ }, [selections]);
85
+ (0, grid_3.useIsomorphicLayoutEffect)(function () {
86
+ fillSelectionRef.current = fillSelection;
87
+ }, [fillSelection]);
88
+ /* Check if cell is out of bounds */
89
+ var isCellOutOfBounds = (0, react_1.useCallback)(function (cell) {
90
+ return cell.rowIndex < 0 || cell.columnIndex < 0;
91
+ }, []);
92
+ /**
93
+ * selection object from start, end
94
+ * @param start
95
+ * @param end
96
+ */
97
+ var selectionFromStartEnd = (0, react_1.useCallback)(function (start, end) {
98
+ // Detect full row or column selection - don't expand to merged cells
99
+ // to prevent selecting adjacent rows/columns due to merged cells at edges
100
+ var isFullRowSelection = start.columnIndex === selectionLeftBound &&
101
+ end.columnIndex === selectionRightBound;
102
+ var isFullColumnSelection = start.rowIndex === selectionTopBound &&
103
+ end.rowIndex === selectionBottomBound;
104
+ var spanMerges = isFullRowSelection || isFullColumnSelection
105
+ ? false
106
+ : canSelectionSpanMergedCells === null || canSelectionSpanMergedCells === void 0 ? void 0 : canSelectionSpanMergedCells(start, end);
107
+ return (0, grid_4.cellRangeToBounds)(start, end, spanMerges, getCellBounds, selectionLeftBound, selectionTopBound);
108
+ }, [
109
+ canSelectionSpanMergedCells,
110
+ getCellBounds,
111
+ selectionLeftBound,
112
+ selectionTopBound,
113
+ selectionRightBound,
114
+ selectionBottomBound,
115
+ ]);
116
+ var clearSelections = (0, react_1.useCallback)(function () {
117
+ // Reset ref, so we dont have to wait for useEffect to fire
118
+ // selectionsRef.current.length = 0;
119
+ // Above code can mutate the selections array, hence removed
120
+ onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(config_1.DEFAULT_ARRAY);
121
+ }, [onChangeSelections]);
122
+ /* Modify current selection */
123
+ var modifySelection = (0, react_1.useCallback)(function (coords, setInProgress) {
124
+ if (selectionPolicy === "single" ||
125
+ !selectionStart.current ||
126
+ isCellOutOfBounds(coords)
127
+ // isEqualCells(selectionEnd.current, coords) // No idea why we have this.. Investigate
128
+ ) {
129
+ return;
130
+ }
131
+ selectionEnd.current = coords;
132
+ // If user is navigation to the same cell
133
+ // lets clear all selections
134
+ // Only if user
135
+ if (!formulaMode &&
136
+ selectionsRef.current.length <= 1 &&
137
+ (0, grid_4.isEqualCells)(selectionStart.current, selectionEnd.current)) {
138
+ clearSelections();
139
+ return;
140
+ }
141
+ var range = selectionFromStartEnd(selectionStart.current, coords);
142
+ if (!range) {
143
+ return;
144
+ }
145
+ /**
146
+ * 1. Multiple selections on mousedown/mousemove
147
+ * 2. Move the activeCell to newly selection. Done by appendSelection
148
+ */
149
+ var curSelections = selectionsRef.current;
150
+ var len = curSelections.length;
151
+ var newSelections = len
152
+ ? curSelections.map(function (sel, i) {
153
+ if (len - 1 === i) {
154
+ return tslib_1.__assign(tslib_1.__assign({}, sel), { range: range, inProgress: setInProgress ? true : false });
155
+ }
156
+ return sel;
157
+ })
158
+ : [
159
+ { range: range, inProgress: setInProgress ? true : false },
160
+ ];
161
+ // Update selections
162
+ onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(newSelections);
163
+ }, [
164
+ onChangeSelections,
165
+ selectionFromStartEnd,
166
+ isCellOutOfBounds,
167
+ selectionPolicy,
168
+ formulaMode,
169
+ clearSelections,
170
+ ]);
171
+ /* Adds a new selection, CMD key */
172
+ var appendSelection = (0, react_1.useCallback)(function (start, end) {
173
+ if (end === void 0) { end = start; }
174
+ if (selectionPolicy !== "multiple" ||
175
+ !start ||
176
+ isCellOutOfBounds(start)) {
177
+ return;
178
+ }
179
+ selectionStart.current = start;
180
+ selectionEnd.current = end;
181
+ var range = selectionFromStartEnd(start, end);
182
+ if (!range) {
183
+ return;
184
+ }
185
+ onChangeActiveCell === null || onChangeActiveCell === void 0 ? void 0 : onChangeActiveCell(sheetId, {
186
+ rowIndex: range.startRowIndex,
187
+ columnIndex: range.startColumnIndex,
188
+ });
189
+ var curSelections = selectionsRef.current;
190
+ var newSelections = tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(curSelections), false), [{ range: range }], false);
191
+ onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(newSelections);
192
+ }, [
193
+ sheetId,
194
+ onChangeSelections,
195
+ onChangeActiveCell,
196
+ selectionFromStartEnd,
197
+ isCellOutOfBounds,
198
+ selectionPolicy,
199
+ ]);
200
+ var removeSelectionByIndex = (0, react_1.useCallback)(function (index) {
201
+ var newSelection = selections.filter(function (_, idx) { return idx !== index; });
202
+ onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(newSelection);
203
+ return newSelection;
204
+ }, [selections, onChangeSelections]);
205
+ /* New selection */
206
+ var newSelection = (0, react_1.useCallback)(function (start, end) {
207
+ if (end === void 0) { end = start; }
208
+ /* Validate bounds */
209
+ if (isCellOutOfBounds(start)) {
210
+ return;
211
+ }
212
+ selectionStart.current = start;
213
+ selectionEnd.current = end;
214
+ var bounds = selectionFromStartEnd(start, end);
215
+ if (!bounds)
216
+ return;
217
+ var coords = {
218
+ rowIndex: bounds.startRowIndex,
219
+ columnIndex: bounds.startColumnIndex,
220
+ };
221
+ /* Keep track of first cell that was selected by user */
222
+ onChangeActiveCell === null || onChangeActiveCell === void 0 ? void 0 : onChangeActiveCell(sheetId, coords);
223
+ if (newSelectionMode === "clear") {
224
+ clearSelections();
225
+ }
226
+ else if (newSelectionMode === "modify") {
227
+ modifySelection(coords);
228
+ }
229
+ else {
230
+ appendSelection(coords);
231
+ }
232
+ }, [
233
+ sheetId,
234
+ modifySelection,
235
+ appendSelection,
236
+ newSelectionMode,
237
+ clearSelections,
238
+ onChangeActiveCell,
239
+ selectionFromStartEnd,
240
+ isCellOutOfBounds,
241
+ ]);
242
+ /**
243
+ * Mousemove handler
244
+ */
245
+ var handleMouseMove = (0, react_1.useCallback)(function (e) {
246
+ /* Exit if user is not in selection mode */
247
+ if (!isSelecting.current) {
248
+ return;
249
+ }
250
+ var coords = getCellCoordsFromOffset(e.clientX, e.clientY, false);
251
+ if (!coords) {
252
+ return;
253
+ }
254
+ if ((mouseMoveInterceptor === null || mouseMoveInterceptor === void 0 ? void 0 : mouseMoveInterceptor(e, coords, selectionStart, selectionEnd, modifySelection)) === false) {
255
+ return;
256
+ }
257
+ if ((0, grid_4.isEqualCells)(selectionEnd.current, coords)) {
258
+ return;
259
+ }
260
+ modifySelection(coords, true);
261
+ // Prevent a bug when setState is
262
+ // called repeatedly
263
+ (0, scheduler_1.scheduleNormalPriorityCallback)(function () {
264
+ scrollToCell(coords);
265
+ });
266
+ }, [
267
+ modifySelection,
268
+ getCellCoordsFromOffset,
269
+ scrollToCell,
270
+ mouseMoveInterceptor,
271
+ ]);
272
+ /**
273
+ * Mouse up handler
274
+ */
275
+ var handleMouseUp = (0, react_1.useCallback)(function () {
276
+ /* Reset selection mode */
277
+ isSelecting.current = false;
278
+ /* Remove listener */
279
+ document.removeEventListener("mousemove", handleMouseMove);
280
+ document.removeEventListener("mouseup", handleMouseUp);
281
+ /* Update last selection */
282
+ var curSelections = selectionsRef.current;
283
+ var len = curSelections.length;
284
+ var anySelectonInProgress = curSelections.find(function (sel) { return sel.inProgress; });
285
+ var newSelections = !anySelectonInProgress
286
+ ? curSelections
287
+ : len
288
+ ? curSelections.map(function (sel, i) {
289
+ if (len - 1 === i && sel.inProgress !== false) {
290
+ return tslib_1.__assign(tslib_1.__assign({}, sel), { inProgress: false });
291
+ }
292
+ return sel;
293
+ })
294
+ : curSelections;
295
+ // Force render so isSelecting.current is propagated
296
+ forceRender();
297
+ // Focu grid
298
+ // This causes a bug where filter menu
299
+ // dropdown never shows up, since we trigger
300
+ // focus on the cell editor
301
+ // focus();
302
+ // Callback
303
+ var finishedSelection = true;
304
+ onChangeSelectionsRef === null || onChangeSelectionsRef === void 0 ? void 0 : onChangeSelectionsRef(newSelections, finishedSelection);
305
+ }, [onChangeSelectionsRef, handleMouseMove]);
306
+ /**
307
+ * User modified active cell deliberately
308
+ */
309
+ var handleSetActiveCell = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function (sheetId, coords, shouldScroll, align) {
310
+ if (shouldScroll === void 0) { shouldScroll = true; }
311
+ selectionStart.current = coords;
312
+ selectionEnd.current = coords;
313
+ onChangeActiveCell === null || onChangeActiveCell === void 0 ? void 0 : onChangeActiveCell(sheetId, coords);
314
+ /* Scroll to the cell */
315
+ if (shouldScroll && coords) {
316
+ scrollToCell(coords, align);
317
+ }
318
+ }, [onChangeActiveCell, scrollToCell]));
319
+ /**
320
+ * Navigate selection using keyboard
321
+ * @param direction
322
+ * @param modify
323
+ */
324
+ var keyNavigate = (0, react_1.useCallback)(function (direction, modify, metaKeyPressed) {
325
+ var _a, _b;
326
+ if (!selectionStart.current || !selectionEnd.current) {
327
+ selectionStart.current = selectionEnd.current = activeCell;
328
+ }
329
+ var currentCell = modify
330
+ ? selectionEnd.current
331
+ : (_a = selectionStart.current) !== null && _a !== void 0 ? _a : activeCell;
332
+ var rowIndex = currentCell.rowIndex, columnIndex = currentCell.columnIndex;
333
+ var isMerged = isMergedCell({
334
+ rowIndex: rowIndex,
335
+ columnIndex: columnIndex,
336
+ });
337
+ var currentBounds = getCellBounds({
338
+ rowIndex: rowIndex,
339
+ columnIndex: columnIndex,
340
+ });
341
+ switch (direction) {
342
+ case grid_4.Direction.Up:
343
+ if (isMerged)
344
+ rowIndex = currentBounds.startRowIndex;
345
+ rowIndex = (0, grid_4.clampIndex)(Math.max(rowIndex - 1, selectionTopBound), isHiddenRow, direction);
346
+ /**
347
+ * If user hides column 1
348
+ */
349
+ if (rowIndex < selectionTopBound) {
350
+ rowIndex = (0, grid_4.clampIndex)(selectionTopBound, isHiddenRow, grid_4.Direction.Down);
351
+ }
352
+ // Shift + Ctrl/Commmand
353
+ // TODO: Scroll to last contentful cell
354
+ if (metaKeyPressed) {
355
+ var startCell = tslib_1.__assign(tslib_1.__assign({}, currentCell), {
356
+ // Expand from the starting cell
357
+ columnIndex: selectionStart.current.columnIndex });
358
+ rowIndex = (0, grid_4.findNextCellInDataRegion)(sheetId, startCell, getValue, isHiddenRow, direction, selectionTopBound);
359
+ }
360
+ break;
361
+ case grid_4.Direction.Down:
362
+ if (isMerged)
363
+ rowIndex = currentBounds.endRowIndex;
364
+ rowIndex = (0, grid_4.clampIndex)(Math.min(rowIndex + 1, selectionBottomBound), isHiddenRow, direction);
365
+ // Shift + Ctrl/Commmand
366
+ if (metaKeyPressed) {
367
+ var bottomBound = selectionBottomBound;
368
+ // Data boundary
369
+ if (enableDataBoundaryNavigation) {
370
+ var dataRowCount = (_b = getDataRowCount === null || getDataRowCount === void 0 ? void 0 : getDataRowCount(sheetId)) !== null && _b !== void 0 ? _b : rowCount;
371
+ bottomBound =
372
+ rowIndex < dataRowCount
373
+ ? Math.min(dataRowCount - 1, rowCount)
374
+ : selectionBottomBound;
375
+ }
376
+ var startCell = tslib_1.__assign(tslib_1.__assign({}, currentCell), {
377
+ // Expand from the starting cell
378
+ columnIndex: selectionStart.current.columnIndex });
379
+ rowIndex = (0, grid_4.findNextCellInDataRegion)(sheetId, startCell, getValue, isHiddenRow, direction, bottomBound);
380
+ }
381
+ break;
382
+ case grid_4.Direction.Left:
383
+ if (isMerged)
384
+ columnIndex = currentBounds.startColumnIndex;
385
+ columnIndex = (0, grid_4.clampIndex)(Math.max(columnIndex - 1, selectionLeftBound), isHiddenColumn, direction);
386
+ /**
387
+ * If user hides column 1
388
+ */
389
+ if (columnIndex < selectionLeftBound) {
390
+ columnIndex = (0, grid_4.clampIndex)(selectionLeftBound, isHiddenColumn, grid_4.Direction.Right);
391
+ }
392
+ // Shift + Ctrl/Commmand
393
+ if (metaKeyPressed) {
394
+ var startCell = tslib_1.__assign(tslib_1.__assign({}, currentCell), {
395
+ // Expand from the starting cell
396
+ rowIndex: selectionStart.current.rowIndex });
397
+ columnIndex = (0, grid_4.findNextCellInDataRegion)(sheetId, startCell, getValue, isHiddenColumn, direction, selectionLeftBound);
398
+ }
399
+ break;
400
+ case grid_4.Direction.Right:
401
+ if (isMerged)
402
+ columnIndex = currentBounds.endColumnIndex;
403
+ columnIndex = (0, grid_4.clampIndex)(Math.min(columnIndex + 1, selectionRightBound), isHiddenColumn, direction);
404
+ // Shift + Ctrl/Commmand
405
+ if (metaKeyPressed) {
406
+ var startCell = tslib_1.__assign(tslib_1.__assign({}, currentCell), {
407
+ // Expand from the starting cell
408
+ rowIndex: selectionStart.current.rowIndex });
409
+ columnIndex = (0, grid_4.findNextCellInDataRegion)(sheetId, startCell, getValue, isHiddenColumn, direction, selectionRightBound);
410
+ }
411
+ break;
412
+ }
413
+ var newBounds = getCellBounds({
414
+ rowIndex: rowIndex,
415
+ columnIndex: columnIndex,
416
+ });
417
+ var coords = {
418
+ rowIndex: newBounds.startRowIndex,
419
+ columnIndex: newBounds.startColumnIndex,
420
+ };
421
+ var nextCellToScrollTo = modify
422
+ ? selectionEnd.current.rowIndex === coords.rowIndex
423
+ ? // Scroll to a column
424
+ { columnIndex: coords.columnIndex }
425
+ : // Scroll to row
426
+ { rowIndex: coords.rowIndex }
427
+ : // Scroll to cell
428
+ { rowIndex: rowIndex, columnIndex: columnIndex };
429
+ if (modify) {
430
+ modifySelection(coords);
431
+ }
432
+ else {
433
+ newSelection(coords);
434
+ }
435
+ /* Keep the item in view */
436
+ scrollToCell(nextCellToScrollTo);
437
+ }, [
438
+ sheetId,
439
+ activeCell,
440
+ rowCount,
441
+ getValue,
442
+ isHiddenRow,
443
+ isHiddenColumn,
444
+ selectionLeftBound,
445
+ selectionTopBound,
446
+ getCellBounds,
447
+ scrollToCell,
448
+ modifySelection,
449
+ newSelection,
450
+ selectionBottomBound,
451
+ selectionRightBound,
452
+ isMergedCell,
453
+ getDataRowCount,
454
+ enableDataBoundaryNavigation,
455
+ ]);
456
+ // Find contentful cell
457
+ var findLastContentfulCellInDirection = (0, react_1.useCallback)(function (sheetId, startCell, endCell, direction) {
458
+ var isSingleBound = (0, grid_4.isEqualCells)(startCell, endCell);
459
+ var isVertical = direction === grid_4.Direction.Up || direction === grid_4.Direction.Down;
460
+ var cell = direction === grid_4.Direction.Up || direction === grid_4.Direction.Left
461
+ ? startCell
462
+ : endCell;
463
+ var isHidden = isVertical ? isHiddenRow : isHiddenColumn;
464
+ var limit = direction === grid_4.Direction.Up
465
+ ? selectionTopBound
466
+ : direction === grid_4.Direction.Down
467
+ ? selectionBottomBound
468
+ : direction === grid_4.Direction.Left
469
+ ? selectionLeftBound
470
+ : selectionRightBound;
471
+ var key = isVertical ? "rowIndex" : "columnIndex";
472
+ var startIndex = (0, grid_1.findLastContentfulCell)(sheetId, startCell, getValue, isHidden, direction, limit)[key];
473
+ var endIndex = isSingleBound
474
+ ? startIndex
475
+ : (0, grid_1.findLastContentfulCell)(sheetId, endCell, getValue, isHidden, direction, limit)[key];
476
+ var boundedCellIndex = direction === grid_4.Direction.Up || direction === grid_4.Direction.Left
477
+ ? Math.min(startIndex, endIndex)
478
+ : Math.max(startIndex, endIndex);
479
+ if (!isSingleBound && (cell === null || cell === void 0 ? void 0 : cell[key]) === boundedCellIndex) {
480
+ return limit;
481
+ }
482
+ return boundedCellIndex;
483
+ }, [
484
+ getValue,
485
+ isHiddenRow,
486
+ isHiddenColumn,
487
+ selectionTopBound,
488
+ selectionBottomBound,
489
+ selectionLeftBound,
490
+ selectionRightBound,
491
+ ]);
492
+ // ⌘A or ⌘+Shift+Space
493
+ // Select all cells in bounding area
494
+ var selectAllBoundedCells = (0, react_1.useCallback)(function () {
495
+ if (!selectionEnd.current || !selectionStart.current) {
496
+ return;
497
+ }
498
+ var topBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Up);
499
+ var bottomBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Down);
500
+ var leftBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Left);
501
+ var rightBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Right);
502
+ var isSameHorizontalBounds = leftBound === rightBound;
503
+ var isSameVerticalBounds = topBound === bottomBound;
504
+ if (isSameHorizontalBounds) {
505
+ leftBound = selectionLeftBound;
506
+ rightBound = selectionRightBound;
507
+ }
508
+ if (isSameVerticalBounds) {
509
+ topBound = selectionTopBound;
510
+ bottomBound = selectionBottomBound;
511
+ }
512
+ selectionStart.current = {
513
+ rowIndex: topBound,
514
+ columnIndex: leftBound,
515
+ };
516
+ modifySelection({
517
+ rowIndex: bottomBound,
518
+ columnIndex: rightBound,
519
+ });
520
+ }, [
521
+ modifySelection,
522
+ findLastContentfulCellInDirection,
523
+ sheetId,
524
+ selectionBottomBound,
525
+ selectionTopBound,
526
+ selectionLeftBound,
527
+ selectionRightBound,
528
+ ]);
529
+ // Select all
530
+ var selectAll = (0, react_1.useCallback)(function () {
531
+ selectionStart.current = {
532
+ rowIndex: selectionTopBound,
533
+ columnIndex: selectionLeftBound,
534
+ };
535
+ modifySelection({
536
+ rowIndex: selectionBottomBound,
537
+ columnIndex: selectionRightBound,
538
+ });
539
+ }, [
540
+ selectionTopBound,
541
+ selectionLeftBound,
542
+ selectionRightBound,
543
+ selectionBottomBound,
544
+ modifySelection,
545
+ ]);
546
+ // Ctrl+Space
547
+ var selectColumn = (0, react_1.useCallback)(function (columnIndex) {
548
+ if (!selectionEnd.current ||
549
+ !selectionStart.current ||
550
+ columnIndex === void 0)
551
+ return;
552
+ var topBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Up);
553
+ var bottomBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Down);
554
+ var isSameVerticalBounds = topBound === bottomBound;
555
+ if (isSameVerticalBounds) {
556
+ topBound = selectionTopBound;
557
+ bottomBound = selectionBottomBound;
558
+ }
559
+ selectionStart.current = tslib_1.__assign(tslib_1.__assign({}, selectionStart.current), { rowIndex: Math.max(selectionTopBound, topBound) });
560
+ modifySelection(tslib_1.__assign(tslib_1.__assign({}, selectionEnd.current), { rowIndex: bottomBound }));
561
+ }, [
562
+ findLastContentfulCellInDirection,
563
+ modifySelection,
564
+ sheetId,
565
+ selectionTopBound,
566
+ selectionBottomBound,
567
+ ]);
568
+ // Select entire column
569
+ var selectEntireColumn = (0, react_1.useCallback)(function (columnIndex) {
570
+ if (!selectionEnd.current ||
571
+ !selectionStart.current ||
572
+ columnIndex === void 0)
573
+ return;
574
+ selectionStart.current = tslib_1.__assign(tslib_1.__assign({}, selectionStart.current), { rowIndex: selectionTopBound });
575
+ modifySelection(tslib_1.__assign(tslib_1.__assign({}, selectionEnd.current), { rowIndex: selectionBottomBound }));
576
+ }, [modifySelection, selectionBottomBound, selectionTopBound]);
577
+ // Shift+Space
578
+ var selectRow = (0, react_1.useCallback)(function (rowIndex) {
579
+ if (!selectionEnd.current ||
580
+ !selectionStart.current ||
581
+ rowIndex === void 0) {
582
+ return;
583
+ }
584
+ var leftBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Left);
585
+ var rightBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Right);
586
+ var isSameHorizontalBounds = leftBound === rightBound;
587
+ if (isSameHorizontalBounds) {
588
+ leftBound = selectionLeftBound;
589
+ rightBound = selectionRightBound;
590
+ }
591
+ selectionStart.current = tslib_1.__assign(tslib_1.__assign({}, selectionStart.current), { columnIndex: leftBound });
592
+ modifySelection(tslib_1.__assign(tslib_1.__assign({}, selectionEnd.current), { columnIndex: rightBound }));
593
+ }, [
594
+ findLastContentfulCellInDirection,
595
+ modifySelection,
596
+ sheetId,
597
+ selectionRightBound,
598
+ selectionLeftBound,
599
+ ]);
600
+ // Home
601
+ var selectFirstCellInRow = (0, react_1.useCallback)(function () {
602
+ if (!selectionStart.current)
603
+ return;
604
+ var cell = {
605
+ rowIndex: selectionStart.current.rowIndex,
606
+ columnIndex: selectionLeftBound,
607
+ };
608
+ newSelection(cell);
609
+ scrollToCell(cell);
610
+ }, [scrollToCell, newSelection, selectionLeftBound]);
611
+ // End
612
+ var selectLastCellInRow = (0, react_1.useCallback)(function () {
613
+ if (!selectionStart.current)
614
+ return;
615
+ var cell = {
616
+ rowIndex: selectionStart.current.rowIndex,
617
+ columnIndex: selectionRightBound,
618
+ };
619
+ newSelection(cell);
620
+ scrollToCell(cell);
621
+ }, [scrollToCell, newSelection, selectionRightBound]);
622
+ // ⌘+Home
623
+ // const selectFirstCellInColumn = useCallback(() => {
624
+ // if (!selectionStart.current) return;
625
+ // const cell = {
626
+ // rowIndex: selectionTopBound,
627
+ // columnIndex: selectionStart.current.columnIndex,
628
+ // };
629
+ // newSelection(cell);
630
+ // scrollToCell(cell);
631
+ // }, [scrollToCell, newSelection, selectionTopBound]);
632
+ // fn+⌘+Home
633
+ var selectFirstCellInSheet = (0, react_1.useCallback)(function () {
634
+ if (!selectionStart.current)
635
+ return;
636
+ var cell = {
637
+ rowIndex: selectionTopBound,
638
+ columnIndex: selectionLeftBound,
639
+ };
640
+ newSelection(cell);
641
+ scrollToCell(cell);
642
+ }, [scrollToCell, newSelection, selectionTopBound, selectionLeftBound]);
643
+ // fn+⌘+End
644
+ var selectLastCellInSheet = (0, react_1.useCallback)(function () {
645
+ if (!selectionStart.current)
646
+ return;
647
+ var cell = {
648
+ rowIndex: selectionBottomBound,
649
+ columnIndex: selectionRightBound,
650
+ };
651
+ newSelection(cell);
652
+ scrollToCell(cell);
653
+ }, [scrollToCell, newSelection, selectionBottomBound, selectionRightBound]);
654
+ // ⌘+End
655
+ // const selectLastCellInColumn = useCallback(() => {
656
+ // if (!selectionStart.current) return;
657
+ // const cell = {
658
+ // rowIndex: rowCount,
659
+ // columnIndex: selectionStart.current.columnIndex,
660
+ // };
661
+ // newSelection(cell);
662
+ // scrollToCell(cell);
663
+ // }, [scrollToCell, newSelection, rowCount]);
664
+ // ⌘+Backspace
665
+ var scrollToActiveCell = (0, react_1.useCallback)(function () {
666
+ if (!activeCell)
667
+ return;
668
+ scrollToCell(activeCell, grid_4.Align.smart);
669
+ }, [scrollToCell, activeCell]);
670
+ // Page down
671
+ var pageDown = (0, react_1.useCallback)(function () {
672
+ if (!activeCell)
673
+ return;
674
+ var _a = getViewPort(), visibleRowStartIndex = _a.visibleRowStartIndex, visibleRowStopIndex = _a.visibleRowStopIndex;
675
+ var pageSize = visibleRowStopIndex - visibleRowStartIndex;
676
+ var rowIndex = Math.min(activeCell.rowIndex + pageSize, rowCount);
677
+ var newActiveCell = {
678
+ rowIndex: rowIndex,
679
+ columnIndex: activeCell.columnIndex,
680
+ };
681
+ handleSetActiveCell(sheetId, newActiveCell, false);
682
+ /* Scroll to the new row */
683
+ scrollToCell({ rowIndex: rowIndex }, grid_4.Align.end);
684
+ }, [
685
+ getViewPort,
686
+ scrollToCell,
687
+ handleSetActiveCell,
688
+ sheetId,
689
+ activeCell,
690
+ rowCount,
691
+ ]);
692
+ // Page up
693
+ var pageUp = (0, react_1.useCallback)(function () {
694
+ if (!activeCell)
695
+ return;
696
+ var _a = getViewPort(), visibleRowStartIndex = _a.visibleRowStartIndex, visibleRowStopIndex = _a.visibleRowStopIndex;
697
+ var pageSize = visibleRowStopIndex - visibleRowStartIndex;
698
+ var rowIndex = Math.max(activeCell.rowIndex - pageSize, selectionTopBound);
699
+ var newActiveCell = {
700
+ rowIndex: rowIndex,
701
+ columnIndex: activeCell.columnIndex,
702
+ };
703
+ handleSetActiveCell(sheetId, newActiveCell, false);
704
+ /* Scroll to the new row */
705
+ scrollToCell({ rowIndex: rowIndex }, grid_4.Align.end);
706
+ }, [
707
+ scrollToCell,
708
+ getViewPort,
709
+ handleSetActiveCell,
710
+ sheetId,
711
+ activeCell,
712
+ selectionTopBound,
713
+ ]);
714
+ // Page right
715
+ var pageRight = (0, react_1.useCallback)(function () {
716
+ if (!activeCell)
717
+ return;
718
+ var _a = getViewPort(), visibleColumnStartIndex = _a.visibleColumnStartIndex, visibleColumnStopIndex = _a.visibleColumnStopIndex;
719
+ var pageSize = visibleColumnStopIndex - visibleColumnStartIndex;
720
+ var columnIndex = Math.min(activeCell.columnIndex + pageSize, selectionRightBound);
721
+ var newActiveCell = {
722
+ columnIndex: columnIndex,
723
+ rowIndex: activeCell.rowIndex,
724
+ };
725
+ handleSetActiveCell(sheetId, newActiveCell, false);
726
+ /* Scroll to the new row */
727
+ scrollToCell({ columnIndex: columnIndex }, grid_4.Align.end);
728
+ }, [
729
+ scrollToCell,
730
+ getViewPort,
731
+ handleSetActiveCell,
732
+ sheetId,
733
+ activeCell,
734
+ selectionRightBound,
735
+ ]);
736
+ // Page left
737
+ var pageLeft = (0, react_1.useCallback)(function () {
738
+ if (!activeCell)
739
+ return;
740
+ var _a = getViewPort(), visibleColumnStartIndex = _a.visibleColumnStartIndex, visibleColumnStopIndex = _a.visibleColumnStopIndex;
741
+ var pageSize = visibleColumnStopIndex - visibleColumnStartIndex;
742
+ var columnIndex = Math.max(activeCell.columnIndex - pageSize, selectionLeftBound);
743
+ var newActiveCell = {
744
+ columnIndex: columnIndex,
745
+ rowIndex: activeCell.rowIndex,
746
+ };
747
+ handleSetActiveCell(sheetId, newActiveCell, false);
748
+ /* Scroll to the new row */
749
+ scrollToCell({ columnIndex: columnIndex }, grid_4.Align.end);
750
+ }, [
751
+ scrollToCell,
752
+ getViewPort,
753
+ handleSetActiveCell,
754
+ sheetId,
755
+ activeCell,
756
+ selectionLeftBound,
757
+ ]);
758
+ /**
759
+ * Triggers a new selection start
760
+ */
761
+ var handleMouseDown = (0, react_1.useCallback)(function (e) {
762
+ var coords = getCellCoordsFromOffset(e.clientX, e.clientY, true);
763
+ if (!coords)
764
+ return;
765
+ /* Check if its context menu click */
766
+ var isContextMenuClick = e.button === grid_4.MouseButtonCodes.right ||
767
+ (e.button == grid_4.MouseButtonCodes.left && e.ctrlKey);
768
+ if (isContextMenuClick &&
769
+ !isRowHeader(coords.columnIndex) &&
770
+ !isColumnHeader(coords.rowIndex)) {
771
+ var cellIndex = cellIndexInSelection(coords, selections, selectionLeftBound, selectionTopBound);
772
+ if (cellIndex !== -1)
773
+ return;
774
+ }
775
+ var isCtrlKey = e.ctrlKey;
776
+ var isShiftKey = e.shiftKey;
777
+ var isMetaKey = e.metaKey || isCtrlKey;
778
+ var allowMultiple = isMetaKey;
779
+ var allowDeselect = allowDeselectSelection;
780
+ var hasSelections = selectionsRef.current.length > 0;
781
+ var isDeselecting = isMetaKey && allowDeselect;
782
+ if (!isContextMenuClick && selectionPolicy !== "single") {
783
+ document.addEventListener("mouseup", handleMouseUp);
784
+ document.addEventListener("mousemove", handleMouseMove);
785
+ }
786
+ /* Activate selection mode */
787
+ // Disable flag for context menu
788
+ if (!isContextMenuClick) {
789
+ isSelecting.current = true;
790
+ }
791
+ if ((mouseDownInterceptor === null || mouseDownInterceptor === void 0 ? void 0 : mouseDownInterceptor(e, coords, selectionStart, selectionEnd, modifySelection, appendSelection, clearSelections, selectAll)) === false) {
792
+ return;
793
+ }
794
+ /* Shift key */
795
+ if (isShiftKey) {
796
+ modifySelection(coords);
797
+ return;
798
+ }
799
+ /* Is the current cell same as active cell */
800
+ var isSameAsActiveCell = (0, grid_4.isEqualCells)(coords, activeCell);
801
+ /* Command or Control key */
802
+ if (activeCell && allowMultiple) {
803
+ /**
804
+ * User is adding activeCell to selection
805
+ *
806
+ * 1. User is selecting and not de-selecting
807
+ * 2. User has not made any selection
808
+ * 3. Trying to add active cell to selection
809
+ */
810
+ if (isSameAsActiveCell && (!isDeselecting || !hasSelections)) {
811
+ return;
812
+ }
813
+ /**
814
+ * User is manually trying to select multiple selections,
815
+ * So add the current active cell to the list
816
+ */
817
+ if (isMetaKey && !hasSelections && !formulaMode) {
818
+ appendSelection(activeCell);
819
+ }
820
+ /**
821
+ * Check if this cell has already been selected (only for manual deselect)
822
+ * Remove it from selection
823
+ *
824
+ * Future enhancements -> Split selection, so that 1 cell can be removed from range
825
+ */
826
+ if (isMetaKey && allowDeselect) {
827
+ var cellIndex = cellIndexInSelection(coords, selections, selectionLeftBound, selectionTopBound);
828
+ if (cellIndex !== -1) {
829
+ var newSelection_1 = removeSelectionByIndex(cellIndex);
830
+ var nextActiveCell = getPossibleActiveCellFromSelections(newSelection_1);
831
+ if (nextActiveCell !== null) {
832
+ onChangeActiveCell === null || onChangeActiveCell === void 0 ? void 0 : onChangeActiveCell(sheetId, nextActiveCell);
833
+ }
834
+ if (newSelection_1.length === 1 &&
835
+ cellEqualsSelection(nextActiveCell, newSelection_1)) {
836
+ /* Since we only have 1 cell, lets clear the selections and only keep activeCell */
837
+ clearSelections();
838
+ }
839
+ return;
840
+ }
841
+ }
842
+ /**
843
+ * TODO
844
+ * 1. Ability to remove selection
845
+ * 2. Ability to remove from selection area
846
+ * 3. Ability to switch activeCell if its part of removed selection
847
+ */
848
+ /**
849
+ * Multiple calls to appendSelection causes
850
+ * stale state issues, since we dont use a
851
+ * state(prev => newState) approach anymore
852
+ *
853
+ * Scheduling is required
854
+ */
855
+ (0, scheduler_1.scheduleImmediatePriorityCallback)(function () {
856
+ appendSelection(coords);
857
+ });
858
+ return;
859
+ }
860
+ /* Trigger new selection */
861
+ /**
862
+ * Scroll to the selected cell
863
+ */
864
+ if (alwaysScrollToActiveCell) {
865
+ scrollToCell(coords);
866
+ }
867
+ /* Create a new selection */
868
+ newSelection(coords);
869
+ }, [
870
+ sheetId,
871
+ activeCell,
872
+ selections,
873
+ selectionPolicy,
874
+ allowDeselectSelection,
875
+ alwaysScrollToActiveCell,
876
+ isRowHeader,
877
+ isColumnHeader,
878
+ appendSelection,
879
+ clearSelections,
880
+ handleMouseMove,
881
+ handleMouseUp,
882
+ modifySelection,
883
+ mouseDownInterceptor,
884
+ newSelection,
885
+ onChangeActiveCell,
886
+ removeSelectionByIndex,
887
+ selectionLeftBound,
888
+ selectionTopBound,
889
+ getCellCoordsFromOffset,
890
+ scrollToCell,
891
+ selectAll,
892
+ formulaMode,
893
+ ]);
894
+ // Keydown handler
895
+ var handleKeyDown = (0, react_1.useCallback)(function (e) {
896
+ var _a, _b;
897
+ var nativeEvent = "nativeEvent" in e ? e.nativeEvent : e;
898
+ var isShiftKey = nativeEvent.shiftKey;
899
+ var isAltKey = nativeEvent.altKey;
900
+ var isMetaKey = nativeEvent.ctrlKey || nativeEvent.metaKey;
901
+ // TODO ctrl + space
902
+ // Ignore alt
903
+ if (isAltKey) {
904
+ return;
905
+ }
906
+ switch (nativeEvent.key) {
907
+ case "ArrowRight":
908
+ keyNavigate(grid_4.Direction.Right, isShiftKey, isMetaKey);
909
+ e.preventDefault();
910
+ break;
911
+ case "ArrowLeft":
912
+ keyNavigate(grid_4.Direction.Left, isShiftKey, isMetaKey);
913
+ e.preventDefault();
914
+ break;
915
+ // Up
916
+ case "ArrowUp":
917
+ keyNavigate(grid_4.Direction.Up, isShiftKey, isMetaKey);
918
+ e.preventDefault();
919
+ break;
920
+ case "ArrowDown":
921
+ keyNavigate(grid_4.Direction.Down, isShiftKey, isMetaKey);
922
+ e.preventDefault();
923
+ break;
924
+ case "a":
925
+ if (isMetaKey) {
926
+ selectAllBoundedCells();
927
+ e.preventDefault();
928
+ }
929
+ break;
930
+ case "Home":
931
+ if (isMetaKey) {
932
+ selectFirstCellInSheet();
933
+ }
934
+ else {
935
+ selectFirstCellInRow();
936
+ }
937
+ break;
938
+ case "End":
939
+ if (isMetaKey) {
940
+ selectLastCellInSheet();
941
+ }
942
+ else {
943
+ selectLastCellInRow();
944
+ }
945
+ break;
946
+ case "Backspace":
947
+ if (isMetaKey)
948
+ scrollToActiveCell();
949
+ break;
950
+ case " ":
951
+ if (isMetaKey && isShiftKey) {
952
+ selectAllBoundedCells();
953
+ }
954
+ else if (isMetaKey) {
955
+ selectColumn((_a = selectionEnd.current) === null || _a === void 0 ? void 0 : _a.columnIndex);
956
+ }
957
+ else if (isShiftKey) {
958
+ selectRow((_b = selectionEnd.current) === null || _b === void 0 ? void 0 : _b.rowIndex);
959
+ }
960
+ break;
961
+ // Add support for cycling multiple selections
962
+ case "Enter":
963
+ if (selections.length && activeCell) {
964
+ var range = selections[selections.length - 1].range;
965
+ var activeCellBounds = getCellBounds(activeCell);
966
+ var direction = isShiftKey ? grid_4.Direction.Up : grid_4.Direction.Down;
967
+ var nextCell = (0, grid_4.findNextCellWithinBounds)(activeCellBounds, range, direction);
968
+ if (nextCell) {
969
+ onChangeActiveCell === null || onChangeActiveCell === void 0 ? void 0 : onChangeActiveCell(sheetId, nextCell);
970
+ scrollToCell(nextCell);
971
+ }
972
+ }
973
+ else if (enableSelectOnEnterKey) {
974
+ if (isShiftKey) {
975
+ keyNavigate(grid_4.Direction.Up);
976
+ }
977
+ else {
978
+ keyNavigate(grid_4.Direction.Down);
979
+ }
980
+ }
981
+ break;
982
+ case "Tab":
983
+ /* Cycle through the selections if selections.length > 0 */
984
+ if (selections.length && activeCell) {
985
+ var range = selections[selections.length - 1].range;
986
+ var activeCellBounds = getCellBounds(activeCell);
987
+ var direction = isShiftKey ? grid_4.Direction.Left : grid_4.Direction.Right;
988
+ var nextCell = (0, grid_4.findNextCellWithinBounds)(activeCellBounds, range, direction);
989
+ if (nextCell) {
990
+ onChangeActiveCell === null || onChangeActiveCell === void 0 ? void 0 : onChangeActiveCell(sheetId, nextCell);
991
+ scrollToCell(nextCell);
992
+ }
993
+ }
994
+ else {
995
+ if (isShiftKey) {
996
+ keyNavigate(grid_4.Direction.Left);
997
+ }
998
+ else {
999
+ keyNavigate(grid_4.Direction.Right);
1000
+ }
1001
+ }
1002
+ e.preventDefault();
1003
+ break;
1004
+ case "PageDown":
1005
+ // Ctrl + PageDown => Select next sheet
1006
+ if (!isMetaKey) {
1007
+ if (isAltKey) {
1008
+ pageRight();
1009
+ }
1010
+ else
1011
+ pageDown();
1012
+ }
1013
+ break;
1014
+ case "PageUp":
1015
+ // Ctrl + PageDown => Select previous sheet
1016
+ if (!isMetaKey) {
1017
+ if (isAltKey) {
1018
+ pageLeft();
1019
+ }
1020
+ else
1021
+ pageUp();
1022
+ }
1023
+ break;
1024
+ }
1025
+ }, [
1026
+ sheetId,
1027
+ activeCell,
1028
+ selections,
1029
+ keyNavigate,
1030
+ onChangeActiveCell,
1031
+ pageDown,
1032
+ pageLeft,
1033
+ pageRight,
1034
+ pageUp,
1035
+ scrollToActiveCell,
1036
+ selectAllBoundedCells,
1037
+ selectColumn,
1038
+ selectLastCellInRow,
1039
+ selectRow,
1040
+ selectFirstCellInRow,
1041
+ getCellBounds,
1042
+ scrollToCell,
1043
+ selectFirstCellInSheet,
1044
+ selectLastCellInSheet,
1045
+ enableSelectOnEnterKey,
1046
+ ]);
1047
+ /**
1048
+ * TODO
1049
+ * 1. Fill does not extend to merged cells
1050
+ */
1051
+ var handleFillMouseMove = (0, react_1.useCallback)(function (e) {
1052
+ /* Exit if user is not in selection mode */
1053
+ if (!isFilling.current || !activeCellRef.current)
1054
+ return;
1055
+ var coords = getCellCoordsFromOffset(e.clientX, e.clientY, false);
1056
+ if (!coords)
1057
+ return;
1058
+ var selections = selectionsRef.current;
1059
+ var range = selectionFromStartEnd(activeCellRef.current, coords);
1060
+ var hasSelections = selections.length > 0;
1061
+ var activeCellBounds = hasSelections
1062
+ ? selections[selections.length - 1].range
1063
+ : getCellBounds(activeCellRef.current);
1064
+ if (!range)
1065
+ return;
1066
+ var direction = range.startRowIndex < activeCellBounds.startRowIndex
1067
+ ? grid_4.Direction.Up
1068
+ : range.endRowIndex > activeCellBounds.endRowIndex
1069
+ ? grid_4.Direction.Down
1070
+ : range.endColumnIndex > activeCellBounds.endColumnIndex
1071
+ ? grid_4.Direction.Right
1072
+ : grid_4.Direction.Left;
1073
+ if (direction === grid_4.Direction.Right) {
1074
+ range = tslib_1.__assign(tslib_1.__assign({}, activeCellBounds), { endColumnIndex: Math.min(selectionRightBound, range.endColumnIndex) });
1075
+ }
1076
+ if (direction === grid_4.Direction.Up) {
1077
+ range = tslib_1.__assign(tslib_1.__assign({}, activeCellBounds), { startRowIndex: Math.max(selectionTopBound, range.startRowIndex) });
1078
+ }
1079
+ if (direction === grid_4.Direction.Left) {
1080
+ range = tslib_1.__assign(tslib_1.__assign({}, activeCellBounds), { startColumnIndex: Math.max(selectionLeftBound, range.startColumnIndex) });
1081
+ }
1082
+ if (direction === grid_4.Direction.Down) {
1083
+ range = tslib_1.__assign(tslib_1.__assign({}, activeCellBounds), { endRowIndex: Math.min(selectionBottomBound, range.endRowIndex) });
1084
+ }
1085
+ /**
1086
+ * If user moves back to the same selection, clear
1087
+ */
1088
+ if (hasSelections &&
1089
+ boundsSubsetOfSelection(range, selections[0].range)) {
1090
+ setFillSelection(undefined);
1091
+ return;
1092
+ }
1093
+ var newFillSelection = { range: range };
1094
+ setFillSelection(newFillSelection);
1095
+ scrollToCell(coords);
1096
+ }, [
1097
+ getCellCoordsFromOffset,
1098
+ scrollToCell,
1099
+ getCellBounds,
1100
+ selectionBottomBound,
1101
+ selectionFromStartEnd,
1102
+ selectionLeftBound,
1103
+ selectionRightBound,
1104
+ selectionTopBound,
1105
+ ]);
1106
+ /**
1107
+ * When user releases mouse on the fill handle
1108
+ */
1109
+ var handleFillMouseUp = (0, react_1.useCallback)(function () {
1110
+ isFilling.current = false;
1111
+ /* Remove listener */
1112
+ document.removeEventListener("mousemove", handleFillMouseMove);
1113
+ document.removeEventListener("mouseup", handleFillMouseUp);
1114
+ /* Exit early */
1115
+ if (!activeCellRef.current) {
1116
+ return;
1117
+ }
1118
+ // Active fill selection
1119
+ var fillSelection = fillSelectionRef.current;
1120
+ /* Update last selection */
1121
+ setFillSelection(undefined);
1122
+ /* Use ref, as we are binding to document */
1123
+ var selections = selectionsRef.current;
1124
+ var activeCell = activeCellRef.current;
1125
+ if (!activeCell || !fillSelection) {
1126
+ return;
1127
+ }
1128
+ var newBounds = fillSelection.range;
1129
+ if (!newBounds ||
1130
+ // If the new selection is same as activecell, ignore, since
1131
+ // user has not any action
1132
+ (0, grid_4.isAreasEqual)((0, grid_2.cellToArea)(activeCellRef.current), newBounds)) {
1133
+ return;
1134
+ }
1135
+ /* Focus on the grid */
1136
+ focus();
1137
+ /* Callback */
1138
+ onFill === null || onFill === void 0 ? void 0 : onFill(sheetId, activeCell, fillSelection, selections);
1139
+ /* Modify last selection */
1140
+ var curSelections = selectionsRef.current;
1141
+ var len = curSelections.length;
1142
+ var newSelections = len
1143
+ ? curSelections.map(function (sel, i) {
1144
+ if (len - 1 === i) {
1145
+ return tslib_1.__assign(tslib_1.__assign({}, sel), { range: newBounds });
1146
+ }
1147
+ return sel;
1148
+ })
1149
+ : [{ range: newBounds }];
1150
+ onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(newSelections);
1151
+ }, [focus, handleFillMouseMove, onChangeSelections, onFill, sheetId]);
1152
+ var handleFillMouseDown = (0, react_1.useCallback)(function (e) {
1153
+ e.stopPropagation();
1154
+ e.preventDefault();
1155
+ isFilling.current = true;
1156
+ document.addEventListener("mousemove", handleFillMouseMove);
1157
+ document.addEventListener("mouseup", handleFillMouseUp);
1158
+ }, [handleFillMouseMove, handleFillMouseUp]);
1159
+ /**
1160
+ * Remove the last selection from state
1161
+ */
1162
+ var handleClearLastSelection = (0, react_1.useCallback)(function () {
1163
+ var curSelections = selectionsRef.current;
1164
+ onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(curSelections.slice(0, -1));
1165
+ }, [onChangeSelections]);
1166
+ /**
1167
+ * Ond drag move
1168
+ */
1169
+ var handleSelectionMouseMove = (0, react_1.useCallback)(function (e) {
1170
+ var _a;
1171
+ var coords = getCellCoordsFromOffset(e.clientX, e.clientY, false);
1172
+ if (!coords) {
1173
+ return;
1174
+ }
1175
+ if (!initialDraggedSelection.current || !initialDraggedCell.current) {
1176
+ return;
1177
+ }
1178
+ /**
1179
+ * Skip if user is moving the selection
1180
+ * to the same starting position
1181
+ */
1182
+ if (!hasUserMovedSelection.current &&
1183
+ (0, grid_4.isEqualCells)(initialDraggedCell.current, coords)) {
1184
+ return;
1185
+ }
1186
+ var sel = (0, grid_4.newSelectionFromDrag)(initialDraggedSelection.current, initialDraggedCell.current, coords, selectionTopBound, selectionLeftBound, rowCount, columnCount);
1187
+ if ((0, grid_4.isAreasEqual)((_a = draggedSelection.current) === null || _a === void 0 ? void 0 : _a.range, sel.range)) {
1188
+ return;
1189
+ }
1190
+ // Not required
1191
+ // sel = { bounds : extendAreaToMergedCells(sel.bounds, mergedCellsRef.current) }
1192
+ draggedSelection.current = sel;
1193
+ // User has now moved the selection,
1194
+ hasUserMovedSelection.current = true;
1195
+ /* Scroll to the cell */
1196
+ scrollToCell(coords);
1197
+ /* Re-render */
1198
+ forceRender();
1199
+ }, [
1200
+ rowCount,
1201
+ columnCount,
1202
+ getCellCoordsFromOffset,
1203
+ scrollToCell,
1204
+ selectionLeftBound,
1205
+ selectionTopBound,
1206
+ ]);
1207
+ /**
1208
+ * When drag/drop is complete
1209
+ */
1210
+ var handleSelectionMouseUp = (0, react_1.useCallback)(function () {
1211
+ var fromSelection = initialDraggedSelection.current;
1212
+ var toSelection = draggedSelection.current;
1213
+ /**
1214
+ * If the from and to selection area
1215
+ */
1216
+ if (toSelection &&
1217
+ fromSelection &&
1218
+ !(0, grid_4.isAreasEqual)(toSelection.range, fromSelection.range)) {
1219
+ /* Select the first cell in the selection area */
1220
+ var coords = {
1221
+ rowIndex: toSelection.range.startRowIndex,
1222
+ columnIndex: toSelection.range.startColumnIndex,
1223
+ };
1224
+ /* Pick the first cell as activee cell */
1225
+ onChangeActiveCell === null || onChangeActiveCell === void 0 ? void 0 : onChangeActiveCell(sheetId, coords);
1226
+ /* Update selection start */
1227
+ selectionStart.current = coords;
1228
+ if ((0, grid_4.selectionSpansCells)(toSelection === null || toSelection === void 0 ? void 0 : toSelection.range)) {
1229
+ var curSelections = selectionsRef.current;
1230
+ var newSelections = curSelections.map(function (cur, index) {
1231
+ if (index === draggedSelectionIndex.current) {
1232
+ return toSelection;
1233
+ }
1234
+ return cur;
1235
+ });
1236
+ onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(newSelections);
1237
+ /* Update selection end */
1238
+ selectionEnd.current = {
1239
+ rowIndex: toSelection.range.endRowIndex,
1240
+ columnIndex: toSelection.range.endColumnIndex,
1241
+ };
1242
+ }
1243
+ }
1244
+ // Callback
1245
+ if (fromSelection &&
1246
+ toSelection &&
1247
+ !(0, grid_4.isAreasEqual)(fromSelection.range, toSelection.range)) {
1248
+ onMoveSelection === null || onMoveSelection === void 0 ? void 0 : onMoveSelection(sheetId, fromSelection, toSelection);
1249
+ }
1250
+ /* Focus on the grid */
1251
+ focus();
1252
+ /* Reset all references */
1253
+ isDragging.current = false;
1254
+ draggedSelection.current = void 0;
1255
+ draggedSelectionIndex.current = void 0;
1256
+ hasUserMovedSelection.current = false;
1257
+ /* Remove event handlers */
1258
+ document.removeEventListener("mouseup", handleSelectionMouseUp);
1259
+ document.removeEventListener("mousemove", handleSelectionMouseMove);
1260
+ /* Force render */
1261
+ forceRender();
1262
+ }, [
1263
+ sheetId,
1264
+ onMoveSelection,
1265
+ handleSelectionMouseMove,
1266
+ focus,
1267
+ onChangeActiveCell,
1268
+ onChangeSelections,
1269
+ ]);
1270
+ /**
1271
+ * When user mouse downs on selection
1272
+ */
1273
+ var handleSelectionMouseDown = (0, react_1.useCallback)(function (e, activeCell, selection, index, shouldClamp) {
1274
+ if (shouldClamp === void 0) { shouldClamp = true; }
1275
+ if (e.isDefaultPrevented()) {
1276
+ return;
1277
+ }
1278
+ var isContextMenu = e.button === grid_4.MouseButtonCodes.right || e.ctrlKey;
1279
+ if (isContextMenu) {
1280
+ return;
1281
+ }
1282
+ var coords = getCellCoordsFromOffset(e.nativeEvent.clientX, e.nativeEvent.clientY, false);
1283
+ if (!coords) {
1284
+ return;
1285
+ }
1286
+ /* Initial cell that is selected by user */
1287
+ initialDraggedCell.current = coords;
1288
+ /* Make sure the coords do not extend selection bounds */
1289
+ if (shouldClamp) {
1290
+ coords = (0, grid_4.clampCellCoords)(coords, activeCell, selection);
1291
+ }
1292
+ /* Set selection */
1293
+ if (activeCell) {
1294
+ initialDraggedSelection.current = draggedSelection.current = {
1295
+ range: getCellBounds(activeCell),
1296
+ };
1297
+ }
1298
+ if (selection) {
1299
+ initialDraggedSelection.current = draggedSelection.current =
1300
+ selection;
1301
+ draggedSelectionIndex.current = index;
1302
+ }
1303
+ /* Set dragging flag */
1304
+ isDragging.current = true;
1305
+ /* Listen to mousemove and mousedown events */
1306
+ document.addEventListener("mouseup", handleSelectionMouseUp);
1307
+ document.addEventListener("mousemove", handleSelectionMouseMove);
1308
+ /* Force a re-render */
1309
+ forceRender();
1310
+ }, [
1311
+ getCellCoordsFromOffset,
1312
+ getCellBounds,
1313
+ handleSelectionMouseMove,
1314
+ handleSelectionMouseUp,
1315
+ ]);
1316
+ /**
1317
+ * Set selection start and end reference
1318
+ */
1319
+ var updateSelectionStartEndReference = (0, react_1.useCallback)(function (cell, selections) {
1320
+ var lastSelection = selections === null || selections === void 0 ? void 0 : selections[selections.length - 1];
1321
+ if (lastSelection) {
1322
+ selectionStart.current = {
1323
+ rowIndex: lastSelection.range.startRowIndex,
1324
+ columnIndex: lastSelection.range.startColumnIndex,
1325
+ };
1326
+ selectionEnd.current = {
1327
+ rowIndex: lastSelection.range.endRowIndex,
1328
+ columnIndex: lastSelection.range.endColumnIndex,
1329
+ };
1330
+ }
1331
+ else if (cell) {
1332
+ selectionStart.current = cell;
1333
+ selectionEnd.current = cell;
1334
+ }
1335
+ }, []);
1336
+ /**
1337
+ * Find contentful in an area
1338
+ */
1339
+ var findLastContentfulIndex = (0, react_1.useCallback)(function (sheetId, startCell, direction) {
1340
+ var isVertical = direction === grid_4.Direction.Up || direction === grid_4.Direction.Down;
1341
+ var hiddenFn = isVertical ? isHiddenRow : isHiddenColumn;
1342
+ var selectionBound = direction === grid_4.Direction.Up
1343
+ ? selectionTopBound
1344
+ : direction === grid_4.Direction.Down
1345
+ ? selectionBottomBound
1346
+ : direction === grid_4.Direction.Left
1347
+ ? selectionLeftBound
1348
+ : selectionRightBound;
1349
+ var nextCell = direction === grid_4.Direction.Up
1350
+ ? tslib_1.__assign(tslib_1.__assign({}, startCell), { rowIndex: startCell.rowIndex - 1 }) : direction === grid_4.Direction.Down
1351
+ ? tslib_1.__assign(tslib_1.__assign({}, startCell), { rowIndex: startCell.rowIndex + 1 }) : direction === grid_4.Direction.Left
1352
+ ? tslib_1.__assign(tslib_1.__assign({}, startCell), { columnIndex: startCell.columnIndex - 1 }) : tslib_1.__assign(tslib_1.__assign({}, startCell), { columnIndex: startCell.columnIndex + 1 });
1353
+ if ((0, grid_1.isNull)(getValue(sheetId, nextCell.rowIndex, nextCell.columnIndex))) {
1354
+ return;
1355
+ }
1356
+ return (0, grid_4.findNextCellInDataRegion)(sheetId, startCell, getValue, hiddenFn, direction, selectionBound);
1357
+ }, [
1358
+ getValue,
1359
+ isHiddenRow,
1360
+ isHiddenColumn,
1361
+ selectionBottomBound,
1362
+ selectionRightBound,
1363
+ selectionTopBound,
1364
+ selectionLeftBound,
1365
+ ]);
1366
+ var getContentfulGridRangeAroundCell = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function (sheetId, startCell) {
1367
+ var _a, _b, _c, _d;
1368
+ return {
1369
+ startRowIndex: (_a = findLastContentfulIndex(sheetId, startCell, grid_4.Direction.Up)) !== null && _a !== void 0 ? _a : startCell.rowIndex,
1370
+ endRowIndex: (_b = findLastContentfulIndex(sheetId, startCell, grid_4.Direction.Down)) !== null && _b !== void 0 ? _b : startCell.rowIndex,
1371
+ startColumnIndex: (_c = findLastContentfulIndex(sheetId, startCell, grid_4.Direction.Left)) !== null && _c !== void 0 ? _c : startCell.columnIndex,
1372
+ endColumnIndex: (_d = findLastContentfulIndex(sheetId, startCell, grid_4.Direction.Right)) !== null && _d !== void 0 ? _d : startCell.columnIndex,
1373
+ };
1374
+ }, [findLastContentfulIndex]));
1375
+ // Pointer down
1376
+ var startTimeRef = (0, react_1.useRef)(0);
1377
+ var startPosRef = (0, react_1.useRef)({ x: 0, y: 0 });
1378
+ var onPointerUp = (0, react_1.useCallback)(function (event) {
1379
+ var endTime = Date.now();
1380
+ var maxDuration = 200;
1381
+ var maxDistance = 10;
1382
+ var clientX = event.clientX, clientY = event.clientY;
1383
+ var timeDiff = endTime - startTimeRef.current;
1384
+ var distanceDiff = Math.sqrt(Math.pow(clientX - startPosRef.current.x, 2) +
1385
+ Math.pow(clientY - startPosRef.current.y, 2));
1386
+ if (timeDiff <= maxDuration && distanceDiff <= maxDistance) {
1387
+ handleMouseDown(event);
1388
+ handleMouseUp();
1389
+ }
1390
+ document.removeEventListener("pointerup", onPointerUp);
1391
+ }, [handleMouseDown, handleMouseUp]);
1392
+ var onPointerDown = (0, react_1.useCallback)(function (event) {
1393
+ startTimeRef.current = Date.now();
1394
+ startPosRef.current = { x: event.clientX, y: event.clientY };
1395
+ document.addEventListener("pointerup", onPointerUp);
1396
+ }, [onPointerUp]);
1397
+ // Add a ref. makeEditable renders way too often
1398
+ var handleKeyDownRef = (0, use_callback_ref_1.useCallbackRef)(handleKeyDown);
1399
+ /**
1400
+ * Double-click fill handle - Excel standard behavior:
1401
+ * 1. Look at adjacent column (left first, then right if empty)
1402
+ * 2. Find last row with contiguous data in that column
1403
+ * 3. Fill down to match that extent
1404
+ */
1405
+ var handleFillDoubleClick = (0, react_1.useCallback)(function (e) {
1406
+ e.stopPropagation();
1407
+ e.preventDefault();
1408
+ var activeCell = activeCellRef.current;
1409
+ if (!activeCell)
1410
+ return;
1411
+ var selections = selectionsRef.current;
1412
+ var hasSelections = selections.length > 0;
1413
+ // Get the current selection bounds or active cell bounds
1414
+ var currentBounds = hasSelections
1415
+ ? selections[selections.length - 1].range
1416
+ : getCellBounds(activeCell);
1417
+ var startRow = currentBounds.startRowIndex;
1418
+ var endRow = currentBounds.endRowIndex;
1419
+ var leftCol = currentBounds.startColumnIndex;
1420
+ var rightCol = currentBounds.endColumnIndex;
1421
+ // Excel behavior:
1422
+ // 1. Check if there's any data in adjacent columns (left or right)
1423
+ // 2. If yes, fill down to the sheet's overall data extent (last row with any data)
1424
+ var hasAdjacentData = false;
1425
+ // Check for data in left adjacent column
1426
+ if (leftCol > selectionLeftBound) {
1427
+ var leftValue = getValue(sheetId, startRow, leftCol - 1);
1428
+ if (!(0, grid_1.isNull)(leftValue)) {
1429
+ hasAdjacentData = true;
1430
+ }
1431
+ }
1432
+ // Check for data in right adjacent column
1433
+ if (!hasAdjacentData && rightCol < selectionRightBound) {
1434
+ var rightValue = getValue(sheetId, startRow, rightCol + 1);
1435
+ if (!(0, grid_1.isNull)(rightValue)) {
1436
+ hasAdjacentData = true;
1437
+ }
1438
+ }
1439
+ // No adjacent data to reference
1440
+ if (!hasAdjacentData)
1441
+ return;
1442
+ // Use the sheet's data extent as the target row
1443
+ // This matches Excel behavior where it fills to the last row with any data
1444
+ var dataRowCount = getDataRowCount === null || getDataRowCount === void 0 ? void 0 : getDataRowCount(sheetId);
1445
+ var targetRow = dataRowCount !== undefined
1446
+ ? Math.min(dataRowCount - 1, selectionBottomBound)
1447
+ : endRow;
1448
+ // No additional rows to fill
1449
+ if (targetRow <= endRow)
1450
+ return;
1451
+ // Create fill selection
1452
+ var fillRange = {
1453
+ startRowIndex: startRow,
1454
+ startColumnIndex: leftCol,
1455
+ endRowIndex: targetRow,
1456
+ endColumnIndex: rightCol,
1457
+ };
1458
+ var newFillSelection = { range: fillRange };
1459
+ // Focus on the grid
1460
+ focus();
1461
+ // Callback to perform the fill
1462
+ onFill === null || onFill === void 0 ? void 0 : onFill(sheetId, activeCell, newFillSelection, selections);
1463
+ // Update selection to the new range
1464
+ var curSelections = selectionsRef.current;
1465
+ var len = curSelections.length;
1466
+ var newSelections = len
1467
+ ? curSelections.map(function (sel, i) {
1468
+ if (len - 1 === i) {
1469
+ return tslib_1.__assign(tslib_1.__assign({}, sel), { range: fillRange });
1470
+ }
1471
+ return sel;
1472
+ })
1473
+ : [{ range: fillRange }];
1474
+ onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(newSelections);
1475
+ }, [
1476
+ sheetId,
1477
+ focus,
1478
+ onFill,
1479
+ onChangeSelections,
1480
+ getValue,
1481
+ getCellBounds,
1482
+ selectionLeftBound,
1483
+ selectionRightBound,
1484
+ selectionBottomBound,
1485
+ getDataRowCount,
1486
+ ]);
1487
+ return {
1488
+ isDragging: isDragging.current,
1489
+ draggedSelection: draggedSelection.current,
1490
+ initialDraggedSelection: initialDraggedSelection.current,
1491
+ isFilling: isFilling.current,
1492
+ isSelectionInProgress: isSelecting.current,
1493
+ onSelectionMouseDown: handleSelectionMouseDown,
1494
+ onPointerDown: isTouchDevice ? onPointerDown : undefined,
1495
+ onMouseDown: handleMouseDown,
1496
+ onKeyDown: handleKeyDownRef,
1497
+ newSelection: newSelection,
1498
+ onFillHandleMouseDown: handleFillMouseDown,
1499
+ onFillHandleDoubleClick: handleFillDoubleClick,
1500
+ fillSelection: fillSelection,
1501
+ clearLastSelection: handleClearLastSelection,
1502
+ modifySelection: modifySelection,
1503
+ selectAll: selectAll,
1504
+ appendSelection: appendSelection,
1505
+ clearSelections: clearSelections,
1506
+ scrollToActiveCell: scrollToActiveCell,
1507
+ setActiveCell: handleSetActiveCell,
1508
+ setActiveCellState: onChangeActiveCell,
1509
+ updateSelectionStartEndReference: updateSelectionStartEndReference,
1510
+ selectionFromStartEnd: selectionFromStartEnd,
1511
+ selectColumn: selectEntireColumn,
1512
+ getContentfulGridRangeAroundCell: getContentfulGridRangeAroundCell,
1513
+ };
1514
+ };
1515
+ exports.useSelection = useSelection;