@1771technologies/lytenyte-pro 1.0.0-beta.36 → 1.0.0-beta.37

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 (386) hide show
  1. package/dist/+types.d.ts +4469 -4219
  2. package/dist/cell-selection/adjust-rect-for-row-and-cell-span.js +38 -38
  3. package/dist/cell-selection/are-rects-equal.js +4 -6
  4. package/dist/cell-selection/bound-selection-rect.js +14 -14
  5. package/dist/cell-selection/cell-selection-containers.js +78 -108
  6. package/dist/cell-selection/cell-selection-driver.js +262 -250
  7. package/dist/cell-selection/cell-style-row.d.ts +6 -12
  8. package/dist/cell-selection/cell-style-row.js +79 -82
  9. package/dist/cell-selection/deselect-rect-range.js +40 -41
  10. package/dist/cell-selection/expand-cell-selection-down.d.ts +2 -5
  11. package/dist/cell-selection/expand-cell-selection-down.js +33 -29
  12. package/dist/cell-selection/expand-cell-selection-end.d.ts +2 -5
  13. package/dist/cell-selection/expand-cell-selection-end.js +34 -30
  14. package/dist/cell-selection/expand-cell-selection-start.d.ts +2 -5
  15. package/dist/cell-selection/expand-cell-selection-start.js +33 -29
  16. package/dist/cell-selection/expand-cell-selection-up.d.ts +2 -5
  17. package/dist/cell-selection/expand-cell-selection-up.js +33 -29
  18. package/dist/cell-selection/full-width-start-end-index.js +3 -3
  19. package/dist/cell-selection/get-root-cell.d.ts +1 -5
  20. package/dist/cell-selection/get-root-cell.js +79 -77
  21. package/dist/cell-selection/is-bottom-rect.js +5 -5
  22. package/dist/cell-selection/is-center-col-rect.d.ts +2 -5
  23. package/dist/cell-selection/is-center-col-rect.js +3 -5
  24. package/dist/cell-selection/is-center-rect.js +3 -3
  25. package/dist/cell-selection/is-end-rect.d.ts +2 -5
  26. package/dist/cell-selection/is-end-rect.js +2 -2
  27. package/dist/cell-selection/is-overlapping-rect.js +4 -6
  28. package/dist/cell-selection/is-start-rect.d.ts +2 -5
  29. package/dist/cell-selection/is-start-rect.js +2 -2
  30. package/dist/cell-selection/is-top-rect.js +2 -2
  31. package/dist/cell-selection/is-within-selection-rect.js +1 -1
  32. package/dist/cell-selection/split-cell-selection-rect.d.ts +6 -12
  33. package/dist/cell-selection/split-cell-selection-rect.js +47 -53
  34. package/dist/cell-selection/update-additive-cell-selection.d.ts +2 -5
  35. package/dist/cell-selection/update-additive-cell-selection.js +17 -16
  36. package/dist/cell-selection/use-edge-scroll.d.ts +6 -8
  37. package/dist/cell-selection/use-edge-scroll.js +63 -65
  38. package/dist/cells/cell-default.d.ts +1 -5
  39. package/dist/cells/cell-default.js +5 -5
  40. package/dist/cells/cell-editor.d.ts +2 -4
  41. package/dist/cells/cell-editor.js +92 -129
  42. package/dist/cells/cell.d.ts +3 -16
  43. package/dist/cells/cell.js +27 -56
  44. package/dist/column-manager/branch-lookup-context.d.ts +1 -3
  45. package/dist/column-manager/branch.d.ts +9 -17
  46. package/dist/column-manager/branch.js +46 -64
  47. package/dist/column-manager/column-manager.d.ts +8 -57
  48. package/dist/column-manager/column-manager.js +8 -8
  49. package/dist/column-manager/context.d.ts +1 -1
  50. package/dist/column-manager/label.d.ts +2 -10
  51. package/dist/column-manager/label.js +12 -11
  52. package/dist/column-manager/leaf.d.ts +2 -10
  53. package/dist/column-manager/leaf.js +49 -61
  54. package/dist/column-manager/move-handle.d.ts +6 -14
  55. package/dist/column-manager/move-handle.js +48 -52
  56. package/dist/column-manager/panel.d.ts +1 -10
  57. package/dist/column-manager/root.d.ts +3 -7
  58. package/dist/column-manager/root.js +1 -4
  59. package/dist/column-manager/use-column-manager.d.ts +5 -7
  60. package/dist/column-manager/use-column-manager.js +21 -15
  61. package/dist/column-manager/use-columns-from-context.d.ts +1 -3
  62. package/dist/column-manager/use-columns-from-context.js +18 -18
  63. package/dist/column-manager/visibility-checkbox.d.ts +6 -14
  64. package/dist/column-manager/visibility-checkbox.js +23 -36
  65. package/dist/context.d.ts +4 -4
  66. package/dist/filter-tree/branch.d.ts +8 -16
  67. package/dist/filter-tree/branch.js +13 -23
  68. package/dist/filter-tree/context.d.ts +16 -16
  69. package/dist/filter-tree/filter-tree.d.ts +8 -49
  70. package/dist/filter-tree/filter-tree.js +8 -8
  71. package/dist/filter-tree/hooks/use-filter-tree.d.ts +29 -35
  72. package/dist/filter-tree/hooks/use-filter-tree.js +92 -94
  73. package/dist/filter-tree/hooks/use-tree-item.d.ts +4 -4
  74. package/dist/filter-tree/hooks/use-tree-item.js +106 -99
  75. package/dist/filter-tree/inclusion-checkbox.d.ts +6 -14
  76. package/dist/filter-tree/inclusion-checkbox.js +9 -19
  77. package/dist/filter-tree/label.d.ts +2 -10
  78. package/dist/filter-tree/label.js +12 -11
  79. package/dist/filter-tree/leaf.d.ts +2 -10
  80. package/dist/filter-tree/leaf.js +5 -15
  81. package/dist/filter-tree/root.d.ts +7 -23
  82. package/dist/filter-tree/root.js +23 -51
  83. package/dist/grid-box/+types.d.ts +11 -11
  84. package/dist/grid-box/context.d.ts +3 -3
  85. package/dist/grid-box/grid-box.d.ts +6 -26
  86. package/dist/grid-box/grid-box.js +6 -6
  87. package/dist/grid-box/item.d.ts +5 -13
  88. package/dist/grid-box/item.js +56 -73
  89. package/dist/grid-box/panel.d.ts +1 -13
  90. package/dist/grid-box/panel.js +2 -9
  91. package/dist/grid-box/root.d.ts +5 -11
  92. package/dist/grid-box/root.js +2 -11
  93. package/dist/grid-box/use-aggregation-box-items.d.ts +13 -16
  94. package/dist/grid-box/use-aggregation-box-items.js +57 -56
  95. package/dist/grid-box/use-column-box-items.d.ts +23 -33
  96. package/dist/grid-box/use-column-box-items.js +75 -87
  97. package/dist/grid-box/use-row-group-box-items.d.ts +12 -17
  98. package/dist/grid-box/use-row-group-box-items.js +123 -120
  99. package/dist/grid-provider/context.d.ts +2 -4
  100. package/dist/grid-provider/provider.d.ts +2 -4
  101. package/dist/grid-provider/use-grid.d.ts +1 -1
  102. package/dist/grid.d.ts +14 -126
  103. package/dist/grid.js +14 -14
  104. package/dist/header/header-cell.d.ts +5 -13
  105. package/dist/header/header-cell.js +15 -41
  106. package/dist/header/header-group-cell.d.ts +2 -10
  107. package/dist/header/header-group-cell.js +8 -26
  108. package/dist/header/header-row.d.ts +2 -10
  109. package/dist/header/header-row.js +2 -2
  110. package/dist/header/header.d.ts +1 -10
  111. package/dist/header/header.js +2 -11
  112. package/dist/header/resize-handler.d.ts +6 -15
  113. package/dist/header/resize-handler.js +122 -131
  114. package/dist/header/use-drag-move.d.ts +11 -22
  115. package/dist/header/use-drag-move.js +94 -95
  116. package/dist/header/use-header-cell-renderer.d.ts +2 -9
  117. package/dist/header/use-header-cell-renderer.js +29 -25
  118. package/dist/icons/index.d.ts +1 -92
  119. package/dist/icons/index.js +1 -92
  120. package/dist/index.d.ts +5 -22
  121. package/dist/index.js +5 -22
  122. package/dist/license.js +174 -174
  123. package/dist/listbox/context.d.ts +2 -2
  124. package/dist/listbox/item.d.ts +1 -10
  125. package/dist/listbox/item.js +19 -23
  126. package/dist/listbox/panel.d.ts +1 -10
  127. package/dist/listbox/panel.js +43 -69
  128. package/dist/listbox/root.d.ts +3 -5
  129. package/dist/listbox/root.js +7 -7
  130. package/dist/root/dialog-driver.js +16 -22
  131. package/dist/root/popover-driver.js +16 -27
  132. package/dist/root/root.d.ts +3 -7
  133. package/dist/root/root.js +107 -111
  134. package/dist/row-data-source-client/+types.d.ts +17 -17
  135. package/dist/row-data-source-client/built-ins/avg.js +4 -3
  136. package/dist/row-data-source-client/built-ins/built-ins.d.ts +16 -16
  137. package/dist/row-data-source-client/built-ins/built-ins.js +16 -16
  138. package/dist/row-data-source-client/built-ins/count.js +5 -3
  139. package/dist/row-data-source-client/built-ins/first.js +1 -1
  140. package/dist/row-data-source-client/built-ins/group.js +1 -1
  141. package/dist/row-data-source-client/built-ins/last.js +1 -1
  142. package/dist/row-data-source-client/built-ins/max.js +13 -9
  143. package/dist/row-data-source-client/built-ins/min.js +13 -9
  144. package/dist/row-data-source-client/built-ins/sum.js +10 -8
  145. package/dist/row-data-source-client/filter/+types.d.ts +13 -35
  146. package/dist/row-data-source-client/filter/compute-filtered-rows.d.ts +2 -16
  147. package/dist/row-data-source-client/filter/compute-filtered-rows.js +102 -102
  148. package/dist/row-data-source-client/pivots/create-agg-model.d.ts +4 -8
  149. package/dist/row-data-source-client/pivots/create-agg-model.js +9 -8
  150. package/dist/row-data-source-client/pivots/create-pivot-columns-from-paths.d.ts +1 -6
  151. package/dist/row-data-source-client/pivots/create-pivot-columns-from-paths.js +46 -42
  152. package/dist/row-data-source-client/pivots/create-pivot-columns.d.ts +1 -6
  153. package/dist/row-data-source-client/pivots/create-pivot-columns.js +17 -16
  154. package/dist/row-data-source-client/pivots/create-pivot-tree.d.ts +1 -7
  155. package/dist/row-data-source-client/pivots/create-pivot-tree.js +19 -19
  156. package/dist/row-data-source-client/tree/client-tree.d.ts +13 -19
  157. package/dist/row-data-source-client/tree/client-tree.js +67 -64
  158. package/dist/row-data-source-client/tree/evaluator-aggregation.d.ts +1 -4
  159. package/dist/row-data-source-client/tree/evaluator-aggregation.js +6 -6
  160. package/dist/row-data-source-client/tree/evaluator-group.d.ts +1 -4
  161. package/dist/row-data-source-client/tree/evaluator-group.js +7 -6
  162. package/dist/row-data-source-client/tree/traverse.d.ts +1 -5
  163. package/dist/row-data-source-client/tree/traverse.js +18 -15
  164. package/dist/row-data-source-client/use-client-data-source-paginated.d.ts +5 -9
  165. package/dist/row-data-source-client/use-client-data-source-paginated.js +551 -566
  166. package/dist/row-data-source-client/use-client-data-source.d.ts +5 -9
  167. package/dist/row-data-source-client/use-client-data-source.js +661 -696
  168. package/dist/row-data-source-client/use-client-tree-data-source.d.ts +5 -9
  169. package/dist/row-data-source-client/use-client-tree-data-source.js +512 -523
  170. package/dist/row-data-source-server/async-tree/+types.async-tree.d.ts +33 -36
  171. package/dist/row-data-source-server/async-tree/apply-delete-action-to-tree.d.ts +1 -4
  172. package/dist/row-data-source-server/async-tree/apply-delete-action-to-tree.js +22 -18
  173. package/dist/row-data-source-server/async-tree/apply-set-action-to-tree.d.ts +1 -4
  174. package/dist/row-data-source-server/async-tree/apply-set-action-to-tree.js +25 -17
  175. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-are-unique.js +18 -18
  176. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-are-valid.js +10 -9
  177. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-fit.d.ts +1 -4
  178. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-fit.js +14 -13
  179. package/dist/row-data-source-server/async-tree/check-set-action-item-kinds.js +10 -9
  180. package/dist/row-data-source-server/async-tree/get-parent-node-by-path.d.ts +1 -4
  181. package/dist/row-data-source-server/async-tree/get-parent-node-by-path.js +13 -13
  182. package/dist/row-data-source-server/async-tree/is-set-action-a-no-op-on-node.d.ts +1 -4
  183. package/dist/row-data-source-server/async-tree/is-set-action-a-no-op-on-node.js +1 -1
  184. package/dist/row-data-source-server/async-tree/make-async-tree.js +14 -14
  185. package/dist/row-data-source-server/async-tree/maybe-apply-parent-remove-self.d.ts +1 -3
  186. package/dist/row-data-source-server/async-tree/maybe-apply-parent-remove-self.js +6 -6
  187. package/dist/row-data-source-server/async-tree/maybe-apply-resize.d.ts +1 -5
  188. package/dist/row-data-source-server/async-tree/maybe-apply-resize.js +14 -11
  189. package/dist/row-data-source-server/async-tree/maybe-apply-set-action-items.d.ts +1 -4
  190. package/dist/row-data-source-server/async-tree/maybe-apply-set-action-items.js +46 -42
  191. package/dist/row-data-source-server/range-tree/range-tree.d.ts +28 -28
  192. package/dist/row-data-source-server/range-tree/range-tree.js +48 -49
  193. package/dist/row-data-source-server/use-server-data-source.d.ts +2 -11
  194. package/dist/row-data-source-server/use-server-data-source.js +675 -688
  195. package/dist/row-data-source-server/utils/get-node-depth.js +7 -7
  196. package/dist/row-data-source-server/utils/get-node-path.js +7 -7
  197. package/dist/row-data-source-server/utils/get-request-id.js +4 -3
  198. package/dist/rows/row/context.d.ts +2 -2
  199. package/dist/rows/row/row.d.ts +3 -16
  200. package/dist/rows/row/row.js +4 -19
  201. package/dist/rows/row/use-row-context-value.d.ts +2 -5
  202. package/dist/rows/row/use-row-context-value.js +26 -23
  203. package/dist/rows/row-detail-row.d.ts +2 -4
  204. package/dist/rows/row-detail-row.js +124 -147
  205. package/dist/rows/row-full-width.d.ts +4 -12
  206. package/dist/rows/row-full-width.js +7 -35
  207. package/dist/rows/rows-container.d.ts +1 -10
  208. package/dist/rows/rows-container.js +3 -12
  209. package/dist/rows/rows-sections.d.ts +3 -30
  210. package/dist/rows/rows-sections.js +10 -42
  211. package/dist/rows/scrollers/native-scroller.d.ts +1 -3
  212. package/dist/rows/scrollers/native-scroller.js +13 -17
  213. package/dist/sort-manager/+types.d.ts +7 -14
  214. package/dist/sort-manager/context.d.ts +4 -4
  215. package/dist/sort-manager/hooks/use-sort-manager.d.ts +9 -9
  216. package/dist/sort-manager/hooks/use-sort-manager.js +49 -45
  217. package/dist/sort-manager/hooks/use-sort-row-item.d.ts +46 -57
  218. package/dist/sort-manager/hooks/use-sort-row-item.js +131 -126
  219. package/dist/sort-manager/hooks/use-sortable-column-items.d.ts +3 -6
  220. package/dist/sort-manager/hooks/use-sortable-column-items.js +10 -10
  221. package/dist/sort-manager/root.d.ts +1 -7
  222. package/dist/sort-manager/root.js +10 -10
  223. package/dist/sort-manager/sort-add.d.ts +5 -13
  224. package/dist/sort-manager/sort-add.js +8 -8
  225. package/dist/sort-manager/sort-apply.d.ts +4 -12
  226. package/dist/sort-manager/sort-apply.js +16 -16
  227. package/dist/sort-manager/sort-cancel.d.ts +4 -12
  228. package/dist/sort-manager/sort-cancel.js +19 -19
  229. package/dist/sort-manager/sort-clear.d.ts +4 -12
  230. package/dist/sort-manager/sort-clear.js +16 -15
  231. package/dist/sort-manager/sort-column-select.d.ts +6 -14
  232. package/dist/sort-manager/sort-column-select.js +14 -22
  233. package/dist/sort-manager/sort-direction-select.d.ts +6 -14
  234. package/dist/sort-manager/sort-direction-select.js +19 -27
  235. package/dist/sort-manager/sort-manager.d.ts +12 -93
  236. package/dist/sort-manager/sort-manager.js +12 -12
  237. package/dist/sort-manager/sort-remove.d.ts +4 -12
  238. package/dist/sort-manager/sort-remove.js +8 -8
  239. package/dist/sort-manager/sort-row.d.ts +2 -10
  240. package/dist/sort-manager/sort-row.js +1 -4
  241. package/dist/sort-manager/sort-rows.d.ts +1 -10
  242. package/dist/sort-manager/sort-rows.js +1 -1
  243. package/dist/sort-manager/sort-value-select.d.ts +7 -15
  244. package/dist/sort-manager/sort-value-select.js +19 -28
  245. package/dist/sort-manager/utils/sort-item-to-sort-model.d.ts +1 -4
  246. package/dist/sort-manager/utils/sort-item-to-sort-model.js +49 -46
  247. package/dist/sort-manager/utils/sort-model-to-sort-items.d.ts +1 -4
  248. package/dist/sort-manager/utils/sort-model-to-sort-items.js +44 -36
  249. package/dist/state/+types.d.ts +29 -43
  250. package/dist/state/api/column-autosize.d.ts +2 -4
  251. package/dist/state/api/column-autosize.js +63 -62
  252. package/dist/state/api/column-by-id.js +4 -4
  253. package/dist/state/api/column-field.js +20 -17
  254. package/dist/state/api/column-from-index.js +4 -4
  255. package/dist/state/api/column-group-toggle.js +8 -8
  256. package/dist/state/api/column-index.js +5 -5
  257. package/dist/state/api/column-move.js +46 -48
  258. package/dist/state/api/column-resize.js +7 -9
  259. package/dist/state/api/column-update.d.ts +2 -4
  260. package/dist/state/api/column-update.js +23 -23
  261. package/dist/state/api/dialog-frame.d.ts +4 -8
  262. package/dist/state/api/dialog-frame.js +12 -11
  263. package/dist/state/api/edit-begin.d.ts +2 -4
  264. package/dist/state/api/edit-begin.js +84 -71
  265. package/dist/state/api/edit-end.d.ts +2 -4
  266. package/dist/state/api/edit-end.js +41 -38
  267. package/dist/state/api/edit-is-cell-active.d.ts +2 -4
  268. package/dist/state/api/edit-is-cell-active.js +24 -17
  269. package/dist/state/api/edit-update.d.ts +2 -4
  270. package/dist/state/api/edit-update.js +85 -74
  271. package/dist/state/api/event-listeners.d.ts +3 -12
  272. package/dist/state/api/event-listeners.js +17 -16
  273. package/dist/state/api/export-csv.js +35 -33
  274. package/dist/state/api/export-data-rect.js +21 -21
  275. package/dist/state/api/focus-cell.d.ts +2 -4
  276. package/dist/state/api/focus-cell.js +109 -110
  277. package/dist/state/api/popover-frame.d.ts +4 -8
  278. package/dist/state/api/popover-frame.js +12 -11
  279. package/dist/state/api/position-from-element.js +6 -5
  280. package/dist/state/api/row-by-id.js +3 -3
  281. package/dist/state/api/row-by-index.js +6 -11
  282. package/dist/state/api/row-detail-is-expanded.d.ts +1 -3
  283. package/dist/state/api/row-detail-is-expanded.js +4 -4
  284. package/dist/state/api/row-detail-rendered-height.d.ts +2 -4
  285. package/dist/state/api/row-detail-rendered-height.js +12 -10
  286. package/dist/state/api/row-detail-toggle.js +30 -26
  287. package/dist/state/api/row-group-apply-expansions.d.ts +1 -3
  288. package/dist/state/api/row-group-apply-expansions.js +17 -15
  289. package/dist/state/api/row-group-column-index.d.ts +1 -3
  290. package/dist/state/api/row-group-column-index.js +12 -14
  291. package/dist/state/api/row-group-is-expanded.d.ts +1 -3
  292. package/dist/state/api/row-group-is-expanded.js +13 -11
  293. package/dist/state/api/row-group-toggle.js +5 -5
  294. package/dist/state/api/row-handle-select.d.ts +2 -4
  295. package/dist/state/api/row-handle-select.js +40 -36
  296. package/dist/state/api/row-select-all.js +15 -14
  297. package/dist/state/api/row-select.d.ts +2 -4
  298. package/dist/state/api/row-select.js +33 -30
  299. package/dist/state/api/row-selected.js +11 -10
  300. package/dist/state/api/scroll-into-view.d.ts +2 -4
  301. package/dist/state/api/scroll-into-view.js +47 -47
  302. package/dist/state/api/sort-for-column.js +7 -6
  303. package/dist/state/api/use-row-drag.js +24 -22
  304. package/dist/state/helpers/cell-row-group.d.ts +1 -5
  305. package/dist/state/helpers/cell-row-group.js +16 -18
  306. package/dist/state/helpers/column-add-row-group.d.ts +7 -18
  307. package/dist/state/helpers/column-add-row-group.js +66 -71
  308. package/dist/state/helpers/column-layout.d.ts +1 -7
  309. package/dist/state/helpers/column-layout.js +60 -60
  310. package/dist/state/helpers/column-marker.d.ts +4 -8
  311. package/dist/state/helpers/column-marker.js +34 -38
  312. package/dist/state/helpers/column-view.d.ts +15 -21
  313. package/dist/state/helpers/column-view.js +32 -56
  314. package/dist/state/helpers/edit-on-change.d.ts +10 -18
  315. package/dist/state/helpers/edit-on-change.js +25 -25
  316. package/dist/state/helpers/empty-row-data-source.js +16 -16
  317. package/dist/state/helpers/get-data-rect.d.ts +10 -20
  318. package/dist/state/helpers/get-data-rect.js +62 -67
  319. package/dist/state/helpers/get-full-width-callback.d.ts +1 -5
  320. package/dist/state/helpers/get-full-width-callback.js +6 -5
  321. package/dist/state/helpers/get-span-callback.d.ts +1 -6
  322. package/dist/state/helpers/get-span-callback.js +18 -15
  323. package/dist/state/helpers/resolve-column.d.ts +2 -6
  324. package/dist/state/helpers/resolve-column.js +23 -23
  325. package/dist/state/helpers/row-layout/get-focus-criteria.d.ts +12 -15
  326. package/dist/state/helpers/row-layout/get-focus-criteria.js +56 -57
  327. package/dist/state/helpers/row-layout/row-layout.d.ts +9 -15
  328. package/dist/state/helpers/row-layout/row-layout.js +401 -387
  329. package/dist/state/use-lytenyte.js +528 -567
  330. package/dist/tree-view/branch/branch.d.ts +11 -19
  331. package/dist/tree-view/branch/branch.js +54 -106
  332. package/dist/tree-view/branch/use-branch-keys.d.ts +1 -5
  333. package/dist/tree-view/branch/use-branch-keys.js +74 -71
  334. package/dist/tree-view/context.d.ts +17 -21
  335. package/dist/tree-view/hooks/use-tree-view-paths.d.ts +1 -7
  336. package/dist/tree-view/hooks/use-tree-view-paths.js +5 -5
  337. package/dist/tree-view/index.d.ts +7 -35
  338. package/dist/tree-view/index.js +7 -7
  339. package/dist/tree-view/leaf.d.ts +2 -10
  340. package/dist/tree-view/leaf.js +21 -30
  341. package/dist/tree-view/navigation/get-all-ids.js +3 -3
  342. package/dist/tree-view/navigation/get-first-node.js +3 -3
  343. package/dist/tree-view/navigation/get-last-node.js +3 -3
  344. package/dist/tree-view/navigation/get-next-node.js +8 -6
  345. package/dist/tree-view/navigation/get-prev-node.js +8 -6
  346. package/dist/tree-view/panel/make-handle-navigation.js +31 -23
  347. package/dist/tree-view/panel/make-handle-selection.js +77 -68
  348. package/dist/tree-view/panel/make-handle-typeahead.js +40 -34
  349. package/dist/tree-view/panel/panel.d.ts +1 -10
  350. package/dist/tree-view/panel/panel.js +20 -40
  351. package/dist/tree-view/panel/use-tree-navigation.js +52 -64
  352. package/dist/tree-view/root.d.ts +14 -20
  353. package/dist/tree-view/root.js +55 -53
  354. package/dist/tree-view/utils/get-focusable-nodes.js +2 -4
  355. package/dist/tree-view/utils/get-focused-node.js +11 -11
  356. package/dist/tree-view/utils/get-ids-between-nodes.d.ts +1 -5
  357. package/dist/tree-view/utils/get-ids-between-nodes.js +11 -10
  358. package/dist/tree-view/utils/get-panel.js +5 -5
  359. package/dist/tree-view/utils/get-parent-node.js +7 -6
  360. package/dist/tree-view/utils/get-sibling-branches.js +10 -8
  361. package/dist/tree-view/utils/get-tree-node-id.js +1 -1
  362. package/dist/tree-view/utils/is-branch-node.js +1 -1
  363. package/dist/tree-view/utils/is-leaf-node.js +1 -1
  364. package/dist/tree-view/utils/is-tree-node-disabled.js +1 -1
  365. package/dist/tree-view/utils/select-node.d.ts +1 -5
  366. package/dist/tree-view/utils/select-node.js +11 -8
  367. package/dist/tree-view/utils/toggle-all-selections.js +6 -4
  368. package/dist/tree-view/utils/toggle-selection.js +18 -15
  369. package/dist/tree-view/virtualized/force-sync-scrolling.d.ts +1 -3
  370. package/dist/tree-view/virtualized/force-sync-scrolling.js +18 -24
  371. package/dist/tree-view/virtualized/get-virtual-tree-paths.d.ts +1 -3
  372. package/dist/tree-view/virtualized/get-virtual-tree-paths.js +12 -11
  373. package/dist/tree-view/virtualized/make-virtual-tree.d.ts +21 -26
  374. package/dist/tree-view/virtualized/make-virtual-tree.js +85 -79
  375. package/dist/tree-view/virtualized/use-flattened-tree.d.ts +8 -17
  376. package/dist/tree-view/virtualized/use-flattened-tree.js +31 -30
  377. package/dist/tree-view/virtualized/use-row-start-and-end.d.ts +1 -6
  378. package/dist/tree-view/virtualized/use-row-start-and-end.js +23 -21
  379. package/dist/tree-view/virtualized/use-virtualized-tree.d.ts +15 -21
  380. package/dist/tree-view/virtualized/use-virtualized-tree.js +90 -103
  381. package/dist/utils/cycle-sorts.js +14 -12
  382. package/dist/viewport/begin-editing.d.ts +2 -6
  383. package/dist/viewport/begin-editing.js +13 -9
  384. package/dist/viewport/viewport.d.ts +1 -10
  385. package/dist/viewport/viewport.js +70 -93
  386. package/package.json +7 -7
