@rowsncolumns/spreadsheet 10.3.0 → 10.4.0

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 (484) hide show
  1. package/dist/cjs/api/banded-ranges.d.ts.map +1 -1
  2. package/dist/cjs/api/banded-ranges.js +40 -14
  3. package/dist/cjs/api/calculated-column-fill.d.ts +43 -0
  4. package/dist/cjs/api/calculated-column-fill.d.ts.map +1 -0
  5. package/dist/cjs/api/calculated-column-fill.js +16 -0
  6. package/dist/cjs/api/chart-sheet.d.ts +8 -0
  7. package/dist/cjs/api/chart-sheet.d.ts.map +1 -0
  8. package/dist/cjs/api/chart-sheet.js +20 -0
  9. package/dist/cjs/api/chart-source-ranges.d.ts +64 -0
  10. package/dist/cjs/api/chart-source-ranges.d.ts.map +1 -0
  11. package/dist/cjs/api/chart-source-ranges.js +175 -0
  12. package/dist/cjs/api/selections.d.ts +3 -3
  13. package/dist/cjs/api/selections.d.ts.map +1 -1
  14. package/dist/cjs/api/selections.js +28 -2
  15. package/dist/cjs/api/spreadsheet-api.d.ts +16 -3
  16. package/dist/cjs/api/spreadsheet-api.d.ts.map +1 -1
  17. package/dist/cjs/api/spreadsheet-api.js +22 -2
  18. package/dist/cjs/api/table-auto-expansion.d.ts +37 -0
  19. package/dist/cjs/api/table-auto-expansion.d.ts.map +1 -0
  20. package/dist/cjs/api/table-auto-expansion.js +16 -0
  21. package/dist/cjs/api/table.d.ts +49 -1
  22. package/dist/cjs/api/table.d.ts.map +1 -1
  23. package/dist/cjs/api/table.js +145 -1
  24. package/dist/cjs/api/validation.d.ts +26 -1
  25. package/dist/cjs/api/validation.d.ts.map +1 -1
  26. package/dist/cjs/api/validation.js +127 -9
  27. package/dist/cjs/atoms/calculated-column-fill.atom.d.ts +15 -0
  28. package/dist/cjs/atoms/calculated-column-fill.atom.d.ts.map +1 -0
  29. package/dist/cjs/atoms/calculated-column-fill.atom.js +18 -0
  30. package/dist/cjs/atoms/chart-actions.atom.d.ts +40 -0
  31. package/dist/cjs/atoms/chart-actions.atom.d.ts.map +1 -0
  32. package/dist/cjs/atoms/chart-actions.atom.js +66 -0
  33. package/dist/cjs/atoms/index.d.ts +5 -0
  34. package/dist/cjs/atoms/index.d.ts.map +1 -1
  35. package/dist/cjs/atoms/index.js +5 -0
  36. package/dist/cjs/atoms/move-chart-dialog.atom.d.ts +28 -0
  37. package/dist/cjs/atoms/move-chart-dialog.atom.d.ts.map +1 -0
  38. package/dist/cjs/atoms/move-chart-dialog.atom.js +34 -0
  39. package/dist/cjs/atoms/selected-chart-embed.atom.d.ts +9 -1
  40. package/dist/cjs/atoms/selected-chart-embed.atom.d.ts.map +1 -1
  41. package/dist/cjs/atoms/selected-chart-embed.atom.js +18 -1
  42. package/dist/cjs/atoms/selected-chart-series.atom.d.ts +24 -0
  43. package/dist/cjs/atoms/selected-chart-series.atom.d.ts.map +1 -0
  44. package/dist/cjs/atoms/selected-chart-series.atom.js +11 -0
  45. package/dist/cjs/atoms/sheet-context.atom.d.ts +2 -0
  46. package/dist/cjs/atoms/sheet-context.atom.d.ts.map +1 -1
  47. package/dist/cjs/atoms/sheet-context.atom.js +5 -2
  48. package/dist/cjs/atoms/sparkline-dialog.atom.d.ts +34 -0
  49. package/dist/cjs/atoms/sparkline-dialog.atom.d.ts.map +1 -0
  50. package/dist/cjs/atoms/sparkline-dialog.atom.js +30 -0
  51. package/dist/cjs/atoms/table-auto-expansion.atom.d.ts +14 -0
  52. package/dist/cjs/atoms/table-auto-expansion.atom.d.ts.map +1 -0
  53. package/dist/cjs/atoms/table-auto-expansion.atom.js +17 -0
  54. package/dist/cjs/components/calculated-column-smart-tag/index.d.ts +25 -0
  55. package/dist/cjs/components/calculated-column-smart-tag/index.d.ts.map +1 -0
  56. package/dist/cjs/components/calculated-column-smart-tag/index.js +31 -0
  57. package/dist/cjs/components/canvas-grid/index.d.ts.map +1 -1
  58. package/dist/cjs/components/canvas-grid/index.js +407 -77
  59. package/dist/cjs/components/canvas-grid/typings.d.ts +127 -14
  60. package/dist/cjs/components/canvas-grid/typings.d.ts.map +1 -1
  61. package/dist/cjs/components/cell/index.d.ts.map +1 -1
  62. package/dist/cjs/components/cell/index.js +3 -3
  63. package/dist/cjs/components/cell/typings.d.ts +13 -0
  64. package/dist/cjs/components/cell/typings.d.ts.map +1 -1
  65. package/dist/cjs/components/cell-filter/index.d.ts.map +1 -1
  66. package/dist/cjs/components/cell-filter/index.js +13 -2
  67. package/dist/cjs/components/cell-input/formula-bar-cell-input.d.ts.map +1 -1
  68. package/dist/cjs/components/cell-input/formula-bar-cell-input.js +4 -1
  69. package/dist/cjs/components/cell-structured/sparkline-math.d.ts +28 -5
  70. package/dist/cjs/components/cell-structured/sparkline-math.d.ts.map +1 -1
  71. package/dist/cjs/components/cell-structured/sparkline-math.js +93 -5
  72. package/dist/cjs/components/cell-structured/sparkline.d.ts +1 -1
  73. package/dist/cjs/components/cell-structured/sparkline.d.ts.map +1 -1
  74. package/dist/cjs/components/cell-structured/sparkline.js +3 -3
  75. package/dist/cjs/components/cell-structured/types.d.ts +1 -1
  76. package/dist/cjs/components/cell-structured/types.d.ts.map +1 -1
  77. package/dist/cjs/components/chart-sheet-view/index.d.ts +27 -0
  78. package/dist/cjs/components/chart-sheet-view/index.d.ts.map +1 -0
  79. package/dist/cjs/components/chart-sheet-view/index.js +35 -0
  80. package/dist/cjs/components/context-menu/embed-context-menu.d.ts +48 -0
  81. package/dist/cjs/components/context-menu/embed-context-menu.d.ts.map +1 -0
  82. package/dist/cjs/components/context-menu/embed-context-menu.js +123 -0
  83. package/dist/cjs/components/context-menu/index.d.ts +23 -2
  84. package/dist/cjs/components/context-menu/index.d.ts.map +1 -1
  85. package/dist/cjs/components/context-menu/index.js +217 -39
  86. package/dist/cjs/components/context-menu/total-row-function-menu.d.ts +33 -0
  87. package/dist/cjs/components/context-menu/total-row-function-menu.d.ts.map +1 -0
  88. package/dist/cjs/components/context-menu/total-row-function-menu.js +58 -0
  89. package/dist/cjs/components/context-menu/total-row-functions.d.ts +12 -12
  90. package/dist/cjs/components/context-menu/total-row-functions.d.ts.map +1 -1
  91. package/dist/cjs/components/context-menu/total-row-functions.js +39 -39
  92. package/dist/cjs/components/embeds/chart-component.d.ts +17 -0
  93. package/dist/cjs/components/embeds/chart-component.d.ts.map +1 -1
  94. package/dist/cjs/components/embeds/embed-draggable.d.ts +61 -4
  95. package/dist/cjs/components/embeds/embed-draggable.d.ts.map +1 -1
  96. package/dist/cjs/components/embeds/embed-draggable.js +218 -42
  97. package/dist/cjs/components/filter-box/date-tree.d.ts +28 -0
  98. package/dist/cjs/components/filter-box/date-tree.d.ts.map +1 -0
  99. package/dist/cjs/components/filter-box/date-tree.js +147 -0
  100. package/dist/cjs/components/filter-box/filter-by-condition.d.ts +14 -2
  101. package/dist/cjs/components/filter-box/filter-by-condition.d.ts.map +1 -1
  102. package/dist/cjs/components/filter-box/filter-by-condition.js +95 -19
  103. package/dist/cjs/components/filter-box/filter-by-value.d.ts.map +1 -1
  104. package/dist/cjs/components/filter-box/filter-by-value.js +126 -40
  105. package/dist/cjs/components/filter-box/index.d.ts +7 -1
  106. package/dist/cjs/components/filter-box/index.d.ts.map +1 -1
  107. package/dist/cjs/components/filter-box/index.js +102 -11
  108. package/dist/cjs/components/move-chart-dialog/index.d.ts +34 -0
  109. package/dist/cjs/components/move-chart-dialog/index.d.ts.map +1 -0
  110. package/dist/cjs/components/move-chart-dialog/index.js +96 -0
  111. package/dist/cjs/components/print-preview/page-block.d.ts +9 -1
  112. package/dist/cjs/components/print-preview/page-block.d.ts.map +1 -1
  113. package/dist/cjs/components/print-preview/page-block.js +28 -2
  114. package/dist/cjs/components/print-preview/print-preview-dialog.d.ts +8 -1
  115. package/dist/cjs/components/print-preview/print-preview-dialog.d.ts.map +1 -1
  116. package/dist/cjs/components/print-preview/print-preview-dialog.js +144 -3
  117. package/dist/cjs/components/print-preview/run-print.d.ts.map +1 -1
  118. package/dist/cjs/components/print-preview/run-print.js +19 -7
  119. package/dist/cjs/components/print-preview/use-page-layout.d.ts +47 -0
  120. package/dist/cjs/components/print-preview/use-page-layout.d.ts.map +1 -1
  121. package/dist/cjs/components/print-preview/use-page-layout.js +81 -7
  122. package/dist/cjs/components/resizer/index.d.ts.map +1 -1
  123. package/dist/cjs/components/resizer/index.js +10 -5
  124. package/dist/cjs/components/selection/index.d.ts +1 -1
  125. package/dist/cjs/components/selection/index.d.ts.map +1 -1
  126. package/dist/cjs/components/selection/index.js +6 -2
  127. package/dist/cjs/components/selection/types.d.ts +15 -0
  128. package/dist/cjs/components/selection/types.d.ts.map +1 -1
  129. package/dist/cjs/components/sheet-search/index.d.ts.map +1 -1
  130. package/dist/cjs/components/sheet-search/index.js +6 -2
  131. package/dist/cjs/components/sheet-tabs/index.d.ts.map +1 -1
  132. package/dist/cjs/components/sheet-tabs/index.js +2 -2
  133. package/dist/cjs/components/sheet-tabs/sheet-tab.d.ts +1 -1
  134. package/dist/cjs/components/sheet-tabs/sheet-tab.d.ts.map +1 -1
  135. package/dist/cjs/components/sheet-tabs/sheet-tab.js +3 -1
  136. package/dist/cjs/components/sparkline-dialog/index.d.ts +43 -0
  137. package/dist/cjs/components/sparkline-dialog/index.d.ts.map +1 -0
  138. package/dist/cjs/components/sparkline-dialog/index.js +127 -0
  139. package/dist/cjs/components/subtotal-dialog/index.d.ts.map +1 -1
  140. package/dist/cjs/components/subtotal-dialog/index.js +10 -1
  141. package/dist/cjs/components/table-auto-expansion-smart-tag/index.d.ts +24 -0
  142. package/dist/cjs/components/table-auto-expansion-smart-tag/index.d.ts.map +1 -0
  143. package/dist/cjs/components/table-auto-expansion-smart-tag/index.js +31 -0
  144. package/dist/cjs/components/toolbar/index.d.ts +1 -0
  145. package/dist/cjs/components/toolbar/index.d.ts.map +1 -1
  146. package/dist/cjs/components/toolbar/index.js +1 -0
  147. package/dist/cjs/components/toolbar/insert-menu.d.ts +2 -1
  148. package/dist/cjs/components/toolbar/insert-menu.d.ts.map +1 -1
  149. package/dist/cjs/components/toolbar/insert-menu.js +24 -1
  150. package/dist/cjs/components/toolbar/merge-cells-selector.d.ts +4 -1
  151. package/dist/cjs/components/toolbar/merge-cells-selector.d.ts.map +1 -1
  152. package/dist/cjs/components/toolbar/merge-cells-selector.js +11 -5
  153. package/dist/cjs/components/toolbar/sparkline-actions.d.ts +31 -0
  154. package/dist/cjs/components/toolbar/sparkline-actions.d.ts.map +1 -0
  155. package/dist/cjs/components/toolbar/sparkline-actions.js +273 -0
  156. package/dist/cjs/components/toolbar/table-actions.d.ts +9 -1
  157. package/dist/cjs/components/toolbar/table-actions.d.ts.map +1 -1
  158. package/dist/cjs/components/toolbar/table-actions.js +17 -7
  159. package/dist/cjs/components/toolbar/table-style-selector.d.ts +38 -2
  160. package/dist/cjs/components/toolbar/table-style-selector.d.ts.map +1 -1
  161. package/dist/cjs/components/toolbar/table-style-selector.js +241 -389
  162. package/dist/cjs/config.d.ts +2 -0
  163. package/dist/cjs/config.d.ts.map +1 -1
  164. package/dist/cjs/config.js +31 -1
  165. package/dist/cjs/helpers.d.ts +1 -1
  166. package/dist/cjs/helpers.d.ts.map +1 -1
  167. package/dist/cjs/helpers.js +13 -2
  168. package/dist/cjs/hooks/use-cell-renderer.d.ts +16 -1
  169. package/dist/cjs/hooks/use-cell-renderer.d.ts.map +1 -1
  170. package/dist/cjs/hooks/use-cell-renderer.js +20 -8
  171. package/dist/cjs/hooks/use-chart-clipboard.d.ts +55 -0
  172. package/dist/cjs/hooks/use-chart-clipboard.d.ts.map +1 -0
  173. package/dist/cjs/hooks/use-chart-clipboard.js +231 -0
  174. package/dist/cjs/hooks/use-chart-source-ranges.d.ts +27 -0
  175. package/dist/cjs/hooks/use-chart-source-ranges.d.ts.map +1 -0
  176. package/dist/cjs/hooks/use-chart-source-ranges.js +211 -0
  177. package/dist/cjs/hooks/use-context-setter.d.ts.map +1 -1
  178. package/dist/cjs/hooks/use-context-setter.js +3 -1
  179. package/dist/cjs/hooks/use-copy-paste-cut.d.ts.map +1 -1
  180. package/dist/cjs/hooks/use-copy-paste-cut.js +6 -3
  181. package/dist/cjs/hooks/use-editable.d.ts +9 -1
  182. package/dist/cjs/hooks/use-editable.d.ts.map +1 -1
  183. package/dist/cjs/hooks/use-editable.js +25 -1
  184. package/dist/cjs/hooks/use-embeds-charts.d.ts +64 -4
  185. package/dist/cjs/hooks/use-embeds-charts.d.ts.map +1 -1
  186. package/dist/cjs/hooks/use-embeds-charts.js +412 -41
  187. package/dist/cjs/hooks/use-grid-children.d.ts +2 -2
  188. package/dist/cjs/hooks/use-grid-children.d.ts.map +1 -1
  189. package/dist/cjs/hooks/use-grid-children.js +12 -6
  190. package/dist/cjs/hooks/use-header-actions.d.ts.map +1 -1
  191. package/dist/cjs/hooks/use-header-actions.js +17 -10
  192. package/dist/cjs/hooks/use-isomorphic-layout-effect.d.ts +2 -2
  193. package/dist/cjs/hooks/use-isomorphic-layout-effect.d.ts.map +1 -1
  194. package/dist/cjs/hooks/use-keyboard-handler.d.ts +2 -1
  195. package/dist/cjs/hooks/use-keyboard-handler.d.ts.map +1 -1
  196. package/dist/cjs/hooks/use-keyboard-handler.js +8 -2
  197. package/dist/cjs/hooks/use-move-columns-rows.d.ts.map +1 -1
  198. package/dist/cjs/hooks/use-move-columns-rows.js +21 -15
  199. package/dist/cjs/hooks/use-reveal-chart-embed.d.ts +17 -0
  200. package/dist/cjs/hooks/use-reveal-chart-embed.d.ts.map +1 -0
  201. package/dist/cjs/hooks/use-reveal-chart-embed.js +40 -0
  202. package/dist/cjs/hooks/use-selection-move.d.ts.map +1 -1
  203. package/dist/cjs/hooks/use-selection-move.js +14 -6
  204. package/dist/cjs/hooks/use-selection-renderer.d.ts +13 -1
  205. package/dist/cjs/hooks/use-selection-renderer.d.ts.map +1 -1
  206. package/dist/cjs/hooks/use-selection-renderer.js +37 -7
  207. package/dist/cjs/hooks/use-selection-resize.d.ts.map +1 -1
  208. package/dist/cjs/hooks/use-selection-resize.js +13 -6
  209. package/dist/cjs/hooks/use-selection.d.ts +9 -1
  210. package/dist/cjs/hooks/use-selection.d.ts.map +1 -1
  211. package/dist/cjs/hooks/use-selection.js +177 -55
  212. package/dist/cjs/hooks/use-structured-reference-selection.d.ts +1 -1
  213. package/dist/cjs/hooks/use-structured-reference-selection.d.ts.map +1 -1
  214. package/dist/cjs/hooks/use-structured-reference-selection.js +10 -0
  215. package/dist/cjs/hooks/use-table-hit-zones.d.ts +61 -0
  216. package/dist/cjs/hooks/use-table-hit-zones.d.ts.map +1 -0
  217. package/dist/cjs/hooks/use-table-hit-zones.js +157 -0
  218. package/dist/cjs/hooks/use-table-resizer.d.ts +7 -0
  219. package/dist/cjs/hooks/use-table-resizer.d.ts.map +1 -1
  220. package/dist/cjs/hooks/use-table-resizer.js +38 -18
  221. package/dist/cjs/hooks/use-touch.d.ts.map +1 -1
  222. package/dist/cjs/hooks/use-touch.js +16 -8
  223. package/dist/cjs/index.d.ts +13 -0
  224. package/dist/cjs/index.d.ts.map +1 -1
  225. package/dist/cjs/index.js +17 -1
  226. package/dist/cjs/release-date.js +1 -1
  227. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  228. package/dist/cjs/types.d.ts +289 -4
  229. package/dist/cjs/types.d.ts.map +1 -1
  230. package/dist/cjs/utils/copy-as-picture.d.ts +13 -0
  231. package/dist/cjs/utils/copy-as-picture.d.ts.map +1 -0
  232. package/dist/cjs/utils/copy-as-picture.js +70 -0
  233. package/dist/cjs/utils/pivot-chart-field-buttons.d.ts +19 -0
  234. package/dist/cjs/utils/pivot-chart-field-buttons.d.ts.map +1 -0
  235. package/dist/cjs/utils/pivot-chart-field-buttons.js +25 -0
  236. package/dist/cjs/utils/z-order.d.ts +47 -0
  237. package/dist/cjs/utils/z-order.d.ts.map +1 -0
  238. package/dist/cjs/utils/z-order.js +124 -0
  239. package/dist/esm/api/banded-ranges.d.ts.map +1 -1
  240. package/dist/esm/api/banded-ranges.js +39 -12
  241. package/dist/esm/api/calculated-column-fill.d.ts +43 -0
  242. package/dist/esm/api/calculated-column-fill.d.ts.map +1 -0
  243. package/dist/esm/api/calculated-column-fill.js +10 -0
  244. package/dist/esm/api/chart-sheet.d.ts +8 -0
  245. package/dist/esm/api/chart-sheet.d.ts.map +1 -0
  246. package/dist/esm/api/chart-sheet.js +15 -0
  247. package/dist/esm/api/chart-source-ranges.d.ts +64 -0
  248. package/dist/esm/api/chart-source-ranges.d.ts.map +1 -0
  249. package/dist/esm/api/chart-source-ranges.js +168 -0
  250. package/dist/esm/api/selections.d.ts +3 -3
  251. package/dist/esm/api/selections.d.ts.map +1 -1
  252. package/dist/esm/api/selections.js +26 -2
  253. package/dist/esm/api/spreadsheet-api.d.ts +16 -3
  254. package/dist/esm/api/spreadsheet-api.d.ts.map +1 -1
  255. package/dist/esm/api/spreadsheet-api.js +18 -2
  256. package/dist/esm/api/table-auto-expansion.d.ts +37 -0
  257. package/dist/esm/api/table-auto-expansion.d.ts.map +1 -0
  258. package/dist/esm/api/table-auto-expansion.js +10 -0
  259. package/dist/esm/api/table.d.ts +49 -1
  260. package/dist/esm/api/table.d.ts.map +1 -1
  261. package/dist/esm/api/table.js +138 -1
  262. package/dist/esm/api/validation.d.ts +26 -1
  263. package/dist/esm/api/validation.d.ts.map +1 -1
  264. package/dist/esm/api/validation.js +119 -9
  265. package/dist/esm/atoms/calculated-column-fill.atom.d.ts +15 -0
  266. package/dist/esm/atoms/calculated-column-fill.atom.d.ts.map +1 -0
  267. package/dist/esm/atoms/calculated-column-fill.atom.js +12 -0
  268. package/dist/esm/atoms/chart-actions.atom.d.ts +40 -0
  269. package/dist/esm/atoms/chart-actions.atom.d.ts.map +1 -0
  270. package/dist/esm/atoms/chart-actions.atom.js +58 -0
  271. package/dist/esm/atoms/index.d.ts +5 -0
  272. package/dist/esm/atoms/index.d.ts.map +1 -1
  273. package/dist/esm/atoms/index.js +5 -0
  274. package/dist/esm/atoms/move-chart-dialog.atom.d.ts +28 -0
  275. package/dist/esm/atoms/move-chart-dialog.atom.d.ts.map +1 -0
  276. package/dist/esm/atoms/move-chart-dialog.atom.js +25 -0
  277. package/dist/esm/atoms/selected-chart-embed.atom.d.ts +9 -1
  278. package/dist/esm/atoms/selected-chart-embed.atom.d.ts.map +1 -1
  279. package/dist/esm/atoms/selected-chart-embed.atom.js +19 -2
  280. package/dist/esm/atoms/selected-chart-series.atom.d.ts +24 -0
  281. package/dist/esm/atoms/selected-chart-series.atom.d.ts.map +1 -0
  282. package/dist/esm/atoms/selected-chart-series.atom.js +4 -0
  283. package/dist/esm/atoms/sheet-context.atom.d.ts +2 -0
  284. package/dist/esm/atoms/sheet-context.atom.d.ts.map +1 -1
  285. package/dist/esm/atoms/sheet-context.atom.js +2 -0
  286. package/dist/esm/atoms/sparkline-dialog.atom.d.ts +34 -0
  287. package/dist/esm/atoms/sparkline-dialog.atom.d.ts.map +1 -0
  288. package/dist/esm/atoms/sparkline-dialog.atom.js +21 -0
  289. package/dist/esm/atoms/table-auto-expansion.atom.d.ts +14 -0
  290. package/dist/esm/atoms/table-auto-expansion.atom.d.ts.map +1 -0
  291. package/dist/esm/atoms/table-auto-expansion.atom.js +11 -0
  292. package/dist/esm/components/calculated-column-smart-tag/index.d.ts +25 -0
  293. package/dist/esm/components/calculated-column-smart-tag/index.d.ts.map +1 -0
  294. package/dist/esm/components/calculated-column-smart-tag/index.js +25 -0
  295. package/dist/esm/components/canvas-grid/index.d.ts.map +1 -1
  296. package/dist/esm/components/canvas-grid/index.js +346 -26
  297. package/dist/esm/components/canvas-grid/typings.d.ts +127 -14
  298. package/dist/esm/components/canvas-grid/typings.d.ts.map +1 -1
  299. package/dist/esm/components/cell/index.d.ts.map +1 -1
  300. package/dist/esm/components/cell/index.js +3 -3
  301. package/dist/esm/components/cell/typings.d.ts +13 -0
  302. package/dist/esm/components/cell/typings.d.ts.map +1 -1
  303. package/dist/esm/components/cell-filter/index.d.ts.map +1 -1
  304. package/dist/esm/components/cell-filter/index.js +14 -3
  305. package/dist/esm/components/cell-input/formula-bar-cell-input.d.ts.map +1 -1
  306. package/dist/esm/components/cell-input/formula-bar-cell-input.js +4 -1
  307. package/dist/esm/components/cell-structured/sparkline-math.d.ts +28 -5
  308. package/dist/esm/components/cell-structured/sparkline-math.d.ts.map +1 -1
  309. package/dist/esm/components/cell-structured/sparkline-math.js +58 -4
  310. package/dist/esm/components/cell-structured/sparkline.d.ts +1 -1
  311. package/dist/esm/components/cell-structured/sparkline.d.ts.map +1 -1
  312. package/dist/esm/components/cell-structured/sparkline.js +3 -3
  313. package/dist/esm/components/cell-structured/types.d.ts +1 -1
  314. package/dist/esm/components/cell-structured/types.d.ts.map +1 -1
  315. package/dist/esm/components/chart-sheet-view/index.d.ts +27 -0
  316. package/dist/esm/components/chart-sheet-view/index.d.ts.map +1 -0
  317. package/dist/esm/components/chart-sheet-view/index.js +30 -0
  318. package/dist/esm/components/context-menu/embed-context-menu.d.ts +48 -0
  319. package/dist/esm/components/context-menu/embed-context-menu.d.ts.map +1 -0
  320. package/dist/esm/components/context-menu/embed-context-menu.js +112 -0
  321. package/dist/esm/components/context-menu/index.d.ts +23 -2
  322. package/dist/esm/components/context-menu/index.d.ts.map +1 -1
  323. package/dist/esm/components/context-menu/index.js +174 -38
  324. package/dist/esm/components/context-menu/total-row-function-menu.d.ts +33 -0
  325. package/dist/esm/components/context-menu/total-row-function-menu.d.ts.map +1 -0
  326. package/dist/esm/components/context-menu/total-row-function-menu.js +50 -0
  327. package/dist/esm/components/context-menu/total-row-functions.d.ts +12 -12
  328. package/dist/esm/components/context-menu/total-row-functions.d.ts.map +1 -1
  329. package/dist/esm/components/context-menu/total-row-functions.js +29 -31
  330. package/dist/esm/components/embeds/chart-component.d.ts +17 -0
  331. package/dist/esm/components/embeds/chart-component.d.ts.map +1 -1
  332. package/dist/esm/components/embeds/embed-draggable.d.ts +61 -4
  333. package/dist/esm/components/embeds/embed-draggable.d.ts.map +1 -1
  334. package/dist/esm/components/embeds/embed-draggable.js +207 -47
  335. package/dist/esm/components/filter-box/date-tree.d.ts +28 -0
  336. package/dist/esm/components/filter-box/date-tree.d.ts.map +1 -0
  337. package/dist/esm/components/filter-box/date-tree.js +107 -0
  338. package/dist/esm/components/filter-box/filter-by-condition.d.ts +14 -2
  339. package/dist/esm/components/filter-box/filter-by-condition.d.ts.map +1 -1
  340. package/dist/esm/components/filter-box/filter-by-condition.js +72 -16
  341. package/dist/esm/components/filter-box/filter-by-value.d.ts.map +1 -1
  342. package/dist/esm/components/filter-box/filter-by-value.js +110 -39
  343. package/dist/esm/components/filter-box/index.d.ts +7 -1
  344. package/dist/esm/components/filter-box/index.d.ts.map +1 -1
  345. package/dist/esm/components/filter-box/index.js +88 -2
  346. package/dist/esm/components/move-chart-dialog/index.d.ts +34 -0
  347. package/dist/esm/components/move-chart-dialog/index.d.ts.map +1 -0
  348. package/dist/esm/components/move-chart-dialog/index.js +88 -0
  349. package/dist/esm/components/print-preview/page-block.d.ts +9 -1
  350. package/dist/esm/components/print-preview/page-block.d.ts.map +1 -1
  351. package/dist/esm/components/print-preview/page-block.js +27 -2
  352. package/dist/esm/components/print-preview/print-preview-dialog.d.ts +8 -1
  353. package/dist/esm/components/print-preview/print-preview-dialog.d.ts.map +1 -1
  354. package/dist/esm/components/print-preview/print-preview-dialog.js +92 -4
  355. package/dist/esm/components/print-preview/run-print.d.ts.map +1 -1
  356. package/dist/esm/components/print-preview/run-print.js +17 -7
  357. package/dist/esm/components/print-preview/use-page-layout.d.ts +47 -0
  358. package/dist/esm/components/print-preview/use-page-layout.d.ts.map +1 -1
  359. package/dist/esm/components/print-preview/use-page-layout.js +55 -0
  360. package/dist/esm/components/resizer/index.d.ts.map +1 -1
  361. package/dist/esm/components/resizer/index.js +8 -4
  362. package/dist/esm/components/selection/index.d.ts +1 -1
  363. package/dist/esm/components/selection/index.d.ts.map +1 -1
  364. package/dist/esm/components/selection/index.js +6 -2
  365. package/dist/esm/components/selection/types.d.ts +15 -0
  366. package/dist/esm/components/selection/types.d.ts.map +1 -1
  367. package/dist/esm/components/sheet-search/index.d.ts.map +1 -1
  368. package/dist/esm/components/sheet-search/index.js +5 -2
  369. package/dist/esm/components/sheet-tabs/index.d.ts.map +1 -1
  370. package/dist/esm/components/sheet-tabs/index.js +2 -2
  371. package/dist/esm/components/sheet-tabs/sheet-tab.d.ts +1 -1
  372. package/dist/esm/components/sheet-tabs/sheet-tab.d.ts.map +1 -1
  373. package/dist/esm/components/sheet-tabs/sheet-tab.js +4 -2
  374. package/dist/esm/components/sparkline-dialog/index.d.ts +43 -0
  375. package/dist/esm/components/sparkline-dialog/index.d.ts.map +1 -0
  376. package/dist/esm/components/sparkline-dialog/index.js +123 -0
  377. package/dist/esm/components/subtotal-dialog/index.d.ts.map +1 -1
  378. package/dist/esm/components/subtotal-dialog/index.js +10 -1
  379. package/dist/esm/components/table-auto-expansion-smart-tag/index.d.ts +24 -0
  380. package/dist/esm/components/table-auto-expansion-smart-tag/index.d.ts.map +1 -0
  381. package/dist/esm/components/table-auto-expansion-smart-tag/index.js +25 -0
  382. package/dist/esm/components/toolbar/index.d.ts +1 -0
  383. package/dist/esm/components/toolbar/index.d.ts.map +1 -1
  384. package/dist/esm/components/toolbar/index.js +1 -0
  385. package/dist/esm/components/toolbar/insert-menu.d.ts +2 -1
  386. package/dist/esm/components/toolbar/insert-menu.d.ts.map +1 -1
  387. package/dist/esm/components/toolbar/insert-menu.js +24 -1
  388. package/dist/esm/components/toolbar/merge-cells-selector.d.ts +4 -1
  389. package/dist/esm/components/toolbar/merge-cells-selector.d.ts.map +1 -1
  390. package/dist/esm/components/toolbar/merge-cells-selector.js +10 -6
  391. package/dist/esm/components/toolbar/sparkline-actions.d.ts +31 -0
  392. package/dist/esm/components/toolbar/sparkline-actions.d.ts.map +1 -0
  393. package/dist/esm/components/toolbar/sparkline-actions.js +238 -0
  394. package/dist/esm/components/toolbar/table-actions.d.ts +9 -1
  395. package/dist/esm/components/toolbar/table-actions.d.ts.map +1 -1
  396. package/dist/esm/components/toolbar/table-actions.js +15 -7
  397. package/dist/esm/components/toolbar/table-style-selector.d.ts +38 -2
  398. package/dist/esm/components/toolbar/table-style-selector.d.ts.map +1 -1
  399. package/dist/esm/components/toolbar/table-style-selector.js +210 -399
  400. package/dist/esm/config.d.ts +2 -0
  401. package/dist/esm/config.d.ts.map +1 -1
  402. package/dist/esm/config.js +30 -0
  403. package/dist/esm/helpers.d.ts +1 -1
  404. package/dist/esm/helpers.d.ts.map +1 -1
  405. package/dist/esm/helpers.js +12 -1
  406. package/dist/esm/hooks/use-cell-renderer.d.ts +16 -1
  407. package/dist/esm/hooks/use-cell-renderer.d.ts.map +1 -1
  408. package/dist/esm/hooks/use-cell-renderer.js +14 -4
  409. package/dist/esm/hooks/use-chart-clipboard.d.ts +55 -0
  410. package/dist/esm/hooks/use-chart-clipboard.d.ts.map +1 -0
  411. package/dist/esm/hooks/use-chart-clipboard.js +213 -0
  412. package/dist/esm/hooks/use-chart-source-ranges.d.ts +27 -0
  413. package/dist/esm/hooks/use-chart-source-ranges.d.ts.map +1 -0
  414. package/dist/esm/hooks/use-chart-source-ranges.js +186 -0
  415. package/dist/esm/hooks/use-context-setter.d.ts.map +1 -1
  416. package/dist/esm/hooks/use-context-setter.js +3 -1
  417. package/dist/esm/hooks/use-copy-paste-cut.d.ts.map +1 -1
  418. package/dist/esm/hooks/use-copy-paste-cut.js +6 -4
  419. package/dist/esm/hooks/use-editable.d.ts +9 -1
  420. package/dist/esm/hooks/use-editable.d.ts.map +1 -1
  421. package/dist/esm/hooks/use-editable.js +25 -1
  422. package/dist/esm/hooks/use-embeds-charts.d.ts +64 -4
  423. package/dist/esm/hooks/use-embeds-charts.d.ts.map +1 -1
  424. package/dist/esm/hooks/use-embeds-charts.js +394 -39
  425. package/dist/esm/hooks/use-grid-children.d.ts +2 -2
  426. package/dist/esm/hooks/use-grid-children.d.ts.map +1 -1
  427. package/dist/esm/hooks/use-grid-children.js +8 -2
  428. package/dist/esm/hooks/use-header-actions.d.ts.map +1 -1
  429. package/dist/esm/hooks/use-header-actions.js +11 -4
  430. package/dist/esm/hooks/use-isomorphic-layout-effect.d.ts +2 -2
  431. package/dist/esm/hooks/use-isomorphic-layout-effect.d.ts.map +1 -1
  432. package/dist/esm/hooks/use-keyboard-handler.d.ts +2 -1
  433. package/dist/esm/hooks/use-keyboard-handler.d.ts.map +1 -1
  434. package/dist/esm/hooks/use-keyboard-handler.js +8 -2
  435. package/dist/esm/hooks/use-move-columns-rows.d.ts.map +1 -1
  436. package/dist/esm/hooks/use-move-columns-rows.js +12 -6
  437. package/dist/esm/hooks/use-reveal-chart-embed.d.ts +17 -0
  438. package/dist/esm/hooks/use-reveal-chart-embed.d.ts.map +1 -0
  439. package/dist/esm/hooks/use-reveal-chart-embed.js +35 -0
  440. package/dist/esm/hooks/use-selection-move.d.ts.map +1 -1
  441. package/dist/esm/hooks/use-selection-move.js +11 -4
  442. package/dist/esm/hooks/use-selection-renderer.d.ts +13 -1
  443. package/dist/esm/hooks/use-selection-renderer.d.ts.map +1 -1
  444. package/dist/esm/hooks/use-selection-renderer.js +35 -6
  445. package/dist/esm/hooks/use-selection-resize.d.ts.map +1 -1
  446. package/dist/esm/hooks/use-selection-resize.js +11 -5
  447. package/dist/esm/hooks/use-selection.d.ts +9 -1
  448. package/dist/esm/hooks/use-selection.d.ts.map +1 -1
  449. package/dist/esm/hooks/use-selection.js +172 -54
  450. package/dist/esm/hooks/use-structured-reference-selection.d.ts +1 -1
  451. package/dist/esm/hooks/use-structured-reference-selection.d.ts.map +1 -1
  452. package/dist/esm/hooks/use-structured-reference-selection.js +16 -0
  453. package/dist/esm/hooks/use-table-hit-zones.d.ts +61 -0
  454. package/dist/esm/hooks/use-table-hit-zones.d.ts.map +1 -0
  455. package/dist/esm/hooks/use-table-hit-zones.js +146 -0
  456. package/dist/esm/hooks/use-table-resizer.d.ts +7 -0
  457. package/dist/esm/hooks/use-table-resizer.d.ts.map +1 -1
  458. package/dist/esm/hooks/use-table-resizer.js +36 -19
  459. package/dist/esm/hooks/use-touch.d.ts.map +1 -1
  460. package/dist/esm/hooks/use-touch.js +15 -7
  461. package/dist/esm/index.d.ts +13 -0
  462. package/dist/esm/index.d.ts.map +1 -1
  463. package/dist/esm/index.js +13 -0
  464. package/dist/esm/release-date.js +1 -1
  465. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  466. package/dist/esm/types.d.ts +289 -4
  467. package/dist/esm/types.d.ts.map +1 -1
  468. package/dist/esm/utils/copy-as-picture.d.ts +13 -0
  469. package/dist/esm/utils/copy-as-picture.d.ts.map +1 -0
  470. package/dist/esm/utils/copy-as-picture.js +45 -0
  471. package/dist/esm/utils/pivot-chart-field-buttons.d.ts +19 -0
  472. package/dist/esm/utils/pivot-chart-field-buttons.d.ts.map +1 -0
  473. package/dist/esm/utils/pivot-chart-field-buttons.js +18 -0
  474. package/dist/esm/utils/z-order.d.ts +47 -0
  475. package/dist/esm/utils/z-order.d.ts.map +1 -0
  476. package/dist/esm/utils/z-order.js +111 -0
  477. package/dist/spreadsheet.min.css +1 -1
  478. package/package.json +8 -6
  479. package/dist/cjs/components/cell-editor/helpers.spec.d.ts +0 -2
  480. package/dist/cjs/components/cell-editor/helpers.spec.d.ts.map +0 -1
  481. package/dist/cjs/components/cell-editor/helpers.spec.js +0 -32
  482. package/dist/esm/components/cell-editor/helpers.spec.d.ts +0 -2
  483. package/dist/esm/components/cell-editor/helpers.spec.d.ts.map +0 -1
  484. package/dist/esm/components/cell-editor/helpers.spec.js +0 -30
