@1771technologies/lytenyte-pro 1.0.0-beta.12 → 1.0.0-beta.14

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 (382) hide show
  1. package/dist/+types.d.ts +3969 -4155
  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 +19 -18
  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 +86 -121
  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 +4 -12
  46. package/dist/column-manager/branch.js +43 -40
  47. package/dist/column-manager/column-manager.d.ts +9 -58
  48. package/dist/column-manager/column-manager.js +9 -9
  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 +13 -12
  52. package/dist/column-manager/leaf.d.ts +2 -10
  53. package/dist/column-manager/leaf.js +49 -43
  54. package/dist/column-manager/move-handle.d.ts +6 -14
  55. package/dist/column-manager/move-handle.js +50 -54
  56. package/dist/column-manager/root.d.ts +3 -9
  57. package/dist/column-manager/root.js +13 -26
  58. package/dist/column-manager/use-column-manager.d.ts +16 -12
  59. package/dist/column-manager/use-column-manager.js +21 -21
  60. package/dist/column-manager/use-columns-from-context.js +18 -18
  61. package/dist/column-manager/visibility-checkbox.d.ts +6 -14
  62. package/dist/column-manager/visibility-checkbox.js +23 -36
  63. package/dist/context.d.ts +4 -4
  64. package/dist/filter-tree/branch.d.ts +5 -13
  65. package/dist/filter-tree/branch.js +13 -23
  66. package/dist/filter-tree/context.d.ts +16 -16
  67. package/dist/filter-tree/filter-tree.d.ts +8 -49
  68. package/dist/filter-tree/filter-tree.js +8 -8
  69. package/dist/filter-tree/hooks/use-filter-tree.d.ts +29 -35
  70. package/dist/filter-tree/hooks/use-filter-tree.js +92 -94
  71. package/dist/filter-tree/hooks/use-tree-item.d.ts +4 -4
  72. package/dist/filter-tree/hooks/use-tree-item.js +106 -99
  73. package/dist/filter-tree/inclusion-checkbox.d.ts +6 -14
  74. package/dist/filter-tree/inclusion-checkbox.js +9 -19
  75. package/dist/filter-tree/label.d.ts +2 -10
  76. package/dist/filter-tree/label.js +13 -12
  77. package/dist/filter-tree/leaf.d.ts +2 -10
  78. package/dist/filter-tree/leaf.js +5 -15
  79. package/dist/filter-tree/root.d.ts +7 -23
  80. package/dist/filter-tree/root.js +23 -51
  81. package/dist/grid-box/+types.d.ts +11 -9
  82. package/dist/grid-box/context.d.ts +3 -3
  83. package/dist/grid-box/grid-box.d.ts +6 -26
  84. package/dist/grid-box/grid-box.js +6 -6
  85. package/dist/grid-box/item.d.ts +6 -11
  86. package/dist/grid-box/item.js +51 -31
  87. package/dist/grid-box/panel.d.ts +1 -13
  88. package/dist/grid-box/panel.js +2 -9
  89. package/dist/grid-box/root.d.ts +5 -11
  90. package/dist/grid-box/root.js +2 -11
  91. package/dist/grid-box/use-aggregation-box-items.d.ts +13 -16
  92. package/dist/grid-box/use-aggregation-box-items.js +57 -54
  93. package/dist/grid-box/use-column-box-items.d.ts +25 -31
  94. package/dist/grid-box/use-column-box-items.js +80 -90
  95. package/dist/grid-box/use-row-group-box-items.d.ts +12 -17
  96. package/dist/grid-box/use-row-group-box-items.js +128 -116
  97. package/dist/grid-provider/context.d.ts +2 -4
  98. package/dist/grid-provider/provider.d.ts +2 -4
  99. package/dist/grid-provider/use-grid.d.ts +1 -1
  100. package/dist/grid.d.ts +26 -150
  101. package/dist/grid.js +26 -38
  102. package/dist/header/header-cell.d.ts +5 -13
  103. package/dist/header/header-cell.js +15 -41
  104. package/dist/header/header-group-cell.d.ts +2 -10
  105. package/dist/header/header-group-cell.js +6 -21
  106. package/dist/header/header-row.d.ts +2 -10
  107. package/dist/header/header-row.js +2 -2
  108. package/dist/header/header.d.ts +1 -10
  109. package/dist/header/header.js +2 -11
  110. package/dist/header/resize-handler.d.ts +6 -15
  111. package/dist/header/resize-handler.js +122 -128
  112. package/dist/header/use-drag-move.d.ts +11 -22
  113. package/dist/header/use-drag-move.js +87 -83
  114. package/dist/header/use-header-cell-renderer.d.ts +2 -9
  115. package/dist/header/use-header-cell-renderer.js +29 -24
  116. package/dist/icons/index.d.ts +1 -92
  117. package/dist/icons/index.js +1 -92
  118. package/dist/license.js +174 -174
  119. package/dist/listbox/context.d.ts +2 -2
  120. package/dist/listbox/item.d.ts +1 -10
  121. package/dist/listbox/item.js +19 -23
  122. package/dist/listbox/panel.d.ts +1 -10
  123. package/dist/listbox/panel.js +43 -69
  124. package/dist/listbox/root.d.ts +3 -5
  125. package/dist/listbox/root.js +7 -7
  126. package/dist/root/dialog-driver.js +16 -22
  127. package/dist/root/popover-driver.js +16 -27
  128. package/dist/root/root.d.ts +3 -7
  129. package/dist/root/root.js +107 -111
  130. package/dist/row-data-source-client/+types.d.ts +17 -17
  131. package/dist/row-data-source-client/built-ins/avg.js +4 -3
  132. package/dist/row-data-source-client/built-ins/built-ins.d.ts +16 -16
  133. package/dist/row-data-source-client/built-ins/built-ins.js +16 -16
  134. package/dist/row-data-source-client/built-ins/count.js +5 -3
  135. package/dist/row-data-source-client/built-ins/first.js +1 -1
  136. package/dist/row-data-source-client/built-ins/group.js +1 -1
  137. package/dist/row-data-source-client/built-ins/last.js +1 -1
  138. package/dist/row-data-source-client/built-ins/max.js +13 -9
  139. package/dist/row-data-source-client/built-ins/min.js +13 -9
  140. package/dist/row-data-source-client/built-ins/sum.js +10 -8
  141. package/dist/row-data-source-client/filter/+types.d.ts +13 -35
  142. package/dist/row-data-source-client/filter/compute-filtered-rows.d.ts +2 -16
  143. package/dist/row-data-source-client/filter/compute-filtered-rows.js +102 -102
  144. package/dist/row-data-source-client/pivots/create-agg-model.d.ts +4 -8
  145. package/dist/row-data-source-client/pivots/create-agg-model.js +9 -8
  146. package/dist/row-data-source-client/pivots/create-pivot-columns-from-paths.d.ts +1 -6
  147. package/dist/row-data-source-client/pivots/create-pivot-columns-from-paths.js +46 -42
  148. package/dist/row-data-source-client/pivots/create-pivot-columns.d.ts +1 -6
  149. package/dist/row-data-source-client/pivots/create-pivot-columns.js +17 -16
  150. package/dist/row-data-source-client/pivots/create-pivot-tree.d.ts +1 -7
  151. package/dist/row-data-source-client/pivots/create-pivot-tree.js +19 -19
  152. package/dist/row-data-source-client/tree/client-tree.d.ts +13 -19
  153. package/dist/row-data-source-client/tree/client-tree.js +67 -64
  154. package/dist/row-data-source-client/tree/evaluator-aggregation.d.ts +1 -4
  155. package/dist/row-data-source-client/tree/evaluator-aggregation.js +6 -6
  156. package/dist/row-data-source-client/tree/evaluator-group.d.ts +1 -4
  157. package/dist/row-data-source-client/tree/evaluator-group.js +7 -6
  158. package/dist/row-data-source-client/tree/traverse.d.ts +1 -5
  159. package/dist/row-data-source-client/tree/traverse.js +18 -15
  160. package/dist/row-data-source-client/use-client-data-source-paginated.d.ts +5 -9
  161. package/dist/row-data-source-client/use-client-data-source-paginated.js +535 -539
  162. package/dist/row-data-source-client/use-client-data-source.d.ts +5 -9
  163. package/dist/row-data-source-client/use-client-data-source.js +660 -682
  164. package/dist/row-data-source-client/use-client-tree-data-source.d.ts +5 -9
  165. package/dist/row-data-source-client/use-client-tree-data-source.js +512 -510
  166. package/dist/row-data-source-server/async-tree/+types.async-tree.d.ts +33 -36
  167. package/dist/row-data-source-server/async-tree/apply-delete-action-to-tree.d.ts +1 -4
  168. package/dist/row-data-source-server/async-tree/apply-delete-action-to-tree.js +22 -18
  169. package/dist/row-data-source-server/async-tree/apply-set-action-to-tree.d.ts +1 -4
  170. package/dist/row-data-source-server/async-tree/apply-set-action-to-tree.js +25 -17
  171. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-are-unique.js +18 -18
  172. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-are-valid.js +10 -9
  173. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-fit.d.ts +1 -4
  174. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-fit.js +14 -13
  175. package/dist/row-data-source-server/async-tree/check-set-action-item-kinds.js +10 -9
  176. package/dist/row-data-source-server/async-tree/get-parent-node-by-path.d.ts +1 -4
  177. package/dist/row-data-source-server/async-tree/get-parent-node-by-path.js +13 -13
  178. package/dist/row-data-source-server/async-tree/is-set-action-a-no-op-on-node.d.ts +1 -4
  179. package/dist/row-data-source-server/async-tree/is-set-action-a-no-op-on-node.js +1 -1
  180. package/dist/row-data-source-server/async-tree/make-async-tree.js +14 -14
  181. package/dist/row-data-source-server/async-tree/maybe-apply-parent-remove-self.d.ts +1 -3
  182. package/dist/row-data-source-server/async-tree/maybe-apply-parent-remove-self.js +6 -6
  183. package/dist/row-data-source-server/async-tree/maybe-apply-resize.d.ts +1 -5
  184. package/dist/row-data-source-server/async-tree/maybe-apply-resize.js +14 -11
  185. package/dist/row-data-source-server/async-tree/maybe-apply-set-action-items.d.ts +1 -4
  186. package/dist/row-data-source-server/async-tree/maybe-apply-set-action-items.js +46 -42
  187. package/dist/row-data-source-server/range-tree/range-tree.d.ts +28 -28
  188. package/dist/row-data-source-server/range-tree/range-tree.js +48 -49
  189. package/dist/row-data-source-server/use-server-data-source.d.ts +2 -11
  190. package/dist/row-data-source-server/use-server-data-source.js +652 -665
  191. package/dist/row-data-source-server/utils/get-node-depth.js +7 -7
  192. package/dist/row-data-source-server/utils/get-node-path.js +7 -7
  193. package/dist/row-data-source-server/utils/get-request-id.js +4 -3
  194. package/dist/rows/row/context.d.ts +2 -2
  195. package/dist/rows/row/row.d.ts +3 -16
  196. package/dist/rows/row/row.js +4 -19
  197. package/dist/rows/row/use-row-context-value.d.ts +2 -5
  198. package/dist/rows/row/use-row-context-value.js +26 -23
  199. package/dist/rows/row-detail-row.d.ts +2 -4
  200. package/dist/rows/row-detail-row.js +124 -147
  201. package/dist/rows/row-full-width.d.ts +4 -12
  202. package/dist/rows/row-full-width.js +7 -35
  203. package/dist/rows/rows-container.d.ts +1 -10
  204. package/dist/rows/rows-container.js +3 -12
  205. package/dist/rows/rows-sections.d.ts +3 -30
  206. package/dist/rows/rows-sections.js +10 -42
  207. package/dist/rows/scrollers/native-scroller.d.ts +1 -3
  208. package/dist/rows/scrollers/native-scroller.js +13 -17
  209. package/dist/sort-manager/+types.d.ts +7 -14
  210. package/dist/sort-manager/context.d.ts +4 -4
  211. package/dist/sort-manager/hooks/use-sort-manager.d.ts +9 -9
  212. package/dist/sort-manager/hooks/use-sort-manager.js +49 -45
  213. package/dist/sort-manager/hooks/use-sort-row-item.d.ts +46 -57
  214. package/dist/sort-manager/hooks/use-sort-row-item.js +131 -126
  215. package/dist/sort-manager/hooks/use-sortable-column-items.d.ts +3 -6
  216. package/dist/sort-manager/hooks/use-sortable-column-items.js +10 -10
  217. package/dist/sort-manager/root.d.ts +1 -7
  218. package/dist/sort-manager/root.js +10 -10
  219. package/dist/sort-manager/sort-add.d.ts +5 -13
  220. package/dist/sort-manager/sort-add.js +9 -9
  221. package/dist/sort-manager/sort-apply.d.ts +4 -12
  222. package/dist/sort-manager/sort-apply.js +17 -17
  223. package/dist/sort-manager/sort-cancel.d.ts +4 -12
  224. package/dist/sort-manager/sort-cancel.js +20 -20
  225. package/dist/sort-manager/sort-clear.d.ts +4 -12
  226. package/dist/sort-manager/sort-clear.js +17 -16
  227. package/dist/sort-manager/sort-column-select.d.ts +6 -14
  228. package/dist/sort-manager/sort-column-select.js +15 -26
  229. package/dist/sort-manager/sort-direction-select.d.ts +6 -14
  230. package/dist/sort-manager/sort-direction-select.js +19 -27
  231. package/dist/sort-manager/sort-manager.d.ts +12 -93
  232. package/dist/sort-manager/sort-manager.js +12 -12
  233. package/dist/sort-manager/sort-remove.d.ts +4 -12
  234. package/dist/sort-manager/sort-remove.js +9 -9
  235. package/dist/sort-manager/sort-row.d.ts +2 -10
  236. package/dist/sort-manager/sort-row.js +1 -4
  237. package/dist/sort-manager/sort-rows.d.ts +1 -10
  238. package/dist/sort-manager/sort-rows.js +1 -1
  239. package/dist/sort-manager/sort-value-select.d.ts +7 -15
  240. package/dist/sort-manager/sort-value-select.js +20 -29
  241. package/dist/sort-manager/utils/sort-item-to-sort-model.d.ts +1 -4
  242. package/dist/sort-manager/utils/sort-item-to-sort-model.js +49 -46
  243. package/dist/sort-manager/utils/sort-model-to-sort-items.d.ts +1 -4
  244. package/dist/sort-manager/utils/sort-model-to-sort-items.js +44 -36
  245. package/dist/state/+types.d.ts +29 -41
  246. package/dist/state/api/column-autosize.d.ts +2 -4
  247. package/dist/state/api/column-autosize.js +63 -62
  248. package/dist/state/api/column-by-id.js +4 -4
  249. package/dist/state/api/column-field.js +20 -17
  250. package/dist/state/api/column-from-index.js +4 -4
  251. package/dist/state/api/column-group-toggle.js +8 -8
  252. package/dist/state/api/column-index.js +5 -5
  253. package/dist/state/api/column-move.js +46 -48
  254. package/dist/state/api/column-resize.js +7 -9
  255. package/dist/state/api/column-update.d.ts +4 -1
  256. package/dist/state/api/column-update.js +24 -11
  257. package/dist/state/api/dialog-frame.d.ts +4 -8
  258. package/dist/state/api/dialog-frame.js +12 -11
  259. package/dist/state/api/edit-begin.d.ts +2 -4
  260. package/dist/state/api/edit-begin.js +84 -71
  261. package/dist/state/api/edit-end.d.ts +2 -4
  262. package/dist/state/api/edit-end.js +41 -38
  263. package/dist/state/api/edit-is-cell-active.d.ts +2 -4
  264. package/dist/state/api/edit-is-cell-active.js +24 -17
  265. package/dist/state/api/edit-update.d.ts +2 -4
  266. package/dist/state/api/edit-update.js +85 -74
  267. package/dist/state/api/event-listeners.d.ts +3 -12
  268. package/dist/state/api/event-listeners.js +17 -16
  269. package/dist/state/api/export-csv.js +35 -33
  270. package/dist/state/api/export-data-rect.js +21 -21
  271. package/dist/state/api/focus-cell.d.ts +2 -4
  272. package/dist/state/api/focus-cell.js +109 -110
  273. package/dist/state/api/popover-frame.d.ts +4 -8
  274. package/dist/state/api/popover-frame.js +12 -11
  275. package/dist/state/api/position-from-element.js +6 -5
  276. package/dist/state/api/row-by-id.js +3 -3
  277. package/dist/state/api/row-by-index.js +6 -11
  278. package/dist/state/api/row-detail-is-expanded.d.ts +1 -3
  279. package/dist/state/api/row-detail-is-expanded.js +4 -4
  280. package/dist/state/api/row-detail-rendered-height.d.ts +2 -4
  281. package/dist/state/api/row-detail-rendered-height.js +12 -10
  282. package/dist/state/api/row-detail-toggle.js +30 -26
  283. package/dist/state/api/row-group-apply-expansions.d.ts +1 -3
  284. package/dist/state/api/row-group-apply-expansions.js +17 -15
  285. package/dist/state/api/row-group-column-index.d.ts +1 -3
  286. package/dist/state/api/row-group-column-index.js +12 -14
  287. package/dist/state/api/row-group-is-expanded.d.ts +1 -3
  288. package/dist/state/api/row-group-is-expanded.js +13 -11
  289. package/dist/state/api/row-group-toggle.js +5 -5
  290. package/dist/state/api/row-handle-select.d.ts +2 -4
  291. package/dist/state/api/row-handle-select.js +40 -36
  292. package/dist/state/api/row-select-all.js +15 -14
  293. package/dist/state/api/row-select.d.ts +2 -4
  294. package/dist/state/api/row-select.js +33 -30
  295. package/dist/state/api/row-selected.js +11 -10
  296. package/dist/state/api/scroll-into-view.d.ts +2 -4
  297. package/dist/state/api/scroll-into-view.js +47 -47
  298. package/dist/state/api/sort-for-column.js +7 -6
  299. package/dist/state/api/use-row-drag.js +24 -22
  300. package/dist/state/helpers/cell-row-group.d.ts +1 -5
  301. package/dist/state/helpers/cell-row-group.js +16 -18
  302. package/dist/state/helpers/column-add-row-group.d.ts +7 -16
  303. package/dist/state/helpers/column-add-row-group.js +65 -63
  304. package/dist/state/helpers/column-layout.d.ts +1 -7
  305. package/dist/state/helpers/column-layout.js +60 -60
  306. package/dist/state/helpers/column-marker.d.ts +4 -8
  307. package/dist/state/helpers/column-marker.js +34 -38
  308. package/dist/state/helpers/column-view.d.ts +15 -21
  309. package/dist/state/helpers/column-view.js +32 -56
  310. package/dist/state/helpers/edit-on-change.d.ts +10 -18
  311. package/dist/state/helpers/edit-on-change.js +24 -24
  312. package/dist/state/helpers/empty-row-data-source.js +16 -16
  313. package/dist/state/helpers/get-data-rect.d.ts +10 -20
  314. package/dist/state/helpers/get-data-rect.js +62 -67
  315. package/dist/state/helpers/get-full-width-callback.d.ts +1 -5
  316. package/dist/state/helpers/get-full-width-callback.js +6 -5
  317. package/dist/state/helpers/get-span-callback.d.ts +1 -6
  318. package/dist/state/helpers/get-span-callback.js +18 -15
  319. package/dist/state/helpers/resolve-column.d.ts +2 -6
  320. package/dist/state/helpers/resolve-column.js +18 -18
  321. package/dist/state/helpers/row-layout/get-focus-criteria.d.ts +12 -15
  322. package/dist/state/helpers/row-layout/get-focus-criteria.js +56 -57
  323. package/dist/state/helpers/row-layout/row-layout.d.ts +9 -15
  324. package/dist/state/helpers/row-layout/row-layout.js +401 -387
  325. package/dist/state/use-lytenyte.js +521 -556
  326. package/dist/tree-view/branch/branch.d.ts +8 -16
  327. package/dist/tree-view/branch/branch.js +52 -104
  328. package/dist/tree-view/branch/use-branch-keys.d.ts +1 -5
  329. package/dist/tree-view/branch/use-branch-keys.js +74 -71
  330. package/dist/tree-view/context.d.ts +17 -21
  331. package/dist/tree-view/hooks/use-tree-view-paths.d.ts +1 -6
  332. package/dist/tree-view/hooks/use-tree-view-paths.js +5 -5
  333. package/dist/tree-view/index.d.ts +7 -35
  334. package/dist/tree-view/index.js +7 -7
  335. package/dist/tree-view/leaf.d.ts +2 -10
  336. package/dist/tree-view/leaf.js +20 -29
  337. package/dist/tree-view/navigation/get-all-ids.js +3 -3
  338. package/dist/tree-view/navigation/get-first-node.js +3 -3
  339. package/dist/tree-view/navigation/get-last-node.js +3 -3
  340. package/dist/tree-view/navigation/get-next-node.js +8 -6
  341. package/dist/tree-view/navigation/get-prev-node.js +8 -6
  342. package/dist/tree-view/panel/make-handle-navigation.js +31 -23
  343. package/dist/tree-view/panel/make-handle-selection.js +77 -68
  344. package/dist/tree-view/panel/make-handle-typeahead.js +40 -34
  345. package/dist/tree-view/panel/panel.d.ts +1 -10
  346. package/dist/tree-view/panel/panel.js +20 -40
  347. package/dist/tree-view/panel/use-tree-navigation.js +52 -64
  348. package/dist/tree-view/root.d.ts +14 -20
  349. package/dist/tree-view/root.js +55 -53
  350. package/dist/tree-view/utils/get-focusable-nodes.js +2 -4
  351. package/dist/tree-view/utils/get-focused-node.js +11 -11
  352. package/dist/tree-view/utils/get-ids-between-nodes.d.ts +1 -5
  353. package/dist/tree-view/utils/get-ids-between-nodes.js +11 -10
  354. package/dist/tree-view/utils/get-panel.js +5 -5
  355. package/dist/tree-view/utils/get-parent-node.js +7 -6
  356. package/dist/tree-view/utils/get-sibling-branches.js +10 -8
  357. package/dist/tree-view/utils/get-tree-node-id.js +1 -1
  358. package/dist/tree-view/utils/is-branch-node.js +1 -1
  359. package/dist/tree-view/utils/is-leaf-node.js +1 -1
  360. package/dist/tree-view/utils/is-tree-node-disabled.js +1 -1
  361. package/dist/tree-view/utils/select-node.d.ts +1 -5
  362. package/dist/tree-view/utils/select-node.js +11 -8
  363. package/dist/tree-view/utils/toggle-all-selections.js +6 -4
  364. package/dist/tree-view/utils/toggle-selection.js +18 -15
  365. package/dist/tree-view/virtualized/force-sync-scrolling.d.ts +1 -3
  366. package/dist/tree-view/virtualized/force-sync-scrolling.js +18 -24
  367. package/dist/tree-view/virtualized/get-virtual-tree-paths.d.ts +1 -3
  368. package/dist/tree-view/virtualized/get-virtual-tree-paths.js +12 -11
  369. package/dist/tree-view/virtualized/make-virtual-tree.d.ts +21 -26
  370. package/dist/tree-view/virtualized/make-virtual-tree.js +85 -79
  371. package/dist/tree-view/virtualized/use-flattened-tree.d.ts +8 -17
  372. package/dist/tree-view/virtualized/use-flattened-tree.js +31 -30
  373. package/dist/tree-view/virtualized/use-row-start-and-end.d.ts +1 -6
  374. package/dist/tree-view/virtualized/use-row-start-and-end.js +23 -21
  375. package/dist/tree-view/virtualized/use-virtualized-tree.d.ts +15 -21
  376. package/dist/tree-view/virtualized/use-virtualized-tree.js +90 -103
  377. package/dist/utils/cycle-sorts.js +14 -12
  378. package/dist/viewport/begin-editing.d.ts +2 -6
  379. package/dist/viewport/begin-editing.js +13 -9
  380. package/dist/viewport/viewport.d.ts +1 -10
  381. package/dist/viewport/viewport.js +70 -93
  382. package/package.json +7 -7