@@ -2,83 +2,85 @@ import { getSpanFn } from "../state/helpers/get-span-callback.js";
2
2
  import { getFullWidthCallback } from "../state/helpers/get-full-width-callback.js";
3
3
  import { applyLayoutUpdate } from "@1771technologies/lytenyte-shared";
4
4
  export const getRootCell = (grid, rowIndex, columnIndex) => {
5
- const rds = grid.state.rowDataSource.get();
6
- const meta = grid.state.columnMeta.get();
7
- const columns = meta.columnsVisible;
8
- const rowScan = grid.state.rowScanDistance.get();
9
- const colScan = grid.state.colScanDistance.get();
10
- const fullWidth = grid.state.rowFullWidthPredicate.get().fn;
11
- const layoutMap = new Map();
12
- const topCount = grid.state.rowDataStore.rowTopCount.get();
13
- const botCount = grid.state.rowDataStore.rowBottomCount.get();
14
- const rowCenterCount = grid.state.rowDataStore.rowCenterCount.get();
15
- const isTop = rowIndex < topCount;
16
- const isBot = rowIndex >= topCount + rowCenterCount;
17
- const isStart = columns[columnIndex].pin === "start";
18
- const isEnd = columns[columnIndex].pin === "end";
19
- applyLayoutUpdate({
20
- computeColSpan: getSpanFn(rds, grid, columns, "col"),
21
- computeRowSpan: getSpanFn(rds, grid, columns, "row"),
22
- colScanDistance: colScan,
23
- rowScanDistance: rowScan,
24
- invalidated: true,
25
- isFullWidth: getFullWidthCallback(rds, fullWidth, grid),
26
- isRowCutoff: (r) => {
27
- const row = rds.rowByIndex(r);
28
- return !row || row.kind === "branch";
29
- },
30
- layoutMap,
31
- nextLayout: {
32
- rowTopStart: 0,
33
- rowTopEnd: topCount,
34
- rowBotStart: topCount + rowCenterCount,
35
- rowBotEnd: topCount + rowCenterCount + botCount,
36
- rowCenterStart: isTop || isBot ? 0 : rowIndex,
37
- rowCenterEnd: isTop || isBot ? 0 : rowIndex + 1,
38
- rowCenterLast: topCount + rowCenterCount,
39
- colStartStart: 0,
40
- colStartEnd: meta.columnVisibleStartCount,
41
- colEndStart: meta.columnVisibleStartCount + meta.columnVisibleCenterCount,
42
- colEndEnd: columns.length,
43
- colCenterStart: isStart || isEnd ? 0 : columnIndex,
44
- colCenterEnd: isStart || isEnd ? 0 : columnIndex + 1,
45
- colCenterLast: meta.columnVisibleStartCount + meta.columnVisibleCenterCount,
46
- },
47
- prevLayout: {
48
- colCenterEnd: -1,
49
- colCenterLast: -1,
50
- colCenterStart: -1,
51
- colEndEnd: -1,
52
- colEndStart: -1,
53
- colStartEnd: -1,
54
- colStartStart: -1,
55
- rowBotEnd: -1,
56
- rowBotStart: -1,
57
- rowCenterEnd: -1,
58
- rowCenterLast: -1,
59
- rowCenterStart: -1,
60
- rowTopEnd: -1,
61
- rowTopStart: -1,
62
- },
63
- });
64
- const row = layoutMap.get(rowIndex);
65
- const cell = row?.get(columnIndex);
66
- if (!cell) return null;
67
- if (cell?.length === 2)
5
+ const rds = grid.state.rowDataSource.get();
6
+ const meta = grid.state.columnMeta.get();
7
+ const columns = meta.columnsVisible;
8
+ const rowScan = grid.state.rowScanDistance.get();
9
+ const colScan = grid.state.colScanDistance.get();
10
+ const fullWidth = grid.state.rowFullWidthPredicate.get().fn;
11
+ const layoutMap = new Map();
12
+ const topCount = grid.state.rowDataStore.rowTopCount.get();
13
+ const botCount = grid.state.rowDataStore.rowBottomCount.get();
14
+ const rowCenterCount = grid.state.rowDataStore.rowCenterCount.get();
15
+ const isTop = rowIndex < topCount;
16
+ const isBot = rowIndex >= topCount + rowCenterCount;
17
+ const isStart = columns[columnIndex].pin === "start";
18
+ const isEnd = columns[columnIndex].pin === "end";
19
+ applyLayoutUpdate({
20
+ computeColSpan: getSpanFn(rds, grid, columns, "col"),
21
+ computeRowSpan: getSpanFn(rds, grid, columns, "row"),
22
+ colScanDistance: colScan,
23
+ rowScanDistance: rowScan,
24
+ invalidated: true,
25
+ isFullWidth: getFullWidthCallback(rds, fullWidth, grid),
26
+ isRowCutoff: (r) => {
27
+ const row = rds.rowByIndex(r);
28
+ return !row || row.kind === "branch";
29
+ },
30
+ layoutMap,
31
+ nextLayout: {
32
+ rowTopStart: 0,
33
+ rowTopEnd: topCount,
34
+ rowBotStart: topCount + rowCenterCount,
35
+ rowBotEnd: topCount + rowCenterCount + botCount,
36
+ rowCenterStart: isTop || isBot ? 0 : rowIndex,
37
+ rowCenterEnd: isTop || isBot ? 0 : rowIndex + 1,
38
+ rowCenterLast: topCount + rowCenterCount,
39
+ colStartStart: 0,
40
+ colStartEnd: meta.columnVisibleStartCount,
41
+ colEndStart: meta.columnVisibleStartCount + meta.columnVisibleCenterCount,
42
+ colEndEnd: columns.length,
43
+ colCenterStart: isStart || isEnd ? 0 : columnIndex,
44
+ colCenterEnd: isStart || isEnd ? 0 : columnIndex + 1,
45
+ colCenterLast: meta.columnVisibleStartCount + meta.columnVisibleCenterCount,
46
+ },
47
+ prevLayout: {
48
+ colCenterEnd: -1,
49
+ colCenterLast: -1,
50
+ colCenterStart: -1,
51
+ colEndEnd: -1,
52
+ colEndStart: -1,
53
+ colStartEnd: -1,
54
+ colStartStart: -1,
55
+ rowBotEnd: -1,
56
+ rowBotStart: -1,
57
+ rowCenterEnd: -1,
58
+ rowCenterLast: -1,
59
+ rowCenterStart: -1,
60
+ rowTopEnd: -1,
61
+ rowTopStart: -1,
62
+ },
63
+ });
64
+ const row = layoutMap.get(rowIndex);
65
+ const cell = row?.get(columnIndex);
66
+ if (!cell)
67
+ return null;
68
+ if (cell?.length === 2)
69
+ return {
70
+ colIndex: columnIndex,
71
+ colSpan: 1,
72
+ rowIndex: rowIndex,
73
+ rowSpan: 1,
74
+ };
75
+ // Otherwise this is a spanning cell hence we need to find the spans layout.
76
+ const root = layoutMap.get(cell[1]);
77
+ const rootCell = root?.get(cell[2]);
78
+ if (!rootCell)
79
+ return null;
68
80
  return {
69
- colIndex: columnIndex,
70
- colSpan: 1,
71
- rowIndex: rowIndex,
72
- rowSpan: 1,
81
+ colIndex: cell[2],
82
+ rowIndex: cell[1],
83
+ rowSpan: rootCell[0],
84
+ colSpan: rootCell[1],
73
85
  };
74
- // Otherwise this is a spanning cell hence we need to find the spans layout.
75
- const root = layoutMap.get(cell[1]);
76
- const rootCell = root?.get(cell[2]);
77
- if (!rootCell) return null;
78
- return {
79
- colIndex: cell[2],
80
- rowIndex: cell[1],
81
- rowSpan: rootCell[0],
82
- colSpan: rootCell[1],
83
- };
84
86
  };
