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,376 @@
1
+ import { createDiv } from './dom-utils';
2
+ export class GroupDropZone {
3
+ constructor(store, groupingEngine, iconRenderer) {
4
+ this.store = store;
5
+ this.groupingEngine = groupingEngine;
6
+ this.iconRenderer = iconRenderer;
7
+ this.el = null;
8
+ this.chipsEl = null;
9
+ this.dockPos = 'top';
10
+ this.outerRowEl = null;
11
+ this.mainColEl = null;
12
+ this.isDockDragging = false;
13
+ this.dockIndicatorEl = null;
14
+ this._onDockMove = null;
15
+ this._onDockUp = null;
16
+ this.draggingChipId = null;
17
+ this.chipGhostEl = null;
18
+ this.chipDropIndex = -1;
19
+ this._onChipMove = null;
20
+ this._onChipUp = null;
21
+ this.isResizing = false;
22
+ this.resizeStartSize = 0;
23
+ this.resizeStartPos = 0;
24
+ this._onResizeMove = null;
25
+ this._onResizeUp = null;
26
+ this.searchCallback = null;
27
+ this.searchInputEl = null;
28
+ this.searchClearEl = null;
29
+ this.searchDebounceTimer = null;
30
+ }
31
+ mount(outerRowEl, mainColEl) {
32
+ this.outerRowEl = outerRowEl;
33
+ this.mainColEl = mainColEl;
34
+ this.el = createDiv('pg-group-drop-zone pg-group-drop-zone--top');
35
+ mainColEl.insertBefore(this.el, mainColEl.firstChild);
36
+ this.buildStructure();
37
+ this.render();
38
+ }
39
+ update() {
40
+ this.render();
41
+ }
42
+ highlight(on) {
43
+ this.chipsEl?.classList.toggle('pg-group-zone-chips--over', on);
44
+ }
45
+ isOver(x, y) {
46
+ const rect = this.el?.getBoundingClientRect();
47
+ if (!rect)
48
+ return false;
49
+ return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;
50
+ }
51
+ isGrouped(colId) {
52
+ return this.store.get('groupedColumnIds').includes(colId);
53
+ }
54
+ dropColumn(colId) {
55
+ this.groupingEngine.addGroupColumn(colId);
56
+ }
57
+ removeColumn(colId) {
58
+ this.groupingEngine.removeGroupColumn(colId);
59
+ }
60
+ setSearchCallback(fn) {
61
+ this.searchCallback = fn;
62
+ }
63
+ destroy() {
64
+ if (this.searchDebounceTimer !== null) {
65
+ clearTimeout(this.searchDebounceTimer);
66
+ this.searchDebounceTimer = null;
67
+ }
68
+ this.cleanupDockDrag();
69
+ this.cleanupChipDrag();
70
+ this.cleanupResize();
71
+ this.el?.remove();
72
+ this.el = null;
73
+ this.chipsEl = null;
74
+ this.searchInputEl = null;
75
+ this.searchClearEl = null;
76
+ }
77
+ // ─── Build ──────────────────────────────────────────────────────────────────
78
+ buildStructure() {
79
+ if (!this.el)
80
+ return;
81
+ this.chipsEl = createDiv('pg-group-zone-chips');
82
+ this.el.appendChild(this.chipsEl);
83
+ // Search box — right side of the bar, hidden in left/right dock via CSS
84
+ const searchWrap = createDiv('pg-group-search');
85
+ const fieldEl = createDiv('pg-group-search__field');
86
+ const iconEl = createDiv('pg-group-search__icon');
87
+ iconEl.innerHTML = this.iconRenderer.renderToString('search', 14);
88
+ const input = document.createElement('input');
89
+ input.type = 'text';
90
+ input.className = 'pg-group-search__input';
91
+ input.placeholder = 'Search...';
92
+ input.spellcheck = false;
93
+ input.setAttribute('autocomplete', 'off');
94
+ this.searchInputEl = input;
95
+ const clearBtn = createDiv('pg-group-search__clear');
96
+ clearBtn.innerHTML = this.iconRenderer.renderToString('close', 12);
97
+ clearBtn.title = 'Clear search';
98
+ this.searchClearEl = clearBtn;
99
+ input.addEventListener('input', () => {
100
+ const val = input.value;
101
+ clearBtn.classList.toggle('pg-group-search__clear--visible', val.length > 0);
102
+ if (this.searchDebounceTimer !== null)
103
+ clearTimeout(this.searchDebounceTimer);
104
+ this.searchDebounceTimer = setTimeout(() => {
105
+ this.searchDebounceTimer = null;
106
+ this.searchCallback?.(val);
107
+ }, 180);
108
+ });
109
+ clearBtn.addEventListener('mousedown', (e) => {
110
+ e.preventDefault(); // keep input focused
111
+ input.value = '';
112
+ clearBtn.classList.remove('pg-group-search__clear--visible');
113
+ if (this.searchDebounceTimer !== null) {
114
+ clearTimeout(this.searchDebounceTimer);
115
+ this.searchDebounceTimer = null;
116
+ }
117
+ this.searchCallback?.('');
118
+ input.focus();
119
+ });
120
+ fieldEl.appendChild(iconEl);
121
+ fieldEl.appendChild(input);
122
+ fieldEl.appendChild(clearBtn);
123
+ searchWrap.appendChild(fieldEl);
124
+ this.el.appendChild(searchWrap);
125
+ }
126
+ render() {
127
+ if (!this.chipsEl)
128
+ return;
129
+ this.chipsEl.innerHTML = '';
130
+ const groupedIds = this.store.get('groupedColumnIds');
131
+ const allColumns = this.store.get('columns');
132
+ const isVertical = this.dockPos === 'left' || this.dockPos === 'right';
133
+ if (groupedIds.length === 0) {
134
+ const hint = createDiv('pg-group-drop-zone__hint');
135
+ hint.textContent = 'Drag a column here to group rows';
136
+ this.chipsEl.appendChild(hint);
137
+ return;
138
+ }
139
+ for (let i = 0; i < groupedIds.length; i++) {
140
+ const colId = groupedIds[i];
141
+ const col = allColumns.find((c) => c.colId === colId);
142
+ if (!col)
143
+ continue;
144
+ if (i > 0 && !isVertical) {
145
+ const sep = createDiv('pg-group-chip__sep');
146
+ sep.innerHTML = this.iconRenderer.renderToString('chevronRight', 12);
147
+ this.chipsEl.appendChild(sep);
148
+ }
149
+ const chip = createDiv('pg-group-chip');
150
+ chip.setAttribute('data-col-id', colId);
151
+ chip.setAttribute('data-chip-index', String(i));
152
+ chip.style.cursor = 'grab';
153
+ const labelEl = createDiv('pg-group-chip__label');
154
+ labelEl.textContent = col.header;
155
+ chip.appendChild(labelEl);
156
+ const closeBtn = createDiv('pg-group-chip__close');
157
+ closeBtn.innerHTML = this.iconRenderer.renderToString('close', 11);
158
+ closeBtn.title = 'Remove grouping';
159
+ closeBtn.addEventListener('click', (e) => {
160
+ e.stopPropagation();
161
+ this.removeColumn(colId);
162
+ });
163
+ chip.appendChild(closeBtn);
164
+ chip.addEventListener('mousedown', (e) => {
165
+ if (e.target.closest('.pg-group-chip__close'))
166
+ return;
167
+ e.preventDefault();
168
+ this.startChipDrag(e, colId, i);
169
+ });
170
+ this.chipsEl.appendChild(chip);
171
+ }
172
+ }
173
+ // ─── Dock drag ─────────────────────────────────────────────────────────────
174
+ startDockDrag(e) {
175
+ this.isDockDragging = true;
176
+ this.dockIndicatorEl = document.createElement('div');
177
+ this.dockIndicatorEl.style.cssText =
178
+ 'position:fixed;pointer-events:none;z-index:99999;border:2px dashed var(--pg-colors-primary,#2563eb);background:var(--pg-colors-group-zone-over,rgba(37,99,235,0.1));border-radius:var(--pg-borders-radius-sm,4px);';
179
+ document.body.appendChild(this.dockIndicatorEl);
180
+ this._onDockMove = (ev) => this.onDockMove(ev);
181
+ this._onDockUp = (ev) => this.onDockUp(ev);
182
+ document.addEventListener('mousemove', this._onDockMove);
183
+ document.addEventListener('mouseup', this._onDockUp);
184
+ this.onDockMove(e);
185
+ }
186
+ onDockMove(e) {
187
+ if (!this.isDockDragging || !this.el || !this.dockIndicatorEl)
188
+ return;
189
+ const gridEl = this.el.closest('.pg-grid');
190
+ if (!gridEl)
191
+ return;
192
+ const gr = gridEl.getBoundingClientRect();
193
+ const pct = (e.clientX - gr.left) / gr.width;
194
+ if (pct < 0.2) {
195
+ Object.assign(this.dockIndicatorEl.style, {
196
+ left: `${gr.left}px`, top: `${gr.top}px`,
197
+ width: '160px', height: `${gr.height}px`,
198
+ borderRadius: '4px 0 0 4px',
199
+ });
200
+ }
201
+ else if (pct > 0.8) {
202
+ Object.assign(this.dockIndicatorEl.style, {
203
+ left: `${gr.right - 160}px`, top: `${gr.top}px`,
204
+ width: '160px', height: `${gr.height}px`,
205
+ borderRadius: '0 4px 4px 0',
206
+ });
207
+ }
208
+ else {
209
+ Object.assign(this.dockIndicatorEl.style, {
210
+ left: `${gr.left}px`, top: `${gr.top}px`,
211
+ width: `${gr.width}px`, height: '48px',
212
+ borderRadius: '4px 4px 0 0',
213
+ });
214
+ }
215
+ }
216
+ onDockUp(e) {
217
+ if (!this.isDockDragging || !this.el) {
218
+ this.cleanupDockDrag();
219
+ return;
220
+ }
221
+ const gridEl = this.el.closest('.pg-grid');
222
+ if (gridEl) {
223
+ const gr = gridEl.getBoundingClientRect();
224
+ const pct = (e.clientX - gr.left) / gr.width;
225
+ const newDock = pct < 0.2 ? 'left' : pct > 0.8 ? 'right' : 'top';
226
+ this.setDock(newDock);
227
+ }
228
+ this.cleanupDockDrag();
229
+ }
230
+ setDock(pos) {
231
+ if (pos === this.dockPos || !this.el || !this.outerRowEl || !this.mainColEl)
232
+ return;
233
+ this.dockPos = pos;
234
+ this.el.remove();
235
+ this.el.classList.remove('pg-group-drop-zone--top', 'pg-group-drop-zone--left', 'pg-group-drop-zone--right');
236
+ this.el.classList.add(`pg-group-drop-zone--${pos}`);
237
+ this.el.style.height = '';
238
+ this.el.style.width = '';
239
+ if (pos === 'top') {
240
+ this.mainColEl.insertBefore(this.el, this.mainColEl.firstChild);
241
+ }
242
+ else if (pos === 'left') {
243
+ this.outerRowEl.insertBefore(this.el, this.mainColEl);
244
+ }
245
+ else {
246
+ this.outerRowEl.appendChild(this.el);
247
+ }
248
+ this.render();
249
+ }
250
+ cleanupDockDrag() {
251
+ this.isDockDragging = false;
252
+ this.dockIndicatorEl?.remove();
253
+ this.dockIndicatorEl = null;
254
+ if (this._onDockMove)
255
+ document.removeEventListener('mousemove', this._onDockMove);
256
+ if (this._onDockUp)
257
+ document.removeEventListener('mouseup', this._onDockUp);
258
+ this._onDockMove = null;
259
+ this._onDockUp = null;
260
+ }
261
+ // ─── Chip drag-reorder ─────────────────────────────────────────────────────
262
+ startChipDrag(e, colId, index) {
263
+ this.draggingChipId = colId;
264
+ this.chipDropIndex = index;
265
+ const col = this.store.get('columns').find((c) => c.colId === colId);
266
+ const ghost = createDiv('pg-group-chip pg-group-chip--ghost');
267
+ const ghostLabel = createDiv('pg-group-chip__label');
268
+ ghostLabel.textContent = col?.header ?? colId;
269
+ ghost.appendChild(ghostLabel);
270
+ ghost.style.cssText = `position:fixed;pointer-events:none;z-index:99999;opacity:0.85;left:${e.clientX + 8}px;top:${e.clientY - 14}px;`;
271
+ document.body.appendChild(ghost);
272
+ this.chipGhostEl = ghost;
273
+ this._onChipMove = (ev) => this.onChipMove(ev);
274
+ this._onChipUp = (ev) => this.onChipUp(ev);
275
+ document.addEventListener('mousemove', this._onChipMove);
276
+ document.addEventListener('mouseup', this._onChipUp);
277
+ }
278
+ onChipMove(e) {
279
+ if (!this.chipGhostEl || !this.chipsEl)
280
+ return;
281
+ this.chipGhostEl.style.left = `${e.clientX + 8}px`;
282
+ this.chipGhostEl.style.top = `${e.clientY - 14}px`;
283
+ const isVertical = this.dockPos === 'left' || this.dockPos === 'right';
284
+ const chips = Array.from(this.chipsEl.querySelectorAll('.pg-group-chip:not(.pg-group-chip--ghost)'));
285
+ let newIndex = chips.length;
286
+ for (let i = 0; i < chips.length; i++) {
287
+ const r = chips[i].getBoundingClientRect();
288
+ const mid = isVertical ? (r.top + r.bottom) / 2 : (r.left + r.right) / 2;
289
+ const pos = isVertical ? e.clientY : e.clientX;
290
+ if (pos < mid) {
291
+ newIndex = i;
292
+ break;
293
+ }
294
+ }
295
+ this.chipDropIndex = newIndex;
296
+ for (const chip of chips) {
297
+ chip.style.opacity = chip.getAttribute('data-col-id') === this.draggingChipId ? '0.3' : '';
298
+ }
299
+ }
300
+ onChipUp(_e) {
301
+ const fromId = this.draggingChipId;
302
+ const toIndex = this.chipDropIndex;
303
+ this.cleanupChipDrag();
304
+ if (!fromId)
305
+ return;
306
+ const groupedIds = [...this.store.get('groupedColumnIds')];
307
+ const fromIndex = groupedIds.indexOf(fromId);
308
+ if (fromIndex === -1 || fromIndex === toIndex)
309
+ return;
310
+ groupedIds.splice(fromIndex, 1);
311
+ const insertAt = toIndex > fromIndex ? Math.max(0, toIndex - 1) : toIndex;
312
+ groupedIds.splice(insertAt, 0, fromId);
313
+ this.groupingEngine.reorderGroupColumns(groupedIds);
314
+ }
315
+ cleanupChipDrag() {
316
+ this.draggingChipId = null;
317
+ this.chipDropIndex = -1;
318
+ if (this.chipsEl) {
319
+ for (const chip of Array.from(this.chipsEl.querySelectorAll('.pg-group-chip'))) {
320
+ chip.style.opacity = '';
321
+ }
322
+ }
323
+ this.chipGhostEl?.remove();
324
+ this.chipGhostEl = null;
325
+ if (this._onChipMove)
326
+ document.removeEventListener('mousemove', this._onChipMove);
327
+ if (this._onChipUp)
328
+ document.removeEventListener('mouseup', this._onChipUp);
329
+ this._onChipMove = null;
330
+ this._onChipUp = null;
331
+ }
332
+ // ─── Resize ─────────────────────────────────────────────────────────────────
333
+ startResize(e) {
334
+ if (!this.el)
335
+ return;
336
+ this.isResizing = true;
337
+ if (this.dockPos === 'top') {
338
+ this.resizeStartSize = this.el.offsetHeight;
339
+ this.resizeStartPos = e.clientY;
340
+ }
341
+ else {
342
+ this.resizeStartSize = this.el.offsetWidth;
343
+ this.resizeStartPos = e.clientX;
344
+ }
345
+ this._onResizeMove = (ev) => this.onResizeMove(ev);
346
+ this._onResizeUp = () => this.cleanupResize();
347
+ document.addEventListener('mousemove', this._onResizeMove);
348
+ document.addEventListener('mouseup', this._onResizeUp);
349
+ }
350
+ onResizeMove(e) {
351
+ if (!this.isResizing || !this.el)
352
+ return;
353
+ if (this.dockPos === 'top') {
354
+ const delta = e.clientY - this.resizeStartPos;
355
+ this.el.style.height = `${Math.max(48, this.resizeStartSize + delta)}px`;
356
+ }
357
+ else if (this.dockPos === 'left') {
358
+ const delta = e.clientX - this.resizeStartPos;
359
+ this.el.style.width = `${Math.max(80, this.resizeStartSize + delta)}px`;
360
+ }
361
+ else {
362
+ const delta = this.resizeStartPos - e.clientX;
363
+ this.el.style.width = `${Math.max(80, this.resizeStartSize + delta)}px`;
364
+ }
365
+ }
366
+ cleanupResize() {
367
+ this.isResizing = false;
368
+ if (this._onResizeMove)
369
+ document.removeEventListener('mousemove', this._onResizeMove);
370
+ if (this._onResizeUp)
371
+ document.removeEventListener('mouseup', this._onResizeUp);
372
+ this._onResizeMove = null;
373
+ this._onResizeUp = null;
374
+ }
375
+ }
376
+ //# sourceMappingURL=group-drop-zone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-drop-zone.js","sourceRoot":"","sources":["../../src/renderer/group-drop-zone.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,264 @@
1
+ import type { ColumnDef } from '../types/column.types';
2
+ import type { GridStore } from '../core/grid-store';
3
+ import type { EventBus } from '../event-bus/event-bus';
4
+ import type { IconRenderer } from '../icons/icon-renderer';
5
+ import type { ColumnModel } from '../core/column-model';
6
+ import type { SortEngine } from '../engines/sort/sort-engine';
7
+ import type { GroupDropZone } from './group-drop-zone';
8
+ import type { ColumnGroupModel } from '../column-groups/column-group-model';
9
+ import type { ColumnGroupHeaderBuilder } from '../column-groups/column-group-header-builder';
10
+ import type { ColumnGroupDragHandler } from '../column-groups/column-group-drag-handler';
11
+ import type { DisplayGroupEngine } from '../column-groups/display-group-engine';
12
+ import { ColumnStyleManager } from './column-style-manager';
13
+ export interface HeaderRendererOptions {
14
+ showCheckboxes?: boolean;
15
+ showSerialNumber?: boolean;
16
+ showFilterRow?: boolean;
17
+ showColumnMenu?: boolean;
18
+ headerRowHeight?: number;
19
+ filterRowHeight?: number;
20
+ hasGroupedColumns?: boolean;
21
+ autoGroupColWidth?: number;
22
+ }
23
+ export declare class HeaderRenderer {
24
+ private store;
25
+ private eventBus;
26
+ private iconRenderer;
27
+ private columnModel;
28
+ private sortEngine;
29
+ private colStyles;
30
+ private leftHeaderRowEl;
31
+ private centerHeaderRowEl;
32
+ private rightHeaderRowEl;
33
+ private centerFilterRowEl;
34
+ private headerCheckbox;
35
+ private columnMenu;
36
+ private groupContextMenu;
37
+ private groupDropZone;
38
+ /** Tree model for the column group hierarchy. `null` until wired via `setColumnGroupModel`. */
39
+ private groupModel;
40
+ /** DOM builder for multi-row grouped header rows. `null` until wired. */
41
+ private groupHeaderBuilder;
42
+ /** Group header row elements per panel — indexed 0..maxDepth-1. */
43
+ private leftGroupRowEls;
44
+ private centerGroupRowEls;
45
+ private rightGroupRowEls;
46
+ /**
47
+ * Callback invoked when the user clicks a group collapse/expand toggle.
48
+ * Provided by `GridRenderer` so it can coordinate header + body rebuild.
49
+ */
50
+ private onGroupToggleFn;
51
+ /**
52
+ * Callback invoked when the user finishes dragging a group resize handle.
53
+ * `GridRenderer` wires this to distribute the delta and trigger reflow.
54
+ */
55
+ private onGroupResizeFn;
56
+ /**
57
+ * Wired by `GridRenderer` after group model setup — used in `onGlobalMouseUp`
58
+ * to create a clone group when a leaf is dropped onto a different group header.
59
+ */
60
+ private groupDragHandler;
61
+ /**
62
+ * Display Group Engine — the new architecture that replaces ColumnGroupModel.
63
+ * When set, `renderInPanels` uses this engine instead of the legacy model.
64
+ */
65
+ private displayGroupEngine;
66
+ /**
67
+ * Cached header row height from the last `renderInPanels` / `updateCenterVisibleCols`
68
+ * call. Used by `rebuildGroupRowsForPanel` which is called during drag when
69
+ * `HeaderRendererOptions` is not available on the call stack.
70
+ */
71
+ private lastGroupRowHeight;
72
+ private draggingColId;
73
+ private isDragging;
74
+ private draggingPanelRowEl;
75
+ private draggingIsGroupable;
76
+ private isOverGroupZone;
77
+ private ghostEl;
78
+ private dragStyleEl;
79
+ private draggingGridEl;
80
+ private draggedColWidth;
81
+ private dragStartScrollX;
82
+ private dragIsHideMode;
83
+ private dragSourcePanel;
84
+ private dragTargetPanel;
85
+ private dragTargetLocalIdx;
86
+ private panelDragData;
87
+ private livePanelMoveInProgress;
88
+ private scrollByX;
89
+ private canScrollX;
90
+ private onResizeCb;
91
+ private autoScrollRAF;
92
+ private autoScrollSpeed;
93
+ private centerPanelRect;
94
+ /** Last known cursor X during column drag — used to replay `onDragMove` after auto-scroll ticks. */
95
+ private lastDragClientX;
96
+ private boundMouseMove;
97
+ private boundMouseUp;
98
+ /** Callback wired by GridRenderer to open a filter panel for a column. */
99
+ private openFilterPanelFn;
100
+ /** Read by grid-renderer's columns-store watcher to skip header destroy during drag */
101
+ get isDraggingCol(): boolean;
102
+ /** True while the user holds the resize handle and is actively moving the mouse. */
103
+ private _isResizingColumn;
104
+ /**
105
+ * `true` between the resize-handle `mousedown` and the corresponding `mouseup`.
106
+ * Grid-renderer uses this to suppress body `renderRows` during resize — column
107
+ * widths are driven by CSS rules from `ColumnStyleManager`, so the body DOM
108
+ * never needs to be rebuilt while the user is dragging a resize handle.
109
+ */
110
+ get isResizingColumn(): boolean;
111
+ constructor(store: GridStore, eventBus: EventBus, iconRenderer: IconRenderer, columnModel: ColumnModel, sortEngine: SortEngine, colStyles: ColumnStyleManager);
112
+ setScrollCallback(fn: (dx: number) => void, canScrollX?: (dir: 1 | -1) => boolean): void;
113
+ setResizeCallback(cb: () => void): void;
114
+ /**
115
+ * Register the callback invoked when the user clicks the filter icon on a
116
+ * filterable column header. Wired by `GridRenderer.buildLayout()`.
117
+ *
118
+ * @param fn - Opens/positions a `FilterPanel` for the given column.
119
+ */
120
+ setOpenFilterPanelCallback(fn: (colDef: ColumnDef, anchorEl: HTMLElement) => void): void;
121
+ /**
122
+ * Wire the column-group model and DOM builder into the header renderer.
123
+ *
124
+ * Call this before the first `renderInPanels` when the grid's column
125
+ * definitions contain groups (i.e. `ColumnDef.children` is present on any
126
+ * top-level column). Once wired, `renderInPanels` and `updateCenterVisibleCols`
127
+ * automatically insert and update the multi-row grouped header rows.
128
+ *
129
+ * @param model - The live {@link ColumnGroupModel} for the grid.
130
+ * @param builder - The {@link ColumnGroupHeaderBuilder} instance.
131
+ */
132
+ setColumnGroupModel(model: ColumnGroupModel, builder: ColumnGroupHeaderBuilder): void;
133
+ /**
134
+ * Wire the new Display Group Engine into the header renderer.
135
+ * When set, `renderInPanels` uses the engine's builder instead of the legacy
136
+ * `ColumnGroupModel` + `ColumnGroupHeaderBuilder`.
137
+ *
138
+ * @param engine - The fully-initialised `DisplayGroupEngine` instance.
139
+ */
140
+ setDisplayGroupEngine(engine: DisplayGroupEngine): void;
141
+ /**
142
+ * Register the callback fired when a user toggles a group's collapse state.
143
+ *
144
+ * `GridRenderer` wires this to coordinate header rebuild + leaf-column
145
+ * visibility update in `ColumnModel`.
146
+ *
147
+ * @param fn - Receives the `groupId` of the toggled group.
148
+ */
149
+ setGroupToggleCallback(fn: (groupId: string) => void): void;
150
+ /**
151
+ * Register the callback fired when a user finishes dragging a group resize handle.
152
+ *
153
+ * `GridRenderer` wires this to call {@link ColumnGroupModel.distributeResizeDelta}
154
+ * and flush the updated widths to `ColumnStyleManager`.
155
+ *
156
+ * @param fn - Receives `groupId` and the new desired total group width.
157
+ */
158
+ setGroupResizeCallback(fn: (groupId: string, newWidth: number) => void): void;
159
+ /**
160
+ * Wire the group drag handler so that leaf drops on foreign group header cells
161
+ * create solo clone groups instead of doing a plain column reorder.
162
+ *
163
+ * @param handler - The active `ColumnGroupDragHandler` instance.
164
+ */
165
+ setGroupDragHandler(handler: ColumnGroupDragHandler): void;
166
+ /**
167
+ * Rebuild only the group-header rows for all panels without touching the leaf
168
+ * row or filter row. Call this after a group collapse/expand event has already
169
+ * been processed by the model (i.e. `group.collapsed` flag is up to date).
170
+ *
171
+ * @param options - Header renderer options (passed from last `renderInPanels` call).
172
+ */
173
+ rebuildGroupRows(options: HeaderRendererOptions): void;
174
+ /**
175
+ * Updates the filter-active indicator (`pg-th--filter-active` class and icon
176
+ * swap) on every rendered header cell based on the current `FilterModel`.
177
+ * Called from the renderer's `filterModel` store watcher.
178
+ *
179
+ * @param activeColIds - Set of `colId` strings that currently have an active filter.
180
+ */
181
+ updateFilterIndicators(activeColIds: Set<string>): void;
182
+ /**
183
+ * Build the {@link GroupCellBuildOptions} object forwarded to the DOM builder.
184
+ * Wires the toggle and resize callbacks registered by `GridRenderer`.
185
+ */
186
+ private buildGroupCellOptions;
187
+ renderInPanels(leftContainer: HTMLElement, centerInnerEl: HTMLElement, rightContainer: HTMLElement, allColumns: ColumnDef[], options?: HeaderRendererOptions): void;
188
+ updateSortIndicator(colId: string, order: 'asc' | 'desc' | null): void;
189
+ updateAllChecked(isAll: boolean, isIndeterminate: boolean): void;
190
+ setGroupDropZone(zone: GroupDropZone): void;
191
+ destroy(): void;
192
+ updateCenterVisibleCols(visibleCols: ColumnDef[], leftSpacerW: number, rightSpacerW: number, options: HeaderRendererOptions): void;
193
+ private makeSpacer;
194
+ private capturePanelDragData;
195
+ private buildHeaderRow;
196
+ private buildAutoGroupTh;
197
+ private buildCheckboxHeaderCell;
198
+ private buildSerialHeaderCell;
199
+ private buildHeaderCell;
200
+ private buildFilterCell;
201
+ private buildFilterRow;
202
+ private attachColumnDragListeners;
203
+ private startColumnDrag;
204
+ /**
205
+ * When the cursor crosses into a new panel:
206
+ * 1. Immediately DOM-move the source TH into the target panel header row
207
+ * 2. Call moveAndPin() so body cells and panel widths update via the guarded re-render
208
+ * 3. After 2 frames (re-render complete), re-capture rects and continue drag
209
+ */
210
+ private moveToPanelLive;
211
+ private readonly tickAutoScroll;
212
+ private updateAutoScroll;
213
+ private stopAutoScroll;
214
+ /**
215
+ * Re-captures header column rects and re-applies drag transforms after each
216
+ * auto-scroll step. Runs 2 animation frames after the scroll so the grid's
217
+ * virtual column render (`updateCenterVisibleCols`) has completed and the DOM
218
+ * reflects any newly visible columns before `getBoundingClientRect` is called.
219
+ *
220
+ * This mirrors the 2-frame pattern used by `moveToPanelLive` and ensures the
221
+ * dragged-column ghost and sibling transforms stay accurate even when the
222
+ * mouse is stationary at the viewport edge while auto-scroll is running.
223
+ */
224
+ private refreshDragAfterScroll;
225
+ /**
226
+ * Rebuild the group header rows for one panel using a new (possibly preview)
227
+ * column order. Safe to call during drag — only the group row `<div>`s are
228
+ * replaced; the leaf row `<tr>` that carries the live drag element is untouched.
229
+ *
230
+ * @param panel - Which panel's group rows to refresh.
231
+ * @param cols - Ordered visible columns for this panel (preview or committed).
232
+ */
233
+ private rebuildGroupRowsForPanel;
234
+ /**
235
+ * Compute the preview column order for the drag source panel (same-panel drag)
236
+ * and rebuild its group rows.
237
+ *
238
+ * Called from `onDragMove` whenever the effective drop slot changes. Always
239
+ * derives the preview from the captured `panelDragData` colIds so the
240
+ * `LogicalGroupRegistry` sees the exact order the column would land in on drop.
241
+ *
242
+ * @param targetIdx - Effective slot index the dragged column is hovering over.
243
+ * @param sourceIdx - Original slot index of the dragged column in its panel.
244
+ * @param pd - Panel drag data for the source panel.
245
+ */
246
+ private rebuildGroupRowsWithPreview;
247
+ private onDragMove;
248
+ private onGlobalMouseMove;
249
+ private onGlobalMouseUp;
250
+ private cleanupDrag;
251
+ private startResize;
252
+ /**
253
+ * Returns `true` when `colId` (at its new position `newIdx` in the visible
254
+ * columns array) is no longer adjacent to any sibling leaf from its parent
255
+ * group — meaning it has been dragged outside the group's contiguous span.
256
+ *
257
+ * @param colId - The moved leaf column.
258
+ * @param newIdx - Its new index in `cols`.
259
+ * @param cols - Current flat visible-column array (after the move).
260
+ */
261
+ private isLeafOutsideGroup;
262
+ private onAction;
263
+ }
264
+ //# sourceMappingURL=header-renderer.d.ts.map