@@ -1,41 +1,49 @@
1
1
  export function sortModelToSortItems(items, lookup) {
2
- return items
3
- .map((c) => {
4
- const columnId = c.columnId;
5
- const sortDirection = c.isDescending ? "descending" : "ascending";
6
- if (c.sort.kind === "custom") {
2
+ return items
3
+ .map((c) => {
4
+ const columnId = c.columnId;
5
+ const sortDirection = c.isDescending ? "descending" : "ascending";
6
+ if (c.sort.kind === "custom") {
7
+ return {
8
+ isCustom: true,
9
+ sortDirection,
10
+ columnId: c.columnId ?? undefined,
11
+ };
12
+ }
13
+ const column = lookup.get(columnId);
14
+ if (!column)
15
+ return;
16
+ let value = "values";
17
+ if (c.sort.kind === "string") {
18
+ const opts = c.sort.options;
19
+ if (opts?.nullsFirst)
20
+ value += "_nulls_first";
21
+ if (opts?.caseInsensitive)
22
+ value += "_insensitive";
23
+ if (opts?.ignorePunctuation)
24
+ value += "_ignore";
25
+ if (opts?.trimWhitespace)
26
+ value += "trim";
27
+ }
28
+ if (c.sort.kind === "number") {
29
+ const opts = c.sort.options;
30
+ if (opts?.nullsFirst)
31
+ value += "_nulls_first";
32
+ if (opts?.absoluteValue)
33
+ value += "_absolute";
34
+ }
35
+ if (c.sort.kind === "date") {
36
+ const opts = c.sort.options;
37
+ if (opts?.nullsFirst)
38
+ value += "_nulls_first";
39
+ }
7
40
  return {
8
- isCustom: true,
9
- sortDirection,
10
- columnId: c.columnId ?? undefined,
41
+ isCustom: false,
42
+ columnId,
43
+ sortDirection,
44
+ label: column?.name ?? column?.id,
45
+ sortOn: value,
11
46
  };
12
- }
13
- const column = lookup.get(columnId);
14
- if (!column) return;
15
- let value = "values";
16
- if (c.sort.kind === "string") {
17
- const opts = c.sort.options;
18
- if (opts?.nullsFirst) value += "_nulls_first";
19
- if (opts?.caseInsensitive) value += "_insensitive";
20
- if (opts?.ignorePunctuation) value += "_ignore";
21
- if (opts?.trimWhitespace) value += "trim";
22
- }
23
- if (c.sort.kind === "number") {
24
- const opts = c.sort.options;
25
- if (opts?.nullsFirst) value += "_nulls_first";
26
- if (opts?.absoluteValue) value += "_absolute";
27
- }
28
- if (c.sort.kind === "date") {
29
- const opts = c.sort.options;
30
- if (opts?.nullsFirst) value += "_nulls_first";
31
- }
32
- return {
33
- isCustom: false,
34
- columnId,
35
- sortDirection,
36
- label: column?.name ?? column?.id,
37
- sortOn: value,
38
- };
39
47
  })
40
- .filter((c) => c != null);
48
+ .filter((c) => c != null);
41
49
  }
@@ -1,47 +1,35 @@
1
1
  import type { LayoutMap } from "@1771technologies/lytenyte-shared";
2
- import type {
3
- DataRect,
4
- EditActivePosition,
5
- GridAtom,
6
- GridAtomReadonly,
7
- HeaderGroupCellLayout,
8
- PositionUnion,
9
- VirtualTarget,
10
- } from "../+types";
2
+ import type { Column, DataRect, EditActivePosition, GridAtom, GridAtomReadonly, HeaderGroupCellLayout, PositionUnion, VirtualTarget } from "../+types";
11
3
  import type { Atom, createStore } from "@1771technologies/atom";
12
4
  export interface InternalAtoms {
13
- readonly headerRows: GridAtomReadonly<number>;
14
- readonly headerCols: GridAtomReadonly<number>;
15
- readonly headerHeightTotal: GridAtomReadonly<number>;
16
- readonly xScroll: GridAtom<number>;
17
- readonly yScroll: GridAtom<number>;
18
- readonly refreshKey: GridAtom<number>;
19
- readonly layout: GridAtomReadonly<LayoutMap>;
20
- readonly focusActive: GridAtom<PositionUnion | null>;
21
- readonly focusPrevColIndex: GridAtom<number | null>;
22
- readonly focusPrevRowIndex: GridAtom<number | null>;
23
- readonly editActivePos: GridAtom<EditActivePosition<any> | null>;
24
- readonly editData: GridAtom<any>;
25
- readonly editValidation: GridAtom<Record<string, any> | boolean>;
26
- readonly rowAutoHeightCache: GridAtom<Record<number, number>>;
27
- readonly rowDetailAutoHeightCache: GridAtom<Record<number, number>>;
28
- readonly rowSelectedIds: Atom<Set<string>>;
29
- readonly rowSelectionPivot: GridAtom<string | null>;
30
- readonly rowSelectionLastWasDeselect: GridAtom<boolean>;
31
- readonly draggingHeader: GridAtom<HeaderGroupCellLayout | null>;
32
- readonly dialogFrames: GridAtom<Record<string, any>>;
33
- readonly popoverFrames: GridAtom<
34
- Record<
35
- string,
36
- {
5
+ readonly headerRows: GridAtomReadonly<number>;
6
+ readonly headerCols: GridAtomReadonly<number>;
7
+ readonly headerHeightTotal: GridAtomReadonly<number>;
8
+ readonly xScroll: GridAtom<number>;
9
+ readonly yScroll: GridAtom<number>;
10
+ readonly refreshKey: GridAtom<number>;
11
+ readonly layout: GridAtomReadonly<LayoutMap>;
12
+ readonly focusActive: GridAtom<PositionUnion | null>;
13
+ readonly focusPrevColIndex: GridAtom<number | null>;
14
+ readonly focusPrevRowIndex: GridAtom<number | null>;
15
+ readonly editActivePos: GridAtom<EditActivePosition<any> | null>;
16
+ readonly editData: GridAtom<any>;
17
+ readonly editValidation: GridAtom<Record<string, any> | boolean>;
18
+ readonly rowAutoHeightCache: GridAtom<Record<number, number>>;
19
+ readonly rowDetailAutoHeightCache: GridAtom<Record<number, number>>;
20
+ readonly rowSelectedIds: Atom<Set<string>>;
21
+ readonly rowSelectionPivot: GridAtom<string | null>;
22
+ readonly rowSelectionLastWasDeselect: GridAtom<boolean>;
23
+ readonly rowGroupColumnState: GridAtom<Record<string, Partial<Column<any>>>>;
24
+ readonly draggingHeader: GridAtom<HeaderGroupCellLayout | null>;
25
+ readonly dialogFrames: GridAtom<Record<string, any>>;
26
+ readonly popoverFrames: GridAtom<Record<string, {
37
27
  target: HTMLElement | VirtualTarget;
38
28
  context: any;
39
- }
40
- >
41
- >;
42
- readonly cellSelectionPivot: GridAtom<DataRect | null>;
43
- readonly cellSelectionAdditiveRects: GridAtom<DataRect[] | null>;
44
- readonly cellSelectionIsDeselect: GridAtom<boolean>;
45
- readonly cellSelectionSplits: GridAtomReadonly<DataRect[]>;
46
- readonly store: ReturnType<typeof createStore>;
29
+ }>>;
30
+ readonly cellSelectionPivot: GridAtom<DataRect | null>;
31
+ readonly cellSelectionAdditiveRects: GridAtom<DataRect[] | null>;
32
+ readonly cellSelectionIsDeselect: GridAtom<boolean>;
33
+ readonly cellSelectionSplits: GridAtomReadonly<DataRect[]>;
34
+ readonly store: ReturnType<typeof createStore>;
47
35
  }
@@ -1,7 +1,5 @@
1
1
  import type { InternalAtoms } from "../+types.js";
2
2
  import type { Grid, GridApi } from "../../+types";
3
- export declare const makeColumnAutosize: (
4
- grid: Grid<any> & {
3
+ export declare const makeColumnAutosize: (grid: Grid<any> & {
5
4
  internal: InternalAtoms;
6
- },
7
- ) => GridApi<any>["columnAutosize"];
5
+ }) => GridApi<any>["columnAutosize"];
@@ -1,71 +1,72 @@
1
1
  import { measureText } from "@1771technologies/lytenyte-shared";
2
2
  import { resolveColumn } from "../helpers/resolve-column.js";
3
3
  export const makeColumnAutosize = (grid) => {
4
- return (params) => {
5
- const errorRef = { current: false };
6
- const meta = grid.state.columnMeta.get();
7
- const columns =
8
- params.columns
9
- ?.map((c) => resolveColumn(c, errorRef, meta))
10
- .map((c) => c && grid.api.columnById(c))
11
- .filter(Boolean) ?? grid.state.columnMeta.get().columnsVisible;
12
- if (errorRef.current) {
13
- console.error("Invalid column autosize column params");
14
- return {};
15
- }
16
- if (columns.length === 0) return {};
17
- const base = grid.state.columnBase.get();
18
- const result = {};
19
- const bounds = grid.state.viewBounds.get();
20
- const rowFirstVisible = bounds.rowCenterStart;
21
- const rowLastVisible = bounds.rowCenterEnd;
22
- const rowTopCount = grid.state.rowDataStore.rowTopCount.get();
23
- const rowBottomCount = grid.state.rowDataStore.rowBottomCount.get();
24
- const rowCount = grid.state.rowDataStore.rowCount.get();
25
- const rowStart = Math.max(rowFirstVisible, 0);
26
- const rowEnd = rowLastVisible === 0 ? Math.min(50, rowCount - rowBottomCount) : rowLastVisible;
27
- calculateWidths(rowStart, rowEnd);
28
- if (rowTopCount) calculateWidths(0, rowTopCount);
29
- if (rowBottomCount) calculateWidths(rowCount - rowBottomCount, rowCount);
30
- if (params?.includeHeader) {
31
- for (let columnIndex = 0; columnIndex < columns.length; columnIndex++) {
32
- const column = columns[columnIndex];
33
- const autoFn = column.autosizeHeaderFn ?? base.autosizeHeaderFn ?? defaultAutosizeHeader;
34
- const width = autoFn({ grid, column: column });
35
- if (width != null) result[column.id] = Math.max(width, result[column.id]);
36
- }
37
- }
38
- if (params?.dryRun) return result;
39
- const updates = Object.fromEntries(
40
- Object.entries(result).map(([key, v]) => [key, { width: v }]),
41
- );
42
- grid.api.columnUpdate(updates);
43
- return result;
44
- function calculateWidths(start, end) {
45
- for (let rowIndex = start; rowIndex < end; rowIndex++) {
46
- const row = grid.api.rowByIndex(rowIndex);
47
- if (!row) continue;
48
- for (let i = 0; i < columns.length; i++) {
49
- const column = columns[i];
50
- const autoFn = column.autosizeCellFn ?? base.autosizeCellFn ?? defaultAutosize;
51
- const width = autoFn({ column, grid, row });
52
- result[column.id] ??= 0;
53
- if (width != null) result[column.id] = Math.max(width, result[column.id]);
4
+ return (params) => {
5
+ const errorRef = { current: false };
6
+ const meta = grid.state.columnMeta.get();
7
+ const columns = params.columns
8
+ ?.map((c) => resolveColumn(c, errorRef, meta))
9
+ .map((c) => c && grid.api.columnById(c))
10
+ .filter(Boolean) ?? grid.state.columnMeta.get().columnsVisible;
11
+ if (errorRef.current) {
12
+ console.error("Invalid column autosize column params");
13
+ return {};
54
14
  }
55
- }
56
- }
57
- };
15
+ if (columns.length === 0)
16
+ return {};
17
+ const base = grid.state.columnBase.get();
18
+ const result = {};
19
+ const bounds = grid.state.viewBounds.get();
20
+ const rowFirstVisible = bounds.rowCenterStart;
21
+ const rowLastVisible = bounds.rowCenterEnd;
22
+ const rowTopCount = grid.state.rowDataStore.rowTopCount.get();
23
+ const rowBottomCount = grid.state.rowDataStore.rowBottomCount.get();
24
+ const rowCount = grid.state.rowDataStore.rowCount.get();
25
+ const rowStart = Math.max(rowFirstVisible, 0);
26
+ const rowEnd = rowLastVisible === 0 ? Math.min(50, rowCount - rowBottomCount) : rowLastVisible;
27
+ calculateWidths(rowStart, rowEnd);
28
+ if (rowTopCount)
29
+ calculateWidths(0, rowTopCount);
30
+ if (rowBottomCount)
31
+ calculateWidths(rowCount - rowBottomCount, rowCount);
32
+ if (params?.includeHeader) {
33
+ for (let columnIndex = 0; columnIndex < columns.length; columnIndex++) {
34
+ const column = columns[columnIndex];
35
+ const autoFn = column.autosizeHeaderFn ?? base.autosizeHeaderFn ?? defaultAutosizeHeader;
36
+ const width = autoFn({ grid, column: column });
37
+ if (width != null)
38
+ result[column.id] = Math.max(width, result[column.id]);
39
+ }
40
+ }
41
+ if (params?.dryRun)
42
+ return result;
43
+ const updates = Object.fromEntries(Object.entries(result).map(([key, v]) => [key, { width: v }]));
44
+ grid.api.columnUpdate(updates);
45
+ return result;
46
+ function calculateWidths(start, end) {
47
+ for (let rowIndex = start; rowIndex < end; rowIndex++) {
48
+ const row = grid.api.rowByIndex(rowIndex);
49
+ if (!row)
50
+ continue;
51
+ for (let i = 0; i < columns.length; i++) {
52
+ const column = columns[i];
53
+ const autoFn = column.autosizeCellFn ?? base.autosizeCellFn ?? defaultAutosize;
54
+ const width = autoFn({ column, grid, row });
55
+ result[column.id] ??= 0;
56
+ if (width != null)
57
+ result[column.id] = Math.max(width, result[column.id]);
58
+ }
59
+ }
60
+ }
61
+ };
58
62
  };
59
63
  function defaultAutosize(c) {
60
- const field = c.grid.api.columnField(
61
- c.column,
62
- c.row.kind === "leaf"
63
- ? { kind: "leaf", data: c.row.data }
64
- : { kind: "branch", data: c.row.data, key: c.row.key },
65
- );
66
- return measureText(`${field}`, c.grid.state.viewport.get() ?? undefined).width + 8;
64
+ const field = c.grid.api.columnField(c.column, c.row.kind === "leaf"
65
+ ? { kind: "leaf", data: c.row.data }
66
+ : { kind: "branch", data: c.row.data, key: c.row.key });
67
+ return measureText(`${field}`, c.grid.state.viewport.get() ?? undefined).width + 8;
67
68
  }
68
69
  function defaultAutosizeHeader(c) {
69
- const text = c.column.name ?? c.column.id;
70
- return measureText(text, c.grid.state.viewport.get() ?? undefined).width + 8;
70
+ const text = c.column.name ?? c.column.id;
71
+ return measureText(text, c.grid.state.viewport.get() ?? undefined).width + 8;
71
72
  }
@@ -1,6 +1,6 @@
1
1
  export const makeColumnById = (grid) => {
2
- return (id) => {
3
- const lookup = grid.state.columnMeta.get();
4
- return lookup.columnLookup.get(id);
5
- };
2
+ return (id) => {
3
+ const lookup = grid.state.columnMeta.get();
4
+ return lookup.columnLookup.get(id);
5
+ };
6
6
  };
@@ -1,20 +1,23 @@
1
1
  import { get } from "@1771technologies/lytenyte-js-utils";
2
2
  export const makeColumnField = (grid) => {
3
- return (c, d) => {
4
- const meta = grid.state.columnMeta.get();
5
- const column = typeof c === "string" ? meta.columnLookup.get(c) : c;
6
- if (!column) {
7
- console.error(`Attempting to compute the field of a column that is not defined: ${c}`);
8
- return null;
9
- }
10
- const field = column.field ?? column.id;
11
- if (d.kind === "branch") {
12
- if (typeof field === "function") return field({ column, data: d, grid });
13
- return d.data?.[column.id];
14
- }
15
- const fieldType = typeof field;
16
- if (fieldType === "string" || fieldType === "number") return d.data?.[field];
17
- if (fieldType === "object") return get(d.data, field.path);
18
- return field({ column, data: d, grid });
19
- };
3
+ return (c, d) => {
4
+ const meta = grid.state.columnMeta.get();
5
+ const column = typeof c === "string" ? meta.columnLookup.get(c) : c;
6
+ if (!column) {
7
+ console.error(`Attempting to compute the field of a column that is not defined: ${c}`);
8
+ return null;
9
+ }
10
+ const field = column.field ?? column.id;
11
+ if (d.kind === "branch") {
12
+ if (typeof field === "function")
13
+ return field({ column, data: d, grid });
14
+ return d.data?.[column.id];
15
+ }
16
+ const fieldType = typeof field;
17
+ if (fieldType === "string" || fieldType === "number")
18
+ return d.data?.[field];
19
+ if (fieldType === "object")
20
+ return get(d.data, field.path);
21
+ return field({ column, data: d, grid });
22
+ };
20
23
  };
@@ -1,6 +1,6 @@
1
1
  export const makeColumnFromIndex = (grid) => {
2
- return (index) => {
3
- const v = grid.state.columnMeta.get().columnsVisible;
4
- return v[index] ?? null;
5
- };
2
+ return (index) => {
3
+ const v = grid.state.columnMeta.get().columnsVisible;
4
+ return v[index] ?? null;
5
+ };
6
6
  };
@@ -1,10 +1,10 @@
1
1
  export const makeColumnGroupToggle = (grid) => {
2
- return (group, state) => {
3
- const delimiter = grid.state.columnGroupJoinDelimiter.get();
4
- const id = typeof group === "string" ? group : group.join(delimiter);
5
- const currentExpansions = grid.state.columnGroupExpansions.get();
6
- const currentState = currentExpansions[id] ?? grid.state.columnGroupDefaultExpansion.get();
7
- const next = state ?? !currentState;
8
- grid.state.columnGroupExpansions.set((prev) => ({ ...prev, [id]: next }));
9
- };
2
+ return (group, state) => {
3
+ const delimiter = grid.state.columnGroupJoinDelimiter.get();
4
+ const id = typeof group === "string" ? group : group.join(delimiter);
5
+ const currentExpansions = grid.state.columnGroupExpansions.get();
6
+ const currentState = currentExpansions[id] ?? grid.state.columnGroupDefaultExpansion.get();
7
+ const next = state ?? !currentState;
8
+ grid.state.columnGroupExpansions.set((prev) => ({ ...prev, [id]: next }));
9
+ };
10
10
  };
@@ -1,7 +1,7 @@
1
1
  export const makeColumnIndex = (grid) => {
2
- return (columnOrId) => {
3
- const v = grid.state.columnMeta.get().columnsVisible;
4
- const id = typeof columnOrId === "string" ? columnOrId : columnOrId.id;
5
- return v.findIndex((c) => c.id === id);
6
- };
2
+ return (columnOrId) => {
3
+ const v = grid.state.columnMeta.get().columnsVisible;
4
+ const id = typeof columnOrId === "string" ? columnOrId : columnOrId.id;
5
+ return v.findIndex((c) => c.id === id);
6
+ };
7
7
  };
@@ -1,51 +1,49 @@
1
1
  import { resolveColumn } from "../helpers/resolve-column.js";
2
2
  export const makeColumnMove = (grid) => {
3
- return (params) => {
4
- const meta = grid.state.columnMeta.get();
5
- const errorRef = { current: false };
6
- const colSet = new Set(
7
- params.moveColumns.map((c) => {
8
- return resolveColumn(c, errorRef, meta);
9
- }),
10
- );
11
- const dest = resolveColumn(params.moveTarget, errorRef, meta);
12
- if (errorRef.current) return;
13
- if (colSet.has(dest)) {
14
- console.error(`Destination column cannot be in the move columns`);
15
- return;
16
- }
17
- const columns = grid.state.columns.get();
18
- const columnsToMove = columns.filter((c) => colSet.has(c.id));
19
- const nextColumns = columns.filter((c) => !colSet.has(c.id));
20
- const indexOfDest = nextColumns.findIndex((c) => c.id === dest);
21
- const destCol = nextColumns[indexOfDest];
22
- let stop = false;
23
- grid.api.eventFire("columnMoveBegin", {
24
- grid,
25
- before: !!params.before,
26
- moveColumns: columnsToMove,
27
- moveTarget: destCol,
28
- preventDefault: () => {
29
- stop = true;
30
- },
31
- updatePinState: !!params.updatePinState,
32
- });
33
- if (stop) return;
34
- const offset = params.before ? 0 : 1;
35
- nextColumns.splice(indexOfDest + offset, 0, ...columnsToMove);
36
- grid.state.columns.set(nextColumns);
37
- if (params.updatePinState) {
38
- const updates = Object.fromEntries(
39
- columnsToMove.map((c) => [c.id, { pin: destCol.pin ?? null }]),
40
- );
41
- grid.api.columnUpdate(updates);
42
- }
43
- grid.api.eventFire("columnMoveEnd", {
44
- grid,
45
- before: !!params.before,
46
- moveColumns: columnsToMove,
47
- moveTarget: destCol,
48
- updatePinState: !!params.updatePinState,
49
- });
50
- };
3
+ return (params) => {
4
+ const meta = grid.state.columnMeta.get();
5
+ const errorRef = { current: false };
6
+ const colSet = new Set(params.moveColumns.map((c) => {
7
+ return resolveColumn(c, errorRef, meta);
8
+ }));
9
+ const dest = resolveColumn(params.moveTarget, errorRef, meta);
10
+ if (errorRef.current)
11
+ return;
12
+ if (colSet.has(dest)) {
13
+ console.error(`Destination column cannot be in the move columns`);
14
+ return;
15
+ }
16
+ const columns = grid.state.columns.get();
17
+ const columnsToMove = columns.filter((c) => colSet.has(c.id));
18
+ const nextColumns = columns.filter((c) => !colSet.has(c.id));
19
+ const indexOfDest = nextColumns.findIndex((c) => c.id === dest);
20
+ const destCol = nextColumns[indexOfDest];
21
+ let stop = false;
22
+ grid.api.eventFire("columnMoveBegin", {
23
+ grid,
24
+ before: !!params.before,
25
+ moveColumns: columnsToMove,
26
+ moveTarget: destCol,
27
+ preventDefault: () => {
28
+ stop = true;
29
+ },
30
+ updatePinState: !!params.updatePinState,
31
+ });
32
+ if (stop)
33
+ return;
34
+ const offset = params.before ? 0 : 1;
35
+ nextColumns.splice(indexOfDest + offset, 0, ...columnsToMove);
36
+ grid.state.columns.set(nextColumns);
37
+ if (params.updatePinState) {
38
+ const updates = Object.fromEntries(columnsToMove.map((c) => [c.id, { pin: destCol.pin ?? null }]));
39
+ grid.api.columnUpdate(updates);
40
+ }
41
+ grid.api.eventFire("columnMoveEnd", {
42
+ grid,
43
+ before: !!params.before,
44
+ moveColumns: columnsToMove,
45
+ moveTarget: destCol,
46
+ updatePinState: !!params.updatePinState,
47
+ });
48
+ };
51
49
  };
@@ -1,11 +1,9 @@
1
1
  export const makeColumnResize = (grid) => {
2
- return (updates) => {
3
- const api = grid.api;
4
- const columnUpdates = Object.fromEntries(
5
- Object.entries(updates)
6
- .map(([c, v]) => [c, { width: v }])
7
- .filter((c) => api.columnById(c[0])),
8
- );
9
- api.columnUpdate(columnUpdates);
10
- };
2
+ return (updates) => {
3
+ const api = grid.api;
4
+ const columnUpdates = Object.fromEntries(Object.entries(updates)
5
+ .map(([c, v]) => [c, { width: v }])
6
+ .filter((c) => api.columnById(c[0])));
7
+ api.columnUpdate(columnUpdates);
8
+ };
11
9
  };
@@ -1,2 +1,5 @@
1
1
  import type { Grid, GridApi } from "../../+types";
2
- export declare const makeColumnUpdate: (grid: Grid<any>) => GridApi<any>["columnUpdate"];
2
+ import type { InternalAtoms } from "../+types";
3
+ export declare const makeColumnUpdate: (grid: Grid<any> & {
4
+ internal: InternalAtoms;
5
+ }) => GridApi<any>["columnUpdate"];
@@ -1,13 +1,26 @@
1
+ import { GROUP_COLUMN_PREFIX } from "@1771technologies/lytenyte-shared";
1
2
  export const makeColumnUpdate = (grid) => {
2
- return (updates) => {
3
- const columns = [...grid.state.columns.get()];
4
- for (let i = 0; i < columns.length; i++) {
5
- const column = columns[i];
6
- if (updates[column.id]) {
7
- const next = { ...column, ...updates[column.id] };
8
- columns[i] = next;
9
- }
10
- }
11
- grid.state.columns.set(columns);
12
- };
3
+ return (updates) => {
4
+ const columns = [...grid.state.columns.get()];
5
+ const groupColumns = grid.state.columnMeta
6
+ .get()
7
+ .columnsVisible.filter((c) => c.id.startsWith(GROUP_COLUMN_PREFIX));
8
+ const groupState = { ...grid.internal.rowGroupColumnState.get() };
9
+ for (let i = 0; i < groupColumns.length; i++) {
10
+ const column = groupColumns[i];
11
+ if (updates[column.id]) {
12
+ const next = { ...groupState[column.id], ...updates[column.id] };
13
+ groupState[column.id] = next;
14
+ }
15
+ }
16
+ grid.internal.rowGroupColumnState.set(groupState);
17
+ for (let i = 0; i < columns.length; i++) {
18
+ const column = columns[i];
19
+ if (updates[column.id]) {
20
+ const next = { ...column, ...updates[column.id] };
21
+ columns[i] = next;
22
+ }
23
+ }
24
+ grid.state.columns.set(columns);
25
+ };
13
26
  };
@@ -1,12 +1,8 @@
1
1
  import type { InternalAtoms } from "../+types.js";
2
2
  import type { Grid, GridApi } from "../../+types";
3
- export declare const makeDialogFrameOpen: (
4
- grid: Grid<any> & {
3
+ export declare const makeDialogFrameOpen: (grid: Grid<any> & {
5
4
  internal: InternalAtoms;
6
- },
7
- ) => GridApi<any>["dialogFrameOpen"];
8
- export declare const makeDialogFrameClose: (
9
- grid: Grid<any> & {
5
+ }) => GridApi<any>["dialogFrameOpen"];
6
+ export declare const makeDialogFrameClose: (grid: Grid<any> & {
10
7
  internal: InternalAtoms;
11
- },
12
- ) => GridApi<any>["dialogFrameClose"];
8
+ }) => GridApi<any>["dialogFrameClose"];
@@ -1,15 +1,16 @@
1
1
  export const makeDialogFrameOpen = (grid) => {
2
- return (id, context) => {
3
- grid.internal.dialogFrames.set((prev) => ({ ...prev, [id]: context }));
4
- };
2
+ return (id, context) => {
3
+ grid.internal.dialogFrames.set((prev) => ({ ...prev, [id]: context }));
4
+ };
5
5
  };
6
6
  export const makeDialogFrameClose = (grid) => {
7
- return (id) => {
8
- grid.internal.dialogFrames.set((prev) => {
9
- if (!id) return {};
10
- const next = { ...prev };
11
- delete next[id];
12
- return next;
13
- });
14
- };
7
+ return (id) => {
8
+ grid.internal.dialogFrames.set((prev) => {
9
+ if (!id)
10
+ return {};
11
+ const next = { ...prev };
12
+ delete next[id];
13
+ return next;
14
+ });
15
+ };
15
16
  };
@@ -1,7 +1,5 @@
1
1
  import type { InternalAtoms } from "../+types.js";
2
2
  import type { Grid, GridApi } from "../../+types";
3
- export declare const makeEditBegin: (
4
- grid: Grid<any> & {
3
+ export declare const makeEditBegin: (grid: Grid<any> & {
5
4
  internal: InternalAtoms;
6
- },
7
- ) => GridApi<any>["editBegin"];
5
+ }) => GridApi<any>["editBegin"];