@@ -1,7 +1,7 @@
1
1
  export function isBottomRect(grid, rect) {
2
- const s = grid.state.rowDataStore;
3
- const rowCount = s.rowCount.get();
4
- const botCount = s.rowBottomCount.get();
5
- const bottomStart = rowCount - botCount;
6
- return rect.rowStart >= bottomStart;
2
+ const s = grid.state.rowDataStore;
3
+ const rowCount = s.rowCount.get();
4
+ const botCount = s.rowBottomCount.get();
5
+ const bottomStart = rowCount - botCount;
6
+ return rect.rowStart >= bottomStart;
7
7
  }
@@ -1,8 +1,5 @@
1
1
  import type { Grid } from "../+types.js";
2
- export declare function isCenterColRect(
3
- grid: Grid<any>,
4
- rect: {
2
+ export declare function isCenterColRect(grid: Grid<any>, rect: {
5
3
  columnStart: number;
6
4
  columnEnd: number;
7
- },
8
- ): boolean;
5
+ }): boolean;
@@ -1,7 +1,5 @@
1
1
  export function isCenterColRect(grid, rect) {
2
- const s = grid.state.columnMeta.get();
3
- return (
4
- rect.columnStart >= s.columnVisibleStartCount &&
5
- rect.columnStart < s.columnVisibleCenterCount + s.columnVisibleStartCount
6
- );
2
+ const s = grid.state.columnMeta.get();
3
+ return (rect.columnStart >= s.columnVisibleStartCount &&
4
+ rect.columnStart < s.columnVisibleCenterCount + s.columnVisibleStartCount);
7
5
  }
