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,42 @@
1
+ export type FilterOperator = 'contains' | 'notContains' | 'equals' | 'notEquals' | 'startsWith' | 'endsWith' | 'lessThan' | 'lessThanOrEqual' | 'greaterThan' | 'greaterThanOrEqual' | 'inRange' | 'blank' | 'notBlank' | 'before' | 'after' | 'in' | 'notIn';
2
+ export type FilterLogic = 'and' | 'or';
3
+ export type FilterDataType = 'string' | 'number' | 'date' | 'boolean' | 'dropdown' | 'array';
4
+ export interface FilterCondition {
5
+ operator: FilterOperator;
6
+ value: unknown;
7
+ valueTo?: unknown;
8
+ }
9
+ export interface ColumnFilter {
10
+ colId: string;
11
+ field: string;
12
+ type: FilterDataType;
13
+ logic: FilterLogic;
14
+ conditions: [FilterCondition] | [FilterCondition, FilterCondition];
15
+ selectedIds?: (string | number)[];
16
+ searchTerm?: string;
17
+ }
18
+ export interface FilterModel {
19
+ [colId: string]: ColumnFilter;
20
+ }
21
+ export interface QuickFilterConfig {
22
+ term: string;
23
+ caseSensitive?: boolean;
24
+ fields?: string[];
25
+ }
26
+ export interface FilterResult<T = Record<string, unknown>> {
27
+ data: T[];
28
+ filteredCount: number;
29
+ totalCount: number;
30
+ }
31
+ /**
32
+ * A value/label pair used to populate a set-filter checkbox list.
33
+ * For `dropdown` columns the `value` is the raw option value and `label` is the
34
+ * display label. For all other set-type columns `value === label`.
35
+ */
36
+ export interface FilterSetOption {
37
+ /** Raw cell value used when building the {@link ColumnFilter.selectedIds} array. */
38
+ value: string;
39
+ /** Human-readable label rendered in the checkbox list. */
40
+ label: string;
41
+ }
42
+ //# sourceMappingURL=filter.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.types.d.ts","sourceRoot":"","sources":["../../src/types/filter.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,aAAa,GACb,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,UAAU,GACV,UAAU,GACV,iBAAiB,GACjB,aAAa,GACb,oBAAoB,GACpB,SAAS,GACT,OAAO,GACP,UAAU,GACV,QAAQ,GACR,OAAO,GACP,IAAI,GACJ,OAAO,CAAC;AAEZ,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC;AACvC,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAE7F,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACnE,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvD,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,oFAAoF;IACpF,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=filter.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.types.js","sourceRoot":"","sources":["../../src/types/filter.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,214 @@
1
+ import type { ColumnDef, ColumnState } from './column.types';
2
+ import type { FilterModel, QuickFilterConfig } from './filter.types';
3
+ import type { BuiltInThemeName } from './theme.types';
4
+ import type { MasterDetailConfig } from './master-detail.types';
5
+ import type { PhotonAIConfig } from './photon-ai.types';
6
+ import type { TreeDataConfig } from './tree-data.types';
7
+ export interface SortConfig {
8
+ colId: string;
9
+ field: string;
10
+ order: 'asc' | 'desc';
11
+ }
12
+ export interface PaginationConfig {
13
+ enabled: boolean;
14
+ page: number;
15
+ pageSize: number;
16
+ pageSizeOptions: number[];
17
+ serverSide: boolean;
18
+ totalRows?: number;
19
+ }
20
+ export interface SelectionConfig {
21
+ mode: 'single' | 'multiple' | 'none';
22
+ checkboxSelection: boolean;
23
+ selectAllOnHeaderClick: boolean;
24
+ headerCheckbox: boolean;
25
+ suppressRowDeselection: boolean;
26
+ }
27
+ /**
28
+ * Configuration for in-cell editing behaviour.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * editing: {
33
+ * mode: 'cell',
34
+ * singleClickEdit: true,
35
+ * stopEditingWhenCellsLoseFocus: true,
36
+ * }
37
+ * ```
38
+ */
39
+ export interface EditingConfig {
40
+ /**
41
+ * Editing mode for the grid.
42
+ * - `'cell'` — individual cells are edited one at a time (default).
43
+ * - `'row'` — an entire row enters edit mode together.
44
+ * - `'none'` — editing is fully disabled.
45
+ */
46
+ mode: 'cell' | 'row' | 'none';
47
+ /**
48
+ * When `true`, a **single click** activates the cell editor.
49
+ * When `false` (default), a **double-click** is required — matching AG Grid default behaviour.
50
+ */
51
+ singleClickEdit: boolean;
52
+ /**
53
+ * When `true` (default), the active editor commits its value and closes when the
54
+ * grid loses focus. Set to `false` to keep the editor open until the user
55
+ * explicitly confirms (Enter) or cancels (Escape).
56
+ */
57
+ stopEditingWhenCellsLoseFocus: boolean;
58
+ }
59
+ export interface RowGroupingConfig {
60
+ enabled: boolean;
61
+ groupedColumns: string[];
62
+ showGroupCount: boolean;
63
+ defaultExpanded: boolean;
64
+ suppressAutoSize: boolean;
65
+ }
66
+ export interface VirtualScrollConfig {
67
+ enabled: boolean;
68
+ rowBuffer: number;
69
+ rowHeight: number;
70
+ dynamicRowHeight: boolean;
71
+ }
72
+ export interface ExportConfig {
73
+ enabled: boolean;
74
+ fileName: string;
75
+ formats: ('csv' | 'xlsx')[];
76
+ includeHiddenColumns: boolean;
77
+ processCellValue?: (params: {
78
+ value: unknown;
79
+ colDef: ColumnDef;
80
+ }) => string;
81
+ }
82
+ export interface CellRange {
83
+ startRowIndex: number;
84
+ endRowIndex: number;
85
+ startColIndex: number;
86
+ endColIndex: number;
87
+ }
88
+ /**
89
+ * Options controlling the column-group header system.
90
+ *
91
+ * All properties are optional and layered on top of per-column group defaults
92
+ * specified in {@link ColumnDef}.
93
+ */
94
+ export interface ColumnGroupConfig {
95
+ /**
96
+ * When `true`, the multi-row grouped header is rendered.
97
+ * Set this explicitly when column definitions contain `children` arrays.
98
+ * @default auto-detected (true if any ColumnDef has `children`)
99
+ */
100
+ enabled?: boolean;
101
+ /**
102
+ * Default resize strategy applied to every group that does not specify its own.
103
+ * @default ColumnGroupResizeStrategy.PROPORTIONAL
104
+ */
105
+ defaultResizeStrategy?: import('./column.types').ColumnDef['groupResizeStrategy'];
106
+ /**
107
+ * Default collapsed-state pixel width for groups that do not set `collapsedWidth`.
108
+ * @default 26
109
+ */
110
+ defaultCollapsedWidth?: number;
111
+ /**
112
+ * When `true`, column groups open in collapsed state unless `ColumnDef.openByDefault`
113
+ * explicitly overrides. Defaults match AG Grid convention (open by default).
114
+ * @default false
115
+ */
116
+ suppressOpenByDefault?: boolean;
117
+ }
118
+ export interface GridOptions {
119
+ columns: ColumnDef[];
120
+ data?: Record<string, unknown>[];
121
+ theme?: BuiltInThemeName | string;
122
+ rowHeight?: number;
123
+ rowHeightMode?: 'fixed' | 'auto';
124
+ headerRowHeight?: number;
125
+ footerRowHeight?: number;
126
+ filterRowHeight?: number;
127
+ showSerialNumber?: boolean;
128
+ showCheckboxes?: boolean;
129
+ showTopBar?: boolean;
130
+ showFooter?: boolean;
131
+ showSidePanel?: boolean;
132
+ showFullScreen?: boolean;
133
+ showColumnMenu?: boolean;
134
+ showVerticalBorders?: boolean;
135
+ showHorizontalBorders?: boolean;
136
+ showFilterRow?: boolean;
137
+ rowShading?: boolean;
138
+ selection?: Partial<SelectionConfig>;
139
+ editing?: Partial<EditingConfig>;
140
+ pagination?: Partial<PaginationConfig>;
141
+ grouping?: Partial<RowGroupingConfig>;
142
+ virtualScroll?: Partial<VirtualScrollConfig>;
143
+ exportConfig?: Partial<ExportConfig>;
144
+ sortConfig?: SortConfig[];
145
+ filterModel?: FilterModel;
146
+ quickFilter?: QuickFilterConfig;
147
+ columnState?: ColumnState[];
148
+ enableCellSelection?: boolean;
149
+ enableRangeSelection?: boolean;
150
+ enableClipboard?: boolean;
151
+ enableRowDrag?: boolean;
152
+ enableColumnDrag?: boolean;
153
+ enableCharts?: boolean;
154
+ enableFullScreen?: boolean;
155
+ showGroupingBar?: boolean;
156
+ /** Column-group header configuration. @see {@link ColumnGroupConfig} */
157
+ columnGroups?: ColumnGroupConfig;
158
+ /**
159
+ * Master/Detail configuration — expandable rows whose detail section is a
160
+ * fully independent nested Photon Grid instance (or custom content).
161
+ * @see {@link MasterDetailConfig}
162
+ */
163
+ masterDetail?: MasterDetailConfig;
164
+ /**
165
+ * Photon AI — a floating, deterministic natural-language command bar for
166
+ * the grid (sort/filter/pin/hide/group/select), with zero external AI
167
+ * services. @see {@link PhotonAIConfig}
168
+ */
169
+ photonAI?: PhotonAIConfig;
170
+ /**
171
+ * Tree Data — self-referential row hierarchy (org charts, file trees,
172
+ * bills of materials) driven by a `parentId`/`id` pair, nested `children`
173
+ * arrays, a `getDataPath()` callback, or a custom hierarchy provider.
174
+ * Mutually exclusive with `grouping` — a grid is either tree-structured or
175
+ * column-value-grouped, never both at once. @see {@link TreeDataConfig}
176
+ */
177
+ treeData?: TreeDataConfig;
178
+ enableStateManagement?: boolean;
179
+ stateKey?: string;
180
+ dateFormat?: string;
181
+ timeZone?: string;
182
+ currencySymbol?: string;
183
+ currencyFormat?: string;
184
+ locale?: string;
185
+ loadingOverlayText?: string;
186
+ noRowsOverlayText?: string;
187
+ noRowsOverlayHtml?: string;
188
+ rowClassFn?: (row: Record<string, unknown>, index: number) => string;
189
+ rowHeightFn?: (row: Record<string, unknown>) => number;
190
+ suppressScrollOnNewData?: boolean;
191
+ suppressColumnVirtualisation?: boolean;
192
+ onReady?: (api: unknown) => void;
193
+ }
194
+ export interface GridState {
195
+ columnStates: ColumnState[];
196
+ sortConfig: SortConfig[];
197
+ filterModel: FilterModel;
198
+ paginationPage: number;
199
+ paginationPageSize: number;
200
+ groupedColumns: string[];
201
+ expandedGroups: string[];
202
+ expandedTreeNodeIds: string[];
203
+ selectedRowIds: string[];
204
+ }
205
+ export interface GridDimensions {
206
+ containerWidth: number;
207
+ containerHeight: number;
208
+ headerHeight: number;
209
+ bodyHeight: number;
210
+ footerHeight: number;
211
+ totalContentHeight: number;
212
+ totalContentWidth: number;
213
+ }
214
+ //# sourceMappingURL=grid.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.types.d.ts","sourceRoot":"","sources":["../../src/types/grid.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=grid.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.types.js","sourceRoot":"","sources":["../../src/types/grid.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,112 @@
1
+ import type { GridOptions } from './grid.types';
2
+ import type { GridEventType } from './event.types';
3
+ /**
4
+ * Parameters passed to a {@link MasterDetailConfig.detailRendererFn} custom
5
+ * detail renderer — the escape hatch used when a detail row should show
6
+ * arbitrary content instead of a nested Photon Grid instance.
7
+ */
8
+ export interface DetailRendererParams {
9
+ /** Raw data of the parent (master) row being expanded. */
10
+ rowData: Record<string, unknown>;
11
+ /** Stable node id of the parent row's `RowNode`. */
12
+ nodeId: string;
13
+ /** Empty container the renderer must populate. Its size drives auto-height measurement. */
14
+ containerEl: HTMLElement;
15
+ /**
16
+ * The parent grid's `GridApi`. Typed `unknown` here (mirrors
17
+ * `DisplayRendererParams.api`) to avoid a `types -> core` import cycle —
18
+ * callers cast to `GridApi` themselves.
19
+ */
20
+ parentApi: unknown;
21
+ }
22
+ /**
23
+ * Master/Detail configuration for a grid instance.
24
+ *
25
+ * Enabling this turns qualifying rows into expandable "master" rows whose
26
+ * detail section is, by default, a fully independent nested Photon Grid
27
+ * instance — complete with its own sorting, filtering, selection, editing,
28
+ * clipboard, undo/redo, context menu, row drag, fill handle, and overlay
29
+ * layer. Because {@link detailGrid} is itself a `GridOptions`, nesting is
30
+ * unlimited: a detail grid may declare its own `masterDetail` config.
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * masterDetail: {
35
+ * enabled: true,
36
+ * toggleColumnId: 'name',
37
+ * hasDetail: (row) => row.orderCount > 0,
38
+ * getDetailData: (row) => fetchOrders(row.id),
39
+ * detailGrid: (row) => ({ columns: orderColumns, rowHeight: 36 }),
40
+ * detailMaxHeight: 320,
41
+ * }
42
+ * ```
43
+ */
44
+ export interface MasterDetailConfig {
45
+ /** Master/Detail is otherwise fully inert — every consumer must opt in explicitly. */
46
+ enabled: boolean;
47
+ /**
48
+ * `colId` of the column that renders the expand/collapse toggle.
49
+ * Defaults to the first visible column when omitted.
50
+ */
51
+ toggleColumnId?: string;
52
+ /**
53
+ * Determines whether a given row can be expanded. Rows failing this check
54
+ * render no toggle icon at all. Defaults to "every row has detail".
55
+ */
56
+ hasDetail?: (rowData: Record<string, unknown>) => boolean;
57
+ /**
58
+ * Fetches the detail dataset for a row, synchronously or asynchronously.
59
+ * The resolved array becomes the nested grid's `GridOptions.data`.
60
+ * When omitted, the nested grid is built with no data (useful when
61
+ * `detailGrid`/`detailRendererFn` supply data themselves).
62
+ */
63
+ getDetailData?: (rowData: Record<string, unknown>) => Record<string, unknown>[] | Promise<Record<string, unknown>[]>;
64
+ /**
65
+ * Full configuration for the nested Photon Grid instance — a static
66
+ * object shared by every detail row, or a per-row factory. `theme` is
67
+ * inherited from the parent's active theme unless set here explicitly.
68
+ */
69
+ detailGrid?: GridOptions | ((rowData: Record<string, unknown>) => GridOptions);
70
+ /**
71
+ * Escape hatch for non-grid detail content. When supplied, this takes
72
+ * priority over {@link detailGrid} — no nested `GridCore` is created.
73
+ */
74
+ detailRendererFn?: (params: DetailRendererParams) => HTMLElement;
75
+ /** Whether newly-encountered rows start expanded. Default `false`. */
76
+ defaultExpanded?: boolean;
77
+ /** Lower clamp applied to both auto-measured and manually resized height. */
78
+ detailMinHeight?: number;
79
+ /** Upper clamp applied to both auto-measured and manually resized height. Overflow scrolls. */
80
+ detailMaxHeight?: number;
81
+ /**
82
+ * When `true` (default), the detail row's height tracks the nested grid's
83
+ * rendered content via `ResizeObserver`. When `false`, `detailFixedHeight`
84
+ * (or a `48px` fallback) is used instead.
85
+ */
86
+ detailAutoHeight?: boolean;
87
+ /** Fixed pixel height used when `detailAutoHeight` is `false`. */
88
+ detailFixedHeight?: number;
89
+ /** Shows a drag handle on the detail row's bottom edge letting users resize it manually. Default `false`. */
90
+ detailResizable?: boolean;
91
+ /**
92
+ * When `true` (default), the nested grid is not constructed — and
93
+ * `getDetailData` is not called — until the row is first expanded.
94
+ */
95
+ lazy?: boolean;
96
+ /**
97
+ * Event types re-emitted on the parent grid's event bus whenever the
98
+ * nested grid emits them, or `true` to bubble every event. Payloads are
99
+ * wrapped as `{ sourceNodeId, event: <original payload> }`. Default: none.
100
+ */
101
+ bubbleEvents?: GridEventType[] | boolean;
102
+ /**
103
+ * How many collapsed detail rows keep their nested grid instance alive
104
+ * (rather than destroyed) so re-expanding restores its live state —
105
+ * sort, column order/width, scroll position, selection — instead of
106
+ * rebuilding from scratch. Least-recently-collapsed instances beyond this
107
+ * bound are evicted and destroyed to keep memory use constant regardless
108
+ * of how many rows a user expands over a session. Default `10`.
109
+ */
110
+ keepDetailGridsCount?: number;
111
+ }
112
+ //# sourceMappingURL=master-detail.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"master-detail.types.d.ts","sourceRoot":"","sources":["../../src/types/master-detail.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,2FAA2F;IAC3F,WAAW,EAAE,WAAW,CAAC;IACzB;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,kBAAkB;IACjC,sFAAsF;IACtF,OAAO,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;IAE1D;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAEpE;;;;OAIG;IACH,UAAU,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,WAAW,CAAC,CAAC;IAE/E;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,WAAW,CAAC;IAEjE,sEAAsE;IACtE,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,+FAA+F;IAC/F,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,6GAA6G;IAC7G,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;;OAIG;IACH,YAAY,CAAC,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAEzC;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=master-detail.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"master-detail.types.js","sourceRoot":"","sources":["../../src/types/master-detail.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Configuration for Photon AI — a deterministic natural-language command bar
3
+ * for the grid. Photon AI is **not** an LLM: it is a rule-based interpreter
4
+ * that normalizes text, matches it against a registry of known intents, and
5
+ * translates the result into calls against the existing {@link GridApi} — no
6
+ * network calls, no external AI services.
7
+ *
8
+ * @see {@link PhotonAIService} in `src/photon-ai/photon-ai-service.ts` for the
9
+ * runtime pipeline this config drives.
10
+ */
11
+ export interface PhotonAIConfig {
12
+ /** Photon AI is otherwise fully inert — every consumer must opt in explicitly. */
13
+ enabled: boolean;
14
+ /** Placeholder text shown in the empty command input. @default "Ask Photon AI..." */
15
+ placeholder?: string;
16
+ /** Whether the panel starts open on grid mount. @default false */
17
+ defaultOpen?: boolean;
18
+ }
19
+ //# sourceMappingURL=photon-ai.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"photon-ai.types.d.ts","sourceRoot":"","sources":["../../src/types/photon-ai.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,kFAAkF;IAClF,OAAO,EAAE,OAAO,CAAC;IAEjB,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kEAAkE;IAClE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=photon-ai.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"photon-ai.types.js","sourceRoot":"","sources":["../../src/types/photon-ai.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,156 @@
1
+ import type { AggFunc, ColumnDef, ColumnDropdownOption } from './column.types';
2
+ import type { ColumnFilter, FilterSetOption } from './filter.types';
3
+ import type { RowNode } from './row.types';
4
+ /**
5
+ * Identifies one customizable rendering concern on a column.
6
+ *
7
+ * Used internally wherever a slot needs to be looked up generically (e.g.
8
+ * {@link resolveColumnRenderer}) instead of by a hardcoded property access,
9
+ * so new slots can be added without touching every call site.
10
+ */
11
+ export declare enum RendererSlot {
12
+ Display = "display",
13
+ Editor = "editor",
14
+ Option = "option",
15
+ Filter = "filter",
16
+ Tooltip = "tooltip",
17
+ Group = "group",
18
+ Header = "header",
19
+ Summary = "summary"
20
+ }
21
+ /**
22
+ * Anything a renderer slot may return: a ready-made element to append, or an
23
+ * HTML string to be assigned via `innerHTML` (mirrors how the grid has always
24
+ * accepted string output from custom renderers).
25
+ */
26
+ export type RendererOutput = HTMLElement | string;
27
+ /** Params passed to {@link ColumnRendererMap.display} — how a data cell's value is drawn. */
28
+ export interface DisplayRendererParams {
29
+ value: unknown;
30
+ rawValue: unknown;
31
+ row: Record<string, unknown>;
32
+ colDef: ColumnDef;
33
+ rowIndex: number;
34
+ colIndex: number;
35
+ api: unknown;
36
+ }
37
+ /**
38
+ * Params passed to {@link ColumnRendererMap.editor} — how a cell's edit widget is built.
39
+ *
40
+ * The renderer owns its own input element(s) entirely; it must call
41
+ * `onValueChange` as the user edits and `onEditStop` to commit and close the
42
+ * editor (e.g. on blur or Enter). The grid handles validation, undo/redo, and
43
+ * DOM teardown the same way it does for built-in editors.
44
+ */
45
+ export interface EditorRendererParams {
46
+ value: unknown;
47
+ row: Record<string, unknown>;
48
+ colDef: ColumnDef;
49
+ rowIndex: number;
50
+ onValueChange: (newValue: unknown) => void;
51
+ onEditStop: () => void;
52
+ }
53
+ /**
54
+ * Params passed to {@link ColumnRendererMap.option} — one row in a dropdown/select
55
+ * option list. Used both by the cell editor's option list and by the default
56
+ * filter panel's set-filter checkbox list, so one `option` renderer covers
57
+ * both surfaces consistently (e.g. a flag icon next to a country name).
58
+ */
59
+ export interface OptionRendererParams {
60
+ option: ColumnDropdownOption;
61
+ index: number;
62
+ selected: boolean;
63
+ highlighted: boolean;
64
+ colDef: ColumnDef;
65
+ api: unknown;
66
+ }
67
+ /**
68
+ * Params passed to {@link ColumnRendererMap.filter} — the full filter panel body for a column.
69
+ *
70
+ * A custom filter renderer is responsible for its own apply/clear affordances;
71
+ * it should call `onFilterChange` whenever the effective filter changes (or
72
+ * `null` to clear it) and `onClose` when it should be dismissed.
73
+ */
74
+ export interface FilterRendererParams {
75
+ colDef: ColumnDef;
76
+ anchorEl: HTMLElement;
77
+ currentFilter: ColumnFilter | null;
78
+ uniqueOptions: FilterSetOption[];
79
+ onFilterChange: (filter: ColumnFilter | null) => void;
80
+ onClose: () => void;
81
+ api: unknown;
82
+ }
83
+ /** Params passed to {@link ColumnRendererMap.tooltip} — content shown when hovering a cell. */
84
+ export interface TooltipRendererParams {
85
+ value: unknown;
86
+ rawValue: unknown;
87
+ row: Record<string, unknown>;
88
+ colDef: ColumnDef;
89
+ rowIndex: number;
90
+ colIndex: number;
91
+ api: unknown;
92
+ }
93
+ /**
94
+ * Params passed to {@link ColumnRendererMap.group} — the label content of a
95
+ * group-header row for the column currently being grouped by.
96
+ *
97
+ * Only the label is replaced; the expand/collapse toggle button remains the
98
+ * grid's default so grouping interaction always keeps working.
99
+ */
100
+ export interface GroupRendererParams {
101
+ row: RowNode;
102
+ colDef: ColumnDef;
103
+ groupValue: unknown;
104
+ childCount: number;
105
+ collapsed: boolean;
106
+ api: unknown;
107
+ }
108
+ /** Params passed to {@link ColumnRendererMap.header} — a column header cell's content. */
109
+ export interface HeaderRendererParams {
110
+ colDef: ColumnDef;
111
+ sortOrder: 'asc' | 'desc' | null;
112
+ filterActive: boolean;
113
+ api: unknown;
114
+ }
115
+ /** Params passed to {@link ColumnRendererMap.summary} — an aggregate/summary cell's content. */
116
+ export interface SummaryRendererParams {
117
+ colDef: ColumnDef;
118
+ value: unknown;
119
+ aggregation: AggFunc;
120
+ label?: string;
121
+ api: unknown;
122
+ }
123
+ /**
124
+ * Per-column rendering overrides, grouped by concern.
125
+ *
126
+ * Every slot is independently optional — an absent slot falls back to Photon
127
+ * Grid's built-in rendering for that concern, so columns can override just
128
+ * one aspect (e.g. only `display`) without having to reimplement the rest.
129
+ *
130
+ * Each slot's contract is a plain function returning `HTMLElement | string`,
131
+ * which keeps the core framework-agnostic: a future React/Angular/Vue wrapper
132
+ * package can implement any slot by mounting a component/template into a
133
+ * detached container and returning it, with no changes required here.
134
+ *
135
+ * @example
136
+ * ```ts
137
+ * const countryColumn: ColumnDef = {
138
+ * colId: 'country', field: 'country', header: 'Country', type: 'dropdown',
139
+ * renderer: {
140
+ * display: ({ value }) => `<span class="flag">${value}</span>`,
141
+ * option: ({ option }) => `<span class="flag">${option.label}</span>`,
142
+ * },
143
+ * };
144
+ * ```
145
+ */
146
+ export interface ColumnRendererMap {
147
+ display?: (params: DisplayRendererParams) => RendererOutput;
148
+ editor?: (params: EditorRendererParams) => HTMLElement;
149
+ option?: (params: OptionRendererParams) => RendererOutput;
150
+ filter?: (params: FilterRendererParams) => HTMLElement;
151
+ tooltip?: (params: TooltipRendererParams) => RendererOutput;
152
+ group?: (params: GroupRendererParams) => RendererOutput;
153
+ header?: (params: HeaderRendererParams) => RendererOutput;
154
+ summary?: (params: SummaryRendererParams) => RendererOutput;
155
+ }
156
+ //# sourceMappingURL=renderer.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.types.d.ts","sourceRoot":"","sources":["../../src/types/renderer.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Identifies one customizable rendering concern on a column.
3
+ *
4
+ * Used internally wherever a slot needs to be looked up generically (e.g.
5
+ * {@link resolveColumnRenderer}) instead of by a hardcoded property access,
6
+ * so new slots can be added without touching every call site.
7
+ */
8
+ export var RendererSlot;
9
+ (function (RendererSlot) {
10
+ RendererSlot["Display"] = "display";
11
+ RendererSlot["Editor"] = "editor";
12
+ RendererSlot["Option"] = "option";
13
+ RendererSlot["Filter"] = "filter";
14
+ RendererSlot["Tooltip"] = "tooltip";
15
+ RendererSlot["Group"] = "group";
16
+ RendererSlot["Header"] = "header";
17
+ RendererSlot["Summary"] = "summary";
18
+ })(RendererSlot || (RendererSlot = {}));
19
+ //# sourceMappingURL=renderer.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.types.js","sourceRoot":"","sources":["../../src/types/renderer.types.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,YASX;AATD,WAAY,YAAY;IACtB,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,mCAAmB,CAAA;IACnB,+BAAe,CAAA;IACf,iCAAiB,CAAA;IACjB,mCAAmB,CAAA;AACrB,CAAC,EATW,YAAY,KAAZ,YAAY,QASvB"}