@@ -9,6 +9,7 @@ var grid_4 = require("@rowsncolumns/grid");
9
9
  var react_1 = require("react");
10
10
  var scheduler_1 = require("../api/scheduler");
11
11
  var move_overwrite_1 = require("../api/move-overwrite");
12
+ var table_1 = require("../api/table");
12
13
  var config_1 = require("../config");
13
14
  var helpers_1 = require("../helpers");
14
15
  var use_callback_ref_1 = require("./use-callback-ref");
@@ -98,7 +99,7 @@ var defaultConfirmMoveOverwrite = function (message) {
98
99
  : window.confirm(message);
99
100
  };
100
101
  var useSelection = function (_a) {
101
- 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, onFillHandleRelease = _a.onFillHandleRelease, onFillShrink = _a.onFillShrink, onInsertCutCells = _a.onInsertCutCells, _g = _a.confirmMoveOverwrite, confirmMoveOverwrite = _g === void 0 ? defaultConfirmMoveOverwrite : _g, _h = _a.isHiddenRow, isHiddenRow = _h === void 0 ? defaultIsHidden : _h, _j = _a.isHiddenColumn, isHiddenColumn = _j === void 0 ? defaultIsHidden : _j, _k = _a.alwaysScrollToActiveCell, alwaysScrollToActiveCell = _k === void 0 ? true : _k, _l = _a.selectionTopBound, selectionTopBound = _l === void 0 ? 0 : _l, _m = _a.selectionBottomBound, selectionBottomBound = _m === void 0 ? rowCount : _m, _o = _a.selectionLeftBound, selectionLeftBound = _o === void 0 ? 0 : _o, _p = _a.selectionRightBound, selectionRightBound = _p === void 0 ? columnCount : _p, mouseDownInterceptor = _a.mouseDownInterceptor, mouseMoveInterceptor = _a.mouseMoveInterceptor, _q = _a.mergedCells, mergedCells = _q === void 0 ? config_1.DEFAULT_ARRAY : _q, _r = _a.canSelectionSpanMergedCells, canSelectionSpanMergedCells = _r === void 0 ? defaultSelectionSpan : _r, 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, _s = _a.enableDataBoundaryNavigation, enableDataBoundaryNavigation = _s === void 0 ? false : _s;
102
+ 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, onFillHandleRelease = _a.onFillHandleRelease, onFillShrink = _a.onFillShrink, onInsertCutCells = _a.onInsertCutCells, _g = _a.confirmMoveOverwrite, confirmMoveOverwrite = _g === void 0 ? defaultConfirmMoveOverwrite : _g, _h = _a.isHiddenRow, isHiddenRow = _h === void 0 ? defaultIsHidden : _h, _j = _a.isHiddenColumn, isHiddenColumn = _j === void 0 ? defaultIsHidden : _j, _k = _a.alwaysScrollToActiveCell, alwaysScrollToActiveCell = _k === void 0 ? true : _k, _l = _a.selectionTopBound, selectionTopBound = _l === void 0 ? 0 : _l, _m = _a.selectionBottomBound, selectionBottomBound = _m === void 0 ? rowCount : _m, _o = _a.selectionLeftBound, selectionLeftBound = _o === void 0 ? 0 : _o, _p = _a.selectionRightBound, selectionRightBound = _p === void 0 ? columnCount : _p, mouseDownInterceptor = _a.mouseDownInterceptor, mouseMoveInterceptor = _a.mouseMoveInterceptor, _q = _a.mergedCells, mergedCells = _q === void 0 ? config_1.DEFAULT_ARRAY : _q, _r = _a.canSelectionSpanMergedCells, canSelectionSpanMergedCells = _r === void 0 ? defaultSelectionSpan : _r, 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, _s = _a.enableDataBoundaryNavigation, enableDataBoundaryNavigation = _s === void 0 ? false : _s, tables = _a.tables, onInsertTableRow = _a.onInsertTableRow;
102
103
  var _t = tslib_1.__read((0, react_1.useState)(), 2), fillSelection = _t[0], setFillSelection = _t[1];
103
104
  var _u = tslib_1.__read((0, react_1.useState)(), 2), fillShrink = _u[0], setFillShrink = _u[1];
104
105
  var fillShrinkRef = (0, react_1.useRef)(undefined);
@@ -118,24 +119,36 @@ var useSelection = function (_a) {
118
119
  * release always fires `contextmenu`; neither may reach the grid's cell
119
120
  * context menu while the user is dragging the fill handle.
120
121
  */
122
+ /**
123
+ * Documents the in-flight gestures listen on. The grid may render into a
124
+ * popout window, whose document is not the bundle's global `document`; a
125
+ * gesture binds its move/up listeners to the document of the element it
126
+ * started on and unbinds from that same document.
127
+ */
128
+ var selectionDocumentRef = (0, react_1.useRef)(null);
129
+ var fillDocumentRef = (0, react_1.useRef)(null);
130
+ var dragSelectionDocumentRef = (0, react_1.useRef)(null);
131
+ var tapDocumentRef = (0, react_1.useRef)(null);
121
132
  var contextMenuSuppressorRef = (0, react_1.useRef)(null);
122
133
  var releaseContextMenuSuppressor = (0, react_1.useCallback)(function () {
123
- var handler = contextMenuSuppressorRef.current;
124
- if (!handler)
134
+ var suppressor = contextMenuSuppressorRef.current;
135
+ if (!suppressor)
125
136
  return;
126
137
  contextMenuSuppressorRef.current = null;
127
- document.removeEventListener("contextmenu", handler, true);
138
+ suppressor.ownerDocument.removeEventListener("contextmenu", suppressor.handler, true);
128
139
  }, []);
129
140
  var suppressNextContextMenu = (0, react_1.useCallback)(function () {
141
+ var _a;
130
142
  if (contextMenuSuppressorRef.current)
131
143
  return;
144
+ var ownerDocument = (_a = fillDocumentRef.current) !== null && _a !== void 0 ? _a : document;
132
145
  var handler = function (e) {
133
146
  e.preventDefault();
134
147
  e.stopPropagation();
135
148
  releaseContextMenuSuppressor();
136
149
  };
137
- contextMenuSuppressorRef.current = handler;
138
- document.addEventListener("contextmenu", handler, true);
150
+ contextMenuSuppressorRef.current = { handler: handler, ownerDocument: ownerDocument };
151
+ ownerDocument.addEventListener("contextmenu", handler, true);
139
152
  }, [releaseContextMenuSuppressor]);
140
153
  var selectionsRef = (0, react_1.useRef)([]);
141
154
  var fillSelectionRef = (0, react_1.useRef)(undefined);
@@ -358,11 +371,14 @@ var useSelection = function (_a) {
358
371
  * Mouse up handler
359
372
  */
360
373
  var handleMouseUp = (0, react_1.useCallback)(function () {
374
+ var _a;
361
375
  /* Reset selection mode */
362
376
  isSelecting.current = false;
363
- /* Remove listener */
364
- document.removeEventListener("mousemove", handleMouseMove);
365
- document.removeEventListener("mouseup", handleMouseUp);
377
+ /* Remove listener from the document the gesture started on */
378
+ var ownerDocument = (_a = selectionDocumentRef.current) !== null && _a !== void 0 ? _a : document;
379
+ selectionDocumentRef.current = null;
380
+ ownerDocument.removeEventListener("mousemove", handleMouseMove);
381
+ ownerDocument.removeEventListener("mouseup", handleMouseUp);
366
382
  /* Update last selection */
367
383
  var curSelections = selectionsRef.current;
368
384
  var len = curSelections.length;
@@ -574,12 +590,64 @@ var useSelection = function (_a) {
574
590
  selectionLeftBound,
575
591
  selectionRightBound,
576
592
  ]);
593
+ // Select all
594
+ var selectAll = (0, react_1.useCallback)(function () {
595
+ selectionStart.current = {
596
+ rowIndex: selectionTopBound,
597
+ columnIndex: selectionLeftBound,
598
+ };
599
+ modifySelection({
600
+ rowIndex: selectionBottomBound,
601
+ columnIndex: selectionRightBound,
602
+ });
603
+ }, [
604
+ selectionTopBound,
605
+ selectionLeftBound,
606
+ selectionRightBound,
607
+ selectionBottomBound,
608
+ modifySelection,
609
+ ]);
610
+ /**
611
+ * Inside a table Ctrl+A / Ctrl+Space / Shift+Space walk Excel's table
612
+ * cycle before falling back to the sheet-wide behaviour. Applies `range`
613
+ * (keeping the active cell) and reports whether a table handled the key;
614
+ * a `null` cycle step means "the sheet-wide step" and returns false.
615
+ */
616
+ var currentSingleArea = function () {
617
+ return selections.length === 1 ? selections[0].range : undefined;
618
+ };
619
+ var applyTableRange = (0, react_1.useCallback)(function (range) {
620
+ if (!range) {
621
+ return false;
622
+ }
623
+ selectionStart.current = {
624
+ rowIndex: range.startRowIndex,
625
+ columnIndex: range.startColumnIndex,
626
+ };
627
+ modifySelection({
628
+ rowIndex: range.endRowIndex,
629
+ columnIndex: range.endColumnIndex,
630
+ });
631
+ return true;
632
+ }, [modifySelection]);
633
+ var activeTable = activeCell
634
+ ? (0, table_1.findActiveTableWithinCell)(sheetId, activeCell, tables)
635
+ : undefined;
577
636
  // ⌘A or ⌘+Shift+Space
578
637
  // Select all cells in bounding area
579
638
  var selectAllBoundedCells = (0, react_1.useCallback)(function () {
580
639
  if (!selectionEnd.current || !selectionStart.current) {
581
640
  return;
582
641
  }
642
+ if (activeTable) {
643
+ var step = (0, table_1.getTableSelectAllRange)(activeTable, currentSingleArea());
644
+ if (step === null) {
645
+ selectAll();
646
+ return;
647
+ }
648
+ applyTableRange(step);
649
+ return;
650
+ }
583
651
  var topBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Up);
584
652
  var bottomBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Down);
585
653
  var leftBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Left);
@@ -610,30 +678,38 @@ var useSelection = function (_a) {
610
678
  selectionTopBound,
611
679
  selectionLeftBound,
612
680
  selectionRightBound,
681
+ activeTable,
682
+ selections,
683
+ applyTableRange,
684
+ selectAll,
613
685
  ]);
614
- // Select all
615
- var selectAll = (0, react_1.useCallback)(function () {
616
- selectionStart.current = {
617
- rowIndex: selectionTopBound,
618
- columnIndex: selectionLeftBound,
619
- };
620
- modifySelection({
621
- rowIndex: selectionBottomBound,
622
- columnIndex: selectionRightBound,
623
- });
624
- }, [
625
- selectionTopBound,
626
- selectionLeftBound,
627
- selectionRightBound,
628
- selectionBottomBound,
629
- modifySelection,
630
- ]);
686
+ // Select entire column
687
+ var selectEntireColumn = (0, react_1.useCallback)(function (columnIndex) {
688
+ if (!selectionEnd.current ||
689
+ !selectionStart.current ||
690
+ columnIndex === void 0)
691
+ return;
692
+ selectionStart.current = tslib_1.__assign(tslib_1.__assign({}, selectionStart.current), { rowIndex: selectionTopBound });
693
+ modifySelection(tslib_1.__assign(tslib_1.__assign({}, selectionEnd.current), { rowIndex: selectionBottomBound }));
694
+ }, [modifySelection, selectionBottomBound, selectionTopBound]);
631
695
  // Ctrl+Space
632
696
  var selectColumn = (0, react_1.useCallback)(function (columnIndex) {
633
697
  if (!selectionEnd.current ||
634
698
  !selectionStart.current ||
635
699
  columnIndex === void 0)
636
700
  return;
701
+ if (activeTable) {
702
+ var step = (0, table_1.getTableColumnSelectRange)(activeTable, {
703
+ start: selectionStart.current.columnIndex,
704
+ end: selectionEnd.current.columnIndex,
705
+ }, currentSingleArea());
706
+ if (step === null) {
707
+ selectEntireColumn(columnIndex);
708
+ return;
709
+ }
710
+ applyTableRange(step);
711
+ return;
712
+ }
637
713
  var topBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Up);
638
714
  var bottomBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Down);
639
715
  var isSameVerticalBounds = topBound === bottomBound;
@@ -649,16 +725,11 @@ var useSelection = function (_a) {
649
725
  sheetId,
650
726
  selectionTopBound,
651
727
  selectionBottomBound,
728
+ activeTable,
729
+ selections,
730
+ applyTableRange,
731
+ selectEntireColumn,
652
732
  ]);
653
- // Select entire column
654
- var selectEntireColumn = (0, react_1.useCallback)(function (columnIndex) {
655
- if (!selectionEnd.current ||
656
- !selectionStart.current ||
657
- columnIndex === void 0)
658
- return;
659
- selectionStart.current = tslib_1.__assign(tslib_1.__assign({}, selectionStart.current), { rowIndex: selectionTopBound });
660
- modifySelection(tslib_1.__assign(tslib_1.__assign({}, selectionEnd.current), { rowIndex: selectionBottomBound }));
661
- }, [modifySelection, selectionBottomBound, selectionTopBound]);
662
733
  // Shift+Space
663
734
  var selectRow = (0, react_1.useCallback)(function (rowIndex) {
664
735
  if (!selectionEnd.current ||
@@ -666,6 +737,19 @@ var useSelection = function (_a) {
666
737
  rowIndex === void 0) {
667
738
  return;
668
739
  }
740
+ if (activeTable) {
741
+ var step = (0, table_1.getTableRowSelectRange)(activeTable, {
742
+ start: selectionStart.current.rowIndex,
743
+ end: selectionEnd.current.rowIndex,
744
+ }, currentSingleArea());
745
+ if (step !== null) {
746
+ applyTableRange(step);
747
+ return;
748
+ }
749
+ selectionStart.current = tslib_1.__assign(tslib_1.__assign({}, selectionStart.current), { columnIndex: selectionLeftBound });
750
+ modifySelection(tslib_1.__assign(tslib_1.__assign({}, selectionEnd.current), { columnIndex: selectionRightBound }));
751
+ return;
752
+ }
669
753
  var leftBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Left);
670
754
  var rightBound = findLastContentfulCellInDirection(sheetId, selectionStart.current, selectionEnd.current, grid_4.Direction.Right);
671
755
  var isSameHorizontalBounds = leftBound === rightBound;
@@ -679,6 +763,9 @@ var useSelection = function (_a) {
679
763
  findLastContentfulCellInDirection,
680
764
  modifySelection,
681
765
  sheetId,
766
+ activeTable,
767
+ selections,
768
+ applyTableRange,
682
769
  selectionRightBound,
683
770
  selectionLeftBound,
684
771
  ]);
@@ -844,6 +931,7 @@ var useSelection = function (_a) {
844
931
  * Triggers a new selection start
845
932
  */
846
933
  var handleMouseDown = (0, react_1.useCallback)(function (e) {
934
+ var _a, _b;
847
935
  var coords = getCellCoordsFromOffset(e.clientX, e.clientY, true);
848
936
  if (!coords)
849
937
  return;
@@ -865,8 +953,10 @@ var useSelection = function (_a) {
865
953
  var hasSelections = selectionsRef.current.length > 0;
866
954
  var isDeselecting = isMetaKey && allowDeselect;
867
955
  if (!isContextMenuClick && selectionPolicy !== "single") {
868
- document.addEventListener("mouseup", handleMouseUp);
869
- document.addEventListener("mousemove", handleMouseMove);
956
+ var ownerDocument = (_b = (0, grid_3.getOwnerDocument)((_a = e.currentTarget) !== null && _a !== void 0 ? _a : e.target)) !== null && _b !== void 0 ? _b : document;
957
+ selectionDocumentRef.current = ownerDocument;
958
+ ownerDocument.addEventListener("mouseup", handleMouseUp);
959
+ ownerDocument.addEventListener("mousemove", handleMouseMove);
870
960
  }
871
961
  /* Activate selection mode */
872
962
  // Disable flag for context menu
@@ -1081,11 +1171,22 @@ var useSelection = function (_a) {
1081
1171
  }
1082
1172
  }
1083
1173
  else {
1084
- if (isShiftKey) {
1085
- keyNavigate(grid_4.Direction.Left);
1174
+ var direction = isShiftKey ? grid_4.Direction.Left : grid_4.Direction.Right;
1175
+ var table = activeCell
1176
+ ? (0, table_1.findActiveTableWithinCell)(sheetId, activeCell, tables)
1177
+ : undefined;
1178
+ var tableTarget = table
1179
+ ? (0, table_1.getNextCellInTable)(table, activeCell, direction, isHiddenRow, isHiddenColumn)
1180
+ : null;
1181
+ if (table && tableTarget) {
1182
+ if (tableTarget.insertRow) {
1183
+ onInsertTableRow === null || onInsertTableRow === void 0 ? void 0 : onInsertTableRow(table);
1184
+ }
1185
+ newSelection(tableTarget.cell);
1186
+ scrollToCell(tableTarget.cell);
1086
1187
  }
1087
1188
  else {
1088
- keyNavigate(grid_4.Direction.Right);
1189
+ keyNavigate(direction);
1089
1190
  }
1090
1191
  }
1091
1192
  e.preventDefault();
@@ -1132,6 +1233,11 @@ var useSelection = function (_a) {
1132
1233
  selectFirstCellInSheet,
1133
1234
  selectLastCellInSheet,
1134
1235
  enableSelectOnEnterKey,
1236
+ newSelection,
1237
+ isHiddenRow,
1238
+ isHiddenColumn,
1239
+ tables,
1240
+ onInsertTableRow,
1135
1241
  ]);
1136
1242
  /**
1137
1243
  * TODO
@@ -1215,13 +1321,14 @@ var useSelection = function (_a) {
1215
1321
  * comes from the mouseup event, not the mousedown.
1216
1322
  */
1217
1323
  var handleFillMouseUp = (0, react_1.useCallback)(function (e) {
1218
- var _a;
1324
+ var _a, _b;
1219
1325
  isFilling.current = false;
1220
1326
  var toggle = isFillToggleModifier(e);
1221
1327
  var button = fillButtonRef.current;
1222
- /* Remove listener */
1223
- document.removeEventListener("mousemove", handleFillMouseMove);
1224
- document.removeEventListener("mouseup", handleFillMouseUp);
1328
+ /* Remove listener from the document the gesture started on */
1329
+ var ownerDocument = (_a = fillDocumentRef.current) !== null && _a !== void 0 ? _a : document;
1330
+ ownerDocument.removeEventListener("mousemove", handleFillMouseMove);
1331
+ ownerDocument.removeEventListener("mouseup", handleFillMouseUp);
1225
1332
  // The right-button (or macOS Ctrl+click) `contextmenu` event follows this
1226
1333
  // mouseup; keep swallowing it for one tick, then drop the suppressor so a
1227
1334
  // later, unrelated right-click still opens the cell context menu.
@@ -1234,7 +1341,7 @@ var useSelection = function (_a) {
1234
1341
  var fillSelection = fillSelectionRef.current;
1235
1342
  var shrink = fillShrinkRef.current;
1236
1343
  // Modifier for a drag-back shrink: the last move's state, else the release's.
1237
- var gestureOptions = (_a = fillModifierRef.current) !== null && _a !== void 0 ? _a : (toggle ? { modifier: "toggle" } : undefined);
1344
+ var gestureOptions = (_b = fillModifierRef.current) !== null && _b !== void 0 ? _b : (toggle ? { modifier: "toggle" } : undefined);
1238
1345
  fillModifierRef.current = undefined;
1239
1346
  /* Update last selection */
1240
1347
  setFillSelection(undefined);
@@ -1312,8 +1419,11 @@ var useSelection = function (_a) {
1312
1419
  sheetId,
1313
1420
  ]);
1314
1421
  var handleFillMouseDown = (0, react_1.useCallback)(function (e) {
1422
+ var _a;
1315
1423
  e.stopPropagation();
1316
1424
  e.preventDefault();
1425
+ var ownerDocument = (_a = (0, grid_3.getOwnerDocument)(e.currentTarget)) !== null && _a !== void 0 ? _a : document;
1426
+ fillDocumentRef.current = ownerDocument;
1317
1427
  var isRightButton = e.button === grid_4.MouseButtonCodes.right;
1318
1428
  fillButtonRef.current = isRightButton ? "right" : "left";
1319
1429
  // Ctrl+drag on the handle must never become the macOS Ctrl+click
@@ -1323,8 +1433,8 @@ var useSelection = function (_a) {
1323
1433
  suppressNextContextMenu();
1324
1434
  }
1325
1435
  isFilling.current = true;
1326
- document.addEventListener("mousemove", handleFillMouseMove);
1327
- document.addEventListener("mouseup", handleFillMouseUp);
1436
+ ownerDocument.addEventListener("mousemove", handleFillMouseMove);
1437
+ ownerDocument.addEventListener("mouseup", handleFillMouseUp);
1328
1438
  }, [handleFillMouseMove, handleFillMouseUp, suppressNextContextMenu]);
1329
1439
  /**
1330
1440
  * Remove the last selection from state
@@ -1378,6 +1488,7 @@ var useSelection = function (_a) {
1378
1488
  * When drag/drop is complete
1379
1489
  */
1380
1490
  var handleSelectionMouseUp = (0, react_1.useCallback)(function (e) {
1491
+ var _a;
1381
1492
  var fromSelection = initialDraggedSelection.current;
1382
1493
  var toSelection = draggedSelection.current;
1383
1494
  // Excel reads the modifier at RELEASE: Shift → insert between existing cells (I-beam),
@@ -1456,9 +1567,11 @@ var useSelection = function (_a) {
1456
1567
  draggedSelection.current = void 0;
1457
1568
  draggedSelectionIndex.current = void 0;
1458
1569
  hasUserMovedSelection.current = false;
1459
- /* Remove event handlers */
1460
- document.removeEventListener("mouseup", handleSelectionMouseUp);
1461
- document.removeEventListener("mousemove", handleSelectionMouseMove);
1570
+ /* Remove event handlers from the document the gesture started on */
1571
+ var ownerDocument = (_a = dragSelectionDocumentRef.current) !== null && _a !== void 0 ? _a : document;
1572
+ dragSelectionDocumentRef.current = null;
1573
+ ownerDocument.removeEventListener("mouseup", handleSelectionMouseUp);
1574
+ ownerDocument.removeEventListener("mousemove", handleSelectionMouseMove);
1462
1575
  /* Force render */
1463
1576
  forceRender();
1464
1577
  }, [
@@ -1476,6 +1589,7 @@ var useSelection = function (_a) {
1476
1589
  * When user mouse downs on selection
1477
1590
  */
1478
1591
  var handleSelectionMouseDown = (0, react_1.useCallback)(function (e, activeCell, selection, index, shouldClamp) {
1592
+ var _a;
1479
1593
  if (shouldClamp === void 0) { shouldClamp = true; }
1480
1594
  if (e.isDefaultPrevented()) {
1481
1595
  return;
@@ -1507,9 +1621,11 @@ var useSelection = function (_a) {
1507
1621
  }
1508
1622
  /* Set dragging flag */
1509
1623
  isDragging.current = true;
1510
- /* Listen to mousemove and mousedown events */
1511
- document.addEventListener("mouseup", handleSelectionMouseUp);
1512
- document.addEventListener("mousemove", handleSelectionMouseMove);
1624
+ /* Listen on the document the gesture started on */
1625
+ var ownerDocument = (_a = (0, grid_3.getOwnerDocument)(e.currentTarget)) !== null && _a !== void 0 ? _a : document;
1626
+ dragSelectionDocumentRef.current = ownerDocument;
1627
+ ownerDocument.addEventListener("mouseup", handleSelectionMouseUp);
1628
+ ownerDocument.addEventListener("mousemove", handleSelectionMouseMove);
1513
1629
  /* Force a re-render */
1514
1630
  forceRender();
1515
1631
  }, [
@@ -1581,6 +1697,7 @@ var useSelection = function (_a) {
1581
1697
  var startTimeRef = (0, react_1.useRef)(0);
1582
1698
  var startPosRef = (0, react_1.useRef)({ x: 0, y: 0 });
1583
1699
  var onPointerUp = (0, react_1.useCallback)(function (event) {
1700
+ var _a;
1584
1701
  var endTime = Date.now();
1585
1702
  var maxDuration = 200;
1586
1703
  var maxDistance = 10;
@@ -1592,12 +1709,17 @@ var useSelection = function (_a) {
1592
1709
  handleMouseDown(event);
1593
1710
  handleMouseUp();
1594
1711
  }
1595
- document.removeEventListener("pointerup", onPointerUp);
1712
+ var ownerDocument = (_a = tapDocumentRef.current) !== null && _a !== void 0 ? _a : document;
1713
+ tapDocumentRef.current = null;
1714
+ ownerDocument.removeEventListener("pointerup", onPointerUp);
1596
1715
  }, [handleMouseDown, handleMouseUp]);
1597
1716
  var onPointerDown = (0, react_1.useCallback)(function (event) {
1717
+ var _a;
1598
1718
  startTimeRef.current = Date.now();
1599
1719
  startPosRef.current = { x: event.clientX, y: event.clientY };
1600
- document.addEventListener("pointerup", onPointerUp);
1720
+ var ownerDocument = (_a = (0, grid_3.getOwnerDocument)(event.currentTarget)) !== null && _a !== void 0 ? _a : document;
1721
+ tapDocumentRef.current = ownerDocument;
1722
+ ownerDocument.addEventListener("pointerup", onPointerUp);
1601
1723
  }, [onPointerUp]);
1602
1724
  // Add a ref. makeEditable renders way too often
1603
1725
  var handleKeyDownRef = (0, use_callback_ref_1.useCallbackRef)(handleKeyDown);
@@ -11,12 +11,12 @@ export declare const useOnStructuredReferenceSelection: ({ tables, getSheetName,
11
11
  endColumnIndex: number;
12
12
  startRowIndex: number;
13
13
  endRowIndex: number;
14
- sheetId: number;
15
14
  } | {
16
15
  startColumnIndex: number;
17
16
  endColumnIndex: number;
18
17
  startRowIndex: number;
19
18
  endRowIndex: number;
19
+ sheetId: number;
20
20
  };
21
21
  sheetName: string | undefined;
22
22
  } | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"use-structured-reference-selection.d.ts","sourceRoot":"","sources":["../../../hooks/use-structured-reference-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,iCAAiC,GAAI,2BAG/C;IACD,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC;IACvC,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;CAC/C,eAGc,MAAM,QACT,aAAa,GAAG,SAAS,aACpB,MAAM,GAAG,SAAS,eAChB,MAAM,EAAE,GAAG,SAAS,WACxB,OAAO,GAAG,SAAS,gBACd,WAAW,CAAC,aAAa,CAAC;;;;;;;;;;;;;;aA6H7C,CAAC"}
1
+ {"version":3,"file":"use-structured-reference-selection.d.ts","sourceRoot":"","sources":["../../../hooks/use-structured-reference-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,iCAAiC,GAAI,2BAG/C;IACD,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC;IACvC,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;CAC/C,eAGc,MAAM,QACT,aAAa,GAAG,SAAS,aACpB,MAAM,GAAG,SAAS,eAChB,MAAM,EAAE,GAAG,SAAS,WACxB,OAAO,GAAG,SAAS,gBACd,WAAW,CAAC,aAAa,CAAC;;;;;;;;;;;;;;aA8I7C,CAAC"}
@@ -51,6 +51,16 @@ var useOnStructuredReferenceSelection = function (_a) {
51
51
  sheetName: sheetName,
52
52
  };
53
53
  }
54
+ // Totals row only (the table's last row); nothing to highlight while it is off.
55
+ if (specialItem === "#Totals") {
56
+ if (!totalRow) {
57
+ return undefined;
58
+ }
59
+ return {
60
+ range: tslib_1.__assign(tslib_1.__assign({}, range), { startColumnIndex: startColumnIndex, endColumnIndex: endColumnIndex, startRowIndex: range.endRowIndex, endRowIndex: range.endRowIndex }),
61
+ sheetName: sheetName,
62
+ };
63
+ }
54
64
  // All
55
65
  if (specialItem === "#All") {
56
66
  return {
@@ -0,0 +1,61 @@
1
+ import type { CellInterface, CellPosition, GridRange, PosXYRequired, ScrollCoords, SelectionArea } from "@rowsncolumns/grid";
2
+ import type React from "react";
3
+ import type { CanvasGridProps } from "../components/canvas-grid/typings";
4
+ import type { TableView } from "../types";
5
+ /** Width of the edge bands (px, in grid coordinates) that count as a table hit zone. */
6
+ export declare const TABLE_HIT_BAND = 4;
7
+ export type TableHitZone = {
8
+ /**
9
+ * `column`: the top edge of a header cell (selects the column data, then
10
+ * the entire table column). `corner`: the header's top-left corner (selects
11
+ * the data body, then the whole table). `row`: the left edge of the first
12
+ * column (selects the table row).
13
+ */
14
+ kind: "column" | "corner" | "row";
15
+ table: TableView;
16
+ cell: CellInterface;
17
+ };
18
+ /** Excel's black selection arrows: down on a header edge, right on a row edge, diagonal on the corner. */
19
+ export declare const TABLE_HIT_CURSORS: Record<TableHitZone["kind"], string>;
20
+ /**
21
+ * Classify a pointer position inside `cell` against the table it belongs to.
22
+ * `offset` is the pointer's position relative to the cell's top-left corner.
23
+ */
24
+ export declare const getTableHitZone: (table: TableView | undefined, cell: CellInterface, offset: {
25
+ x: number;
26
+ y: number;
27
+ }, band?: number) => TableHitZone | undefined;
28
+ /**
29
+ * The range a click on `zone` selects, given the single selected area (if
30
+ * any): a header edge selects the column data first and the entire table
31
+ * column on the next click; the corner toggles data body ↔ whole table; a row
32
+ * edge selects the table row.
33
+ */
34
+ export declare const getTableHitZoneRange: (zone: TableHitZone, current: GridRange | undefined) => GridRange;
35
+ export type UseTableHitZonesOptions = {
36
+ sheetId: number;
37
+ tables: CanvasGridProps["tables"];
38
+ selections: SelectionArea[];
39
+ frozenRows: number;
40
+ frozenColumns: number;
41
+ getCellCoordsFromOffset: (x: number, y: number) => CellInterface | undefined;
42
+ getRelativePositionFromOffset: (x: number, y: number) => PosXYRequired | null | undefined;
43
+ getCellOffsetFromCoords: (cell: CellInterface) => CellPosition | undefined;
44
+ getScrollPosition: () => ScrollCoords | undefined;
45
+ /** Replaces the selection with `range`, active cell at its top-left. */
46
+ onSelectRange: (sheetId: number, range: GridRange) => void;
47
+ };
48
+ /**
49
+ * Excel's table hit zones: hovering the top edge of a header cell, the
50
+ * header's top-left corner or the left edge of a row shows the black
51
+ * selection arrow; a click there selects the table column data / body / row
52
+ * instead of starting a cell selection.
53
+ */
54
+ export declare const useTableHitZones: ({ sheetId, tables, selections, frozenRows, frozenColumns, getCellCoordsFromOffset, getRelativePositionFromOffset, getCellOffsetFromCoords, getScrollPosition, onSelectRange, }: UseTableHitZonesOptions) => {
55
+ hitZone: TableHitZone | undefined;
56
+ cursor: string | undefined;
57
+ onMouseMove: (e: React.MouseEvent<HTMLElement>) => void;
58
+ onMouseDown: (e: React.MouseEvent<HTMLElement>) => boolean;
59
+ clearHitZone: () => void;
60
+ };
61
+ //# sourceMappingURL=use-table-hit-zones.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-table-hit-zones.d.ts","sourceRoot":"","sources":["../../../hooks/use-table-hit-zones.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,aAAa,EACb,YAAY,EACZ,aAAa,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,wFAAwF;AACxF,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,MAAM,MAAM,YAAY,GAAG;IACzB;;;;;OAKG;IACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClC,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,aAAa,CAAC;CACrB,CAAC;AAOF,0GAA0G;AAC1G,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAIlE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAC1B,OAAO,SAAS,GAAG,SAAS,EAC5B,MAAM,aAAa,EACnB,QAAQ;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAChC,aAAqB,KACpB,YAAY,GAAG,SA0BjB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,YAAY,EAClB,SAAS,SAAS,GAAG,SAAS,KAC7B,SA+BF,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAClC,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,CAAC;IAC7E,6BAA6B,EAAE,CAC7B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,KACN,aAAa,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,uBAAuB,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,YAAY,GAAG,SAAS,CAAC;IAC3E,iBAAiB,EAAE,MAAM,YAAY,GAAG,SAAS,CAAC;IAClD,wEAAwE;IACxE,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CAC5D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,gLAW9B,uBAAuB;;;qBAyClB,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;qBAqB7B,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;;CA4BpC,CAAC"}