@@ -1,5 +1,5 @@
1
1
  export function isCenterRect(grid, rect) {
2
- const ds = grid.state.rowDataStore;
3
- const bottomStart = ds.rowCount.get() - ds.rowBottomCount.get();
4
- return rect.rowStart < bottomStart && rect.rowStart >= ds.rowTopCount.get();
2
+ const ds = grid.state.rowDataStore;
3
+ const bottomStart = ds.rowCount.get() - ds.rowBottomCount.get();
4
+ return rect.rowStart < bottomStart && rect.rowStart >= ds.rowTopCount.get();
5
5
  }
@@ -1,8 +1,5 @@
1
1
  import type { Grid } from "../+types.js";
2
- export declare function isEndRect(
3
- grid: Grid<any>,
4
- rect: {
2
+ export declare function isEndRect(grid: Grid<any>, rect: {
5
3
  columnStart: number;
6
4
  columnEnd: number;
7
- },
8
- ): boolean;
5
+ }): boolean;
@@ -1,4 +1,4 @@
1
1
  export function isEndRect(grid, rect) {
2
- const meta = grid.state.columnMeta.get();
3
- return rect.columnStart >= meta.columnVisibleStartCount + meta.columnVisibleCenterCount;
2
+ const meta = grid.state.columnMeta.get();
3
+ return rect.columnStart >= meta.columnVisibleStartCount + meta.columnVisibleCenterCount;
4
4
  }
