photon-grid-core 0.0.1

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 (555) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +0 -0
  3. package/cell-selection/active-grid-registry.d.ts +37 -0
  4. package/cell-selection/active-grid-registry.d.ts.map +1 -0
  5. package/cell-selection/active-grid-registry.js +25 -0
  6. package/cell-selection/active-grid-registry.js.map +1 -0
  7. package/cell-selection/cell-selection-engine.d.ts +336 -0
  8. package/cell-selection/cell-selection-engine.d.ts.map +1 -0
  9. package/cell-selection/cell-selection-engine.js +1534 -0
  10. package/cell-selection/cell-selection-engine.js.map +1 -0
  11. package/cell-selection/selection-range.d.ts +16 -0
  12. package/cell-selection/selection-range.d.ts.map +1 -0
  13. package/cell-selection/selection-range.js +48 -0
  14. package/cell-selection/selection-range.js.map +1 -0
  15. package/cell-selection/selection-renderer.d.ts +24 -0
  16. package/cell-selection/selection-renderer.d.ts.map +1 -0
  17. package/cell-selection/selection-renderer.js +107 -0
  18. package/cell-selection/selection-renderer.js.map +1 -0
  19. package/chart/chart-analyzer/aggregation-analyzer.d.ts +18 -0
  20. package/chart/chart-analyzer/aggregation-analyzer.d.ts.map +1 -0
  21. package/chart/chart-analyzer/aggregation-analyzer.js +63 -0
  22. package/chart/chart-analyzer/aggregation-analyzer.js.map +1 -0
  23. package/chart/chart-analyzer/bar-analyzer.d.ts +19 -0
  24. package/chart/chart-analyzer/bar-analyzer.d.ts.map +1 -0
  25. package/chart/chart-analyzer/bar-analyzer.js +56 -0
  26. package/chart/chart-analyzer/bar-analyzer.js.map +1 -0
  27. package/chart/chart-analyzer/bubble-analyzer.d.ts +16 -0
  28. package/chart/chart-analyzer/bubble-analyzer.d.ts.map +1 -0
  29. package/chart/chart-analyzer/bubble-analyzer.js +61 -0
  30. package/chart/chart-analyzer/bubble-analyzer.js.map +1 -0
  31. package/chart/chart-analyzer/cardinality-analyzer.d.ts +13 -0
  32. package/chart/chart-analyzer/cardinality-analyzer.d.ts.map +1 -0
  33. package/chart/chart-analyzer/cardinality-analyzer.js +28 -0
  34. package/chart/chart-analyzer/cardinality-analyzer.js.map +1 -0
  35. package/chart/chart-analyzer/dimension-analyzer.d.ts +12 -0
  36. package/chart/chart-analyzer/dimension-analyzer.d.ts.map +1 -0
  37. package/chart/chart-analyzer/dimension-analyzer.js +33 -0
  38. package/chart/chart-analyzer/dimension-analyzer.js.map +1 -0
  39. package/chart/chart-analyzer/histogram-analyzer.d.ts +11 -0
  40. package/chart/chart-analyzer/histogram-analyzer.d.ts.map +1 -0
  41. package/chart/chart-analyzer/histogram-analyzer.js +43 -0
  42. package/chart/chart-analyzer/histogram-analyzer.js.map +1 -0
  43. package/chart/chart-analyzer/index.d.ts +58 -0
  44. package/chart/chart-analyzer/index.d.ts.map +1 -0
  45. package/chart/chart-analyzer/index.js +130 -0
  46. package/chart/chart-analyzer/index.js.map +1 -0
  47. package/chart/chart-analyzer/line-analyzer.d.ts +23 -0
  48. package/chart/chart-analyzer/line-analyzer.d.ts.map +1 -0
  49. package/chart/chart-analyzer/line-analyzer.js +61 -0
  50. package/chart/chart-analyzer/line-analyzer.js.map +1 -0
  51. package/chart/chart-analyzer/measure-analyzer.d.ts +11 -0
  52. package/chart/chart-analyzer/measure-analyzer.d.ts.map +1 -0
  53. package/chart/chart-analyzer/measure-analyzer.js +44 -0
  54. package/chart/chart-analyzer/measure-analyzer.js.map +1 -0
  55. package/chart/chart-analyzer/pie-analyzer.d.ts +19 -0
  56. package/chart/chart-analyzer/pie-analyzer.d.ts.map +1 -0
  57. package/chart/chart-analyzer/pie-analyzer.js +64 -0
  58. package/chart/chart-analyzer/pie-analyzer.js.map +1 -0
  59. package/chart/chart-analyzer/recommendation-engine.d.ts +18 -0
  60. package/chart/chart-analyzer/recommendation-engine.d.ts.map +1 -0
  61. package/chart/chart-analyzer/recommendation-engine.js +82 -0
  62. package/chart/chart-analyzer/recommendation-engine.js.map +1 -0
  63. package/chart/chart-analyzer/scatter-analyzer.d.ts +16 -0
  64. package/chart/chart-analyzer/scatter-analyzer.d.ts.map +1 -0
  65. package/chart/chart-analyzer/scatter-analyzer.js +70 -0
  66. package/chart/chart-analyzer/scatter-analyzer.js.map +1 -0
  67. package/chart/chart-analyzer/types.d.ts +52 -0
  68. package/chart/chart-analyzer/types.d.ts.map +1 -0
  69. package/chart/chart-analyzer/types.js +10 -0
  70. package/chart/chart-analyzer/types.js.map +1 -0
  71. package/chart/chart-analyzer.d.ts +12 -0
  72. package/chart/chart-analyzer.d.ts.map +1 -0
  73. package/chart/chart-analyzer.js +77 -0
  74. package/chart/chart-analyzer.js.map +1 -0
  75. package/chart/chart-data-transformer.d.ts +26 -0
  76. package/chart/chart-data-transformer.d.ts.map +1 -0
  77. package/chart/chart-data-transformer.js +93 -0
  78. package/chart/chart-data-transformer.js.map +1 -0
  79. package/chart/chart-engine.d.ts +38 -0
  80. package/chart/chart-engine.d.ts.map +1 -0
  81. package/chart/chart-engine.js +96 -0
  82. package/chart/chart-engine.js.map +1 -0
  83. package/chart/chart-panel.d.ts +54 -0
  84. package/chart/chart-panel.d.ts.map +1 -0
  85. package/chart/chart-panel.js +350 -0
  86. package/chart/chart-panel.js.map +1 -0
  87. package/chart/chart-renderer.d.ts +93 -0
  88. package/chart/chart-renderer.d.ts.map +1 -0
  89. package/chart/chart-renderer.js +1330 -0
  90. package/chart/chart-renderer.js.map +1 -0
  91. package/chart/sparkline/sparkline-renderer.d.ts +269 -0
  92. package/chart/sparkline/sparkline-renderer.d.ts.map +1 -0
  93. package/chart/sparkline/sparkline-renderer.js +875 -0
  94. package/chart/sparkline/sparkline-renderer.js.map +1 -0
  95. package/chart/sparkline/sparkline.types.d.ts +214 -0
  96. package/chart/sparkline/sparkline.types.d.ts.map +1 -0
  97. package/chart/sparkline/sparkline.types.js +8 -0
  98. package/chart/sparkline/sparkline.types.js.map +1 -0
  99. package/column-groups/column-group-drag-handler.d.ts +169 -0
  100. package/column-groups/column-group-drag-handler.d.ts.map +1 -0
  101. package/column-groups/column-group-drag-handler.js +517 -0
  102. package/column-groups/column-group-drag-handler.js.map +1 -0
  103. package/column-groups/column-group-header-builder.d.ts +106 -0
  104. package/column-groups/column-group-header-builder.d.ts.map +1 -0
  105. package/column-groups/column-group-header-builder.js +311 -0
  106. package/column-groups/column-group-header-builder.js.map +1 -0
  107. package/column-groups/column-group-model.d.ts +248 -0
  108. package/column-groups/column-group-model.d.ts.map +1 -0
  109. package/column-groups/column-group-model.js +668 -0
  110. package/column-groups/column-group-model.js.map +1 -0
  111. package/column-groups/column-group-state-manager.d.ts +110 -0
  112. package/column-groups/column-group-state-manager.d.ts.map +1 -0
  113. package/column-groups/column-group-state-manager.js +153 -0
  114. package/column-groups/column-group-state-manager.js.map +1 -0
  115. package/column-groups/column-group.types.d.ts +250 -0
  116. package/column-groups/column-group.types.d.ts.map +1 -0
  117. package/column-groups/column-group.types.js +20 -0
  118. package/column-groups/column-group.types.js.map +1 -0
  119. package/column-groups/display-group-builder.d.ts +91 -0
  120. package/column-groups/display-group-builder.d.ts.map +1 -0
  121. package/column-groups/display-group-builder.js +225 -0
  122. package/column-groups/display-group-builder.js.map +1 -0
  123. package/column-groups/display-group-drag-handler.d.ts +205 -0
  124. package/column-groups/display-group-drag-handler.d.ts.map +1 -0
  125. package/column-groups/display-group-drag-handler.js +536 -0
  126. package/column-groups/display-group-drag-handler.js.map +1 -0
  127. package/column-groups/display-group-engine.d.ts +310 -0
  128. package/column-groups/display-group-engine.d.ts.map +1 -0
  129. package/column-groups/display-group-engine.js +549 -0
  130. package/column-groups/display-group-engine.js.map +1 -0
  131. package/column-groups/display-group-header-builder.d.ts +94 -0
  132. package/column-groups/display-group-header-builder.d.ts.map +1 -0
  133. package/column-groups/display-group-header-builder.js +224 -0
  134. package/column-groups/display-group-header-builder.js.map +1 -0
  135. package/column-groups/display-group.types.d.ts +140 -0
  136. package/column-groups/display-group.types.d.ts.map +1 -0
  137. package/column-groups/display-group.types.js +2 -0
  138. package/column-groups/display-group.types.js.map +1 -0
  139. package/column-groups/index.d.ts +25 -0
  140. package/column-groups/index.d.ts.map +1 -0
  141. package/column-groups/index.js +26 -0
  142. package/column-groups/index.js.map +1 -0
  143. package/column-groups/logical-group-registry.d.ts +77 -0
  144. package/column-groups/logical-group-registry.d.ts.map +1 -0
  145. package/column-groups/logical-group-registry.js +118 -0
  146. package/column-groups/logical-group-registry.js.map +1 -0
  147. package/core/column-model.d.ts +30 -0
  148. package/core/column-model.d.ts.map +1 -0
  149. package/core/column-model.js +203 -0
  150. package/core/column-model.js.map +1 -0
  151. package/core/grid-api.d.ts +187 -0
  152. package/core/grid-api.d.ts.map +1 -0
  153. package/core/grid-api.js +569 -0
  154. package/core/grid-api.js.map +1 -0
  155. package/core/grid-context.d.ts +61 -0
  156. package/core/grid-context.d.ts.map +1 -0
  157. package/core/grid-context.js +2 -0
  158. package/core/grid-context.js.map +1 -0
  159. package/core/grid-core.d.ts +49 -0
  160. package/core/grid-core.d.ts.map +1 -0
  161. package/core/grid-core.js +675 -0
  162. package/core/grid-core.js.map +1 -0
  163. package/core/grid-store.d.ts +62 -0
  164. package/core/grid-store.d.ts.map +1 -0
  165. package/core/grid-store.js +104 -0
  166. package/core/grid-store.js.map +1 -0
  167. package/core/row-model.d.ts +32 -0
  168. package/core/row-model.d.ts.map +1 -0
  169. package/core/row-model.js +150 -0
  170. package/core/row-model.js.map +1 -0
  171. package/drag-drop/drag-autoscroll.d.ts +14 -0
  172. package/drag-drop/drag-autoscroll.d.ts.map +1 -0
  173. package/drag-drop/drag-autoscroll.js +66 -0
  174. package/drag-drop/drag-autoscroll.js.map +1 -0
  175. package/drag-drop/drag-drop-engine.d.ts +55 -0
  176. package/drag-drop/drag-drop-engine.d.ts.map +1 -0
  177. package/drag-drop/drag-drop-engine.js +179 -0
  178. package/drag-drop/drag-drop-engine.js.map +1 -0
  179. package/drag-drop/drag-preview.d.ts +32 -0
  180. package/drag-drop/drag-preview.d.ts.map +1 -0
  181. package/drag-drop/drag-preview.js +74 -0
  182. package/drag-drop/drag-preview.js.map +1 -0
  183. package/engines/aggregation/aggregation-engine.d.ts +66 -0
  184. package/engines/aggregation/aggregation-engine.d.ts.map +1 -0
  185. package/engines/aggregation/aggregation-engine.js +149 -0
  186. package/engines/aggregation/aggregation-engine.js.map +1 -0
  187. package/engines/clipboard/clipboard-engine.d.ts +89 -0
  188. package/engines/clipboard/clipboard-engine.d.ts.map +1 -0
  189. package/engines/clipboard/clipboard-engine.js +323 -0
  190. package/engines/clipboard/clipboard-engine.js.map +1 -0
  191. package/engines/editing/cell-editor-engine.d.ts +62 -0
  192. package/engines/editing/cell-editor-engine.d.ts.map +1 -0
  193. package/engines/editing/cell-editor-engine.js +359 -0
  194. package/engines/editing/cell-editor-engine.js.map +1 -0
  195. package/engines/editing/custom-dropdown-editor.d.ts +99 -0
  196. package/engines/editing/custom-dropdown-editor.d.ts.map +1 -0
  197. package/engines/editing/custom-dropdown-editor.js +355 -0
  198. package/engines/editing/custom-dropdown-editor.js.map +1 -0
  199. package/engines/editing/value-parser.d.ts +12 -0
  200. package/engines/editing/value-parser.d.ts.map +1 -0
  201. package/engines/editing/value-parser.js +125 -0
  202. package/engines/editing/value-parser.js.map +1 -0
  203. package/engines/export/export-engine.d.ts +16 -0
  204. package/engines/export/export-engine.d.ts.map +1 -0
  205. package/engines/export/export-engine.js +99 -0
  206. package/engines/export/export-engine.js.map +1 -0
  207. package/engines/filter/filter-condition.d.ts +7 -0
  208. package/engines/filter/filter-condition.d.ts.map +1 -0
  209. package/engines/filter/filter-condition.js +126 -0
  210. package/engines/filter/filter-condition.js.map +1 -0
  211. package/engines/filter/filter-engine.d.ts +35 -0
  212. package/engines/filter/filter-engine.d.ts.map +1 -0
  213. package/engines/filter/filter-engine.js +150 -0
  214. package/engines/filter/filter-engine.js.map +1 -0
  215. package/engines/filter/filter-panel.d.ts +103 -0
  216. package/engines/filter/filter-panel.d.ts.map +1 -0
  217. package/engines/filter/filter-panel.js +645 -0
  218. package/engines/filter/filter-panel.js.map +1 -0
  219. package/engines/grouping/group-node.d.ts +21 -0
  220. package/engines/grouping/group-node.d.ts.map +1 -0
  221. package/engines/grouping/group-node.js +96 -0
  222. package/engines/grouping/group-node.js.map +1 -0
  223. package/engines/grouping/grouping-engine.d.ts +33 -0
  224. package/engines/grouping/grouping-engine.d.ts.map +1 -0
  225. package/engines/grouping/grouping-engine.js +118 -0
  226. package/engines/grouping/grouping-engine.js.map +1 -0
  227. package/engines/master-detail/master-detail-engine.d.ts +77 -0
  228. package/engines/master-detail/master-detail-engine.d.ts.map +1 -0
  229. package/engines/master-detail/master-detail-engine.js +199 -0
  230. package/engines/master-detail/master-detail-engine.js.map +1 -0
  231. package/engines/pagination/pagination-engine.d.ts +33 -0
  232. package/engines/pagination/pagination-engine.d.ts.map +1 -0
  233. package/engines/pagination/pagination-engine.js +110 -0
  234. package/engines/pagination/pagination-engine.js.map +1 -0
  235. package/engines/selection/row-selection-engine.d.ts +26 -0
  236. package/engines/selection/row-selection-engine.d.ts.map +1 -0
  237. package/engines/selection/row-selection-engine.js +145 -0
  238. package/engines/selection/row-selection-engine.js.map +1 -0
  239. package/engines/sort/sort-comparator.d.ts +43 -0
  240. package/engines/sort/sort-comparator.d.ts.map +1 -0
  241. package/engines/sort/sort-comparator.js +113 -0
  242. package/engines/sort/sort-comparator.js.map +1 -0
  243. package/engines/sort/sort-engine.d.ts +67 -0
  244. package/engines/sort/sort-engine.d.ts.map +1 -0
  245. package/engines/sort/sort-engine.js +178 -0
  246. package/engines/sort/sort-engine.js.map +1 -0
  247. package/engines/summary/summary-engine.d.ts +17 -0
  248. package/engines/summary/summary-engine.d.ts.map +1 -0
  249. package/engines/summary/summary-engine.js +72 -0
  250. package/engines/summary/summary-engine.js.map +1 -0
  251. package/engines/tree/tree-data-service.d.ts +117 -0
  252. package/engines/tree/tree-data-service.d.ts.map +1 -0
  253. package/engines/tree/tree-data-service.js +296 -0
  254. package/engines/tree/tree-data-service.js.map +1 -0
  255. package/engines/tree/tree-expansion-service.d.ts +35 -0
  256. package/engines/tree/tree-expansion-service.d.ts.map +1 -0
  257. package/engines/tree/tree-expansion-service.js +84 -0
  258. package/engines/tree/tree-expansion-service.js.map +1 -0
  259. package/engines/tree/tree-node.d.ts +40 -0
  260. package/engines/tree/tree-node.d.ts.map +1 -0
  261. package/engines/tree/tree-node.js +199 -0
  262. package/engines/tree/tree-node.js.map +1 -0
  263. package/engines/tree/tree-selection-service.d.ts +35 -0
  264. package/engines/tree/tree-selection-service.d.ts.map +1 -0
  265. package/engines/tree/tree-selection-service.js +72 -0
  266. package/engines/tree/tree-selection-service.js.map +1 -0
  267. package/engines/undo-redo/undo-redo-engine.d.ts +114 -0
  268. package/engines/undo-redo/undo-redo-engine.d.ts.map +1 -0
  269. package/engines/undo-redo/undo-redo-engine.js +165 -0
  270. package/engines/undo-redo/undo-redo-engine.js.map +1 -0
  271. package/event-bus/event-bus.d.ts +21 -0
  272. package/event-bus/event-bus.d.ts.map +1 -0
  273. package/event-bus/event-bus.js +106 -0
  274. package/event-bus/event-bus.js.map +1 -0
  275. package/icons/icon-registry.d.ts +19 -0
  276. package/icons/icon-registry.d.ts.map +1 -0
  277. package/icons/icon-registry.js +37 -0
  278. package/icons/icon-registry.js.map +1 -0
  279. package/icons/icon-renderer.d.ts +18 -0
  280. package/icons/icon-renderer.d.ts.map +1 -0
  281. package/icons/icon-renderer.js +75 -0
  282. package/icons/icon-renderer.js.map +1 -0
  283. package/icons/icon-sets/core-icons.d.ts +2 -0
  284. package/icons/icon-sets/core-icons.d.ts.map +1 -0
  285. package/icons/icon-sets/core-icons.js +48 -0
  286. package/icons/icon-sets/core-icons.js.map +1 -0
  287. package/index.d.ts +72 -0
  288. package/index.d.ts.map +1 -0
  289. package/index.js +54 -0
  290. package/index.js.map +1 -0
  291. package/package.json +64 -0
  292. package/photon-ai/builtins/filter.commands.d.ts +4 -0
  293. package/photon-ai/builtins/filter.commands.d.ts.map +1 -0
  294. package/photon-ai/builtins/filter.commands.js +189 -0
  295. package/photon-ai/builtins/filter.commands.js.map +1 -0
  296. package/photon-ai/builtins/grouping.commands.d.ts +4 -0
  297. package/photon-ai/builtins/grouping.commands.d.ts.map +1 -0
  298. package/photon-ai/builtins/grouping.commands.js +115 -0
  299. package/photon-ai/builtins/grouping.commands.js.map +1 -0
  300. package/photon-ai/builtins/index.d.ts +10 -0
  301. package/photon-ai/builtins/index.d.ts.map +1 -0
  302. package/photon-ai/builtins/index.js +26 -0
  303. package/photon-ai/builtins/index.js.map +1 -0
  304. package/photon-ai/builtins/info.commands.d.ts +4 -0
  305. package/photon-ai/builtins/info.commands.d.ts.map +1 -0
  306. package/photon-ai/builtins/info.commands.js +201 -0
  307. package/photon-ai/builtins/info.commands.js.map +1 -0
  308. package/photon-ai/builtins/move.commands.d.ts +4 -0
  309. package/photon-ai/builtins/move.commands.d.ts.map +1 -0
  310. package/photon-ai/builtins/move.commands.js +53 -0
  311. package/photon-ai/builtins/move.commands.js.map +1 -0
  312. package/photon-ai/builtins/pin.commands.d.ts +4 -0
  313. package/photon-ai/builtins/pin.commands.d.ts.map +1 -0
  314. package/photon-ai/builtins/pin.commands.js +106 -0
  315. package/photon-ai/builtins/pin.commands.js.map +1 -0
  316. package/photon-ai/builtins/selection.commands.d.ts +4 -0
  317. package/photon-ai/builtins/selection.commands.d.ts.map +1 -0
  318. package/photon-ai/builtins/selection.commands.js +102 -0
  319. package/photon-ai/builtins/selection.commands.js.map +1 -0
  320. package/photon-ai/builtins/sort.commands.d.ts +4 -0
  321. package/photon-ai/builtins/sort.commands.d.ts.map +1 -0
  322. package/photon-ai/builtins/sort.commands.js +67 -0
  323. package/photon-ai/builtins/sort.commands.js.map +1 -0
  324. package/photon-ai/builtins/visibility.commands.d.ts +4 -0
  325. package/photon-ai/builtins/visibility.commands.d.ts.map +1 -0
  326. package/photon-ai/builtins/visibility.commands.js +75 -0
  327. package/photon-ai/builtins/visibility.commands.js.map +1 -0
  328. package/photon-ai/command-builder.d.ts +21 -0
  329. package/photon-ai/command-builder.d.ts.map +1 -0
  330. package/photon-ai/command-builder.js +18 -0
  331. package/photon-ai/command-builder.js.map +1 -0
  332. package/photon-ai/command-executor.d.ts +15 -0
  333. package/photon-ai/command-executor.d.ts.map +1 -0
  334. package/photon-ai/command-executor.js +26 -0
  335. package/photon-ai/command-executor.js.map +1 -0
  336. package/photon-ai/entity-resolver.d.ts +121 -0
  337. package/photon-ai/entity-resolver.d.ts.map +1 -0
  338. package/photon-ai/entity-resolver.js +393 -0
  339. package/photon-ai/entity-resolver.js.map +1 -0
  340. package/photon-ai/fuzzy-match.d.ts +12 -0
  341. package/photon-ai/fuzzy-match.d.ts.map +1 -0
  342. package/photon-ai/fuzzy-match.js +37 -0
  343. package/photon-ai/fuzzy-match.js.map +1 -0
  344. package/photon-ai/index.d.ts +15 -0
  345. package/photon-ai/index.d.ts.map +1 -0
  346. package/photon-ai/index.js +13 -0
  347. package/photon-ai/index.js.map +1 -0
  348. package/photon-ai/intent-parser.d.ts +20 -0
  349. package/photon-ai/intent-parser.d.ts.map +1 -0
  350. package/photon-ai/intent-parser.js +52 -0
  351. package/photon-ai/intent-parser.js.map +1 -0
  352. package/photon-ai/photon-ai-memory.d.ts +42 -0
  353. package/photon-ai/photon-ai-memory.d.ts.map +1 -0
  354. package/photon-ai/photon-ai-memory.js +86 -0
  355. package/photon-ai/photon-ai-memory.js.map +1 -0
  356. package/photon-ai/photon-ai-panel.d.ts +54 -0
  357. package/photon-ai/photon-ai-panel.d.ts.map +1 -0
  358. package/photon-ai/photon-ai-panel.js +191 -0
  359. package/photon-ai/photon-ai-panel.js.map +1 -0
  360. package/photon-ai/photon-ai-registry.d.ts +25 -0
  361. package/photon-ai/photon-ai-registry.d.ts.map +1 -0
  362. package/photon-ai/photon-ai-registry.js +41 -0
  363. package/photon-ai/photon-ai-registry.js.map +1 -0
  364. package/photon-ai/photon-ai-service.d.ts +71 -0
  365. package/photon-ai/photon-ai-service.d.ts.map +1 -0
  366. package/photon-ai/photon-ai-service.js +165 -0
  367. package/photon-ai/photon-ai-service.js.map +1 -0
  368. package/photon-ai/photon-ai.types.d.ts +100 -0
  369. package/photon-ai/photon-ai.types.d.ts.map +1 -0
  370. package/photon-ai/photon-ai.types.js +2 -0
  371. package/photon-ai/photon-ai.types.js.map +1 -0
  372. package/photon-ai/query-splitter.d.ts +22 -0
  373. package/photon-ai/query-splitter.d.ts.map +1 -0
  374. package/photon-ai/query-splitter.js +81 -0
  375. package/photon-ai/query-splitter.js.map +1 -0
  376. package/photon-ai/text-normalizer.d.ts +33 -0
  377. package/photon-ai/text-normalizer.d.ts.map +1 -0
  378. package/photon-ai/text-normalizer.js +132 -0
  379. package/photon-ai/text-normalizer.js.map +1 -0
  380. package/renderer/auto-scroller.d.ts +78 -0
  381. package/renderer/auto-scroller.d.ts.map +1 -0
  382. package/renderer/auto-scroller.js +141 -0
  383. package/renderer/auto-scroller.js.map +1 -0
  384. package/renderer/body-renderer.d.ts +191 -0
  385. package/renderer/body-renderer.d.ts.map +1 -0
  386. package/renderer/body-renderer.js +806 -0
  387. package/renderer/body-renderer.js.map +1 -0
  388. package/renderer/cell-renderer.d.ts +26 -0
  389. package/renderer/cell-renderer.d.ts.map +1 -0
  390. package/renderer/cell-renderer.js +201 -0
  391. package/renderer/cell-renderer.js.map +1 -0
  392. package/renderer/column-menu.d.ts +285 -0
  393. package/renderer/column-menu.d.ts.map +1 -0
  394. package/renderer/column-menu.js +873 -0
  395. package/renderer/column-menu.js.map +1 -0
  396. package/renderer/column-style-manager.d.ts +38 -0
  397. package/renderer/column-style-manager.d.ts.map +1 -0
  398. package/renderer/column-style-manager.js +110 -0
  399. package/renderer/column-style-manager.js.map +1 -0
  400. package/renderer/detail-row-renderer.d.ts +153 -0
  401. package/renderer/detail-row-renderer.d.ts.map +1 -0
  402. package/renderer/detail-row-renderer.js +388 -0
  403. package/renderer/detail-row-renderer.js.map +1 -0
  404. package/renderer/dom-utils.d.ts +22 -0
  405. package/renderer/dom-utils.d.ts.map +1 -0
  406. package/renderer/dom-utils.js +132 -0
  407. package/renderer/dom-utils.js.map +1 -0
  408. package/renderer/footer-renderer.d.ts +25 -0
  409. package/renderer/footer-renderer.d.ts.map +1 -0
  410. package/renderer/footer-renderer.js +168 -0
  411. package/renderer/footer-renderer.js.map +1 -0
  412. package/renderer/grid-renderer.d.ts +295 -0
  413. package/renderer/grid-renderer.d.ts.map +1 -0
  414. package/renderer/grid-renderer.js +1456 -0
  415. package/renderer/grid-renderer.js.map +1 -0
  416. package/renderer/group-context-menu.d.ts +79 -0
  417. package/renderer/group-context-menu.d.ts.map +1 -0
  418. package/renderer/group-context-menu.js +238 -0
  419. package/renderer/group-context-menu.js.map +1 -0
  420. package/renderer/group-drop-zone.d.ts +56 -0
  421. package/renderer/group-drop-zone.d.ts.map +1 -0
  422. package/renderer/group-drop-zone.js +376 -0
  423. package/renderer/group-drop-zone.js.map +1 -0
  424. package/renderer/header-renderer.d.ts +264 -0
  425. package/renderer/header-renderer.d.ts.map +1 -0
  426. package/renderer/header-renderer.js +1321 -0
  427. package/renderer/header-renderer.js.map +1 -0
  428. package/renderer/overlay-renderer.d.ts +16 -0
  429. package/renderer/overlay-renderer.d.ts.map +1 -0
  430. package/renderer/overlay-renderer.js +64 -0
  431. package/renderer/overlay-renderer.js.map +1 -0
  432. package/renderer/renderer-resolver.d.ts +18 -0
  433. package/renderer/renderer-resolver.d.ts.map +1 -0
  434. package/renderer/renderer-resolver.js +18 -0
  435. package/renderer/renderer-resolver.js.map +1 -0
  436. package/renderer/row-animator.d.ts +72 -0
  437. package/renderer/row-animator.d.ts.map +1 -0
  438. package/renderer/row-animator.js +175 -0
  439. package/renderer/row-animator.js.map +1 -0
  440. package/renderer/row-drag-renderer.d.ts +58 -0
  441. package/renderer/row-drag-renderer.d.ts.map +1 -0
  442. package/renderer/row-drag-renderer.js +395 -0
  443. package/renderer/row-drag-renderer.js.map +1 -0
  444. package/renderer/row-offset-search.d.ts +17 -0
  445. package/renderer/row-offset-search.d.ts.map +1 -0
  446. package/renderer/row-offset-search.js +31 -0
  447. package/renderer/row-offset-search.js.map +1 -0
  448. package/renderer/row-position-sheet.d.ts +11 -0
  449. package/renderer/row-position-sheet.d.ts.map +1 -0
  450. package/renderer/row-position-sheet.js +29 -0
  451. package/renderer/row-position-sheet.js.map +1 -0
  452. package/renderer/scroll-controller.d.ts +58 -0
  453. package/renderer/scroll-controller.d.ts.map +1 -0
  454. package/renderer/scroll-controller.js +200 -0
  455. package/renderer/scroll-controller.js.map +1 -0
  456. package/renderer/sticky-row-tracker.d.ts +40 -0
  457. package/renderer/sticky-row-tracker.d.ts.map +1 -0
  458. package/renderer/sticky-row-tracker.js +63 -0
  459. package/renderer/sticky-row-tracker.js.map +1 -0
  460. package/renderer/tooltip-renderer.d.ts +36 -0
  461. package/renderer/tooltip-renderer.d.ts.map +1 -0
  462. package/renderer/tooltip-renderer.js +133 -0
  463. package/renderer/tooltip-renderer.js.map +1 -0
  464. package/renderer/tree-cell-renderer.d.ts +37 -0
  465. package/renderer/tree-cell-renderer.d.ts.map +1 -0
  466. package/renderer/tree-cell-renderer.js +75 -0
  467. package/renderer/tree-cell-renderer.js.map +1 -0
  468. package/renderer/tree-sticky-row-tracker.d.ts +62 -0
  469. package/renderer/tree-sticky-row-tracker.d.ts.map +1 -0
  470. package/renderer/tree-sticky-row-tracker.js +120 -0
  471. package/renderer/tree-sticky-row-tracker.js.map +1 -0
  472. package/renderer/virtual-scroll-renderer.d.ts +37 -0
  473. package/renderer/virtual-scroll-renderer.d.ts.map +1 -0
  474. package/renderer/virtual-scroll-renderer.js +133 -0
  475. package/renderer/virtual-scroll-renderer.js.map +1 -0
  476. package/styles/base-styles.d.ts +3 -0
  477. package/styles/base-styles.d.ts.map +1 -0
  478. package/styles/base-styles.js +3045 -0
  479. package/styles/base-styles.js.map +1 -0
  480. package/styles/themes/theme-alpine.d.ts +2 -0
  481. package/styles/themes/theme-alpine.d.ts.map +1 -0
  482. package/styles/themes/theme-alpine.js +120 -0
  483. package/styles/themes/theme-alpine.js.map +1 -0
  484. package/styles/themes/theme-balham.d.ts +2 -0
  485. package/styles/themes/theme-balham.d.ts.map +1 -0
  486. package/styles/themes/theme-balham.js +120 -0
  487. package/styles/themes/theme-balham.js.map +1 -0
  488. package/styles/themes/theme-dark.d.ts +2 -0
  489. package/styles/themes/theme-dark.d.ts.map +1 -0
  490. package/styles/themes/theme-dark.js +216 -0
  491. package/styles/themes/theme-dark.js.map +1 -0
  492. package/styles/themes/theme-material.d.ts +2 -0
  493. package/styles/themes/theme-material.d.ts.map +1 -0
  494. package/styles/themes/theme-material.js +134 -0
  495. package/styles/themes/theme-material.js.map +1 -0
  496. package/styles/themes/theme-quartz.d.ts +2 -0
  497. package/styles/themes/theme-quartz.d.ts.map +1 -0
  498. package/styles/themes/theme-quartz.js +120 -0
  499. package/styles/themes/theme-quartz.js.map +1 -0
  500. package/theme/css-var-injector.d.ts +10 -0
  501. package/theme/css-var-injector.d.ts.map +1 -0
  502. package/theme/css-var-injector.js +63 -0
  503. package/theme/css-var-injector.js.map +1 -0
  504. package/theme/theme-manager.d.ts +20 -0
  505. package/theme/theme-manager.d.ts.map +1 -0
  506. package/theme/theme-manager.js +79 -0
  507. package/theme/theme-manager.js.map +1 -0
  508. package/theme/themes/dark-theme.d.ts +3 -0
  509. package/theme/themes/dark-theme.d.ts.map +1 -0
  510. package/theme/themes/dark-theme.js +149 -0
  511. package/theme/themes/dark-theme.js.map +1 -0
  512. package/theme/themes/light-theme.d.ts +3 -0
  513. package/theme/themes/light-theme.d.ts.map +1 -0
  514. package/theme/themes/light-theme.js +149 -0
  515. package/theme/themes/light-theme.js.map +1 -0
  516. package/types/column.types.d.ts +195 -0
  517. package/types/column.types.d.ts.map +1 -0
  518. package/types/column.types.js +2 -0
  519. package/types/column.types.js.map +1 -0
  520. package/types/event.types.d.ts +213 -0
  521. package/types/event.types.d.ts.map +1 -0
  522. package/types/event.types.js +67 -0
  523. package/types/event.types.js.map +1 -0
  524. package/types/filter.types.d.ts +42 -0
  525. package/types/filter.types.d.ts.map +1 -0
  526. package/types/filter.types.js +2 -0
  527. package/types/filter.types.js.map +1 -0
  528. package/types/grid.types.d.ts +214 -0
  529. package/types/grid.types.d.ts.map +1 -0
  530. package/types/grid.types.js +2 -0
  531. package/types/grid.types.js.map +1 -0
  532. package/types/master-detail.types.d.ts +112 -0
  533. package/types/master-detail.types.d.ts.map +1 -0
  534. package/types/master-detail.types.js +2 -0
  535. package/types/master-detail.types.js.map +1 -0
  536. package/types/photon-ai.types.d.ts +19 -0
  537. package/types/photon-ai.types.d.ts.map +1 -0
  538. package/types/photon-ai.types.js +2 -0
  539. package/types/photon-ai.types.js.map +1 -0
  540. package/types/renderer.types.d.ts +156 -0
  541. package/types/renderer.types.d.ts.map +1 -0
  542. package/types/renderer.types.js +19 -0
  543. package/types/renderer.types.js.map +1 -0
  544. package/types/row.types.d.ts +127 -0
  545. package/types/row.types.d.ts.map +1 -0
  546. package/types/row.types.js +9 -0
  547. package/types/row.types.js.map +1 -0
  548. package/types/theme.types.d.ts +159 -0
  549. package/types/theme.types.d.ts.map +1 -0
  550. package/types/theme.types.js +2 -0
  551. package/types/theme.types.js.map +1 -0
  552. package/types/tree-data.types.d.ts +94 -0
  553. package/types/tree-data.types.d.ts.map +1 -0
  554. package/types/tree-data.types.js +2 -0
  555. package/types/tree-data.types.js.map +1 -0
