@1771technologies/lytenyte-pro 1.0.19 → 2.0.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (534) hide show
  1. package/css/all-colors.css +8 -0
  2. package/css/components/button.css +176 -0
  3. package/css/components/checkbox.css +54 -0
  4. package/css/components/input.css +64 -0
  5. package/css/components/tree-view.css +108 -0
  6. package/css/components.css +300 -0
  7. package/css/cotton-candy.css +1 -0
  8. package/css/dark.css +1 -0
  9. package/css/design.css +1 -0
  10. package/css/fonts.css +1 -0
  11. package/css/grid-full.css +3 -0
  12. package/css/grid.css +81 -0
  13. package/css/light-dark.css +3 -0
  14. package/css/light.css +1 -0
  15. package/css/pill-manager.css +184 -0
  16. package/css/shadcn-vars.css +1 -0
  17. package/css/shadcn.css +1 -0
  18. package/css/teal.css +1 -0
  19. package/css/term.css +1 -0
  20. package/css/tw.css +1 -0
  21. package/package.json +29 -16
  22. package/dist/+types.d.ts +0 -6177
  23. package/dist/+types.js +0 -1
  24. package/dist/__play__/cell-selections/cell-selection.play.d.ts +0 -5
  25. package/dist/__play__/cell-selections/cell-selection.play.js +0 -80
  26. package/dist/__play__/filter-select/filter-select.play.d.ts +0 -4
  27. package/dist/__play__/filter-select/filter-select.play.js +0 -76
  28. package/dist/__play__/test-utils/bank-data-smaller.d.ts +0 -19
  29. package/dist/__play__/test-utils/bank-data-smaller.js +0 -252
  30. package/dist/__play__/test-utils/row-handler.d.ts +0 -6
  31. package/dist/__play__/test-utils/row-handler.js +0 -32
  32. package/dist/cell-selection/adjust-rect-for-row-and-cell-span.d.ts +0 -2
  33. package/dist/cell-selection/adjust-rect-for-row-and-cell-span.js +0 -43
  34. package/dist/cell-selection/are-rects-equal.d.ts +0 -2
  35. package/dist/cell-selection/are-rects-equal.js +0 -6
  36. package/dist/cell-selection/bound-selection-rect.d.ts +0 -2
  37. package/dist/cell-selection/bound-selection-rect.js +0 -17
  38. package/dist/cell-selection/cell-selection-containers.d.ts +0 -3
  39. package/dist/cell-selection/cell-selection-containers.js +0 -91
  40. package/dist/cell-selection/cell-selection-driver.d.ts +0 -1
  41. package/dist/cell-selection/cell-selection-driver.js +0 -289
  42. package/dist/cell-selection/cell-style-row.d.ts +0 -8
  43. package/dist/cell-selection/cell-style-row.js +0 -84
  44. package/dist/cell-selection/deselect-rect-range.d.ts +0 -2
  45. package/dist/cell-selection/deselect-rect-range.js +0 -43
  46. package/dist/cell-selection/expand-cell-selection-down.d.ts +0 -5
  47. package/dist/cell-selection/expand-cell-selection-down.js +0 -39
  48. package/dist/cell-selection/expand-cell-selection-end.d.ts +0 -5
  49. package/dist/cell-selection/expand-cell-selection-end.js +0 -40
  50. package/dist/cell-selection/expand-cell-selection-start.d.ts +0 -5
  51. package/dist/cell-selection/expand-cell-selection-start.js +0 -39
  52. package/dist/cell-selection/expand-cell-selection-up.d.ts +0 -5
  53. package/dist/cell-selection/expand-cell-selection-up.js +0 -39
  54. package/dist/cell-selection/full-width-start-end-index.d.ts +0 -2
  55. package/dist/cell-selection/full-width-start-end-index.js +0 -5
  56. package/dist/cell-selection/get-root-cell.d.ts +0 -2
  57. package/dist/cell-selection/get-root-cell.js +0 -6
  58. package/dist/cell-selection/index.d.ts +0 -18
  59. package/dist/cell-selection/index.js +0 -18
  60. package/dist/cell-selection/is-bottom-rect.d.ts +0 -2
  61. package/dist/cell-selection/is-bottom-rect.js +0 -7
  62. package/dist/cell-selection/is-center-col-rect.d.ts +0 -5
  63. package/dist/cell-selection/is-center-col-rect.js +0 -5
  64. package/dist/cell-selection/is-center-rect.d.ts +0 -2
  65. package/dist/cell-selection/is-center-rect.js +0 -5
  66. package/dist/cell-selection/is-end-rect.d.ts +0 -5
  67. package/dist/cell-selection/is-end-rect.js +0 -4
  68. package/dist/cell-selection/is-overlapping-rect.d.ts +0 -2
  69. package/dist/cell-selection/is-overlapping-rect.js +0 -6
  70. package/dist/cell-selection/is-start-rect.d.ts +0 -5
  71. package/dist/cell-selection/is-start-rect.js +0 -4
  72. package/dist/cell-selection/is-top-rect.d.ts +0 -2
  73. package/dist/cell-selection/is-top-rect.js +0 -4
  74. package/dist/cell-selection/is-within-selection-rect.d.ts +0 -2
  75. package/dist/cell-selection/is-within-selection-rect.js +0 -3
  76. package/dist/cell-selection/split-cell-selection-rect.d.ts +0 -46
  77. package/dist/cell-selection/split-cell-selection-rect.js +0 -88
  78. package/dist/cell-selection/split-on-pivot.d.ts +0 -3
  79. package/dist/cell-selection/split-on-pivot.js +0 -50
  80. package/dist/cell-selection/update-additive-cell-selection.d.ts +0 -5
  81. package/dist/cell-selection/update-additive-cell-selection.js +0 -23
  82. package/dist/cell-selection/use-edge-scroll.d.ts +0 -10
  83. package/dist/cell-selection/use-edge-scroll.js +0 -66
  84. package/dist/column-manager/branch-lookup-context.d.ts +0 -4
  85. package/dist/column-manager/branch-lookup-context.js +0 -3
  86. package/dist/column-manager/branch.d.ts +0 -15
  87. package/dist/column-manager/branch.js +0 -54
  88. package/dist/column-manager/column-manager.d.ts +0 -13
  89. package/dist/column-manager/column-manager.js +0 -18
  90. package/dist/column-manager/context.d.ts +0 -7
  91. package/dist/column-manager/context.js +0 -3
  92. package/dist/column-manager/label.d.ts +0 -5
  93. package/dist/column-manager/label.js +0 -18
  94. package/dist/column-manager/leaf.d.ts +0 -6
  95. package/dist/column-manager/leaf.js +0 -58
  96. package/dist/column-manager/move-handle.d.ts +0 -5
  97. package/dist/column-manager/move-handle.js +0 -72
  98. package/dist/column-manager/panel.d.ts +0 -1
  99. package/dist/column-manager/panel.js +0 -2
  100. package/dist/column-manager/root.d.ts +0 -8
  101. package/dist/column-manager/root.js +0 -7
  102. package/dist/column-manager/use-column-manager.d.ts +0 -10
  103. package/dist/column-manager/use-column-manager.js +0 -24
  104. package/dist/column-manager/use-columns-from-context.d.ts +0 -3
  105. package/dist/column-manager/use-columns-from-context.js +0 -23
  106. package/dist/column-manager/visibility-checkbox.d.ts +0 -9
  107. package/dist/column-manager/visibility-checkbox.js +0 -30
  108. package/dist/context.d.ts +0 -11
  109. package/dist/context.js +0 -5
  110. package/dist/filter-selects/apply.d.ts +0 -7
  111. package/dist/filter-selects/apply.js +0 -22
  112. package/dist/filter-selects/clear.d.ts +0 -7
  113. package/dist/filter-selects/clear.js +0 -22
  114. package/dist/filter-selects/context.d.ts +0 -13
  115. package/dist/filter-selects/context.js +0 -3
  116. package/dist/filter-selects/filter-combinator.d.ts +0 -10
  117. package/dist/filter-selects/filter-combinator.js +0 -19
  118. package/dist/filter-selects/filter-row-context.d.ts +0 -30
  119. package/dist/filter-selects/filter-row-context.js +0 -3
  120. package/dist/filter-selects/filter-row.d.ts +0 -13
  121. package/dist/filter-selects/filter-row.js +0 -118
  122. package/dist/filter-selects/index.d.ts +0 -22
  123. package/dist/filter-selects/index.js +0 -20
  124. package/dist/filter-selects/is-complete-filter.d.ts +0 -2
  125. package/dist/filter-selects/is-complete-filter.js +0 -5
  126. package/dist/filter-selects/operator-select.d.ts +0 -14
  127. package/dist/filter-selects/operator-select.js +0 -25
  128. package/dist/filter-selects/options.d.ts +0 -9
  129. package/dist/filter-selects/options.js +0 -100
  130. package/dist/filter-selects/reset.d.ts +0 -7
  131. package/dist/filter-selects/reset.js +0 -22
  132. package/dist/filter-selects/root.d.ts +0 -14
  133. package/dist/filter-selects/root.js +0 -5
  134. package/dist/filter-selects/to-filter-item.d.ts +0 -3
  135. package/dist/filter-selects/to-filter-item.js +0 -7
  136. package/dist/filter-selects/use-filter-select.d.ts +0 -38
  137. package/dist/filter-selects/use-filter-select.js +0 -167
  138. package/dist/filter-selects/value-input.d.ts +0 -12
  139. package/dist/filter-selects/value-input.js +0 -27
  140. package/dist/filter-tree/branch.d.ts +0 -13
  141. package/dist/filter-tree/branch.js +0 -21
  142. package/dist/filter-tree/context.d.ts +0 -27
  143. package/dist/filter-tree/context.js +0 -5
  144. package/dist/filter-tree/filter-tree.d.ts +0 -14
  145. package/dist/filter-tree/filter-tree.js +0 -18
  146. package/dist/filter-tree/hooks/use-filter-tree.d.ts +0 -38
  147. package/dist/filter-tree/hooks/use-filter-tree.js +0 -101
  148. package/dist/filter-tree/hooks/use-tree-item.d.ts +0 -8
  149. package/dist/filter-tree/hooks/use-tree-item.js +0 -116
  150. package/dist/filter-tree/inclusion-checkbox.d.ts +0 -9
  151. package/dist/filter-tree/inclusion-checkbox.js +0 -14
  152. package/dist/filter-tree/label.d.ts +0 -5
  153. package/dist/filter-tree/label.js +0 -18
  154. package/dist/filter-tree/leaf.d.ts +0 -6
  155. package/dist/filter-tree/leaf.js +0 -14
  156. package/dist/filter-tree/root.d.ts +0 -13
  157. package/dist/filter-tree/root.js +0 -30
  158. package/dist/grid/cell.d.ts +0 -6
  159. package/dist/grid/cell.js +0 -3
  160. package/dist/grid/dialog-driver.d.ts +0 -1
  161. package/dist/grid/dialog-driver.js +0 -21
  162. package/dist/grid/header-cell.d.ts +0 -10
  163. package/dist/grid/header-cell.js +0 -3
  164. package/dist/grid/header-group-cell.d.ts +0 -6
  165. package/dist/grid/header-group-cell.js +0 -3
  166. package/dist/grid/header-row.d.ts +0 -5
  167. package/dist/grid/header-row.js +0 -2
  168. package/dist/grid/header.d.ts +0 -1
  169. package/dist/grid/header.js +0 -2
  170. package/dist/grid/popover-driver.d.ts +0 -1
  171. package/dist/grid/popover-driver.js +0 -21
  172. package/dist/grid/root.d.ts +0 -8
  173. package/dist/grid/root.js +0 -37
  174. package/dist/grid/row-full-width.d.ts +0 -9
  175. package/dist/grid/row-full-width.js +0 -3
  176. package/dist/grid/row.d.ts +0 -8
  177. package/dist/grid/row.js +0 -3
  178. package/dist/grid/rows-container.d.ts +0 -1
  179. package/dist/grid/rows-container.js +0 -2
  180. package/dist/grid/rows-sections.d.ts +0 -3
  181. package/dist/grid/rows-sections.js +0 -13
  182. package/dist/grid/viewport.d.ts +0 -1
  183. package/dist/grid/viewport.js +0 -9
  184. package/dist/grid-box/+types.d.ts +0 -15
  185. package/dist/grid-box/+types.js +0 -1
  186. package/dist/grid-box/context.d.ts +0 -9
  187. package/dist/grid-box/context.js +0 -3
  188. package/dist/grid-box/grid-box.d.ts +0 -12
  189. package/dist/grid-box/grid-box.js +0 -14
  190. package/dist/grid-box/item.d.ts +0 -10
  191. package/dist/grid-box/item.js +0 -62
  192. package/dist/grid-box/panel.d.ts +0 -1
  193. package/dist/grid-box/panel.js +0 -9
  194. package/dist/grid-box/root.d.ts +0 -9
  195. package/dist/grid-box/root.js +0 -8
  196. package/dist/grid-box/use-aggregation-box-items.d.ts +0 -18
  197. package/dist/grid-box/use-aggregation-box-items.js +0 -61
  198. package/dist/grid-box/use-column-box-items.d.ts +0 -34
  199. package/dist/grid-box/use-column-box-items.js +0 -78
  200. package/dist/grid-box/use-row-group-box-items.d.ts +0 -18
  201. package/dist/grid-box/use-row-group-box-items.js +0 -169
  202. package/dist/grid-provider/context.d.ts +0 -5
  203. package/dist/grid-provider/context.js +0 -2
  204. package/dist/grid-provider/provider.d.ts +0 -3
  205. package/dist/grid-provider/provider.js +0 -2
  206. package/dist/grid-provider/use-grid.d.ts +0 -3
  207. package/dist/grid-provider/use-grid.js +0 -3
  208. package/dist/grid.d.ts +0 -18
  209. package/dist/grid.js +0 -28
  210. package/dist/icons/index.d.ts +0 -1
  211. package/dist/icons/index.js +0 -1
  212. package/dist/index.d.ts +0 -14
  213. package/dist/index.js +0 -14
  214. package/dist/license/index.d.ts +0 -1
  215. package/dist/license/index.js +0 -1
  216. package/dist/license/license.d.ts +0 -3
  217. package/dist/license/license.js +0 -215
  218. package/dist/license/md5-hash.d.ts +0 -9
  219. package/dist/license/md5-hash.js +0 -167
  220. package/dist/license.d.ts +0 -3
  221. package/dist/license.js +0 -214
  222. package/dist/listbox/context.d.ts +0 -6
  223. package/dist/listbox/context.js +0 -3
  224. package/dist/listbox/item.d.ts +0 -1
  225. package/dist/listbox/item.js +0 -25
  226. package/dist/listbox/panel.d.ts +0 -1
  227. package/dist/listbox/panel.js +0 -50
  228. package/dist/listbox/root.d.ts +0 -6
  229. package/dist/listbox/root.js +0 -12
  230. package/dist/row-data-source-client/+constants.d.ts +0 -2
  231. package/dist/row-data-source-client/+constants.js +0 -2
  232. package/dist/row-data-source-client/+types.d.ts +0 -27
  233. package/dist/row-data-source-client/+types.js +0 -1
  234. package/dist/row-data-source-client/built-ins/avg.d.ts +0 -10
  235. package/dist/row-data-source-client/built-ins/avg.js +0 -16
  236. package/dist/row-data-source-client/built-ins/built-ins.d.ts +0 -44
  237. package/dist/row-data-source-client/built-ins/built-ins.js +0 -44
  238. package/dist/row-data-source-client/built-ins/count.d.ts +0 -10
  239. package/dist/row-data-source-client/built-ins/count.js +0 -16
  240. package/dist/row-data-source-client/built-ins/first.d.ts +0 -10
  241. package/dist/row-data-source-client/built-ins/first.js +0 -12
  242. package/dist/row-data-source-client/built-ins/group.d.ts +0 -1
  243. package/dist/row-data-source-client/built-ins/group.js +0 -3
  244. package/dist/row-data-source-client/built-ins/last.d.ts +0 -10
  245. package/dist/row-data-source-client/built-ins/last.js +0 -12
  246. package/dist/row-data-source-client/built-ins/max.d.ts +0 -11
  247. package/dist/row-data-source-client/built-ins/max.js +0 -25
  248. package/dist/row-data-source-client/built-ins/min.d.ts +0 -11
  249. package/dist/row-data-source-client/built-ins/min.js +0 -25
  250. package/dist/row-data-source-client/built-ins/sum.d.ts +0 -10
  251. package/dist/row-data-source-client/built-ins/sum.js +0 -21
  252. package/dist/row-data-source-client/filter/+types.d.ts +0 -23
  253. package/dist/row-data-source-client/filter/+types.js +0 -1
  254. package/dist/row-data-source-client/filter/compute-filtered-rows.d.ts +0 -2
  255. package/dist/row-data-source-client/filter/compute-filtered-rows.js +0 -109
  256. package/dist/row-data-source-client/pivots/create-agg-model.d.ts +0 -6
  257. package/dist/row-data-source-client/pivots/create-agg-model.js +0 -13
  258. package/dist/row-data-source-client/pivots/create-pivot-columns-from-paths.d.ts +0 -2
  259. package/dist/row-data-source-client/pivots/create-pivot-columns-from-paths.js +0 -50
  260. package/dist/row-data-source-client/pivots/create-pivot-columns.d.ts +0 -2
  261. package/dist/row-data-source-client/pivots/create-pivot-columns.js +0 -22
  262. package/dist/row-data-source-client/pivots/create-pivot-tree.d.ts +0 -2
  263. package/dist/row-data-source-client/pivots/create-pivot-tree.js +0 -23
  264. package/dist/row-data-source-client/tree/client-tree.d.ts +0 -18
  265. package/dist/row-data-source-client/tree/client-tree.js +0 -76
  266. package/dist/row-data-source-client/tree/evaluator-aggregation.d.ts +0 -2
  267. package/dist/row-data-source-client/tree/evaluator-aggregation.js +0 -8
  268. package/dist/row-data-source-client/tree/evaluator-group.d.ts +0 -2
  269. package/dist/row-data-source-client/tree/evaluator-group.js +0 -9
  270. package/dist/row-data-source-client/tree/traverse.d.ts +0 -2
  271. package/dist/row-data-source-client/tree/traverse.js +0 -22
  272. package/dist/row-data-source-client/use-client-data-source-paginated.d.ts +0 -10
  273. package/dist/row-data-source-client/use-client-data-source-paginated.js +0 -573
  274. package/dist/row-data-source-client/use-client-data-source.d.ts +0 -10
  275. package/dist/row-data-source-client/use-client-data-source.js +0 -667
  276. package/dist/row-data-source-client/use-client-tree-data-source.d.ts +0 -9
  277. package/dist/row-data-source-client/use-client-tree-data-source.js +0 -512
  278. package/dist/row-data-source-server/async-tree/+constants.async-tree.d.ts +0 -1
  279. package/dist/row-data-source-server/async-tree/+constants.async-tree.js +0 -1
  280. package/dist/row-data-source-server/async-tree/+types.async-tree.d.ts +0 -59
  281. package/dist/row-data-source-server/async-tree/+types.async-tree.js +0 -1
  282. package/dist/row-data-source-server/async-tree/apply-delete-action-to-tree.d.ts +0 -2
  283. package/dist/row-data-source-server/async-tree/apply-delete-action-to-tree.js +0 -27
  284. package/dist/row-data-source-server/async-tree/apply-set-action-to-tree.d.ts +0 -2
  285. package/dist/row-data-source-server/async-tree/apply-set-action-to-tree.js +0 -36
  286. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-are-unique.d.ts +0 -2
  287. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-are-unique.js +0 -24
  288. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-are-valid.d.ts +0 -2
  289. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-are-valid.js +0 -14
  290. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-fit.d.ts +0 -2
  291. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-fit.js +0 -18
  292. package/dist/row-data-source-server/async-tree/check-set-action-item-kinds.d.ts +0 -2
  293. package/dist/row-data-source-server/async-tree/check-set-action-item-kinds.js +0 -14
  294. package/dist/row-data-source-server/async-tree/get-parent-node-by-path.d.ts +0 -2
  295. package/dist/row-data-source-server/async-tree/get-parent-node-by-path.js +0 -18
  296. package/dist/row-data-source-server/async-tree/is-set-action-a-no-op-on-node.d.ts +0 -2
  297. package/dist/row-data-source-server/async-tree/is-set-action-a-no-op-on-node.js +0 -3
  298. package/dist/row-data-source-server/async-tree/make-async-tree.d.ts +0 -2
  299. package/dist/row-data-source-server/async-tree/make-async-tree.js +0 -19
  300. package/dist/row-data-source-server/async-tree/maybe-apply-parent-remove-self.d.ts +0 -2
  301. package/dist/row-data-source-server/async-tree/maybe-apply-parent-remove-self.js +0 -8
  302. package/dist/row-data-source-server/async-tree/maybe-apply-resize.d.ts +0 -2
  303. package/dist/row-data-source-server/async-tree/maybe-apply-resize.js +0 -17
  304. package/dist/row-data-source-server/async-tree/maybe-apply-set-action-items.d.ts +0 -2
  305. package/dist/row-data-source-server/async-tree/maybe-apply-set-action-items.js +0 -52
  306. package/dist/row-data-source-server/range-tree/range-tree.d.ts +0 -66
  307. package/dist/row-data-source-server/range-tree/range-tree.js +0 -102
  308. package/dist/row-data-source-server/server-data.d.ts +0 -70
  309. package/dist/row-data-source-server/server-data.js +0 -519
  310. package/dist/row-data-source-server/use-server-data-source.d.ts +0 -3
  311. package/dist/row-data-source-server/use-server-data-source.js +0 -413
  312. package/dist/row-data-source-server/utils/get-node-depth.d.ts +0 -2
  313. package/dist/row-data-source-server/utils/get-node-depth.js +0 -9
  314. package/dist/row-data-source-server/utils/get-node-path.d.ts +0 -2
  315. package/dist/row-data-source-server/utils/get-node-path.js +0 -9
  316. package/dist/row-data-source-server/utils/get-request-id.d.ts +0 -1
  317. package/dist/row-data-source-server/utils/get-request-id.js +0 -6
  318. package/dist/sort-manager/+types.d.ts +0 -13
  319. package/dist/sort-manager/+types.js +0 -1
  320. package/dist/sort-manager/context.d.ts +0 -14
  321. package/dist/sort-manager/context.js +0 -5
  322. package/dist/sort-manager/hooks/use-sort-manager.d.ts +0 -15
  323. package/dist/sort-manager/hooks/use-sort-manager.js +0 -56
  324. package/dist/sort-manager/hooks/use-sort-row-item.d.ts +0 -51
  325. package/dist/sort-manager/hooks/use-sort-row-item.js +0 -145
  326. package/dist/sort-manager/hooks/use-sortable-column-items.d.ts +0 -5
  327. package/dist/sort-manager/hooks/use-sortable-column-items.js +0 -13
  328. package/dist/sort-manager/root.d.ts +0 -3
  329. package/dist/sort-manager/root.js +0 -14
  330. package/dist/sort-manager/sort-add.d.ts +0 -8
  331. package/dist/sort-manager/sort-add.js +0 -14
  332. package/dist/sort-manager/sort-apply.d.ts +0 -7
  333. package/dist/sort-manager/sort-apply.js +0 -24
  334. package/dist/sort-manager/sort-cancel.d.ts +0 -7
  335. package/dist/sort-manager/sort-cancel.js +0 -27
  336. package/dist/sort-manager/sort-clear.d.ts +0 -7
  337. package/dist/sort-manager/sort-clear.js +0 -22
  338. package/dist/sort-manager/sort-column-select.d.ts +0 -10
  339. package/dist/sort-manager/sort-column-select.js +0 -20
  340. package/dist/sort-manager/sort-direction-select.d.ts +0 -10
  341. package/dist/sort-manager/sort-direction-select.js +0 -24
  342. package/dist/sort-manager/sort-manager.d.ts +0 -16
  343. package/dist/sort-manager/sort-manager.js +0 -26
  344. package/dist/sort-manager/sort-remove.d.ts +0 -7
  345. package/dist/sort-manager/sort-remove.js +0 -14
  346. package/dist/sort-manager/sort-row.d.ts +0 -5
  347. package/dist/sort-manager/sort-row.js +0 -7
  348. package/dist/sort-manager/sort-rows.d.ts +0 -1
  349. package/dist/sort-manager/sort-rows.js +0 -6
  350. package/dist/sort-manager/sort-value-select.d.ts +0 -11
  351. package/dist/sort-manager/sort-value-select.js +0 -25
  352. package/dist/sort-manager/utils/sort-item-to-sort-model.d.ts +0 -3
  353. package/dist/sort-manager/utils/sort-item-to-sort-model.js +0 -62
  354. package/dist/sort-manager/utils/sort-model-to-sort-items.d.ts +0 -3
  355. package/dist/sort-manager/utils/sort-model-to-sort-items.js +0 -50
  356. package/dist/state/+types.d.ts +0 -36
  357. package/dist/state/+types.js +0 -1
  358. package/dist/state/api/cell-root.d.ts +0 -5
  359. package/dist/state/api/cell-root.js +0 -65
  360. package/dist/state/api/column-autosize.d.ts +0 -5
  361. package/dist/state/api/column-autosize.js +0 -72
  362. package/dist/state/api/column-by-id.d.ts +0 -2
  363. package/dist/state/api/column-by-id.js +0 -6
  364. package/dist/state/api/column-field.d.ts +0 -2
  365. package/dist/state/api/column-field.js +0 -23
  366. package/dist/state/api/column-from-index.d.ts +0 -2
  367. package/dist/state/api/column-from-index.js +0 -6
  368. package/dist/state/api/column-group-toggle.d.ts +0 -2
  369. package/dist/state/api/column-group-toggle.js +0 -10
  370. package/dist/state/api/column-index.d.ts +0 -2
  371. package/dist/state/api/column-index.js +0 -7
  372. package/dist/state/api/column-move.d.ts +0 -2
  373. package/dist/state/api/column-move.js +0 -49
  374. package/dist/state/api/column-resize.d.ts +0 -2
  375. package/dist/state/api/column-resize.js +0 -9
  376. package/dist/state/api/column-update.d.ts +0 -5
  377. package/dist/state/api/column-update.js +0 -26
  378. package/dist/state/api/dialog-frame.d.ts +0 -8
  379. package/dist/state/api/dialog-frame.js +0 -16
  380. package/dist/state/api/edit-begin.d.ts +0 -5
  381. package/dist/state/api/edit-begin.js +0 -87
  382. package/dist/state/api/edit-end.d.ts +0 -5
  383. package/dist/state/api/edit-end.js +0 -43
  384. package/dist/state/api/edit-is-cell-active.d.ts +0 -5
  385. package/dist/state/api/edit-is-cell-active.js +0 -22
  386. package/dist/state/api/edit-update.d.ts +0 -5
  387. package/dist/state/api/edit-update.js +0 -88
  388. package/dist/state/api/event-listeners.d.ts +0 -5
  389. package/dist/state/api/event-listeners.js +0 -19
  390. package/dist/state/api/export-csv.d.ts +0 -3
  391. package/dist/state/api/export-csv.js +0 -40
  392. package/dist/state/api/export-data-rect.d.ts +0 -2
  393. package/dist/state/api/export-data-rect.js +0 -24
  394. package/dist/state/api/popover-frame.d.ts +0 -8
  395. package/dist/state/api/popover-frame.js +0 -16
  396. package/dist/state/api/position-from-element.d.ts +0 -5
  397. package/dist/state/api/position-from-element.js +0 -9
  398. package/dist/state/api/row-by-id.d.ts +0 -2
  399. package/dist/state/api/row-by-id.js +0 -5
  400. package/dist/state/api/row-by-index.d.ts +0 -2
  401. package/dist/state/api/row-by-index.js +0 -9
  402. package/dist/state/api/row-detail-is-expanded.d.ts +0 -2
  403. package/dist/state/api/row-detail-is-expanded.js +0 -6
  404. package/dist/state/api/row-detail-rendered-height.d.ts +0 -5
  405. package/dist/state/api/row-detail-rendered-height.js +0 -14
  406. package/dist/state/api/row-detail-toggle.d.ts +0 -2
  407. package/dist/state/api/row-detail-toggle.js +0 -32
  408. package/dist/state/api/row-group-apply-expansions.d.ts +0 -2
  409. package/dist/state/api/row-group-apply-expansions.js +0 -20
  410. package/dist/state/api/row-group-column-index.d.ts +0 -2
  411. package/dist/state/api/row-group-column-index.js +0 -14
  412. package/dist/state/api/row-group-is-expanded.d.ts +0 -2
  413. package/dist/state/api/row-group-is-expanded.js +0 -15
  414. package/dist/state/api/row-group-toggle.d.ts +0 -2
  415. package/dist/state/api/row-group-toggle.js +0 -7
  416. package/dist/state/api/row-handle-select.d.ts +0 -5
  417. package/dist/state/api/row-handle-select.js +0 -43
  418. package/dist/state/api/row-select-all.d.ts +0 -2
  419. package/dist/state/api/row-select-all.js +0 -17
  420. package/dist/state/api/row-select.d.ts +0 -5
  421. package/dist/state/api/row-select.js +0 -35
  422. package/dist/state/api/row-selected.d.ts +0 -2
  423. package/dist/state/api/row-selected.js +0 -13
  424. package/dist/state/api/scroll-into-view.d.ts +0 -5
  425. package/dist/state/api/scroll-into-view.js +0 -50
  426. package/dist/state/api/sort-for-column.d.ts +0 -2
  427. package/dist/state/api/sort-for-column.js +0 -9
  428. package/dist/state/api/use-row-drag.d.ts +0 -2
  429. package/dist/state/api/use-row-drag.js +0 -20
  430. package/dist/state/helpers/cell-row-group.d.ts +0 -2
  431. package/dist/state/helpers/cell-row-group.js +0 -19
  432. package/dist/state/helpers/column-add-row-group.d.ts +0 -10
  433. package/dist/state/helpers/column-add-row-group.js +0 -74
  434. package/dist/state/helpers/column-layout.d.ts +0 -3
  435. package/dist/state/helpers/column-layout.js +0 -59
  436. package/dist/state/helpers/column-marker.d.ts +0 -8
  437. package/dist/state/helpers/column-marker.js +0 -45
  438. package/dist/state/helpers/column-view.d.ts +0 -21
  439. package/dist/state/helpers/column-view.js +0 -33
  440. package/dist/state/helpers/edit-on-change.d.ts +0 -15
  441. package/dist/state/helpers/edit-on-change.js +0 -27
  442. package/dist/state/helpers/empty-row-data-source.d.ts +0 -2
  443. package/dist/state/helpers/empty-row-data-source.js +0 -18
  444. package/dist/state/helpers/get-data-rect.d.ts +0 -13
  445. package/dist/state/helpers/get-data-rect.js +0 -65
  446. package/dist/state/helpers/get-full-width-callback.d.ts +0 -2
  447. package/dist/state/helpers/get-full-width-callback.js +0 -10
  448. package/dist/state/helpers/get-span-callback.d.ts +0 -2
  449. package/dist/state/helpers/get-span-callback.js +0 -22
  450. package/dist/state/helpers/resolve-column.d.ts +0 -4
  451. package/dist/state/helpers/resolve-column.js +0 -29
  452. package/dist/state/helpers/row-layout/get-focus-criteria.d.ts +0 -17
  453. package/dist/state/helpers/row-layout/get-focus-criteria.js +0 -62
  454. package/dist/state/helpers/row-layout/row-layout.d.ts +0 -19
  455. package/dist/state/helpers/row-layout/row-layout.js +0 -162
  456. package/dist/state/use-lytenyte.d.ts +0 -3
  457. package/dist/state/use-lytenyte.js +0 -686
  458. package/dist/tree-view/branch/branch.d.ts +0 -14
  459. package/dist/tree-view/branch/branch.js +0 -63
  460. package/dist/tree-view/branch/use-branch-keys.d.ts +0 -2
  461. package/dist/tree-view/branch/use-branch-keys.js +0 -87
  462. package/dist/tree-view/context.d.ts +0 -22
  463. package/dist/tree-view/context.js +0 -3
  464. package/dist/tree-view/depth-provider.d.ts +0 -2
  465. package/dist/tree-view/depth-provider.js +0 -3
  466. package/dist/tree-view/hooks/use-tree-view-paths.d.ts +0 -2
  467. package/dist/tree-view/hooks/use-tree-view-paths.js +0 -9
  468. package/dist/tree-view/index.d.ts +0 -16
  469. package/dist/tree-view/index.js +0 -16
  470. package/dist/tree-view/leaf.d.ts +0 -4
  471. package/dist/tree-view/leaf.js +0 -28
  472. package/dist/tree-view/navigation/get-all-ids.d.ts +0 -1
  473. package/dist/tree-view/navigation/get-all-ids.js +0 -7
  474. package/dist/tree-view/navigation/get-first-node.d.ts +0 -1
  475. package/dist/tree-view/navigation/get-first-node.js +0 -7
  476. package/dist/tree-view/navigation/get-last-node.d.ts +0 -1
  477. package/dist/tree-view/navigation/get-last-node.js +0 -7
  478. package/dist/tree-view/navigation/get-next-node.d.ts +0 -1
  479. package/dist/tree-view/navigation/get-next-node.js +0 -13
  480. package/dist/tree-view/navigation/get-prev-node.d.ts +0 -1
  481. package/dist/tree-view/navigation/get-prev-node.js +0 -13
  482. package/dist/tree-view/panel/make-handle-navigation.d.ts +0 -2
  483. package/dist/tree-view/panel/make-handle-navigation.js +0 -39
  484. package/dist/tree-view/panel/make-handle-selection.d.ts +0 -2
  485. package/dist/tree-view/panel/make-handle-selection.js +0 -92
  486. package/dist/tree-view/panel/make-handle-typeahead.d.ts +0 -1
  487. package/dist/tree-view/panel/make-handle-typeahead.js +0 -45
  488. package/dist/tree-view/panel/panel.d.ts +0 -1
  489. package/dist/tree-view/panel/panel.js +0 -30
  490. package/dist/tree-view/panel/use-tree-navigation.d.ts +0 -1
  491. package/dist/tree-view/panel/use-tree-navigation.js +0 -63
  492. package/dist/tree-view/root.d.ts +0 -17
  493. package/dist/tree-view/root.js +0 -63
  494. package/dist/tree-view/utils/get-focusable-nodes.d.ts +0 -1
  495. package/dist/tree-view/utils/get-focusable-nodes.js +0 -5
  496. package/dist/tree-view/utils/get-focused-node.d.ts +0 -1
  497. package/dist/tree-view/utils/get-focused-node.js +0 -14
  498. package/dist/tree-view/utils/get-ids-between-nodes.d.ts +0 -1
  499. package/dist/tree-view/utils/get-ids-between-nodes.js +0 -15
  500. package/dist/tree-view/utils/get-panel.d.ts +0 -1
  501. package/dist/tree-view/utils/get-panel.js +0 -7
  502. package/dist/tree-view/utils/get-parent-node.d.ts +0 -1
  503. package/dist/tree-view/utils/get-parent-node.js +0 -10
  504. package/dist/tree-view/utils/get-sibling-branches.d.ts +0 -1
  505. package/dist/tree-view/utils/get-sibling-branches.js +0 -14
  506. package/dist/tree-view/utils/get-tree-node-id.d.ts +0 -1
  507. package/dist/tree-view/utils/get-tree-node-id.js +0 -3
  508. package/dist/tree-view/utils/is-branch-node.d.ts +0 -1
  509. package/dist/tree-view/utils/is-branch-node.js +0 -3
  510. package/dist/tree-view/utils/is-leaf-node.d.ts +0 -1
  511. package/dist/tree-view/utils/is-leaf-node.js +0 -3
  512. package/dist/tree-view/utils/is-tree-node-disabled.d.ts +0 -1
  513. package/dist/tree-view/utils/is-tree-node-disabled.js +0 -3
  514. package/dist/tree-view/utils/select-node.d.ts +0 -2
  515. package/dist/tree-view/utils/select-node.js +0 -15
  516. package/dist/tree-view/utils/toggle-all-selections.d.ts +0 -2
  517. package/dist/tree-view/utils/toggle-all-selections.js +0 -9
  518. package/dist/tree-view/utils/toggle-selection.d.ts +0 -2
  519. package/dist/tree-view/utils/toggle-selection.js +0 -21
  520. package/dist/tree-view/virtualized/force-sync-scrolling.d.ts +0 -2
  521. package/dist/tree-view/virtualized/force-sync-scrolling.js +0 -23
  522. package/dist/tree-view/virtualized/get-virtual-tree-paths.d.ts +0 -2
  523. package/dist/tree-view/virtualized/get-virtual-tree-paths.js +0 -14
  524. package/dist/tree-view/virtualized/make-virtual-tree.d.ts +0 -31
  525. package/dist/tree-view/virtualized/make-virtual-tree.js +0 -90
  526. package/dist/tree-view/virtualized/use-flattened-tree.d.ts +0 -9
  527. package/dist/tree-view/virtualized/use-flattened-tree.js +0 -36
  528. package/dist/tree-view/virtualized/use-row-start-and-end.d.ts +0 -2
  529. package/dist/tree-view/virtualized/use-row-start-and-end.js +0 -27
  530. package/dist/tree-view/virtualized/use-virtualized-tree.d.ts +0 -22
  531. package/dist/tree-view/virtualized/use-virtualized-tree.js +0 -100
  532. package/dist/types/types.d.ts +0 -8
  533. package/dist/types/types.js +0 -1
  534. package/main.css +0 -453