@@ -1,8 +1,6 @@
1
1
  export function isOverlappingRect(rect1, rect2) {
2
- return !(
3
- rect1.rowEnd < rect2.rowStart ||
4
- rect1.rowStart > rect2.rowEnd ||
5
- rect1.columnEnd < rect2.columnStart ||
6
- rect1.columnStart > rect2.columnEnd
7
- );
2
+ return !(rect1.rowEnd < rect2.rowStart ||
3
+ rect1.rowStart > rect2.rowEnd ||
4
+ rect1.columnEnd < rect2.columnStart ||
5
+ rect1.columnStart > rect2.columnEnd);
8
6
  }
@@ -1,8 +1,5 @@
1
1
  import type { Grid } from "../+types.js";
2
- export declare function isStartRect(
3
- grid: Grid<any>,
4
- rect: {
2
+ export declare function isStartRect(grid: Grid<any>, rect: {
5
3
  columnStart: number;
6
4
  columnEnd: number;
7
- },
8
- ): boolean;
5
+ }): boolean;
@@ -1,4 +1,4 @@
1
1
  export function isStartRect(grid, rect) {
2
- const meta = grid.state.columnMeta.get();
3
- return rect.columnStart < meta.columnVisibleStartCount;
2
+ const meta = grid.state.columnMeta.get();
3
+ return rect.columnStart < meta.columnVisibleStartCount;
4
4
  }