@@ -0,0 +1,78 @@
1
+ /**
2
+ * RAF-based edge auto-scroller for drag interactions.
3
+ *
4
+ * When the cursor is within `threshold` pixels of the viewport edges, a scroll
5
+ * delta proportional to proximity is applied every animation frame via the
6
+ * `scrollY` / `scrollX` delta callbacks. After each scrolled frame the
7
+ * optional `onScrolled` callback is invoked with the current cursor coordinates
8
+ * so the caller can re-evaluate which cell lies under the cursor.
9
+ *
10
+ * ### Usage
11
+ * 1. Call `updateMouse(x, y)` on every drag `mousemove` event.
12
+ * 2. Call `stop()` on `mouseup` or when the drag interaction ends.
13
+ * 3. Wire `onScrolled` to re-extend the selection or re-process the fill
14
+ * position after the grid has scrolled.
15
+ *
16
+ * ### Performance
17
+ * The RAF loop only executes when at least one edge is within threshold range.
18
+ * No timers or intervals are created; a single `requestAnimationFrame` chain
19
+ * drives the loop and `cancelAnimationFrame` terminates it instantly.
20
+ */
21
+ export declare class AutoScroller {
22
+ private readonly getRect;
23
+ private readonly scrollY;
24
+ private readonly scrollX;
25
+ private readonly onScrolled?;
26
+ private readonly threshold;
27
+ private readonly maxSpeed;
28
+ private rafId;
29
+ private lastTs;
30
+ private clientX;
31
+ private clientY;
32
+ private running;
33
+ /**
34
+ * @param getRect - Returns the bounding rect of the scrollable viewport
35
+ * element, or `null` when the grid is unmounted.
36
+ * @param scrollY - Called with a **signed pixel delta** to scroll
37
+ * vertically. Positive = down, negative = up.
38
+ * @param scrollX - Called with a **signed pixel delta** to scroll
39
+ * horizontally. Positive = right, negative = left.
40
+ * @param onScrolled - Optional callback invoked after any frame that
41
+ * actually scrolled. Receives the most-recent client
42
+ * coordinates so the caller can re-evaluate the drag
43
+ * target under the (now-scrolled) grid.
44
+ * @param threshold - Distance from the viewport edge (px) at which
45
+ * scrolling starts. Defaults to `60`.
46
+ * @param maxSpeed - Maximum scroll speed in px/s reached at the edge
47
+ * (dist = 0). Defaults to `500`.
48
+ */
49
+ constructor(getRect: () => DOMRect | null, scrollY: (delta: number) => void, scrollX: (delta: number) => void, onScrolled?: ((clientX: number, clientY: number) => void) | undefined, threshold?: number, maxSpeed?: number);
50
+ /**
51
+ * Updates the tracked cursor position and starts the RAF loop if it is not
52
+ * already running. Safe to call on every `mousemove` — has no overhead
53
+ * when the cursor is away from the edges.
54
+ *
55
+ * @param x - `MouseEvent.clientX`
56
+ * @param y - `MouseEvent.clientY`
57
+ */
58
+ updateMouse(x: number, y: number): void;
59
+ /**
60
+ * Stops the RAF loop immediately. Call on `mouseup` or when the drag
61
+ * interaction ends to prevent ghost scrolling after the pointer is released.
62
+ */
63
+ stop(): void;
64
+ /**
65
+ * RAF tick — computes scroll deltas from edge proximity and fires callbacks.
66
+ * Bound as an arrow field so it can be passed directly to `requestAnimationFrame`
67
+ * without a wrapper.
68
+ */
69
+ private readonly tick;
70
+ /**
71
+ * Computes scroll speed (px/s) as a linear ramp:
72
+ * `maxSpeed` at the edge (dist = 0), `0` at `threshold` distance.
73
+ *
74
+ * @param distFromEdge - Distance from the viewport edge in pixels.
75
+ */
76
+ private speedAt;
77
+ }
78
+ //# sourceMappingURL=auto-scroller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-scroller.d.ts","sourceRoot":"","sources":["../../src/renderer/auto-scroller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,YAAY;IAwBrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IA5B3B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,OAAO,CAAS;IAExB;;;;;;;;;;;;;;;OAeG;gBAEgB,OAAO,EAAE,MAAM,OAAO,GAAG,IAAI,EAC7B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAChC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAChC,UAAU,CAAC,GAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,aAAA,EACvD,SAAS,SAAK,EACd,QAAQ,SAAM;IAGjC;;;;;;;OAOG;IACH,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAUvC;;;OAGG;IACH,IAAI,IAAI,IAAI;IAQZ;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAkDnB;IAEF;;;;;OAKG;IACH,OAAO,CAAC,OAAO;CAGhB"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * RAF-based edge auto-scroller for drag interactions.
3
+ *
4
+ * When the cursor is within `threshold` pixels of the viewport edges, a scroll
5
+ * delta proportional to proximity is applied every animation frame via the
6
+ * `scrollY` / `scrollX` delta callbacks. After each scrolled frame the
7
+ * optional `onScrolled` callback is invoked with the current cursor coordinates
8
+ * so the caller can re-evaluate which cell lies under the cursor.
9
+ *
10
+ * ### Usage
11
+ * 1. Call `updateMouse(x, y)` on every drag `mousemove` event.
12
+ * 2. Call `stop()` on `mouseup` or when the drag interaction ends.
13
+ * 3. Wire `onScrolled` to re-extend the selection or re-process the fill
14
+ * position after the grid has scrolled.
15
+ *
16
+ * ### Performance
17
+ * The RAF loop only executes when at least one edge is within threshold range.
18
+ * No timers or intervals are created; a single `requestAnimationFrame` chain
19
+ * drives the loop and `cancelAnimationFrame` terminates it instantly.
20
+ */
21
+ export class AutoScroller {
22
+ /**
23
+ * @param getRect - Returns the bounding rect of the scrollable viewport
24
+ * element, or `null` when the grid is unmounted.
25
+ * @param scrollY - Called with a **signed pixel delta** to scroll
26
+ * vertically. Positive = down, negative = up.
27
+ * @param scrollX - Called with a **signed pixel delta** to scroll
28
+ * horizontally. Positive = right, negative = left.
29
+ * @param onScrolled - Optional callback invoked after any frame that
30
+ * actually scrolled. Receives the most-recent client
31
+ * coordinates so the caller can re-evaluate the drag
32
+ * target under the (now-scrolled) grid.
33
+ * @param threshold - Distance from the viewport edge (px) at which
34
+ * scrolling starts. Defaults to `60`.
35
+ * @param maxSpeed - Maximum scroll speed in px/s reached at the edge
36
+ * (dist = 0). Defaults to `500`.
37
+ */
38
+ constructor(getRect, scrollY, scrollX, onScrolled, threshold = 60, maxSpeed = 500) {
39
+ this.getRect = getRect;
40
+ this.scrollY = scrollY;
41
+ this.scrollX = scrollX;
42
+ this.onScrolled = onScrolled;
43
+ this.threshold = threshold;
44
+ this.maxSpeed = maxSpeed;
45
+ this.rafId = null;
46
+ this.lastTs = 0;
47
+ this.clientX = 0;
48
+ this.clientY = 0;
49
+ this.running = false;
50
+ /**
51
+ * RAF tick — computes scroll deltas from edge proximity and fires callbacks.
52
+ * Bound as an arrow field so it can be passed directly to `requestAnimationFrame`
53
+ * without a wrapper.
54
+ */
55
+ this.tick = (ts) => {
56
+ if (!this.running)
57
+ return;
58
+ const rect = this.getRect();
59
+ if (!rect) {
60
+ this.stop();
61
+ return;
62
+ }
63
+ // `dt` = elapsed seconds since last frame; clamped to avoid large jumps
64
+ // after a tab switch or visibility change.
65
+ const dt = this.lastTs === 0 ? 0 : Math.min((ts - this.lastTs) / 1000, 0.1);
66
+ this.lastTs = ts;
67
+ let scrolled = false;
68
+ if (dt > 0) {
69
+ const { clientX: x, clientY: y } = this;
70
+ // ── Vertical ────────────────────────────────────────────────────────────
71
+ // `dist` can be negative when the cursor has moved past the viewport
72
+ // boundary (common during fill-handle drag). Clamp to 0 so being
73
+ // outside the edge triggers max-speed scrolling rather than no scroll.
74
+ const distTop = y - rect.top;
75
+ const distBottom = rect.bottom - y;
76
+ if (distTop < this.threshold) {
77
+ this.scrollY(-this.speedAt(Math.max(0, distTop)) * dt);
78
+ scrolled = true;
79
+ }
80
+ else if (distBottom < this.threshold) {
81
+ this.scrollY(this.speedAt(Math.max(0, distBottom)) * dt);
82
+ scrolled = true;
83
+ }
84
+ // ── Horizontal ──────────────────────────────────────────────────────────
85
+ const distLeft = x - rect.left;
86
+ const distRight = rect.right - x;
87
+ if (distLeft < this.threshold) {
88
+ this.scrollX(-this.speedAt(Math.max(0, distLeft)) * dt);
89
+ scrolled = true;
90
+ }
91
+ else if (distRight < this.threshold) {
92
+ this.scrollX(this.speedAt(Math.max(0, distRight)) * dt);
93
+ scrolled = true;
94
+ }
95
+ }
96
+ if (scrolled) {
97
+ this.onScrolled?.(this.clientX, this.clientY);
98
+ }
99
+ // Keep the loop alive as long as `running` is true — stop() terminates it.
100
+ this.rafId = requestAnimationFrame(this.tick);
101
+ };
102
+ }
103
+ /**
104
+ * Updates the tracked cursor position and starts the RAF loop if it is not
105
+ * already running. Safe to call on every `mousemove` — has no overhead
106
+ * when the cursor is away from the edges.
107
+ *
108
+ * @param x - `MouseEvent.clientX`
109
+ * @param y - `MouseEvent.clientY`
110
+ */
111
+ updateMouse(x, y) {
112
+ this.clientX = x;
113
+ this.clientY = y;
114
+ if (!this.running) {
115
+ this.running = true;
116
+ this.lastTs = 0;
117
+ this.rafId = requestAnimationFrame(this.tick);
118
+ }
119
+ }
120
+ /**
121
+ * Stops the RAF loop immediately. Call on `mouseup` or when the drag
122
+ * interaction ends to prevent ghost scrolling after the pointer is released.
123
+ */
124
+ stop() {
125
+ this.running = false;
126
+ if (this.rafId !== null) {
127
+ cancelAnimationFrame(this.rafId);
128
+ this.rafId = null;
129
+ }
130
+ }
131
+ /**
132
+ * Computes scroll speed (px/s) as a linear ramp:
133
+ * `maxSpeed` at the edge (dist = 0), `0` at `threshold` distance.
134
+ *
135
+ * @param distFromEdge - Distance from the viewport edge in pixels.
136
+ */
137
+ speedAt(distFromEdge) {
138
+ return this.maxSpeed * (1 - distFromEdge / this.threshold);
139
+ }
140
+ }
141
+ //# sourceMappingURL=auto-scroller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-scroller.js","sourceRoot":"","sources":["../../src/renderer/auto-scroller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,191 @@
1
+ import type { RowNode } from '../types/row.types';
2
+ import type { ColumnDef } from '../types/column.types';
3
+ import type { GridStore } from '../core/grid-store';
4
+ import type { EventBus } from '../event-bus/event-bus';
5
+ import type { IconRenderer } from '../icons/icon-renderer';
6
+ import type { RowSelectionEngine } from '../engines/selection/row-selection-engine';
7
+ import { type TreeToggleRenderConfig } from './tree-cell-renderer';
8
+ export interface BodyRendererOptions {
9
+ showCheckboxes?: boolean;
10
+ showSerialNumber?: boolean;
11
+ showVerticalBorders?: boolean;
12
+ rowShading?: boolean;
13
+ rowHeight?: number;
14
+ api?: unknown;
15
+ dateFormat?: string;
16
+ timeZone?: string;
17
+ currencySymbol?: string;
18
+ locale?: string;
19
+ showGroupsColumn?: boolean;
20
+ autoGroupColWidth?: number;
21
+ /**
22
+ * `ColumnDef` for the innermost (deepest) grouping field.
23
+ *
24
+ * When provided, leaf data rows render an interactive cell in the auto-group
25
+ * column showing the row's value for this field — selectable, editable, and
26
+ * copyable exactly like any normal data cell.
27
+ *
28
+ * `null` (or omitted) when no grouping is active; a plain spacer is rendered
29
+ * instead to maintain column alignment.
30
+ */
31
+ leafGroupColDef?: ColumnDef | null;
32
+ /**
33
+ * Full, unfiltered column list — includes columns hidden by horizontal
34
+ * virtualization AND columns hidden because they're the active group-by
35
+ * field. Used to resolve a group row's `groupField` to its `ColumnDef` so a
36
+ * custom `renderer.group` can be looked up even though that column itself
37
+ * renders no cell of its own while grouped.
38
+ */
39
+ allLeafColumns?: ColumnDef[];
40
+ centerColStart?: number;
41
+ centerLeftSpacerW?: number;
42
+ centerRightSpacerW?: number;
43
+ totalCenterCols?: number;
44
+ /**
45
+ * When Master/Detail is enabled, drives the expand/collapse toggle icon
46
+ * rendered on `'data'` rows for the configured toggle column.
47
+ */
48
+ masterDetail?: {
49
+ toggleColumnId: string;
50
+ isExpandedFn: (nodeId: string) => boolean;
51
+ hasDetailFn: (rowData: Record<string, unknown>) => boolean;
52
+ };
53
+ /**
54
+ * When Tree Data is enabled, drives indentation (`data-level` on the row
55
+ * element) and the expand/collapse toggle rendered on `'data'` rows with
56
+ * children, in the configured toggle column.
57
+ */
58
+ treeData?: TreeToggleRenderConfig;
59
+ }
60
+ export declare class BodyRenderer {
61
+ private store;
62
+ private eventBus;
63
+ private iconRenderer;
64
+ private rowSelectionEngine;
65
+ private cellRenderer;
66
+ private renderedRowMap;
67
+ private leftContent;
68
+ private centerContent;
69
+ private rightContent;
70
+ private lastCenterStart;
71
+ private lastCenterEnd;
72
+ private leftSticky;
73
+ private centerSticky;
74
+ private rightSticky;
75
+ /** `nodeId`s of the rows currently parked in the sticky containers — a single Master/Detail master row, or a stack of Tree Data ancestor rows. */
76
+ private stuckNodeIds;
77
+ constructor(store: GridStore, eventBus: EventBus, iconRenderer: IconRenderer, rowSelectionEngine: RowSelectionEngine);
78
+ setPanels(leftContent: HTMLElement | null, centerContent: HTMLElement, rightContent: HTMLElement | null): void;
79
+ /** Wires the per-panel sticky-row overlay containers. Called once from `GridRenderer` when `masterDetail.enabled`. */
80
+ setStickyContainers(left: HTMLElement | null, center: HTMLElement | null, right: HTMLElement | null): void;
81
+ /**
82
+ * Parks each entry's row in the sticky overlay (pinned at the panel's own
83
+ * top, ignoring the scroll transform, stacked in array order) — releasing
84
+ * whatever was previously stuck but isn't in `entries` back into normal
85
+ * scrolled flow. A single entry reproduces the old Master/Detail behavior;
86
+ * multiple entries stack Tree Data's ancestor-row chain, each at its own
87
+ * `top` (see `TreeStickyRowTracker`).
88
+ *
89
+ * Moves the *actual* cached DOM nodes (not clones) so every existing
90
+ * listener, selection class, and edit-in-progress state carries over
91
+ * untouched — this only ever runs on already-rendered rows.
92
+ */
93
+ setStickyRows(entries: ReadonlyArray<{
94
+ nodeId: string;
95
+ top: number;
96
+ }>): void;
97
+ renderRows(rows: RowNode[], leftCols: ColumnDef[], centerCols: ColumnDef[], // visible slice only
98
+ rightCols: ColumnDef[], options?: BodyRendererOptions): void;
99
+ updateRowSelection(nodeId: string, selected: boolean): void;
100
+ /**
101
+ * Advances the tracked virtual-column range without touching any DOM.
102
+ *
103
+ * Call this when the column range has logically changed but the body rows must
104
+ * NOT be rebuilt — specifically during an active column resize where CSS rules
105
+ * already handle width changes via `ColumnStyleManager`. Keeping the tracked
106
+ * range current prevents the next normal `renderRows` call (on `mouseup`) from
107
+ * seeing a false "range changed" signal and wiping all center panels.
108
+ *
109
+ * @param cStart - New first visible center-column index.
110
+ * @param cEnd - New last visible center-column index (exclusive).
111
+ */
112
+ syncCenterRange(cStart: number, cEnd: number): void;
113
+ clear(): void;
114
+ /**
115
+ * Evicts only the specified rows from the render cache so they are fully
116
+ * rebuilt on the next paint cycle. Rows whose `nodeId` is not in the set
117
+ * are untouched — their DOM is reused as-is, so custom cell renderers
118
+ * (images, flags, progress bars, etc.) are NOT re-executed for them.
119
+ *
120
+ * Use this instead of `clear()` after in-place data mutations (fill, cut,
121
+ * paste, undo/redo) where only a known subset of rows changed.
122
+ *
123
+ * @param nodeIds - Set of row node IDs whose cache entries should be evicted.
124
+ */
125
+ invalidateRowsByNodeId(nodeIds: Set<string>): void;
126
+ destroy(): void;
127
+ private buildPanelRow;
128
+ private buildSingleRow;
129
+ /**
130
+ * Renders the auto-group column cell for a **leaf data row**.
131
+ *
132
+ * When `options.leafGroupColDef` is set (i.e. grouping is active), this cell
133
+ * shows the row's actual value for the deepest grouping field and participates
134
+ * fully in cell selection (colIndex −1), keyboard navigation, editing, and
135
+ * copy/cut/paste — behaving exactly like any normal data cell.
136
+ *
137
+ * When `leafGroupColDef` is absent (no grouping active) a non-interactive
138
+ * spacer cell is rendered to maintain column alignment with group header rows.
139
+ *
140
+ * @param el - Row container element to append the cell into.
141
+ * @param row - Leaf data `RowNode` being rendered.
142
+ * @param options - Renderer options; `autoGroupColWidth` controls cell width.
143
+ */
144
+ private buildLeafGroupCell;
145
+ private buildGroupRowContent;
146
+ /**
147
+ * Builds the label cell for a group **footer** row.
148
+ *
149
+ * Unlike the header, there is no expand/collapse toggle — the cell shows
150
+ * a Σ-prefixed group value to signal "total for this group".
151
+ * The cell participates in cell selection (colIndex −1) identically to the
152
+ * group header's label cell.
153
+ */
154
+ private buildGroupFooterContent;
155
+ /**
156
+ * Append one `pg-cell` per column to `el` for a group row.
157
+ *
158
+ * - Columns with `type === 'currency'` **and** `aggFunc` set receive a
159
+ * `pg-cell--agg` cell showing the formatted aggregate value.
160
+ * - All other columns receive an empty `pg-cell` to maintain column
161
+ * alignment with data rows.
162
+ *
163
+ * Column widths are automatically applied by the {@link ColumnStyleManager}
164
+ * via the `[data-col-id]` CSS rules — no inline width needed here.
165
+ */
166
+ private buildGroupAggregateCells;
167
+ /**
168
+ * Format a computed aggregate value for display.
169
+ *
170
+ * - For `count` the value is emitted as a plain integer string.
171
+ * - For all other functions the value is routed through {@link formatValue}
172
+ * so the column's currency symbol, locale, and precision are applied.
173
+ *
174
+ * @param value - Raw numeric aggregate result.
175
+ * @param col - Column definition (used for type and formatting options).
176
+ * @param options - Renderer options (locale, currency symbol, etc.).
177
+ */
178
+ private formatAggValue;
179
+ private updatePanelRow;
180
+ /**
181
+ * Inserts the Master/Detail expand/collapse toggle as a sibling of
182
+ * `.pg-cell__inner` (never inside it) — `.pg-cell__inner` is wiped and
183
+ * rebuilt wholesale by cell-edit start/stop (`GridCore.startCellEdit` /
184
+ * `renderCellValue`), which would silently destroy a toggle placed inside it
185
+ * the first time this column is edited.
186
+ */
187
+ private applyMasterDetailToggle;
188
+ private attachRowListeners;
189
+ private getRowClass;
190
+ }
191
+ //# sourceMappingURL=body-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"body-renderer.d.ts","sourceRoot":"","sources":["../../src/renderer/body-renderer.ts"],"names":[],"mappings":"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"}