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

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 (423) hide show
  1. package/dist/__play__/alpha.play.d.ts +3 -0
  2. package/dist/__play__/alpha.play.js +56 -0
  3. package/dist/__play__/basic-server-data/data.d.ts +10 -0
  4. package/dist/__play__/basic-server-data/data.js +17746 -0
  5. package/dist/__play__/basic-server-data/server.d.ts +36 -0
  6. package/dist/__play__/basic-server-data/server.js +105 -0
  7. package/dist/__play__/buttons.play.d.ts +4 -0
  8. package/dist/__play__/buttons.play.js +7 -0
  9. package/dist/__play__/inputs.play.d.ts +3 -0
  10. package/dist/__play__/inputs.play.js +13 -0
  11. package/dist/__play__/server.play.d.ts +3 -0
  12. package/dist/__play__/server.play.js +66 -0
  13. package/dist/__play__/tree.play.d.ts +3 -0
  14. package/dist/__play__/tree.play.js +47 -0
  15. package/dist/cell-selection/adjust-rect-for-row-and-cell-span.d.ts +2 -0
  16. package/dist/cell-selection/adjust-rect-for-row-and-cell-span.js +43 -0
  17. package/dist/cell-selection/are-rects-equal.d.ts +2 -0
  18. package/dist/cell-selection/are-rects-equal.js +6 -0
  19. package/dist/cell-selection/bound-selection-rect.d.ts +3 -0
  20. package/dist/cell-selection/bound-selection-rect.js +16 -0
  21. package/dist/cell-selection/cell-selection-containers.d.ts +3 -0
  22. package/dist/cell-selection/cell-selection-containers.js +86 -0
  23. package/dist/cell-selection/cell-selection-driver/cell-selection-driver.d.ts +1 -0
  24. package/dist/cell-selection/cell-selection-driver/cell-selection-driver.js +279 -0
  25. package/dist/cell-selection/cell-selection-driver/use-cell-focus-change.d.ts +6 -0
  26. package/dist/cell-selection/cell-selection-driver/use-cell-focus-change.js +34 -0
  27. package/dist/cell-selection/cell-style-row.d.ts +8 -0
  28. package/dist/cell-selection/cell-style-row.js +79 -0
  29. package/dist/cell-selection/data-rect-from-cell-position.d.ts +3 -0
  30. package/dist/cell-selection/data-rect-from-cell-position.js +17 -0
  31. package/dist/cell-selection/deselect-rect-range.d.ts +2 -0
  32. package/dist/cell-selection/deselect-rect-range.js +43 -0
  33. package/dist/cell-selection/expand-selection-down.d.ts +3 -0
  34. package/dist/cell-selection/expand-selection-down.js +78 -0
  35. package/dist/cell-selection/expand-selection-end.d.ts +3 -0
  36. package/dist/cell-selection/expand-selection-end.js +76 -0
  37. package/dist/cell-selection/expand-selection-start.d.ts +3 -0
  38. package/dist/cell-selection/expand-selection-start.js +73 -0
  39. package/dist/cell-selection/expand-selection-up.d.ts +3 -0
  40. package/dist/cell-selection/expand-selection-up.js +74 -0
  41. package/dist/cell-selection/full-width-start-end-index.d.ts +2 -0
  42. package/dist/cell-selection/full-width-start-end-index.js +4 -0
  43. package/dist/cell-selection/get-root-cell.d.ts +3 -0
  44. package/dist/cell-selection/get-root-cell.js +6 -0
  45. package/dist/cell-selection/index.d.ts +13 -0
  46. package/dist/cell-selection/index.js +13 -0
  47. package/dist/cell-selection/is-bottom-rect.d.ts +2 -0
  48. package/dist/cell-selection/is-bottom-rect.js +4 -0
  49. package/dist/cell-selection/is-center-col-rect.d.ts +5 -0
  50. package/dist/cell-selection/is-center-col-rect.js +3 -0
  51. package/dist/cell-selection/is-center-rect.d.ts +2 -0
  52. package/dist/cell-selection/is-center-rect.js +4 -0
  53. package/dist/cell-selection/is-end-rect.d.ts +5 -0
  54. package/dist/cell-selection/is-end-rect.js +3 -0
  55. package/dist/cell-selection/is-fully-within-rect.d.ts +2 -0
  56. package/dist/cell-selection/is-fully-within-rect.js +6 -0
  57. package/dist/cell-selection/is-overlapping-rect.d.ts +2 -0
  58. package/dist/cell-selection/is-overlapping-rect.js +5 -0
  59. package/dist/cell-selection/is-start-rect.d.ts +5 -0
  60. package/dist/cell-selection/is-start-rect.js +3 -0
  61. package/dist/cell-selection/is-top-rect.d.ts +2 -0
  62. package/dist/cell-selection/is-top-rect.js +3 -0
  63. package/dist/cell-selection/is-within-selection-rect.d.ts +2 -0
  64. package/dist/cell-selection/is-within-selection-rect.js +3 -0
  65. package/dist/cell-selection/split-cell-selection-rect.d.ts +47 -0
  66. package/dist/cell-selection/split-cell-selection-rect.js +88 -0
  67. package/dist/cell-selection/split-on-pivot.d.ts +3 -0
  68. package/dist/cell-selection/split-on-pivot.js +50 -0
  69. package/dist/cell-selection/update-additive-cell-selection.d.ts +4 -0
  70. package/dist/cell-selection/update-additive-cell-selection.js +21 -0
  71. package/dist/cell-selection/use-edge-scroll.d.ts +6 -0
  72. package/dist/cell-selection/use-edge-scroll.js +71 -0
  73. package/dist/components/checkbox/checkbox.d.ts +15 -0
  74. package/dist/components/checkbox/checkbox.js +42 -0
  75. package/dist/components/checkbox/checkbox.play.d.ts +2 -0
  76. package/dist/components/checkbox/checkbox.play.js +6 -0
  77. package/dist/components/column-manager/column-manager.d.ts +13 -0
  78. package/dist/components/column-manager/column-manager.js +47 -0
  79. package/dist/components/external/clsx.d.ts +2 -0
  80. package/dist/components/external/clsx.js +44 -0
  81. package/dist/components/external/floating-ui.d.ts +268 -0
  82. package/dist/components/external/floating-ui.js +1802 -0
  83. package/dist/components/headless/dialog/arrow.d.ts +6 -0
  84. package/dist/components/headless/dialog/arrow.js +16 -0
  85. package/dist/components/headless/dialog/close.d.ts +10 -0
  86. package/dist/components/headless/dialog/close.js +22 -0
  87. package/dist/components/headless/dialog/container.d.ts +5 -0
  88. package/dist/components/headless/dialog/container.js +221 -0
  89. package/dist/components/headless/dialog/context.d.ts +32 -0
  90. package/dist/components/headless/dialog/context.js +3 -0
  91. package/dist/components/headless/dialog/description.d.ts +9 -0
  92. package/dist/components/headless/dialog/description.js +20 -0
  93. package/dist/components/headless/dialog/index.parts.d.ts +30 -0
  94. package/dist/components/headless/dialog/index.parts.js +17 -0
  95. package/dist/components/headless/dialog/root.d.ts +32 -0
  96. package/dist/components/headless/dialog/root.js +75 -0
  97. package/dist/components/headless/dialog/title.d.ts +9 -0
  98. package/dist/components/headless/dialog/title.js +20 -0
  99. package/dist/components/headless/dialog/transform-origin.d.ts +5 -0
  100. package/dist/components/headless/dialog/transform-origin.js +38 -0
  101. package/dist/components/headless/dialog/trigger.d.ts +10 -0
  102. package/dist/components/headless/dialog/trigger.js +24 -0
  103. package/dist/components/headless/dialog/use-dialog.d.ts +4 -0
  104. package/dist/components/headless/dialog/use-dialog.js +12 -0
  105. package/dist/components/headless/menu/checkbox-item.d.ts +11 -0
  106. package/dist/components/headless/menu/checkbox-item.js +42 -0
  107. package/dist/components/headless/menu/combo/combo-checkbox.d.ts +11 -0
  108. package/dist/components/headless/menu/combo/combo-checkbox.js +38 -0
  109. package/dist/components/headless/menu/combo/combo-context.d.ts +9 -0
  110. package/dist/components/headless/menu/combo/combo-context.js +3 -0
  111. package/dist/components/headless/menu/combo/combo-input.d.ts +7 -0
  112. package/dist/components/headless/menu/combo/combo-input.js +58 -0
  113. package/dist/components/headless/menu/combo/combo-menu.d.ts +5 -0
  114. package/dist/components/headless/menu/combo/combo-menu.js +24 -0
  115. package/dist/components/headless/menu/combo/combo-option.d.ts +9 -0
  116. package/dist/components/headless/menu/combo/combo-option.js +37 -0
  117. package/dist/components/headless/menu/container.d.ts +5 -0
  118. package/dist/components/headless/menu/container.js +19 -0
  119. package/dist/components/headless/menu/dom.d.ts +4 -0
  120. package/dist/components/headless/menu/dom.js +20 -0
  121. package/dist/components/headless/menu/index.d.ts +54 -0
  122. package/dist/components/headless/menu/index.js +39 -0
  123. package/dist/components/headless/menu/item/handle-vertical-navigation.d.ts +2 -0
  124. package/dist/components/headless/menu/item/handle-vertical-navigation.js +28 -0
  125. package/dist/components/headless/menu/item/item.d.ts +9 -0
  126. package/dist/components/headless/menu/item/item.js +45 -0
  127. package/dist/components/headless/menu/item/use-menu-item-events.d.ts +1 -0
  128. package/dist/components/headless/menu/item/use-menu-item-events.js +25 -0
  129. package/dist/components/headless/menu/menu-divider.d.ts +5 -0
  130. package/dist/components/headless/menu/menu-divider.js +6 -0
  131. package/dist/components/headless/menu/menu-group.d.ts +5 -0
  132. package/dist/components/headless/menu/menu-group.js +6 -0
  133. package/dist/components/headless/menu/menu-header.d.ts +5 -0
  134. package/dist/components/headless/menu/menu-header.js +6 -0
  135. package/dist/components/headless/menu/popover.d.ts +5 -0
  136. package/dist/components/headless/menu/popover.js +7 -0
  137. package/dist/components/headless/menu/radio-group/context.d.ts +11 -0
  138. package/dist/components/headless/menu/radio-group/context.js +7 -0
  139. package/dist/components/headless/menu/radio-group/radio-item.d.ts +10 -0
  140. package/dist/components/headless/menu/radio-group/radio-item.js +44 -0
  141. package/dist/components/headless/menu/submenu/submenu-context.d.ts +9 -0
  142. package/dist/components/headless/menu/submenu/submenu-context.js +3 -0
  143. package/dist/components/headless/menu/submenu/submenu-trigger.d.ts +7 -0
  144. package/dist/components/headless/menu/submenu/submenu-trigger.js +70 -0
  145. package/dist/components/headless/menu/submenu/submenu.d.ts +21 -0
  146. package/dist/components/headless/menu/submenu/submenu.js +55 -0
  147. package/dist/components/headless/menu/submenu/use-submenu-position.d.ts +5 -0
  148. package/dist/components/headless/menu/submenu/use-submenu-position.js +31 -0
  149. package/dist/components/headless/menu/use-menu.d.ts +1 -0
  150. package/dist/components/headless/menu/use-menu.js +52 -0
  151. package/dist/components/headless/popover/container.d.ts +5 -0
  152. package/dist/components/headless/popover/container.js +7 -0
  153. package/dist/components/headless/popover/context.d.ts +6 -0
  154. package/dist/components/headless/popover/context.js +3 -0
  155. package/dist/components/headless/popover/index.d.ts +30 -0
  156. package/dist/components/headless/popover/index.js +17 -0
  157. package/dist/components/headless/popover/root.d.ts +6 -0
  158. package/dist/components/headless/popover/root.js +8 -0
  159. package/dist/components/headless/popover/trigger.d.ts +7 -0
  160. package/dist/components/headless/popover/trigger.js +11 -0
  161. package/dist/components/pill-manager/container.d.ts +5 -0
  162. package/dist/components/pill-manager/container.js +127 -0
  163. package/dist/components/pill-manager/expander.d.ts +9 -0
  164. package/dist/components/pill-manager/expander.js +21 -0
  165. package/dist/components/pill-manager/icons.d.ts +12 -0
  166. package/dist/components/pill-manager/icons.js +35 -0
  167. package/dist/components/pill-manager/index.d.ts +33 -0
  168. package/dist/components/pill-manager/index.js +13 -0
  169. package/dist/components/pill-manager/item.d.ts +10 -0
  170. package/dist/components/pill-manager/item.js +178 -0
  171. package/dist/components/pill-manager/label.d.ts +10 -0
  172. package/dist/components/pill-manager/label.js +31 -0
  173. package/dist/components/pill-manager/pill-manager.play.d.ts +3 -0
  174. package/dist/components/pill-manager/pill-manager.play.js +73 -0
  175. package/dist/components/pill-manager/pill-row.context.d.ts +8 -0
  176. package/dist/components/pill-manager/pill-row.context.js +4 -0
  177. package/dist/components/pill-manager/pill-row.d.ts +12 -0
  178. package/dist/components/pill-manager/pill-row.js +22 -0
  179. package/dist/components/pill-manager/root.context.d.ts +40 -0
  180. package/dist/components/pill-manager/root.context.js +4 -0
  181. package/dist/components/pill-manager/root.d.ts +25 -0
  182. package/dist/components/pill-manager/root.js +33 -0
  183. package/dist/components/pill-manager/row-default.d.ts +3 -0
  184. package/dist/components/pill-manager/row-default.js +14 -0
  185. package/dist/components/pill-manager/types.d.ts +21 -0
  186. package/dist/components/pill-manager/types.js +1 -0
  187. package/dist/components/row-group-cell.d.ts +13 -0
  188. package/dist/components/row-group-cell.js +40 -0
  189. package/dist/components/select-all.d.ts +12 -0
  190. package/dist/components/select-all.js +34 -0
  191. package/dist/components/smart-select/chip-context.d.ts +8 -0
  192. package/dist/components/smart-select/chip-context.js +4 -0
  193. package/dist/components/smart-select/chip-remove.d.ts +1 -0
  194. package/dist/components/smart-select/chip-remove.js +13 -0
  195. package/dist/components/smart-select/chip.d.ts +13 -0
  196. package/dist/components/smart-select/chip.js +79 -0
  197. package/dist/components/smart-select/container.d.ts +1 -0
  198. package/dist/components/smart-select/container.js +13 -0
  199. package/dist/components/smart-select/context.d.ts +31 -0
  200. package/dist/components/smart-select/context.js +4 -0
  201. package/dist/components/smart-select/index.d.ts +30 -0
  202. package/dist/components/smart-select/index.js +19 -0
  203. package/dist/components/smart-select/option.d.ts +8 -0
  204. package/dist/components/smart-select/option.js +36 -0
  205. package/dist/components/smart-select/root.d.ts +17 -0
  206. package/dist/components/smart-select/root.js +165 -0
  207. package/dist/components/smart-select/smart-select.play.d.ts +2 -0
  208. package/dist/components/smart-select/smart-select.play.js +36 -0
  209. package/dist/components/smart-select/triggers/basic-trigger.d.ts +1 -0
  210. package/dist/components/smart-select/triggers/basic-trigger.js +18 -0
  211. package/dist/components/smart-select/triggers/combo-trigger.d.ts +1 -0
  212. package/dist/components/smart-select/triggers/combo-trigger.js +17 -0
  213. package/dist/components/smart-select/triggers/is-selectable-option.d.ts +1 -0
  214. package/dist/components/smart-select/triggers/is-selectable-option.js +3 -0
  215. package/dist/components/smart-select/triggers/multi-combo-trigger.d.ts +11 -0
  216. package/dist/components/smart-select/triggers/multi-combo-trigger.js +38 -0
  217. package/dist/components/smart-select/triggers/multi-trigger.d.ts +6 -0
  218. package/dist/components/smart-select/triggers/multi-trigger.js +8 -0
  219. package/dist/components/smart-select/triggers/use-combo-controls.d.ts +9 -0
  220. package/dist/components/smart-select/triggers/use-combo-controls.js +145 -0
  221. package/dist/components/smart-select/triggers/use-trigger-controls.d.ts +5 -0
  222. package/dist/components/smart-select/triggers/use-trigger-controls.js +126 -0
  223. package/dist/components/smart-select/type.d.ts +44 -0
  224. package/dist/components/smart-select/type.js +1 -0
  225. package/dist/components/smart-select/use-async-options.d.ts +8 -0
  226. package/dist/components/smart-select/use-async-options.js +42 -0
  227. package/dist/components/tree-view/index.d.ts +4 -0
  228. package/dist/components/tree-view/index.js +2 -0
  229. package/dist/components/tree-view/root.d.ts +37 -0
  230. package/dist/components/tree-view/root.js +139 -0
  231. package/dist/components/tree-view/select-all.d.ts +7 -0
  232. package/dist/components/tree-view/select-all.js +22 -0
  233. package/dist/components/tree-view/tree-children.d.ts +2 -0
  234. package/dist/components/tree-view/tree-children.js +15 -0
  235. package/dist/components/tree-view/types.d.ts +31 -0
  236. package/dist/components/tree-view/types.js +1 -0
  237. package/dist/components/types.d.ts +4 -0
  238. package/dist/components/types.js +1 -0
  239. package/dist/components/virtual-from-coordinates.d.ts +2 -0
  240. package/dist/components/virtual-from-coordinates.js +15 -0
  241. package/dist/components.d.ts +16 -0
  242. package/dist/components.js +11 -0
  243. package/dist/data-source-client/hooks/get-valid-leafs.d.ts +3 -0
  244. package/dist/data-source-client/hooks/get-valid-leafs.js +11 -0
  245. package/dist/data-source-client/hooks/use-controlled-ds-state.d.ts +13 -0
  246. package/dist/data-source-client/hooks/use-controlled-ds-state.js +39 -0
  247. package/dist/data-source-client/hooks/use-flattened-data.d.ts +18 -0
  248. package/dist/data-source-client/hooks/use-flattened-data.js +40 -0
  249. package/dist/data-source-client/hooks/use-flattened-groups.d.ts +5 -0
  250. package/dist/data-source-client/hooks/use-flattened-groups.js +63 -0
  251. package/dist/data-source-client/hooks/use-flattened-piece.d.ts +14 -0
  252. package/dist/data-source-client/hooks/use-flattened-piece.js +55 -0
  253. package/dist/data-source-client/hooks/use-group-tree/collapse-child.d.ts +2 -0
  254. package/dist/data-source-client/hooks/use-group-tree/collapse-child.js +11 -0
  255. package/dist/data-source-client/hooks/use-group-tree/collapse-last.d.ts +2 -0
  256. package/dist/data-source-client/hooks/use-group-tree/collapse-last.js +14 -0
  257. package/dist/data-source-client/hooks/use-group-tree/collapse.d.ts +2 -0
  258. package/dist/data-source-client/hooks/use-group-tree/collapse.js +17 -0
  259. package/dist/data-source-client/hooks/use-group-tree/use-group-tree.d.ts +31 -0
  260. package/dist/data-source-client/hooks/use-group-tree/use-group-tree.js +152 -0
  261. package/dist/data-source-client/hooks/use-pivot/auxiliary-functions/apply-reference-column.d.ts +2 -0
  262. package/dist/data-source-client/hooks/use-pivot/auxiliary-functions/apply-reference-column.js +22 -0
  263. package/dist/data-source-client/hooks/use-pivot/auxiliary-functions/evaluate-label-filter.d.ts +2 -0
  264. package/dist/data-source-client/hooks/use-pivot/auxiliary-functions/evaluate-label-filter.js +9 -0
  265. package/dist/data-source-client/hooks/use-pivot/auxiliary-functions/pivot-paths-with-totals.d.ts +18 -0
  266. package/dist/data-source-client/hooks/use-pivot/auxiliary-functions/pivot-paths-with-totals.js +140 -0
  267. package/dist/data-source-client/hooks/use-pivot/auxiliary-functions/pivot-paths.d.ts +4 -0
  268. package/dist/data-source-client/hooks/use-pivot/auxiliary-functions/pivot-paths.js +31 -0
  269. package/dist/data-source-client/hooks/use-pivot/use-agg-model.d.ts +4 -0
  270. package/dist/data-source-client/hooks/use-pivot/use-agg-model.js +45 -0
  271. package/dist/data-source-client/hooks/use-pivot/use-filtered-data.d.ts +2 -0
  272. package/dist/data-source-client/hooks/use-pivot/use-filtered-data.js +18 -0
  273. package/dist/data-source-client/hooks/use-pivot/use-pivot-columns.d.ts +14 -0
  274. package/dist/data-source-client/hooks/use-pivot/use-pivot-columns.js +151 -0
  275. package/dist/data-source-client/hooks/use-pivot/use-pivot-data.d.ts +32 -0
  276. package/dist/data-source-client/hooks/use-pivot/use-pivot-data.js +83 -0
  277. package/dist/data-source-client/hooks/use-pivot/use-pivot-group-fn.d.ts +4 -0
  278. package/dist/data-source-client/hooks/use-pivot/use-pivot-group-fn.js +23 -0
  279. package/dist/data-source-client/hooks/use-pivot/use-pivot-state.d.ts +16 -0
  280. package/dist/data-source-client/hooks/use-pivot/use-pivot-state.js +40 -0
  281. package/dist/data-source-client/use-client-data-source.d.ts +91 -0
  282. package/dist/data-source-client/use-client-data-source.js +169 -0
  283. package/dist/data-source-server/async-tree/+constants.async-tree.d.ts +1 -0
  284. package/dist/data-source-server/async-tree/+constants.async-tree.js +1 -0
  285. package/dist/data-source-server/async-tree/apply-delete-action-to-tree.d.ts +2 -0
  286. package/dist/data-source-server/async-tree/apply-delete-action-to-tree.js +27 -0
  287. package/dist/data-source-server/async-tree/apply-set-action-to-tree.d.ts +2 -0
  288. package/dist/data-source-server/async-tree/apply-set-action-to-tree.js +26 -0
  289. package/dist/data-source-server/async-tree/data-integrity-checks/check-set-action-item-keys-are-unique.d.ts +2 -0
  290. package/dist/data-source-server/async-tree/data-integrity-checks/check-set-action-item-keys-are-unique.js +20 -0
  291. package/dist/data-source-server/async-tree/data-integrity-checks/check-set-action-item-keys-are-valid.d.ts +2 -0
  292. package/dist/data-source-server/async-tree/data-integrity-checks/check-set-action-item-keys-are-valid.js +12 -0
  293. package/dist/data-source-server/async-tree/data-integrity-checks/check-set-action-item-keys-fit.d.ts +2 -0
  294. package/dist/data-source-server/async-tree/data-integrity-checks/check-set-action-item-keys-fit.js +18 -0
  295. package/dist/data-source-server/async-tree/data-integrity-checks/check-set-action-item-kinds.d.ts +2 -0
  296. package/dist/data-source-server/async-tree/data-integrity-checks/check-set-action-item-kinds.js +12 -0
  297. package/dist/data-source-server/async-tree/data-integrity-checks/check-set-action.d.ts +2 -0
  298. package/dist/data-source-server/async-tree/data-integrity-checks/check-set-action.js +24 -0
  299. package/dist/data-source-server/async-tree/get-parent-node-by-path.d.ts +2 -0
  300. package/dist/data-source-server/async-tree/get-parent-node-by-path.js +18 -0
  301. package/dist/data-source-server/async-tree/is-set-action-a-no-op-on-node.d.ts +2 -0
  302. package/dist/data-source-server/async-tree/is-set-action-a-no-op-on-node.js +3 -0
  303. package/dist/data-source-server/async-tree/make-async-tree.d.ts +2 -0
  304. package/dist/data-source-server/async-tree/make-async-tree.js +64 -0
  305. package/dist/data-source-server/async-tree/maybe-apply-parent-remove-self.d.ts +2 -0
  306. package/dist/data-source-server/async-tree/maybe-apply-parent-remove-self.js +8 -0
  307. package/dist/data-source-server/async-tree/maybe-apply-resize.d.ts +2 -0
  308. package/dist/data-source-server/async-tree/maybe-apply-resize.js +17 -0
  309. package/dist/data-source-server/async-tree/maybe-apply-set-action-items.d.ts +2 -0
  310. package/dist/data-source-server/async-tree/maybe-apply-set-action-items.js +54 -0
  311. package/dist/data-source-server/async-tree/types.d.ts +70 -0
  312. package/dist/data-source-server/async-tree/types.js +1 -0
  313. package/dist/data-source-server/range-tree/range-tree.d.ts +66 -0
  314. package/dist/data-source-server/range-tree/range-tree.js +102 -0
  315. package/dist/data-source-server/server-data.d.ts +73 -0
  316. package/dist/data-source-server/server-data.js +553 -0
  317. package/dist/data-source-server/source/use-on-rows-updated.d.ts +4 -0
  318. package/dist/data-source-server/source/use-on-rows-updated.js +29 -0
  319. package/dist/data-source-server/source/use-on-view-change.d.ts +3 -0
  320. package/dist/data-source-server/source/use-on-view-change.js +13 -0
  321. package/dist/data-source-server/source/use-row-add.d.ts +3 -0
  322. package/dist/data-source-server/source/use-row-add.js +36 -0
  323. package/dist/data-source-server/source/use-row-by-id.d.ts +2 -0
  324. package/dist/data-source-server/source/use-row-by-id.js +8 -0
  325. package/dist/data-source-server/source/use-row-by-index.d.ts +9 -0
  326. package/dist/data-source-server/source/use-row-by-index.js +89 -0
  327. package/dist/data-source-server/source/use-row-children.d.ts +2 -0
  328. package/dist/data-source-server/source/use-row-children.js +16 -0
  329. package/dist/data-source-server/source/use-row-delete.d.ts +3 -0
  330. package/dist/data-source-server/source/use-row-delete.js +39 -0
  331. package/dist/data-source-server/source/use-row-id-to-row-index.d.ts +2 -0
  332. package/dist/data-source-server/source/use-row-id-to-row-index.js +7 -0
  333. package/dist/data-source-server/source/use-row-index-to-row-id.d.ts +2 -0
  334. package/dist/data-source-server/source/use-row-index-to-row-id.js +7 -0
  335. package/dist/data-source-server/source/use-row-leafs.d.ts +2 -0
  336. package/dist/data-source-server/source/use-row-leafs.js +20 -0
  337. package/dist/data-source-server/source/use-row-parents.d.ts +2 -0
  338. package/dist/data-source-server/source/use-row-parents.js +16 -0
  339. package/dist/data-source-server/source/use-row-siblings.d.ts +2 -0
  340. package/dist/data-source-server/source/use-row-siblings.js +15 -0
  341. package/dist/data-source-server/source/use-rows-between.d.ts +2 -0
  342. package/dist/data-source-server/source/use-rows-between.js +20 -0
  343. package/dist/data-source-server/source/use-source-state.d.ts +28 -0
  344. package/dist/data-source-server/source/use-source-state.js +47 -0
  345. package/dist/data-source-server/source/use-source.d.ts +5 -0
  346. package/dist/data-source-server/source/use-source.js +66 -0
  347. package/dist/data-source-server/types.d.ts +42 -0
  348. package/dist/data-source-server/types.js +1 -0
  349. package/dist/data-source-server/use-server-data-source.d.ts +51 -0
  350. package/dist/data-source-server/use-server-data-source.js +192 -0
  351. package/dist/data-source-server/utils/get-node-depth.d.ts +2 -0
  352. package/dist/data-source-server/utils/get-node-depth.js +9 -0
  353. package/dist/data-source-server/utils/get-node-path.d.ts +2 -0
  354. package/dist/data-source-server/utils/get-node-path.js +9 -0
  355. package/dist/data-source-server/utils/get-request-id.d.ts +1 -0
  356. package/dist/data-source-server/utils/get-request-id.js +6 -0
  357. package/dist/data-source-tree/source/use-controlled-state.d.ts +8 -0
  358. package/dist/data-source-tree/source/use-controlled-state.js +21 -0
  359. package/dist/data-source-tree/source/use-flattened.d.ts +17 -0
  360. package/dist/data-source-tree/source/use-flattened.js +65 -0
  361. package/dist/data-source-tree/source/use-on-rows-updated.d.ts +3 -0
  362. package/dist/data-source-tree/source/use-on-rows-updated.js +49 -0
  363. package/dist/data-source-tree/source/use-row-by-id.d.ts +2 -0
  364. package/dist/data-source-tree/source/use-row-by-id.js +7 -0
  365. package/dist/data-source-tree/source/use-row-children.d.ts +2 -0
  366. package/dist/data-source-tree/source/use-row-children.js +11 -0
  367. package/dist/data-source-tree/source/use-row-leafs.d.ts +2 -0
  368. package/dist/data-source-tree/source/use-row-leafs.js +20 -0
  369. package/dist/data-source-tree/source/use-row-parents.d.ts +2 -0
  370. package/dist/data-source-tree/source/use-row-parents.js +16 -0
  371. package/dist/data-source-tree/source/use-row-siblings.d.ts +2 -0
  372. package/dist/data-source-tree/source/use-row-siblings.js +12 -0
  373. package/dist/data-source-tree/source/use-tree.d.ts +3 -0
  374. package/dist/data-source-tree/source/use-tree.js +59 -0
  375. package/dist/data-source-tree/types.d.ts +16 -0
  376. package/dist/data-source-tree/types.js +1 -0
  377. package/dist/data-source-tree/use-tree-data-source.d.ts +41 -0
  378. package/dist/data-source-tree/use-tree-data-source.js +101 -0
  379. package/dist/data-source-tree/utils/is-object.d.ts +1 -0
  380. package/dist/data-source-tree/utils/is-object.js +3 -0
  381. package/dist/hooks/use-slot/get-element-ref.d.ts +2 -0
  382. package/dist/hooks/use-slot/get-element-ref.js +20 -0
  383. package/dist/hooks/use-slot/index.d.ts +3 -0
  384. package/dist/hooks/use-slot/index.js +1 -0
  385. package/dist/hooks/use-slot/merge-props.d.ts +4 -0
  386. package/dist/hooks/use-slot/merge-props.js +27 -0
  387. package/dist/hooks/use-slot/react-version.d.ts +3 -0
  388. package/dist/hooks/use-slot/react-version.js +5 -0
  389. package/dist/hooks/use-slot/types.d.ts +4 -0
  390. package/dist/hooks/use-slot/types.js +1 -0
  391. package/dist/hooks/use-slot/use-slot.d.ts +12 -0
  392. package/dist/hooks/use-slot/use-slot.js +28 -0
  393. package/dist/hooks/use-transitioned-open.d.ts +2 -0
  394. package/dist/hooks/use-transitioned-open.js +50 -0
  395. package/dist/index.d.ts +121 -0
  396. package/dist/index.js +23 -0
  397. package/dist/license/index.d.ts +1 -0
  398. package/dist/license/index.js +1 -0
  399. package/dist/license/license.d.ts +3 -0
  400. package/dist/license/license.js +215 -0
  401. package/dist/license/md5-hash.d.ts +9 -0
  402. package/dist/license/md5-hash.js +167 -0
  403. package/dist/license.d.ts +3 -0
  404. package/dist/license.js +214 -0
  405. package/dist/root/context.d.ts +16 -0
  406. package/dist/root/context.js +4 -0
  407. package/dist/root/hooks/use-pro-api.d.ts +2 -0
  408. package/dist/root/hooks/use-pro-api.js +8 -0
  409. package/dist/root/root.d.ts +15 -0
  410. package/dist/root/root.js +112 -0
  411. package/dist/types/api.d.ts +100 -0
  412. package/dist/types/api.js +1 -0
  413. package/dist/types/column.d.ts +73 -0
  414. package/dist/types/column.js +1 -0
  415. package/dist/types/events.d.ts +56 -0
  416. package/dist/types/events.js +1 -0
  417. package/dist/types/grid.d.ts +47 -0
  418. package/dist/types/grid.js +1 -0
  419. package/dist/types/index.d.ts +7 -0
  420. package/dist/types/index.js +1 -0
  421. package/dist/types/props.d.ts +187 -0
  422. package/dist/types/props.js +1 -0
  423. package/package.json +5 -5