@@ -1,4 +1,4 @@
1
1
  export function isTopRect(grid, rect) {
2
- const topCount = grid.state.rowDataStore.rowTopCount.get();
3
- return rect.rowStart < topCount;
2
+ const topCount = grid.state.rowDataStore.rowTopCount.get();
3
+ return rect.rowStart < topCount;
4
4
  }
@@ -1,3 +1,3 @@
1
1
  export function isWithinSelectionRect(rect, r, c) {
2
- return r >= rect.rowStart && r < rect.rowEnd && c >= rect.columnStart && c < rect.columnEnd;
2
+ return r >= rect.rowStart && r < rect.rowEnd && c >= rect.columnStart && c < rect.columnEnd;
3
3
  }
@@ -1,10 +1,10 @@
1
1
  import type { DataRect } from "../+types.js";
2
2
  interface SplitCellSelectionRectArgs {
3
- readonly rect: DataRect;
4
- readonly colStartCount: number;
5
- readonly colCenterCount: number;
6
- readonly rowTopCount: number;
7
- readonly rowCenterCount: number;
3
+ readonly rect: DataRect;
4
+ readonly colStartCount: number;
5
+ readonly colCenterCount: number;
6
+ readonly rowTopCount: number;
7
+ readonly rowCenterCount: number;
8
8
  }
9
9
  /**
10
10
  * Splits a cell selection rectangle into multiple rectangles when it crosses specified boundary regions.
@@ -35,11 +35,5 @@ interface SplitCellSelectionRectArgs {
35
35
  * @param rowCenterCount - Number of rows in the center (usually scrollable) section
36
36
  * @returns An array of split rectangles. If no splits were necessary, returns an array with just the original rectangle
37
37
  */
38
- export declare function splitCellSelectionRect({
39
- rect,
40
- colStartCount,
41
- colCenterCount,
42
- rowTopCount,
43
- rowCenterCount,
44
- }: SplitCellSelectionRectArgs): DataRect[];
38
+ export declare function splitCellSelectionRect({ rect, colStartCount, colCenterCount, rowTopCount, rowCenterCount, }: SplitCellSelectionRectArgs): DataRect[];
45
39
  export {};
@@ -27,59 +27,53 @@
27
27
  * @param rowCenterCount - Number of rows in the center (usually scrollable) section
28
28
  * @returns An array of split rectangles. If no splits were necessary, returns an array with just the original rectangle
29
29
  */