@@ -1,512 +0,0 @@
1
- import {} from "../+types.js";
2
- import { useRef } from "react";
3
- import { traverse } from "./tree/traverse.js";
4
- import { dateComparator, numberComparator, stringComparator, } from "@1771technologies/lytenyte-shared";
5
- import { computed, effect, makeAtom, peek, signal, } from "@1771technologies/lytenyte-core/yinternal";
6
- import { equal } from "@1771technologies/lytenyte-shared";
7
- import { makeClientTree } from "./tree/client-tree.js";
8
- import { computeFilteredRows } from "./filter/compute-filtered-rows.js";
9
- import { builtIns } from "./built-ins/built-ins.js";
10
- export function makeClientTreeDataSource(p) {
11
- const data = signal(p.data);
12
- const topData = signal(p.topData ?? []);
13
- const bottomData = signal(p.bottomData ?? []);
14
- const dataToSrc$ = computed(() => {
15
- return new Map(data().map((c, i) => [c, i]));
16
- });
17
- const cache = new Map();
18
- const centerNodes = computed(() => {
19
- const nodes = [];
20
- const d = data();
21
- for (let i = 0; i < d.length; i++) {
22
- if (!cache.has(i)) {
23
- cache.set(i, {
24
- id: "",
25
- kind: "leaf",
26
- data: d[i],
27
- });
28
- }
29
- const node = cache.get(i);
30
- node.data = d[i];
31
- nodes.push(node);
32
- }
33
- return nodes;
34
- });
35
- const topNodes = computed(() => {
36
- return topData().map((c, i) => ({ data: c, id: `top-${i}`, kind: "leaf" }));
37
- });
38
- const botNodes = computed(() => {
39
- return bottomData().map((c, i) => ({ data: c, id: `bottom-${i}`, kind: "leaf" }));
40
- });
41
- const pinnedIdMap = computed(() => {
42
- const combined = new Map([...topNodes(), ...botNodes()].map((c) => [c.id, c]));
43
- return combined;
44
- });
45
- const models = signal({
46
- sort: [],
47
- filter: {},
48
- filterIn: {},
49
- quickSearch: null,
50
- agg: {},
51
- groupExpansions: {},
52
- });
53
- const sortModel = computed(() => models().sort);
54
- const filterModel = computed(() => models().filter);
55
- const filterInModel = computed(() => models().filterIn);
56
- const groupExpansions = computed(() => models().groupExpansions);
57
- const aggModel = computed(() => models().agg);
58
- const quickSearch = computed(() => models().quickSearch);
59
- const grid$ = signal(null);
60
- const snapshot = signal(0);
61
- const tree = computed(() => {
62
- snapshot();
63
- const grid = grid$();
64
- const rows = centerNodes();
65
- const filtered = computeFilteredRows(rows, grid, filterModel(), filterInModel(), quickSearch(), grid?.state.quickSearchSensitivity.get() ?? "case-sensitive", false);
66
- const rowAggModel = Object.entries(aggModel()).map(([name, agg]) => {
67
- if (typeof agg.fn === "function") {
68
- const fn = agg.fn;
69
- return {
70
- name,
71
- fn: (rows) => fn(rows.map((c) => c.data), grid),
72
- };
73
- }
74
- const key = agg.fn;
75
- const fn = (data) => {
76
- const fieldData = data.map((r) => grid?.api.columnField(name, { kind: "leaf", data: r.data }));
77
- return builtIns[key](fieldData);
78
- };
79
- return { name, fn };
80
- });
81
- return makeClientTree({
82
- rowData: filtered,
83
- rowAggModel: grid ? rowAggModel : [],
84
- rowBranchModel: p.getPathFromData,
85
- rowIdGroup: p.rowIdBranch,
86
- rowIdLeaf: p.rowIdLeaf,
87
- });
88
- });
89
- const sortComparator = computed(() => {
90
- const model = sortModel();
91
- const grid = grid$();
92
- if (!model.length || !grid)
93
- return { fn: () => 0 };
94
- const comparator = (l, r) => {
95
- let res = 0;
96
- for (const sortSpec of model) {
97
- const sort = sortSpec.sort;
98
- const columnId = sortSpec.columnId;
99
- const ld = l.kind === 2
100
- ? { kind: "branch", data: l.data, key: l.key }
101
- : { kind: "leaf", data: l.data.data };
102
- const rd = r.kind === 2
103
- ? { kind: "branch", data: r.data, key: r.key }
104
- : { kind: "leaf", data: r.data.data };
105
- if (sort.kind === "custom") {
106
- res = sort.comparator(ld, rd, sort.options ?? {});
107
- }
108
- else if (sort.kind === "number") {
109
- const left = grid.api.columnField(columnId, ld);
110
- const right = grid.api.columnField(columnId, rd);
111
- res = numberComparator(left, right, sort.options ?? {});
112
- }
113
- else if (sort.kind === "date") {
114
- const left = grid.api.columnField(columnId, ld);
115
- const right = grid.api.columnField(columnId, rd);
116
- res = dateComparator(left, right, sort.options ?? {});
117
- }
118
- else if (sort.kind === "string") {
119
- const left = grid.api.columnField(columnId, ld);
120
- const right = grid.api.columnField(columnId, rd);
121
- res = stringComparator(left, right, sort.options ?? {});
122
- }
123
- else {
124
- res = 0;
125
- }
126
- res = sortSpec.isDescending ? -res : res;
127
- if (res !== 0)
128
- break;
129
- }
130
- return res;
131
- };
132
- return { fn: comparator };
133
- });
134
- const idToNode = computed(() => {
135
- const map = new Map();
136
- traverse(tree().root, (node) => {
137
- map.set(node.id, node);
138
- });
139
- return map;
140
- });
141
- const initialized = signal(false);
142
- const flat = computed(() => {
143
- if (!initialized())
144
- return { flat: [], idMap: new Map(), idToIndexMap: new Map() };
145
- const idMap = new Map();
146
- const idToIndexMap = new Map();
147
- const flattened = [];
148
- const comparator = sortComparator();
149
- const expansions = groupExpansions();
150
- const defaultExpansion = grid$()?.state.rowGroupDefaultExpansion.get() ?? false;
151
- let index = topNodes().length;
152
- traverse(tree().root, (node) => {
153
- if (node.kind === 1) {
154
- node.data.id = node.id;
155
- flattened.push(node.data);
156
- }
157
- else {
158
- flattened.push({
159
- kind: "branch",
160
- data: node.data,
161
- id: node.id,
162
- key: node.key,
163
- depth: node.depth,
164
- });
165
- }
166
- idMap.set(node.id, flattened.at(-1));
167
- idToIndexMap.set(node.id, index);
168
- index++;
169
- if (node.kind === 2) {
170
- const expanded = expansions[node.id] ??
171
- (typeof defaultExpansion === "number"
172
- ? node.depth <= defaultExpansion
173
- : defaultExpansion);
174
- return expanded;
175
- }
176
- }, comparator.fn);
177
- return { flat: flattened, idMap, idToIndexMap };
178
- });
179
- const flatLength = computed(() => flat().flat.length);
180
- const cleanup = [];
181
- const init = (grid) => {
182
- while (cleanup.length)
183
- cleanup.pop()?.();
184
- grid$.set(grid);
185
- const store = grid.state.rowDataStore;
186
- // Monitor row count changes
187
- const centerCount = flatLength();
188
- const top = topData().length;
189
- const bottom = bottomData().length;
190
- store.rowCenterCount.set(centerCount);
191
- store.rowTopCount.set(top);
192
- store.rowBottomCount.set(bottom);
193
- cleanup.push(effect(() => {
194
- store.rowCenterCount.set(flatLength());
195
- store.rowTopCount.set(topData().length);
196
- store.rowBottomCount.set(bottomData().length);
197
- grid.state.rowDataStore.rowClearCache();
198
- }));
199
- const sort = grid.state.sortModel.get();
200
- const filter = grid.state.filterModel.get();
201
- const filterIn = grid.state.filterInModel.get();
202
- const agg = grid.state.aggModel.get();
203
- const quickSearch = grid.state.quickSearch.get();
204
- const groupExpansions = grid.state.rowGroupExpansions.get();
205
- models.set({
206
- agg,
207
- filter,
208
- filterIn,
209
- groupExpansions,
210
- quickSearch,
211
- sort,
212
- });
213
- initialized.set(true);
214
- cleanup.push(effect(() => {
215
- models.set({
216
- // @ts-expect-error The $ is defined, but only internally
217
- sort: grid.state.sortModel.$(),
218
- // @ts-expect-error The $ is defined, but only internally
219
- agg: grid.state.aggModel.$(),
220
- // @ts-expect-error The $ is defined, but only internally
221
- filter: grid.state.filterModel.$(),
222
- // @ts-expect-error The $ is defined, but only internally
223
- group: grid.state.rowGroupModel.$(),
224
- // @ts-expect-error The $ is defined, but only internally
225
- groupExpansions: grid.state.rowGroupExpansions.$(),
226
- // @ts-expect-error The $ is defined, but only internally
227
- columnPivotGroupExpansions: grid.state.columnPivotColumnGroupExpansions.$(),
228
- // @ts-expect-error The $ is defined, but only internally
229
- filterIn: grid.state.filterInModel.$(),
230
- // @ts-expect-error The $ is defined, but only internally
231
- quickSearch: grid.state.quickSearch.$(),
232
- });
233
- grid.state.rowDataStore.rowClearCache();
234
- }));
235
- };
236
- const rowById = (id) => {
237
- const pinned = peek(pinnedIdMap);
238
- if (pinned.has(id))
239
- return pinned.get(id);
240
- const t = peek(flat);
241
- return t.idMap.get(id) ?? null;
242
- };
243
- const rowByIndex = (index) => {
244
- const top = peek(topNodes);
245
- const bot = peek(botNodes);
246
- const center = peek(flat).flat;
247
- const topOffset = top.length;
248
- const centerOffset = topOffset + center.length;
249
- const botOffset = centerOffset + bot.length;
250
- if (index < topOffset)
251
- return top[index];
252
- if (index < centerOffset)
253
- return center[index - topOffset];
254
- if (index < botOffset)
255
- return bot[index - centerOffset];
256
- return null;
257
- };
258
- const rowUpdate = (updates) => {
259
- const grid = peek(grid$);
260
- const d = peek(data);
261
- const idMap = peek(idToNode);
262
- const dataToSrc = peek(dataToSrc$);
263
- for (const [key, next] of updates.entries()) {
264
- const row = typeof key === "string" ? rowById(key) : rowByIndex(key);
265
- const treeNode = typeof key === "string" ? idMap.get(key) : null;
266
- if ((!row && !treeNode) || !grid) {
267
- console.error(`Failed to find the row with identifier ${key} which is being updated.`);
268
- continue;
269
- }
270
- if (row?.kind === "branch") {
271
- row.data = next;
272
- }
273
- else {
274
- const data = row?.kind === "leaf" ? row.data : treeNode?.data.data;
275
- const source = dataToSrc.get(data);
276
- if (source == null) {
277
- console.error(`Failed to find the row with identifier ${key} which is being updated.`);
278
- continue;
279
- }
280
- d[source] = next;
281
- cache.delete(source);
282
- }
283
- }
284
- data.set([...d]);
285
- snapshot.set((prev) => prev + 1);
286
- grid.state.rowDataStore.rowClearCache();
287
- };
288
- const rowToIndex = (rowId) => {
289
- const f = peek(flat);
290
- const top = peek(topNodes);
291
- const bot = peek(botNodes);
292
- const topCount = top.length;
293
- const center = f.flat.length;
294
- const rowIndex = f.idToIndexMap.get(rowId);
295
- if (rowIndex != null)
296
- return rowIndex;
297
- if (rowIndex == null) {
298
- const foundTop = top.findIndex((row) => row.id === rowId);
299
- if (foundTop !== -1)
300
- return foundTop;
301
- const foundBot = bot.findIndex((row) => row.id === rowId);
302
- if (foundBot !== -1)
303
- return foundBot + topCount + center;
304
- }
305
- return null;
306
- };
307
- const rowAllChildIds = (rowId) => {
308
- const t = peek(tree);
309
- const ids = [];
310
- const node = t.idToNode.get(rowId);
311
- if (node?.kind === 2) {
312
- traverse(node, (n) => {
313
- ids.push(n.id);
314
- });
315
- }
316
- return ids;
317
- };
318
- return [
319
- {
320
- init,
321
- rowById,
322
- rowByIndex,
323
- rowAllChildIds,
324
- rowUpdate,
325
- inFilterItems: (c) => {
326
- const grid = peek(grid$);
327
- if (!grid)
328
- return [];
329
- const data = peek(centerNodes);
330
- const values = new Set(data.map((row) => {
331
- const field = grid.api.columnField(c, row);
332
- return field;
333
- }));
334
- if (p.transformInFilterItem) {
335
- return p.transformInFilterItem({ column: c, values: [...values] });
336
- }
337
- return [...values].map((x) => ({ id: `${x}`, label: `${x}`, value: x }));
338
- },
339
- rowAdd: (newRows, place = "end") => {
340
- data.set((prev) => {
341
- if (!newRows.length)
342
- return prev;
343
- let next;
344
- if (place === "beginning")
345
- next = [...newRows, ...prev];
346
- else if (place === "end")
347
- next = [...prev, ...newRows];
348
- else {
349
- next = [...prev];
350
- next.splice(place, 0, ...newRows);
351
- }
352
- return next;
353
- });
354
- const grid = peek(grid$);
355
- grid?.state.rowDataStore.rowClearCache();
356
- },
357
- rowDelete: (rows) => {
358
- const rowData = new Set(rows
359
- .map((c) => {
360
- if (typeof c === "number")
361
- return rowByIndex(c)?.data;
362
- else
363
- return rowById(c)?.data;
364
- })
365
- .filter((c) => !!c));
366
- data.set((prev) => {
367
- if (!rowData.size)
368
- return prev;
369
- return prev.filter((d) => !rowData.has(d));
370
- });
371
- const grid = peek(grid$);
372
- grid?.state.rowDataStore.rowClearCache();
373
- },
374
- rowSetBotData: (data) => {
375
- bottomData.set(data);
376
- const grid = peek(grid$);
377
- grid?.state.rowDataStore.rowClearCache();
378
- },
379
- rowSetTopData: (data) => {
380
- topData.set(data);
381
- const grid = peek(grid$);
382
- grid?.state.rowDataStore.rowClearCache();
383
- },
384
- rowSetCenterData: (d) => {
385
- data.set(d);
386
- const grid = peek(grid$);
387
- grid?.state.rowDataStore.rowClearCache();
388
- cache.clear();
389
- },
390
- rowExpand: (expansions) => {
391
- const grid = peek(grid$);
392
- if (!grid)
393
- return;
394
- grid.state.rowGroupExpansions.set((prev) => ({ ...prev, ...expansions }));
395
- },
396
- rowToIndex,
397
- rowSelect: (params) => {
398
- const grid = peek(grid$);
399
- if (!grid)
400
- return;
401
- if (params.mode === "none")
402
- return;
403
- if (params.mode === "single") {
404
- if (params.deselect) {
405
- grid.state.rowSelectedIds.set(new Set());
406
- }
407
- else {
408
- grid.state.rowSelectedIds.set(new Set([params.startId]));
409
- }
410
- return;
411
- }
412
- const ids = new Set();
413
- if (params.startId === params.endId) {
414
- ids.add(params.startId);
415
- if (params.selectChildren) {
416
- rowAllChildIds(params.startId).forEach((c) => ids.add(c));
417
- }
418
- }
419
- else {
420
- const first = rowToIndex(params.startId);
421
- const last = rowToIndex(params.endId);
422
- if (first == null || last == null)
423
- return;
424
- const start = Math.min(first, last);
425
- const end = Math.max(first, last);
426
- for (let i = start; i <= end; i++) {
427
- const row = rowByIndex(i);
428
- if (!row)
429
- continue;
430
- if (params.selectChildren) {
431
- rowAllChildIds(row.id).forEach((c) => ids.add(c));
432
- }
433
- if (row?.id)
434
- ids.add(row.id);
435
- }
436
- }
437
- if (params.deselect) {
438
- const current = grid.state.rowSelectedIds.get();
439
- const next = current.difference(ids);
440
- grid.state.rowSelectedIds.set(next);
441
- }
442
- else {
443
- const current = grid.state.rowSelectedIds.get();
444
- const next = current.union(ids);
445
- grid.state.rowSelectedIds.set(next);
446
- }
447
- },
448
- rowSelectAll: (params) => {
449
- const grid = peek(grid$);
450
- if (!grid)
451
- return;
452
- if (params.deselect) {
453
- grid.state.rowSelectedIds.set(new Set());
454
- return;
455
- }
456
- const t = peek(tree);
457
- grid.state.rowSelectedIds.set(new Set(t.idsAll));
458
- },
459
- rowData: (section) => {
460
- const d = [];
461
- if (section === "top" || section === "flat") {
462
- d.push(...peek(topData));
463
- }
464
- if (section === "center" || section === "flat") {
465
- d.push(...peek(data));
466
- }
467
- if (section === "bottom" || section === "flat") {
468
- d.push(...peek(bottomData));
469
- }
470
- return d;
471
- },
472
- rowAreAllSelected: (rowId) => {
473
- const g = grid$();
474
- if (!g)
475
- return false;
476
- const selected = g.state.rowSelectedIds.get();
477
- if (rowId) {
478
- const row = rowById(rowId);
479
- if (!row)
480
- return false;
481
- const childIds = new Set(rowAllChildIds(rowId));
482
- return childIds.isSubsetOf(selected);
483
- }
484
- const f = tree();
485
- return f.idsAll.isSubsetOf(selected);
486
- },
487
- },
488
- {
489
- top: makeAtom(topData),
490
- center: makeAtom(data),
491
- bottom: makeAtom(bottomData),
492
- },
493
- ];
494
- }
495
- export function useClientTreeDataSource(p) {
496
- const ds = useRef(null);
497
- const dataAtomRef = useRef(null);
498
- if (!ds.current)
499
- [ds.current, dataAtomRef.current] = makeClientTreeDataSource(p);
500
- const da = dataAtomRef.current;
501
- if (p.reflectData) {
502
- // Need to queue the microtask since it we cannot update state during render.
503
- if (p.data !== da.center.get())
504
- queueMicrotask(() => ds.current.rowSetCenterData(p.data));
505
- if (!equal(p.topData ?? [], da.top.get())) {
506
- queueMicrotask(() => ds.current.rowSetTopData(p.topData ?? []));
507
- }
508
- if (!equal(p.bottomData ?? [], da.bottom.get()))
509
- queueMicrotask(() => ds.current.rowSetBotData(p.bottomData ?? []));
510
- }
511
- return ds.current;
512
- }
@@ -1 +0,0 @@
1
- export declare const ROOT_LEAF_PREFIX = "__|#-Root-#|__";
@@ -1 +0,0 @@
1
- export const ROOT_LEAF_PREFIX = "__|#-Root-#|__";
@@ -1,59 +0,0 @@
1
- /**
2
- * The root of the async tree. This is the entry point of the tree.
3
- */
4
- export type TreeRoot<K, D> = {
5
- readonly kind: "root";
6
- readonly byPath: Map<string | null, LeafOrParent<K, D>>;
7
- readonly byIndex: Map<number, LeafOrParent<K, D>>;
8
- readonly size: number;
9
- readonly asOf: number;
10
- };
11
- export type TreeParent<K, D> = {
12
- readonly kind: "parent";
13
- readonly relIndex: number;
14
- readonly data: K;
15
- readonly asOf: number;
16
- readonly byPath: Map<string | null, LeafOrParent<K, D>>;
17
- readonly byIndex: Map<number, LeafOrParent<K, D>>;
18
- readonly size: number;
19
- readonly path: string | null;
20
- readonly parent: TreeParent<K, D> | TreeRoot<K, D>;
21
- };
22
- export type TreeLeaf<K, D> = {
23
- readonly kind: "leaf";
24
- readonly relIndex: number;
25
- readonly data: D;
26
- readonly asOf: number;
27
- readonly parent: TreeParent<K, D> | TreeRoot<K, D>;
28
- readonly path: string;
29
- };
30
- export type LeafOrParent<K, D> = TreeLeaf<K, D> | TreeParent<K, D>;
31
- export type TreeRootAndApi<K, D> = TreeRoot<K, D> & {
32
- readonly set: (payload: SetDataAction<K, D>) => void;
33
- readonly delete: (path: DeleteDataAction) => void;
34
- readonly get: (payload: GetDataAction) => TreeRoot<K, D> | TreeParent<K, D> | null;
35
- };
36
- export interface SetDataAction<K = any, D = any> {
37
- readonly path: (string | null)[];
38
- readonly asOf?: number;
39
- readonly size?: number;
40
- readonly items?: ({
41
- kind: "parent";
42
- path: string | null;
43
- data: K;
44
- relIndex: number;
45
- size: number;
46
- } | {
47
- kind: "leaf";
48
- data: D;
49
- relIndex: number;
50
- })[];
51
- }
52
- export interface DeleteDataAction {
53
- readonly path: (string | null)[];
54
- readonly paths?: string[];
55
- readonly relIndices?: number[];
56
- }
57
- export interface GetDataAction {
58
- readonly path: (string | null)[];
59
- }
@@ -1,2 +0,0 @@
1
- import type { DeleteDataAction, TreeRoot } from "./+types.async-tree";
2
- export declare function applyDeleteActionToTree<K, D>(p: DeleteDataAction, tree: TreeRoot<K, D>): void;
@@ -1,27 +0,0 @@
1
- import { getParentNodeByPath } from "./get-parent-node-by-path.js";
2
- export function applyDeleteActionToTree(p, tree) {
3
- // No op. We aren't deleting keys or indices
4
- if (!p.relIndices?.length && !p.paths?.length)
5
- return;
6
- const parentNode = getParentNodeByPath(tree, p.path);
7
- if (!parentNode)
8
- return;
9
- if (p.relIndices) {
10
- for (const rel of p.relIndices) {
11
- const node = parentNode.byIndex.get(rel);
12
- if (!node)
13
- continue;
14
- parentNode.byPath.delete(node.path);
15
- parentNode.byIndex.delete(rel);
16
- }
17
- }
18
- if (p.paths) {
19
- for (const path of p.paths) {
20
- const node = parentNode.byPath.get(path);
21
- if (!node)
22
- continue;
23
- parentNode.byPath.delete(node.path);
24
- parentNode.byIndex.delete(node.relIndex);
25
- }
26
- }
27
- }
@@ -1,2 +0,0 @@
1
- import type { SetDataAction, TreeRoot } from "./+types.async-tree.js";
2
- export declare function applySetActionToTree<K, D>(p: SetDataAction<K, D>, root: TreeRoot<K, D>): boolean;
@@ -1,36 +0,0 @@
1
- import { maybeApplyParentRemoveSelf } from "./maybe-apply-parent-remove-self.js";
2
- import { checkSetActionItemKeysAreUnique } from "./check-set-action-item-keys-are-unique.js";
3
- import { checkSetActionItemKeysAreValid } from "./check-set-action-item-keys-are-valid.js";
4
- import { checkSetActionItemKeysFit } from "./check-set-action-item-keys-fit.js";
5
- import { checkSetActionItemKinds } from "./check-set-action-item-kinds.js";
6
- import { getParentNodeByPath } from "./get-parent-node-by-path.js";
7
- import { isSetActionANoOpOnNode } from "./is-set-action-a-no-op-on-node.js";
8
- import { maybeApplyResize } from "./maybe-apply-resize.js";
9
- import { maybeApplySetActionItems } from "./maybe-apply-set-action-items.js";
10
- export function applySetActionToTree(p, root) {
11
- // If we are not adding items and we are not resizing a node, then we just
12
- // return our previous data and skip the update. This is effectively a no-op.
13
- if (!p.items?.length && p.size == null)
14
- return false;
15
- // We need to find the parent that we are adding data to. Its possible the path is invalid.
16
- // If we encounter an invalid path we return early without change. An invalid path is a
17
- // path that does not exist or where there is a leaf node at some point in the path.
18
- const pathNode = getParentNodeByPath(root, p.path);
19
- if (!pathNode)
20
- return false;
21
- if (!checkSetActionItemKeysFit(p, pathNode))
22
- return false;
23
- if (!checkSetActionItemKinds(p))
24
- return false;
25
- if (!checkSetActionItemKeysAreValid(p))
26
- return false;
27
- if (!checkSetActionItemKeysAreUnique(p))
28
- return false;
29
- if (isSetActionANoOpOnNode(p, pathNode))
30
- return false;
31
- maybeApplyResize(pathNode, p.size, p.asOf ?? Date.now());
32
- if (maybeApplyParentRemoveSelf(pathNode))
33
- return true;
34
- maybeApplySetActionItems(p, pathNode);
35
- return true;
36
- }
@@ -1,2 +0,0 @@
1
- import type { SetDataAction } from "./+types.async-tree.js";
2
- export declare function checkSetActionItemKeysAreUnique<K, D>(p: SetDataAction<K, D>): boolean;
@@ -1,24 +0,0 @@
1
- import { ROOT_LEAF_PREFIX } from "./+constants.async-tree.js";
2
- const invalidItemKeyDupes = "Invalid set action items, the same 'key' appears more than once";
3
- const invalidItemPathsDupes = "Invalid set action items, the same 'path' appears more than once";
4
- export function checkSetActionItemKeysAreUnique(p) {
5
- const seenKeys = new Set();
6
- const seenPaths = new Set();
7
- if (!p.items?.length)
8
- return true;
9
- for (let i = p.items.length - 1; i >= 0; i--) {
10
- const item = p.items[i];
11
- if (seenKeys.has(item.relIndex)) {
12
- console.error(invalidItemKeyDupes, p);
13
- return false;
14
- }
15
- const pathId = item.kind === "leaf" ? `${p.path.at(-1) ?? ROOT_LEAF_PREFIX}#${item.relIndex}` : item.path;
16
- if (seenPaths.has(pathId)) {
17
- console.error(invalidItemPathsDupes, p);
18
- return false;
19
- }
20
- seenPaths.add(pathId);
21
- seenKeys.add(item.relIndex);
22
- }
23
- return true;
24
- }
@@ -1,2 +0,0 @@
1
- import type { SetDataAction } from "./+types.async-tree.js";
2
- export declare function checkSetActionItemKeysAreValid<K, D>(p: SetDataAction<K, D>): boolean;