@@ -0,0 +1,89 @@
1
+ import { useMemo, useRef } from "react";
2
+ import { createSignal, isRowIndeterminate, isRowSelected, useEvent, useSelector, } from "@1771technologies/lytenyte-core/internal";
3
+ export function useRowByIndex(source, state, globalSignal, getParents) {
4
+ const invalidateCacheRef = useRef(new Map());
5
+ const atomCacheRef = useRef({});
6
+ const loadingCache = useRef({});
7
+ const rowInvalidate = useEvent((row) => {
8
+ if (row == null) {
9
+ globalSignal(Date.now());
10
+ }
11
+ else {
12
+ const invalidate = invalidateCacheRef.current.get(row);
13
+ invalidate?.(Date.now());
14
+ }
15
+ });
16
+ const rowByIndex = useEvent((i) => {
17
+ const atomCache = atomCacheRef.current;
18
+ const invalidateCache = invalidateCacheRef.current;
19
+ if (!atomCache[i]) {
20
+ const signal = createSignal(Date.now());
21
+ invalidateCache.set(i, signal);
22
+ atomCache[i] = {
23
+ get: () => source.flat.rowIndexToRow.get(i) ?? null,
24
+ useValue: () => {
25
+ // Invalidate is used to invalidate an individual row, and the global signal will invalidate all rows.
26
+ const localSnapshot = useSelector(signal);
27
+ const globalSnapshot = useSelector(globalSignal);
28
+ const flat = source.flat;
29
+ const row = flat.rowIndexToRow.get(i);
30
+ const isLoading = flat.loading.has(i);
31
+ const isGroupLoading = flat.loadingGroup.has(i);
32
+ const errorGroup = flat.erroredGroup.get(i);
33
+ const error = flat.errored.get(i);
34
+ const [selected, indeterminate] = useMemo(() => {
35
+ void localSnapshot;
36
+ void globalSnapshot;
37
+ if (!row)
38
+ return [false, false];
39
+ const selected = isRowSelected(row.id, state.rowSelections, getParents);
40
+ const indeterminate = !selected &&
41
+ row.kind === "branch" &&
42
+ isRowIndeterminate(row.id, state.rowSelections, getParents);
43
+ return [selected, indeterminate];
44
+ }, [row, localSnapshot, globalSnapshot]);
45
+ if (!row) {
46
+ if (!loadingCache.current[i]) {
47
+ loadingCache.current[i] = {
48
+ id: `__loading__placeholder__${i}`,
49
+ data: null,
50
+ kind: "leaf",
51
+ loading: true,
52
+ error: error?.error,
53
+ depth: 0,
54
+ };
55
+ }
56
+ const loadingRow = loadingCache.current[i];
57
+ Object.assign(loadingRow, { loading: true, error: error?.error });
58
+ return loadingRow;
59
+ }
60
+ if (row.kind === "leaf" || row.kind === "aggregated") {
61
+ Object.assign(row, {
62
+ loading: isLoading,
63
+ error: error?.error,
64
+ __indeterminate: indeterminate,
65
+ __selected: selected,
66
+ __localSnapshot: localSnapshot,
67
+ __globalSnapshot: globalSnapshot,
68
+ });
69
+ }
70
+ else if (row.kind === "branch") {
71
+ Object.assign(row, {
72
+ loading: isLoading,
73
+ error: error?.error,
74
+ errorGroup: errorGroup?.error,
75
+ loadingGroup: isGroupLoading,
76
+ __indeterminate: indeterminate,
77
+ __selected: selected,
78
+ __localSnapshot: localSnapshot,
79
+ __globalSnapshot: globalSnapshot,
80
+ });
81
+ }
82
+ return row;
83
+ },
84
+ };
85
+ }
86
+ return atomCache[i];
87
+ });
88
+ return { rowInvalidate, rowByIndex };
89
+ }
@@ -0,0 +1,2 @@
1
+ import type { ServerData } from "../server-data";
2
+ export declare function useRowChildren<T>(source: ServerData): (id: string) => string[];
@@ -0,0 +1,16 @@
1
+ import { useEvent } from "@1771technologies/lytenyte-core/internal";
2
+ export function useRowChildren(source) {
3
+ const rowChildren = useEvent((id) => {
4
+ const node = source.tree.rowIdToNode.get(id);
5
+ if (!node)
6
+ return [];
7
+ if (node.kind === "leaf")
8
+ return [];
9
+ const ids = [];
10
+ node.byIndex.forEach((n) => {
11
+ ids.push(n.row.id);
12
+ });
13
+ return ids;
14
+ });
15
+ return rowChildren;
16
+ }
@@ -0,0 +1,3 @@
1
+ import type { ServerData } from "../server-data";
2
+ import type { UseServerDataSourceParams } from "../use-server-data-source";
3
+ export declare function useRowDelete<T>(source: ServerData, onRowDelete: UseServerDataSourceParams<any, unknown[]>["onRowsDeleted"], optimistic?: boolean): (rows: import("@1771technologies/lytenyte-shared").RowNode<T>[]) => void;
@@ -0,0 +1,39 @@
1
+ import { useEvent } from "@1771technologies/lytenyte-core/internal";
2
+ export function useRowDelete(source, onRowDelete, optimistic = false) {
3
+ const rowDelete = useEvent((rows) => {
4
+ if (!onRowDelete || !rows.length)
5
+ return null;
6
+ if (!optimistic) {
7
+ onRowDelete({ rows });
8
+ return;
9
+ }
10
+ const rollbackNodes = [];
11
+ const startDeletes = [];
12
+ const endDeletes = [];
13
+ rows.forEach((x) => {
14
+ const node = source.tree.rowIdToNode.get(x.id);
15
+ if (node && node.kind === "leaf" && node.optimistic) {
16
+ if (node.optimistic === "start")
17
+ startDeletes.push(node.row.id);
18
+ else
19
+ endDeletes.push(node.row.id);
20
+ return;
21
+ }
22
+ if (node)
23
+ node.deleted = true;
24
+ rollbackNodes.push(node);
25
+ });
26
+ if (startDeletes.length)
27
+ source.deleteBefore(startDeletes);
28
+ if (endDeletes.length)
29
+ source.deleteAfter(endDeletes);
30
+ onRowDelete({ rows }).catch(() => {
31
+ rollbackNodes.forEach((x) => {
32
+ delete x.deleted;
33
+ });
34
+ source.flatten();
35
+ });
36
+ source.flatten();
37
+ });
38
+ return rowDelete;
39
+ }
@@ -0,0 +1,2 @@
1
+ import type { ServerData } from "../server-data.js";
2
+ export declare function useRowIdToRowIndex<T>(source: ServerData): (id: string) => number | null | undefined;
@@ -0,0 +1,7 @@
1
+ import { useEvent } from "@1771technologies/lytenyte-core/internal";
2
+ export function useRowIdToRowIndex(source) {
3
+ const rowIdToRowIndex = useEvent((id) => {
4
+ return source.flat.rowIdToRowIndex.get(id) ?? null;
5
+ });
6
+ return rowIdToRowIndex;
7
+ }
@@ -0,0 +1,2 @@
1
+ import type { ServerData } from "../server-data";
2
+ export declare function useRowIndexToRowId<T>(source: ServerData): (index: number) => string | null | undefined;
@@ -0,0 +1,7 @@
1
+ import { useEvent } from "@1771technologies/lytenyte-core/internal";
2
+ export function useRowIndexToRowId(source) {
3
+ const rowIndexToRowId = useEvent((index) => {
4
+ return source.flat.rowIndexToRow.get(index)?.id ?? null;
5
+ });
6
+ return rowIndexToRowId;
7
+ }
@@ -0,0 +1,2 @@
1
+ import type { ServerData } from "../server-data";
2
+ export declare function useRowLeafs<T>(source: ServerData): (id: string) => string[];
@@ -0,0 +1,20 @@
1
+ import { useEvent } from "@1771technologies/lytenyte-core/internal";
2
+ export function useRowLeafs(source) {
3
+ const rowLeafs = useEvent((id) => {
4
+ const node = source.tree.rowIdToNode.get(id);
5
+ if (!node || node.kind === "leaf")
6
+ return [];
7
+ const rows = [];
8
+ const stack = [...node.byIndex.values()];
9
+ while (stack.length) {
10
+ const next = stack.pop();
11
+ if (next.kind === "leaf")
12
+ rows.push(next.row.id);
13
+ else {
14
+ stack.push(...next.byIndex.values());
15
+ }
16
+ }
17
+ return rows;
18
+ });
19
+ return rowLeafs;
20
+ }
@@ -0,0 +1,2 @@
1
+ import type { ServerData } from "../server-data";
2
+ export declare function useRowParents<T>(source: ServerData): (id: string) => string[];
@@ -0,0 +1,16 @@
1
+ import { useEvent } from "@1771technologies/lytenyte-core/internal";
2
+ export function useRowParents(source) {
3
+ const rowParents = useEvent((id) => {
4
+ const node = source.tree.rowIdToNode.get(id);
5
+ if (!node)
6
+ return [];
7
+ const parents = [];
8
+ let current = node.parent;
9
+ while (current && current.kind !== "root") {
10
+ parents.push(current.row.id);
11
+ current = current.parent;
12
+ }
13
+ return parents.reverse();
14
+ });
15
+ return rowParents;
16
+ }
@@ -0,0 +1,2 @@
1
+ import type { ServerData } from "../server-data";
2
+ export declare function useRowSiblings<T>(source: ServerData): (id: string) => string[];
@@ -0,0 +1,15 @@
1
+ import { useEvent } from "@1771technologies/lytenyte-core/internal";
2
+ export function useRowSiblings(source) {
3
+ const rowChildren = useEvent((id) => {
4
+ const node = source.tree.rowIdToNode.get(id);
5
+ const parent = node?.parent;
6
+ if (!parent)
7
+ return [];
8
+ const ids = [];
9
+ parent.byIndex.forEach((n) => {
10
+ ids.push(n.row.id);
11
+ });
12
+ return ids;
13
+ });
14
+ return rowChildren;
15
+ }
@@ -0,0 +1,2 @@
1
+ import type { ServerData } from "../server-data";
2
+ export declare function useRowsBetween<T>(source: ServerData): (start: string, end: string) => string[];
@@ -0,0 +1,20 @@
1
+ import { useEvent } from "@1771technologies/lytenyte-core/internal";
2
+ export function useRowsBetween(source) {
3
+ const rowsBetween = useEvent((startId, endId) => {
4
+ const left = source.flat.rowIdToRowIndex.get(startId);
5
+ const right = source.flat.rowIdToRowIndex.get(endId);
6
+ if (left == null || right == null)
7
+ return [];
8
+ const start = Math.min(left, right);
9
+ const end = Math.max(left, right);
10
+ const ids = [];
11
+ for (let i = start; i <= end + 1; i++) {
12
+ const row = source.flat.rowIndexToRow.get(i);
13
+ if (!row)
14
+ continue;
15
+ ids.push(row.id);
16
+ }
17
+ return ids;
18
+ });
19
+ return rowsBetween;
20
+ }
@@ -0,0 +1,28 @@
1
+ import type { DataRequest } from "../types";
2
+ import type { UseServerDataSourceParams } from "../use-server-data-source";
3
+ import type { RowNode } from "@1771technologies/lytenyte-shared";
4
+ export type SourceState = ReturnType<typeof useSourceState>;
5
+ export declare function useSourceState<K extends unknown[]>(props: UseServerDataSourceParams<any, K>): {
6
+ isLoading: boolean;
7
+ setIsLoading: import("react").Dispatch<import("react").SetStateAction<boolean>>;
8
+ loadingError: unknown;
9
+ setLoadingError: import("react").Dispatch<unknown>;
10
+ requestsForView: DataRequest[];
11
+ setRequestsForView: import("react").Dispatch<import("react").SetStateAction<DataRequest[]>>;
12
+ topCount: number;
13
+ setTopCount: import("react").Dispatch<import("react").SetStateAction<number>>;
14
+ botCount: number;
15
+ setBotCount: import("react").Dispatch<import("react").SetStateAction<number>>;
16
+ rowCount: number;
17
+ setRowCount: import("react").Dispatch<import("react").SetStateAction<number>>;
18
+ expansions: {
19
+ [rowId: string]: boolean | undefined;
20
+ };
21
+ onExpansionsChange: (delta: Record<string, boolean | undefined>) => void;
22
+ maxDepth: number;
23
+ setMaxDepth: import("react").Dispatch<import("react").SetStateAction<number>>;
24
+ rows: Map<number, RowNode<any>>;
25
+ setRows: import("react").Dispatch<import("react").SetStateAction<Map<number, RowNode<any>>>>;
26
+ idUniverse: Set<string>;
27
+ setIdUniverse: import("react").Dispatch<import("react").SetStateAction<Set<string>>>;
28
+ };
@@ -0,0 +1,47 @@
1
+ import { useRef, useState } from "react";
2
+ import { useControlled, useEvent } from "@1771technologies/lytenyte-core/internal";
3
+ export function useSourceState(props) {
4
+ const [rows, setRows] = useState(new Map());
5
+ const [maxDepth, setMaxDepth] = useState(0);
6
+ const [isLoading, setIsLoading] = useState(false);
7
+ const [loadingError, setLoadingError] = useState(null);
8
+ const [requestsForView, setRequestsForView] = useState([]);
9
+ const [idUniverse, setIdUniverse] = useState(new Set());
10
+ const [topCount, setTopCount] = useState(0);
11
+ const [rowCount, setRowCount] = useState(0);
12
+ const [botCount, setBotCount] = useState(0);
13
+ const [expansions, setExpansions] = useControlled({
14
+ controlled: props.rowGroupExpansions,
15
+ default: {},
16
+ });
17
+ const onExpansionsChange = useEvent((delta) => {
18
+ setExpansions({ ...expansions, ...delta });
19
+ props.onRowGroupExpansionChange?.({ ...expansions, ...delta });
20
+ });
21
+ const state = {
22
+ isLoading,
23
+ setIsLoading,
24
+ loadingError,
25
+ setLoadingError,
26
+ requestsForView,
27
+ setRequestsForView,
28
+ topCount,
29
+ setTopCount,
30
+ botCount,
31
+ setBotCount,
32
+ rowCount,
33
+ setRowCount,
34
+ expansions,
35
+ onExpansionsChange,
36
+ maxDepth,
37
+ setMaxDepth,
38
+ rows,
39
+ setRows,
40
+ idUniverse,
41
+ setIdUniverse,
42
+ };
43
+ // React is stupid sometimes.
44
+ const stateRef = useRef(state);
45
+ Object.assign(stateRef.current, state);
46
+ return stateRef.current;
47
+ }
@@ -0,0 +1,5 @@
1
+ import type { UseServerDataSourceParams } from "../use-server-data-source";
2
+ import { type Signal } from "@1771technologies/lytenyte-core/internal";
3
+ import { ServerData } from "../server-data.js";
4
+ import type { SourceState } from "./use-source-state";
5
+ export declare function useSource<K extends unknown[]>(props: UseServerDataSourceParams<any, K>, s: SourceState, globalSignal: Signal<number>): ServerData;
@@ -0,0 +1,66 @@
1
+ import { useEffect, useMemo, useRef } from "react";
2
+ import { arrayShallow } from "@1771technologies/lytenyte-shared";
3
+ import { useEvent } from "@1771technologies/lytenyte-core/internal";
4
+ import { ServerData } from "../server-data.js";
5
+ export function useSource(props, s, globalSignal) {
6
+ const prevQueryKeyRef = useRef(null);
7
+ const queryKey = useMemo(() => {
8
+ const current = prevQueryKeyRef.current;
9
+ if (!current) {
10
+ prevQueryKeyRef.current = props.queryKey;
11
+ return prevQueryKeyRef.current;
12
+ }
13
+ if (!arrayShallow(current, props.queryKey)) {
14
+ prevQueryKeyRef.current = props.queryKey;
15
+ }
16
+ return prevQueryKeyRef.current;
17
+ }, [props.queryKey]);
18
+ const queryFn = useEvent(props.queryFn);
19
+ const dataFetcher = useMemo(() => {
20
+ const fetcher = (req, expansions) => {
21
+ const model = { rowGroupExpansions: expansions };
22
+ return queryFn({ model, queryKey, reqTime: Date.now(), requests: req });
23
+ };
24
+ return fetcher;
25
+ }, [queryFn, queryKey]);
26
+ const sourceRef = useRef(null);
27
+ if (!sourceRef.current) {
28
+ sourceRef.current = new ServerData({
29
+ defaultExpansion: props.rowGroupDefaultExpansion ?? false,
30
+ blocksize: props.blockSize ?? 200,
31
+ expansions: s.expansions,
32
+ onResetLoadBegin: () => {
33
+ s.setIsLoading(true);
34
+ s.setLoadingError(null);
35
+ },
36
+ // I know what I am about. This is fine, we only care the global signal has changed.
37
+ // eslint-disable-next-line react-hooks/purity
38
+ onInvalidate: () => globalSignal(Date.now()),
39
+ onResetLoadEnd: () => s.setIsLoading(false),
40
+ onResetLoadError: (e) => s.setLoadingError(e),
41
+ onFlatten: (f) => {
42
+ s.setTopCount(f.top);
43
+ s.setBotCount(f.bottom);
44
+ s.setRowCount(f.center + f.top + f.bottom);
45
+ s.setMaxDepth(f.maxDepth);
46
+ s.setRows(f.rowIndexToRow);
47
+ s.setIdUniverse(new Set(f.tree.rowIdToNode.keys()));
48
+ // Not sure why this is being flagged. This is not being used in hook. This is also fine. We don't
49
+ // actually care about the value, just that it will be different from the previous value.
50
+ // eslint-disable-next-line react-hooks/purity
51
+ globalSignal(Date.now());
52
+ },
53
+ });
54
+ }
55
+ useEffect(() => {
56
+ sourceRef.current.dataFetcher = dataFetcher;
57
+ }, [dataFetcher]);
58
+ const prevExpansions = useRef(s.expansions);
59
+ useEffect(() => {
60
+ if (prevExpansions.current === s.expansions)
61
+ return;
62
+ prevExpansions.current = s.expansions;
63
+ sourceRef.current.expansions = s.expansions;
64
+ }, [s.expansions]);
65
+ return sourceRef.current;
66
+ }
@@ -0,0 +1,42 @@
1
+ export interface DataRequest {
2
+ readonly id: string;
3
+ readonly path: (string | null)[];
4
+ readonly start: number;
5
+ readonly end: number;
6
+ readonly rowStartIndex: number;
7
+ readonly rowEndIndex: number;
8
+ }
9
+ export interface DataResponse {
10
+ readonly kind: "center";
11
+ readonly data: (DataResponseLeafItem | DataResponseBranchItem)[];
12
+ readonly size: number;
13
+ readonly asOfTime: number;
14
+ readonly path: (string | null)[];
15
+ readonly start: number;
16
+ readonly end: number;
17
+ }
18
+ export interface DataResponseBranchItem {
19
+ readonly kind: "branch";
20
+ readonly id: string;
21
+ readonly data: any;
22
+ readonly key: string | null;
23
+ readonly childCount: number;
24
+ }
25
+ export interface DataResponseLeafItem {
26
+ readonly kind: "leaf";
27
+ readonly id: string;
28
+ readonly data: any;
29
+ }
30
+ export interface DataResponsePinned {
31
+ readonly kind: "top" | "bottom";
32
+ readonly data: DataResponseLeafItem[];
33
+ readonly asOfTime: number;
34
+ }
35
+ export interface QueryFnParams<K extends unknown[]> {
36
+ readonly queryKey: K;
37
+ readonly requests: DataRequest[];
38
+ readonly reqTime: number;
39
+ readonly model: {
40
+ readonly rowGroupExpansions: Record<string, boolean | undefined>;
41
+ };
42
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,51 @@
1
+ import type { DataRequest, DataResponse, DataResponsePinned, QueryFnParams } from "./types";
2
+ import { type Piece } from "@1771technologies/lytenyte-core/internal";
3
+ import { type RowGroup, type RowLeaf, type RowNode, type RowSelectionState, type RowSource } from "@1771technologies/lytenyte-shared";
4
+ export interface RowSourceServer<T> extends RowSource<T> {
5
+ readonly isLoading: Piece<boolean>;
6
+ readonly loadingError: Piece<unknown>;
7
+ readonly requestsForView: Piece<DataRequest[]>;
8
+ readonly seenRequests: Set<string>;
9
+ readonly retry: () => void;
10
+ readonly requestForGroup: (row: RowGroup | number) => DataRequest | null;
11
+ readonly requestForNextSlice: (currentRequest: DataRequest) => DataRequest | null;
12
+ readonly refresh: (onSuccess?: () => void, onError?: (e: unknown) => void) => void;
13
+ readonly pushResponses: (req: (DataResponse | DataResponsePinned)[]) => void;
14
+ readonly pushRequests: (req: DataRequest[], onSuccess?: () => void, onError?: (e: unknown) => void) => void;
15
+ readonly reset: () => void;
16
+ readonly rowAdd: (rows: RowLeaf<T>[], placement?: "start" | "end") => void;
17
+ readonly rowDelete: (rows: RowNode<T>[]) => void;
18
+ readonly rowUpdate: (rows: Map<RowNode<T>, T>) => void;
19
+ }
20
+ export interface UseServerDataSourceParams<T = any, K extends unknown[] = any[]> {
21
+ readonly queryFn: (params: QueryFnParams<K>) => Promise<(DataResponse | DataResponsePinned)[]>;
22
+ readonly queryKey: K;
23
+ readonly blockSize?: number;
24
+ readonly rowGroupExpansions?: {
25
+ [rowId: string]: boolean | undefined;
26
+ };
27
+ readonly rowGroupDefaultExpansion?: boolean | number;
28
+ readonly onRowGroupExpansionChange?: (state: Record<string, boolean | undefined>) => void;
29
+ readonly rowsIsolatedSelection?: boolean;
30
+ readonly rowSelection?: RowSelectionState;
31
+ readonly rowSelectionIdUniverseAdditions?: {
32
+ readonly id: string;
33
+ readonly root: boolean;
34
+ }[];
35
+ readonly rowSelectionIdUniverseSubtractions?: Set<string>;
36
+ readonly onRowSelectionChange?: (state: RowSelectionState) => void;
37
+ readonly rowSelectKey?: unknown[];
38
+ readonly hasRowBranches?: "infer" | boolean;
39
+ readonly rowUpdateOptimistically?: boolean;
40
+ readonly onRowDataChange?: (params: {
41
+ readonly rows: Map<RowNode<T>, T>;
42
+ }) => Promise<void>;
43
+ readonly onRowsDeleted?: (params: {
44
+ readonly rows: RowNode<T>[];
45
+ }) => Promise<void>;
46
+ readonly onRowsAdded?: (params: {
47
+ readonly rows: RowLeaf<T>[];
48
+ placement: "start" | "end";
49
+ }) => Promise<void>;
50
+ }
51
+ export declare function useServerDataSource<T, K extends unknown[] = unknown[]>(props: UseServerDataSourceParams<T, K>): RowSourceServer<T>;