30
- export function splitCellSelectionRect({
31
- rect,
32
- colStartCount,
33
- colCenterCount,
34
- rowTopCount,
35
- rowCenterCount,
36
- }) {
37
- // Calculate the boundary positions for columns
38
- const colStartBound = colStartCount;
39
- const colEndBound = colStartCount + colCenterCount;
40
- const colSplits = [];
41
- // Handle column splits first
42
- // Case 1: Selection starts before the fixed columns and extends into the scrollable area
43
- if (rect.columnStart < colStartBound && rect.columnEnd > colStartBound) {
44
- const startSplit = {
45
- ...rect,
46
- columnEnd: colStartBound,
47
- };
48
- colSplits.push(startSplit);
49
- rect = { ...rect, columnStart: colStartBound };
50
- }
51
- // Case 2: Selection starts in the scrollable area and extends into the end section
52
- if (rect.columnStart < colEndBound && rect.columnEnd > colEndBound) {
53
- const endSplit = {
54
- ...rect,
55
- columnStart: colEndBound,
56
- };
57
- rect = { ...rect, columnEnd: colEndBound };
58
- colSplits.push(endSplit);
59
- }
60
- // Add the remaining rectangle after column splits
61
- colSplits.push(rect);
62
- // Calculate the boundary positions for rows
63
- const topBound = rowTopCount;
64
- const bottomBound = rowTopCount + rowCenterCount;
65
- // Process row splits for each column-split rectangle
66
- const rowSplits = [];
67
- for (let split of colSplits) {
68
- // Case 1: Selection spans from top section into center section
69
- if (split.rowStart < topBound && split.rowEnd > topBound) {
70
- const topSplit = { ...split, rowEnd: topBound };
71
- split = { ...split, rowStart: topBound };
72
- rowSplits.push(topSplit);
30
+ export function splitCellSelectionRect({ rect, colStartCount, colCenterCount, rowTopCount, rowCenterCount, }) {
31
+ // Calculate the boundary positions for columns
32
+ const colStartBound = colStartCount;
33
+ const colEndBound = colStartCount + colCenterCount;
34
+ const colSplits = [];
35
+ // Handle column splits first
36
+ // Case 1: Selection starts before the fixed columns and extends into the scrollable area
37
+ if (rect.columnStart < colStartBound && rect.columnEnd > colStartBound) {
38
+ const startSplit = {
39
+ ...rect,
40
+ columnEnd: colStartBound,
41
+ };
42
+ colSplits.push(startSplit);
43
+ rect = { ...rect, columnStart: colStartBound };
73
44
  }
74
- // Case 2: Selection spans from center section into bottom section
75
- if (split.rowStart < bottomBound && split.rowEnd > bottomBound) {
76
- const bottomSplit = { ...split, rowStart: bottomBound };
77
- split = { ...split, rowEnd: bottomBound };
78
- rowSplits.push(bottomSplit);
45
+ // Case 2: Selection starts in the scrollable area and extends into the end section
46
+ if (rect.columnStart < colEndBound && rect.columnEnd > colEndBound) {
47
+ const endSplit = {
48
+ ...rect,
49
+ columnStart: colEndBound,
50
+ };
51
+ rect = { ...rect, columnEnd: colEndBound };
52
+ colSplits.push(endSplit);
79
53
  }
80
- rowSplits.push(split);
81
- }
82
- return rowSplits.sort((l, r) => {
83
- return l.rowStart - r.rowStart || l.columnStart - r.columnStart;
84
- });
54
+ // Add the remaining rectangle after column splits
55
+ colSplits.push(rect);
56
+ // Calculate the boundary positions for rows
57
+ const topBound = rowTopCount;
58
+ const bottomBound = rowTopCount + rowCenterCount;
59
+ // Process row splits for each column-split rectangle
60
+ const rowSplits = [];
61
+ for (let split of colSplits) {
62
+ // Case 1: Selection spans from top section into center section
63
+ if (split.rowStart < topBound && split.rowEnd > topBound) {
64
+ const topSplit = { ...split, rowEnd: topBound };
65
+ split = { ...split, rowStart: topBound };
66
+ rowSplits.push(topSplit);
67
+ }
68
+ // Case 2: Selection spans from center section into bottom section
69
+ if (split.rowStart < bottomBound && split.rowEnd > bottomBound) {
70
+ const bottomSplit = { ...split, rowStart: bottomBound };
71
+ split = { ...split, rowEnd: bottomBound };
72
+ rowSplits.push(bottomSplit);
73
+ }
74
+ rowSplits.push(split);
75
+ }
76
+ return rowSplits.sort((l, r) => {
77
+ return l.rowStart - r.rowStart || l.columnStart - r.columnStart;
78
+ });
85
79
  }
@@ -1,8 +1,5 @@
1
1
  import type { DataRect, Grid } from "../+types.js";
2
2
  import type { InternalAtoms } from "../state/+types.js";
3
- export declare function updateAdditiveCellSelection(
4
- grid: Grid<any> & {
3
+ export declare function updateAdditiveCellSelection(grid: Grid<any> & {
5
4
  internal: InternalAtoms;
6
- },
7
- rect: DataRect,
8
- ): void;
5
+ }, rect: DataRect): void;
@@ -3,20 +3,21 @@ import { adjustRectForRowAndCellSpan } from "./adjust-rect-for-row-and-cell-span
3
3
  import { areRectsEqual } from "./are-rects-equal.js";
4
4
  import { splitCellSelectionRect } from "./split-cell-selection-rect.js";
5
5
  export function updateAdditiveCellSelection(grid, rect) {
6
- const s = grid.state.columnMeta.get();
7
- const ds = grid.state.rowDataStore;
8
- const rowTopCount = ds.rowTopCount.get();
9
- const adjustedRect = adjustRectForRowAndCellSpan(grid, rect);
10
- const rects = splitCellSelectionRect({
11
- rect: boundSelectionRect(grid, adjustedRect),
12
- colCenterCount: s.columnVisibleCenterCount,
13
- colStartCount: s.columnVisibleStartCount,
14
- rowCenterCount: ds.rowCenterCount.get(),
15
- rowTopCount: rowTopCount,
16
- });
17
- const current = grid.internal.cellSelectionAdditiveRects.get();
18
- if (current && current.length === rects.length) {
19
- if (current.every((c, i) => areRectsEqual(c, rects[i]))) return;
20
- }
21
- grid.internal.cellSelectionAdditiveRects.set(rects);
6
+ const s = grid.state.columnMeta.get();
7
+ const ds = grid.state.rowDataStore;
8
+ const rowTopCount = ds.rowTopCount.get();
9
+ const adjustedRect = adjustRectForRowAndCellSpan(grid, rect);
10
+ const rects = splitCellSelectionRect({
11
+ rect: boundSelectionRect(grid, adjustedRect),
12
+ colCenterCount: s.columnVisibleCenterCount,
13
+ colStartCount: s.columnVisibleStartCount,
14
+ rowCenterCount: ds.rowCenterCount.get(),
15
+ rowTopCount: rowTopCount,
16
+ });
17
+ const current = grid.internal.cellSelectionAdditiveRects.get();
18
+ if (current && current.length === rects.length) {
19
+ if (current.every((c, i) => areRectsEqual(c, rects[i])))
20
+ return;
21
+ }
22
+ grid.internal.cellSelectionAdditiveRects.set(rects);
22
23
  }
@@ -1,12 +1,10 @@
1
1
  import type { Grid } from "../+types.js";
2
2
  import type { InternalAtoms } from "../state/+types.js";
3
- export declare function useEdgeScroll(
4
- grid: Grid<any> & {
3
+ export declare function useEdgeScroll(grid: Grid<any> & {
5
4
  internal: InternalAtoms;
6
- },
7
- ): {
8
- cancelX: () => void;
9
- edgeScrollX: (visualPositionX: number, isRtl: boolean) => void;
10
- cancelY: () => void;
11
- edgeScrollY: (visualPositionY: number) => void;
5
+ }): {
6
+ cancelX: () => void;
7
+ edgeScrollX: (visualPositionX: number, isRtl: boolean) => void;
8
+ cancelY: () => void;
9
+ edgeScrollY: (visualPositionY: number) => void;
12
10
  };
@@ -1,68 +1,66 @@
1
1
  import { useCallback, useRef } from "react";
2
2
  export function useEdgeScroll(grid) {
3
- const intervalIdX = useRef(null);
4
- const intervalIdY = useRef(null);
5
- const cancelX = useCallback(() => {
6
- if (intervalIdX.current) {
7
- clearInterval(intervalIdX.current);
8
- intervalIdX.current = null;
9
- }
10
- }, []);
11
- const cancelY = useCallback(() => {
12
- if (intervalIdY.current) {
13
- clearInterval(intervalIdY.current);
14
- intervalIdY.current = null;
15
- }
16
- }, []);
17
- const edgeScrollY = useCallback(
18
- (visualPositionY) => {
19
- const viewport = grid.state.viewport.get();
20
- if (!viewport) return;
21
- const viewportClientHeight = grid.state.viewportHeightInner.get();
22
- const viewportHeight = Math.min(viewportClientHeight * 0.1, 100);
23
- const buffer = viewportHeight;
24
- const topBound = buffer + grid.internal.headerHeightTotal.get();
25
- const botBound = viewportClientHeight - buffer;
26
- const speed = 6;
27
- if (visualPositionY < topBound && !intervalIdY.current) {
28
- intervalIdY.current = setInterval(() => {
29
- viewport.scrollBy({ top: -speed });
30
- }, 6);
31
- } else if (visualPositionY > botBound && !intervalIdY.current) {
32
- intervalIdY.current = setInterval(() => {
33
- viewport.scrollBy({ top: speed });
34
- }, 6);
35
- }
36
- if (intervalIdY.current && visualPositionY > topBound && visualPositionY < botBound) {
37
- cancelY();
38
- }
39
- },
40
- [cancelY, grid.internal.headerHeightTotal, grid.state.viewport, grid.state.viewportHeightInner],
41
- );
42
- const edgeScrollX = useCallback(
43
- (visualPositionX, isRtl) => {
44
- const viewport = grid.state.viewport.get();
45
- if (!viewport) return;
46
- const viewportClientWidth = grid.state.viewportWidthInner.get();
47
- const viewportWidth = Math.min(viewportClientWidth * 0.1, 100);
48
- const buffer = viewportWidth;
49
- const leftBound = buffer;
50
- const rightBound = viewportClientWidth - buffer;
51
- const speed = 3;
52
- if (visualPositionX < leftBound && !intervalIdX.current) {
53
- intervalIdX.current = setInterval(() => {
54
- viewport.scrollBy({ left: isRtl ? speed : -speed });
55
- }, 6);
56
- } else if (visualPositionX > rightBound && !intervalIdX.current) {
57
- intervalIdX.current = setInterval(() => {
58
- viewport.scrollBy({ left: isRtl ? -speed : speed });
59
- }, 6);
60
- }
61
- if (intervalIdX.current && visualPositionX > leftBound && visualPositionX < rightBound) {
62
- cancelX();
63
- }
64
- },
65
- [cancelX, grid.state.viewport, grid.state.viewportWidthInner],
66
- );
67
- return { cancelX, edgeScrollX, cancelY, edgeScrollY };
3
+ const intervalIdX = useRef(null);
4
+ const intervalIdY = useRef(null);
5
+ const cancelX = useCallback(() => {
6
+ if (intervalIdX.current) {
7
+ clearInterval(intervalIdX.current);
8
+ intervalIdX.current = null;
9
+ }
10
+ }, []);
11
+ const cancelY = useCallback(() => {
12
+ if (intervalIdY.current) {
13
+ clearInterval(intervalIdY.current);
14
+ intervalIdY.current = null;
15
+ }
16
+ }, []);
17
+ const edgeScrollY = useCallback((visualPositionY) => {
18
+ const viewport = grid.state.viewport.get();
19
+ if (!viewport)
20
+ return;
21
+ const viewportClientHeight = grid.state.viewportHeightInner.get();
22
+ const viewportHeight = Math.min(viewportClientHeight * 0.1, 100);
23
+ const buffer = viewportHeight;
24
+ const topBound = buffer + grid.internal.headerHeightTotal.get();
25
+ const botBound = viewportClientHeight - buffer;
26
+ const speed = 6;
27
+ if (visualPositionY < topBound && !intervalIdY.current) {
28
+ intervalIdY.current = setInterval(() => {
29
+ viewport.scrollBy({ top: -speed });
30
+ }, 6);
31
+ }
32
+ else if (visualPositionY > botBound && !intervalIdY.current) {
33
+ intervalIdY.current = setInterval(() => {
34
+ viewport.scrollBy({ top: speed });
35
+ }, 6);
36
+ }
37
+ if (intervalIdY.current && visualPositionY > topBound && visualPositionY < botBound) {
38
+ cancelY();
39
+ }
40
+ }, [cancelY, grid.internal.headerHeightTotal, grid.state.viewport, grid.state.viewportHeightInner]);
41
+ const edgeScrollX = useCallback((visualPositionX, isRtl) => {
42
+ const viewport = grid.state.viewport.get();
43
+ if (!viewport)
44
+ return;
45
+ const viewportClientWidth = grid.state.viewportWidthInner.get();
46
+ const viewportWidth = Math.min(viewportClientWidth * 0.1, 100);
47
+ const buffer = viewportWidth;
48
+ const leftBound = buffer;
49
+ const rightBound = viewportClientWidth - buffer;
50
+ const speed = 3;
51
+ if (visualPositionX < leftBound && !intervalIdX.current) {
52
+ intervalIdX.current = setInterval(() => {
53
+ viewport.scrollBy({ left: isRtl ? speed : -speed });
54
+ }, 6);
55
+ }
56
+ else if (visualPositionX > rightBound && !intervalIdX.current) {
57
+ intervalIdX.current = setInterval(() => {
58
+ viewport.scrollBy({ left: isRtl ? -speed : speed });
59
+ }, 6);
60
+ }
61
+ if (intervalIdX.current && visualPositionX > leftBound && visualPositionX < rightBound) {
62
+ cancelX();
63
+ }
64
+ }, [cancelX, grid.state.viewport, grid.state.viewportWidthInner]);
65
+ return { cancelX, edgeScrollX, cancelY, edgeScrollY };
68
66
  }
@@ -1,6 +1,2 @@
1
1
  import type { CellRendererParams } from "../+types";
2
- export declare function CellDefault<T>({
3
- grid,
4
- column,
5
- row,
6
- }: CellRendererParams<T>): import("react/jsx-runtime").JSX.Element;
2
+ export declare function CellDefault<T>({ grid, column, row }: CellRendererParams<T>): import("react/jsx-runtime").JSX.Element;