@zengrid/core 1.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 (252) hide show
  1. package/README.md +55 -0
  2. package/dist/README.md +55 -0
  3. package/dist/index.cjs.default.js +1 -0
  4. package/dist/index.cjs.js +9882 -0
  5. package/dist/index.cjs.mjs +2 -0
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.esm.js +9847 -0
  8. package/dist/package.json +49 -0
  9. package/dist/src/a11y/aria-manager.d.ts +171 -0
  10. package/dist/src/a11y/aria-manager.d.ts.map +1 -0
  11. package/dist/src/a11y/focus-manager.d.ts +124 -0
  12. package/dist/src/a11y/focus-manager.d.ts.map +1 -0
  13. package/dist/src/a11y/index.d.ts +8 -0
  14. package/dist/src/a11y/index.d.ts.map +1 -0
  15. package/dist/src/data/data-accessor/array-accessor.d.ts +38 -0
  16. package/dist/src/data/data-accessor/array-accessor.d.ts.map +1 -0
  17. package/dist/src/data/data-accessor/column-store-accessor.d.ts +41 -0
  18. package/dist/src/data/data-accessor/column-store-accessor.d.ts.map +1 -0
  19. package/dist/src/data/data-accessor/data-accessor.interface.d.ts +41 -0
  20. package/dist/src/data/data-accessor/data-accessor.interface.d.ts.map +1 -0
  21. package/dist/src/data/data-accessor/index.d.ts +9 -0
  22. package/dist/src/data/data-accessor/index.d.ts.map +1 -0
  23. package/dist/src/data/data-accessor/sparse-matrix-accessor.d.ts +39 -0
  24. package/dist/src/data/data-accessor/sparse-matrix-accessor.d.ts.map +1 -0
  25. package/dist/src/data/data-manager.d.ts +161 -0
  26. package/dist/src/data/data-manager.d.ts.map +1 -0
  27. package/dist/src/data/data-source.interface.d.ts +82 -0
  28. package/dist/src/data/data-source.interface.d.ts.map +1 -0
  29. package/dist/src/data/grid-data-model.d.ts +102 -0
  30. package/dist/src/data/grid-data-model.d.ts.map +1 -0
  31. package/dist/src/data/index-map/index-map.d.ts +30 -0
  32. package/dist/src/data/index-map/index-map.d.ts.map +1 -0
  33. package/dist/src/data/index-map/index-map.interface.d.ts +49 -0
  34. package/dist/src/data/index-map/index-map.interface.d.ts.map +1 -0
  35. package/dist/src/data/index-map/index.d.ts +7 -0
  36. package/dist/src/data/index-map/index.d.ts.map +1 -0
  37. package/dist/src/data/index.d.ts +9 -0
  38. package/dist/src/data/index.d.ts.map +1 -0
  39. package/dist/src/editing/cell-editor.interface.d.ts +87 -0
  40. package/dist/src/editing/cell-editor.interface.d.ts.map +1 -0
  41. package/dist/src/editing/date-editor.d.ts +67 -0
  42. package/dist/src/editing/date-editor.d.ts.map +1 -0
  43. package/dist/src/editing/editor-manager.d.ts +141 -0
  44. package/dist/src/editing/editor-manager.d.ts.map +1 -0
  45. package/dist/src/editing/index.d.ts +15 -0
  46. package/dist/src/editing/index.d.ts.map +1 -0
  47. package/dist/src/editing/number-editor.d.ts +68 -0
  48. package/dist/src/editing/number-editor.d.ts.map +1 -0
  49. package/dist/src/editing/select-editor.d.ts +53 -0
  50. package/dist/src/editing/select-editor.d.ts.map +1 -0
  51. package/dist/src/editing/text-editor.d.ts +69 -0
  52. package/dist/src/editing/text-editor.d.ts.map +1 -0
  53. package/dist/src/events/event-emitter.d.ts +90 -0
  54. package/dist/src/events/event-emitter.d.ts.map +1 -0
  55. package/dist/src/events/grid-events.d.ts +277 -0
  56. package/dist/src/events/grid-events.d.ts.map +1 -0
  57. package/dist/src/events/index.d.ts +6 -0
  58. package/dist/src/events/index.d.ts.map +1 -0
  59. package/dist/src/features/autofill/autofill-manager.d.ts +103 -0
  60. package/dist/src/features/autofill/autofill-manager.d.ts.map +1 -0
  61. package/dist/src/features/autofill/index.d.ts +6 -0
  62. package/dist/src/features/autofill/index.d.ts.map +1 -0
  63. package/dist/src/features/column-resize/auto-fit-calculator.d.ts +52 -0
  64. package/dist/src/features/column-resize/auto-fit-calculator.d.ts.map +1 -0
  65. package/dist/src/features/column-resize/column-resize-manager.d.ts +114 -0
  66. package/dist/src/features/column-resize/column-resize-manager.d.ts.map +1 -0
  67. package/dist/src/features/column-resize/column-resize-manager.interface.d.ts +167 -0
  68. package/dist/src/features/column-resize/column-resize-manager.interface.d.ts.map +1 -0
  69. package/dist/src/features/column-resize/column-resize.styles.css +30 -0
  70. package/dist/src/features/column-resize/index.d.ts +15 -0
  71. package/dist/src/features/column-resize/index.d.ts.map +1 -0
  72. package/dist/src/features/column-resize/resize-constraint-manager.d.ts +52 -0
  73. package/dist/src/features/column-resize/resize-constraint-manager.d.ts.map +1 -0
  74. package/dist/src/features/column-resize/resize-handle-renderer.d.ts +41 -0
  75. package/dist/src/features/column-resize/resize-handle-renderer.d.ts.map +1 -0
  76. package/dist/src/features/column-resize/resize-preview.d.ts +32 -0
  77. package/dist/src/features/column-resize/resize-preview.d.ts.map +1 -0
  78. package/dist/src/features/column-resize/resize-state-manager.d.ts +75 -0
  79. package/dist/src/features/column-resize/resize-state-manager.d.ts.map +1 -0
  80. package/dist/src/features/column-resize/resize-strategies.d.ts +26 -0
  81. package/dist/src/features/column-resize/resize-strategies.d.ts.map +1 -0
  82. package/dist/src/features/column-resize/resize-test-helper.d.ts +71 -0
  83. package/dist/src/features/column-resize/resize-test-helper.d.ts.map +1 -0
  84. package/dist/src/features/column-resize/resize-zone-detector.d.ts +32 -0
  85. package/dist/src/features/column-resize/resize-zone-detector.d.ts.map +1 -0
  86. package/dist/src/features/copy-paste/clipboard-manager.d.ts +116 -0
  87. package/dist/src/features/copy-paste/clipboard-manager.d.ts.map +1 -0
  88. package/dist/src/features/copy-paste/index.d.ts +6 -0
  89. package/dist/src/features/copy-paste/index.d.ts.map +1 -0
  90. package/dist/src/features/filtering/adapters/adapter.interface.d.ts +100 -0
  91. package/dist/src/features/filtering/adapters/adapter.interface.d.ts.map +1 -0
  92. package/dist/src/features/filtering/adapters/graphql-adapter.d.ts +124 -0
  93. package/dist/src/features/filtering/adapters/graphql-adapter.d.ts.map +1 -0
  94. package/dist/src/features/filtering/adapters/index.d.ts +11 -0
  95. package/dist/src/features/filtering/adapters/index.d.ts.map +1 -0
  96. package/dist/src/features/filtering/adapters/rest-adapter.d.ts +108 -0
  97. package/dist/src/features/filtering/adapters/rest-adapter.d.ts.map +1 -0
  98. package/dist/src/features/filtering/adapters/sql-adapter.d.ts +123 -0
  99. package/dist/src/features/filtering/adapters/sql-adapter.d.ts.map +1 -0
  100. package/dist/src/features/filtering/adapters/types.d.ts +201 -0
  101. package/dist/src/features/filtering/adapters/types.d.ts.map +1 -0
  102. package/dist/src/features/filtering/column-filter.d.ts +117 -0
  103. package/dist/src/features/filtering/column-filter.d.ts.map +1 -0
  104. package/dist/src/features/filtering/filter-autocomplete.d.ts +78 -0
  105. package/dist/src/features/filtering/filter-autocomplete.d.ts.map +1 -0
  106. package/dist/src/features/filtering/filter-cache.d.ts +113 -0
  107. package/dist/src/features/filtering/filter-cache.d.ts.map +1 -0
  108. package/dist/src/features/filtering/filter-compiler.d.ts +66 -0
  109. package/dist/src/features/filtering/filter-compiler.d.ts.map +1 -0
  110. package/dist/src/features/filtering/filter-export-manager.d.ts +131 -0
  111. package/dist/src/features/filtering/filter-export-manager.d.ts.map +1 -0
  112. package/dist/src/features/filtering/filter-index-manager.d.ts +126 -0
  113. package/dist/src/features/filtering/filter-index-manager.d.ts.map +1 -0
  114. package/dist/src/features/filtering/filter-manager.d.ts +408 -0
  115. package/dist/src/features/filtering/filter-manager.d.ts.map +1 -0
  116. package/dist/src/features/filtering/filter-optimizer.d.ts +101 -0
  117. package/dist/src/features/filtering/filter-optimizer.d.ts.map +1 -0
  118. package/dist/src/features/filtering/filter-query-parser.d.ts +69 -0
  119. package/dist/src/features/filtering/filter-query-parser.d.ts.map +1 -0
  120. package/dist/src/features/filtering/index.d.ts +20 -0
  121. package/dist/src/features/filtering/index.d.ts.map +1 -0
  122. package/dist/src/features/filtering/range-filter-optimizer.d.ts +138 -0
  123. package/dist/src/features/filtering/range-filter-optimizer.d.ts.map +1 -0
  124. package/dist/src/features/filtering/substring-filter.d.ts +90 -0
  125. package/dist/src/features/filtering/substring-filter.d.ts.map +1 -0
  126. package/dist/src/features/filtering/types.d.ts +204 -0
  127. package/dist/src/features/filtering/types.d.ts.map +1 -0
  128. package/dist/src/features/formulas/formula-calculator.d.ts +151 -0
  129. package/dist/src/features/formulas/formula-calculator.d.ts.map +1 -0
  130. package/dist/src/features/formulas/index.d.ts +6 -0
  131. package/dist/src/features/formulas/index.d.ts.map +1 -0
  132. package/dist/src/features/hit-testing/index.d.ts +7 -0
  133. package/dist/src/features/hit-testing/index.d.ts.map +1 -0
  134. package/dist/src/features/hit-testing/spatial-hit-tester.d.ts +137 -0
  135. package/dist/src/features/hit-testing/spatial-hit-tester.d.ts.map +1 -0
  136. package/dist/src/features/loading/index.d.ts +5 -0
  137. package/dist/src/features/loading/index.d.ts.map +1 -0
  138. package/dist/src/features/loading/loading-indicator.d.ts +79 -0
  139. package/dist/src/features/loading/loading-indicator.d.ts.map +1 -0
  140. package/dist/src/features/loading/loading.styles.css +413 -0
  141. package/dist/src/features/pagination/index.d.ts +5 -0
  142. package/dist/src/features/pagination/index.d.ts.map +1 -0
  143. package/dist/src/features/pagination/pagination.styles.css +288 -0
  144. package/dist/src/features/pagination/paginator.d.ts +89 -0
  145. package/dist/src/features/pagination/paginator.d.ts.map +1 -0
  146. package/dist/src/features/selection/index.d.ts +7 -0
  147. package/dist/src/features/selection/index.d.ts.map +1 -0
  148. package/dist/src/features/selection/selection-manager.d.ts +167 -0
  149. package/dist/src/features/selection/selection-manager.d.ts.map +1 -0
  150. package/dist/src/features/sorting/index.d.ts +13 -0
  151. package/dist/src/features/sorting/index.d.ts.map +1 -0
  152. package/dist/src/features/sorting/row-sorter.interface.d.ts +63 -0
  153. package/dist/src/features/sorting/row-sorter.interface.d.ts.map +1 -0
  154. package/dist/src/features/sorting/single-column-sorter.d.ts +75 -0
  155. package/dist/src/features/sorting/single-column-sorter.d.ts.map +1 -0
  156. package/dist/src/features/sorting/sort-manager.d.ts +132 -0
  157. package/dist/src/features/sorting/sort-manager.d.ts.map +1 -0
  158. package/dist/src/features/undo-redo/index.d.ts +8 -0
  159. package/dist/src/features/undo-redo/index.d.ts.map +1 -0
  160. package/dist/src/features/undo-redo/undo-redo-manager.d.ts +215 -0
  161. package/dist/src/features/undo-redo/undo-redo-manager.d.ts.map +1 -0
  162. package/dist/src/grid.d.ts +412 -0
  163. package/dist/src/grid.d.ts.map +1 -0
  164. package/dist/src/i18n/index.d.ts +8 -0
  165. package/dist/src/i18n/index.d.ts.map +1 -0
  166. package/dist/src/i18n/locale-manager.d.ts +123 -0
  167. package/dist/src/i18n/locale-manager.d.ts.map +1 -0
  168. package/dist/src/i18n/rtl-support.d.ts +120 -0
  169. package/dist/src/i18n/rtl-support.d.ts.map +1 -0
  170. package/dist/src/index.d.ts +38 -0
  171. package/dist/src/index.d.ts.map +1 -0
  172. package/dist/src/keyboard/index.d.ts +6 -0
  173. package/dist/src/keyboard/index.d.ts.map +1 -0
  174. package/dist/src/keyboard/keyboard-navigator.d.ts +171 -0
  175. package/dist/src/keyboard/keyboard-navigator.d.ts.map +1 -0
  176. package/dist/src/rendering/cache/index.d.ts +3 -0
  177. package/dist/src/rendering/cache/index.d.ts.map +1 -0
  178. package/dist/src/rendering/cache/renderer-cache.d.ts +100 -0
  179. package/dist/src/rendering/cache/renderer-cache.d.ts.map +1 -0
  180. package/dist/src/rendering/cache/renderer-cache.interface.d.ts +89 -0
  181. package/dist/src/rendering/cache/renderer-cache.interface.d.ts.map +1 -0
  182. package/dist/src/rendering/cell-pool/cell-pool.d.ts +36 -0
  183. package/dist/src/rendering/cell-pool/cell-pool.d.ts.map +1 -0
  184. package/dist/src/rendering/cell-pool/cell-pool.interface.d.ts +76 -0
  185. package/dist/src/rendering/cell-pool/cell-pool.interface.d.ts.map +1 -0
  186. package/dist/src/rendering/cell-pool/index.d.ts +6 -0
  187. package/dist/src/rendering/cell-pool/index.d.ts.map +1 -0
  188. package/dist/src/rendering/cell-positioner/cell-positioner.d.ts +46 -0
  189. package/dist/src/rendering/cell-positioner/cell-positioner.d.ts.map +1 -0
  190. package/dist/src/rendering/cell-positioner/cell-positioner.interface.d.ts +86 -0
  191. package/dist/src/rendering/cell-positioner/cell-positioner.interface.d.ts.map +1 -0
  192. package/dist/src/rendering/cell-positioner/index.d.ts +6 -0
  193. package/dist/src/rendering/cell-positioner/index.d.ts.map +1 -0
  194. package/dist/src/rendering/height-provider/height-provider.interface.d.ts +62 -0
  195. package/dist/src/rendering/height-provider/height-provider.interface.d.ts.map +1 -0
  196. package/dist/src/rendering/height-provider/index.d.ts +7 -0
  197. package/dist/src/rendering/height-provider/index.d.ts.map +1 -0
  198. package/dist/src/rendering/height-provider/uniform-height-provider.d.ts +31 -0
  199. package/dist/src/rendering/height-provider/uniform-height-provider.d.ts.map +1 -0
  200. package/dist/src/rendering/height-provider/variable-height-provider.d.ts +33 -0
  201. package/dist/src/rendering/height-provider/variable-height-provider.d.ts.map +1 -0
  202. package/dist/src/rendering/renderers/advanced-cell-renderer.d.ts +105 -0
  203. package/dist/src/rendering/renderers/advanced-cell-renderer.d.ts.map +1 -0
  204. package/dist/src/rendering/renderers/image-renderer.d.ts +60 -0
  205. package/dist/src/rendering/renderers/image-renderer.d.ts.map +1 -0
  206. package/dist/src/rendering/renderers/index.d.ts +13 -0
  207. package/dist/src/rendering/renderers/index.d.ts.map +1 -0
  208. package/dist/src/rendering/renderers/number-renderer.d.ts +71 -0
  209. package/dist/src/rendering/renderers/number-renderer.d.ts.map +1 -0
  210. package/dist/src/rendering/renderers/renderer-registry.d.ts +55 -0
  211. package/dist/src/rendering/renderers/renderer-registry.d.ts.map +1 -0
  212. package/dist/src/rendering/renderers/renderer.interface.d.ts +79 -0
  213. package/dist/src/rendering/renderers/renderer.interface.d.ts.map +1 -0
  214. package/dist/src/rendering/renderers/text-renderer.d.ts +20 -0
  215. package/dist/src/rendering/renderers/text-renderer.d.ts.map +1 -0
  216. package/dist/src/rendering/spatial-hit-tester.d.ts +108 -0
  217. package/dist/src/rendering/spatial-hit-tester.d.ts.map +1 -0
  218. package/dist/src/rendering/virtual-scroller/index.d.ts +6 -0
  219. package/dist/src/rendering/virtual-scroller/index.d.ts.map +1 -0
  220. package/dist/src/rendering/virtual-scroller/virtual-scroller.d.ts +56 -0
  221. package/dist/src/rendering/virtual-scroller/virtual-scroller.d.ts.map +1 -0
  222. package/dist/src/rendering/virtual-scroller/virtual-scroller.interface.d.ts +170 -0
  223. package/dist/src/rendering/virtual-scroller/virtual-scroller.interface.d.ts.map +1 -0
  224. package/dist/src/rendering/width-provider/index.d.ts +7 -0
  225. package/dist/src/rendering/width-provider/index.d.ts.map +1 -0
  226. package/dist/src/rendering/width-provider/uniform-width-provider.d.ts +31 -0
  227. package/dist/src/rendering/width-provider/uniform-width-provider.d.ts.map +1 -0
  228. package/dist/src/rendering/width-provider/variable-width-provider.d.ts +33 -0
  229. package/dist/src/rendering/width-provider/variable-width-provider.d.ts.map +1 -0
  230. package/dist/src/rendering/width-provider/width-provider.interface.d.ts +62 -0
  231. package/dist/src/rendering/width-provider/width-provider.interface.d.ts.map +1 -0
  232. package/dist/src/selection/hit-tester.d.ts +168 -0
  233. package/dist/src/selection/hit-tester.d.ts.map +1 -0
  234. package/dist/src/selection/hit-tester.interface.d.ts +108 -0
  235. package/dist/src/selection/hit-tester.interface.d.ts.map +1 -0
  236. package/dist/src/selection/index.d.ts +9 -0
  237. package/dist/src/selection/index.d.ts.map +1 -0
  238. package/dist/src/selection/range-utils.d.ts +219 -0
  239. package/dist/src/selection/range-utils.d.ts.map +1 -0
  240. package/dist/src/selection/range-utils.interface.d.ts +51 -0
  241. package/dist/src/selection/range-utils.interface.d.ts.map +1 -0
  242. package/dist/src/styles/grid.css +356 -0
  243. package/dist/src/styles.css +273 -0
  244. package/dist/src/touch/index.d.ts +6 -0
  245. package/dist/src/touch/index.d.ts.map +1 -0
  246. package/dist/src/touch/touch-handler.d.ts +167 -0
  247. package/dist/src/touch/touch-handler.d.ts.map +1 -0
  248. package/dist/src/types/index.d.ts +133 -0
  249. package/dist/src/types/index.d.ts.map +1 -0
  250. package/dist/src/types.d.ts +559 -0
  251. package/dist/src/types.d.ts.map +1 -0
  252. package/package.json +47 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer-cache.interface.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/rendering/cache/renderer-cache.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC;IAEjB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAAC;IAElD;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAErD;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAE1B;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;OAEG;IACH,QAAQ,IAAI;QACV,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH"}
@@ -0,0 +1,36 @@
1
+ import type { CellPool as ICellPool, CellPoolOptions, CellPoolStats } from './cell-pool.interface';
2
+ /**
3
+ * CellPool - DOM element pooling for performance
4
+ *
5
+ * Maintains a pool of reusable cell DOM elements to avoid
6
+ * expensive creation/destruction during scrolling.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const container = document.querySelector('.zg-cells');
11
+ * const pool = new CellPool({ container, initialSize: 100 });
12
+ *
13
+ * // Acquire cell
14
+ * const cell = pool.acquire('0-0');
15
+ * cell.style.left = '0px';
16
+ * cell.style.top = '0px';
17
+ *
18
+ * // Release when scrolled out
19
+ * pool.release('0-0');
20
+ * ```
21
+ */
22
+ export declare class CellPool implements ICellPool {
23
+ private container;
24
+ private active;
25
+ private pool;
26
+ private maxSize;
27
+ constructor(options: CellPoolOptions);
28
+ acquire(key: string): HTMLElement;
29
+ release(key: string): void;
30
+ releaseExcept(activeKeys: Set<string>): void;
31
+ get stats(): CellPoolStats;
32
+ clear(): void;
33
+ private createElement;
34
+ private resetElement;
35
+ }
36
+ //# sourceMappingURL=cell-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cell-pool.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/rendering/cell-pool/cell-pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,IAAI,SAAS,EACrB,eAAe,EACf,aAAa,EACd,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,QAAS,YAAW,SAAS;IACxC,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,eAAe;IAWpC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAmBjC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAkB1B,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI;IAe5C,IAAI,KAAK,IAAI,aAAa,CAMzB;IAED,KAAK,IAAI,IAAI;IAcb,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,YAAY;CAOrB"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Options for creating a CellPool
3
+ */
4
+ export interface CellPoolOptions {
5
+ /**
6
+ * Parent container element for pooled cells
7
+ */
8
+ container: HTMLElement;
9
+ /**
10
+ * Number of cells to pre-create
11
+ * @default 100
12
+ */
13
+ initialSize?: number;
14
+ /**
15
+ * Maximum number of cells to keep in pool
16
+ * Excess cells are removed from DOM
17
+ * @default 500
18
+ */
19
+ maxSize?: number;
20
+ }
21
+ /**
22
+ * Pool statistics
23
+ */
24
+ export interface CellPoolStats {
25
+ /**
26
+ * Number of cells currently in use
27
+ */
28
+ active: number;
29
+ /**
30
+ * Number of cells available in pool
31
+ */
32
+ pooled: number;
33
+ /**
34
+ * Total number of cells (active + pooled)
35
+ */
36
+ total: number;
37
+ }
38
+ /**
39
+ * CellPool interface
40
+ *
41
+ * Manages a pool of reusable DOM elements for cells.
42
+ * Reduces DOM creation/destruction overhead during scrolling.
43
+ */
44
+ export interface CellPool {
45
+ /**
46
+ * Acquire a cell element from the pool
47
+ * Returns existing active cell if already acquired with this key
48
+ *
49
+ * @param key - Unique cell identifier (e.g., "row-col")
50
+ * @returns DOM element for the cell
51
+ */
52
+ acquire(key: string): HTMLElement;
53
+ /**
54
+ * Release a cell back to the pool
55
+ * Cleans up the element and makes it available for reuse
56
+ *
57
+ * @param key - Cell identifier
58
+ */
59
+ release(key: string): void;
60
+ /**
61
+ * Release all cells except those in the provided set
62
+ * Useful for releasing cells that scrolled out of view
63
+ *
64
+ * @param activeKeys - Set of keys to keep active
65
+ */
66
+ releaseExcept(activeKeys: Set<string>): void;
67
+ /**
68
+ * Get pool statistics
69
+ */
70
+ readonly stats: CellPoolStats;
71
+ /**
72
+ * Clear all cells from pool and DOM
73
+ */
74
+ clear(): void;
75
+ }
76
+ //# sourceMappingURL=cell-pool.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cell-pool.interface.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/rendering/cell-pool/cell-pool.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,SAAS,EAAE,WAAW,CAAC;IAEvB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;;OAMG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;IAElC;;;;;OAKG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;OAKG;IACH,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAE7C;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAE9B;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACf"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * CellPool - DOM element pooling for performance
3
+ */
4
+ export type { CellPoolOptions, CellPoolStats } from './cell-pool.interface';
5
+ export { CellPool } from './cell-pool';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/rendering/cell-pool/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type { CellPositioner as ICellPositioner, CellPositionerOptions } from './cell-positioner.interface';
2
+ import type { CellRef } from '../../types';
3
+ /**
4
+ * CellPositioner - Orchestrates cell rendering
5
+ *
6
+ * Coordinates VirtualScroller, CellPool, and RendererRegistry
7
+ * to efficiently render only visible cells.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const positioner = new CellPositioner({
12
+ * scroller: virtualScroller,
13
+ * pool: cellPool,
14
+ * registry: rendererRegistry,
15
+ * getData: (row, col) => data[row][col],
16
+ * getColumn: (col) => columns[col],
17
+ * });
18
+ *
19
+ * // Render on scroll
20
+ * viewport.addEventListener('scroll', (e) => {
21
+ * positioner.renderVisibleCells(e.target.scrollTop, e.target.scrollLeft);
22
+ * });
23
+ * ```
24
+ */
25
+ export declare class CellPositioner implements ICellPositioner {
26
+ private scroller;
27
+ private pool;
28
+ private registry;
29
+ private cache;
30
+ private getData;
31
+ private getRowData;
32
+ private getColumn;
33
+ private isSelected;
34
+ private isActive;
35
+ private isEditing;
36
+ private lastRange;
37
+ private renderedCells;
38
+ constructor(options: CellPositionerOptions);
39
+ renderVisibleCells(scrollTop: number, scrollLeft: number): void;
40
+ updateCells(cells: CellRef[]): void;
41
+ refresh(): void;
42
+ destroy(): void;
43
+ private renderCell;
44
+ private getCellKey;
45
+ }
46
+ //# sourceMappingURL=cell-positioner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cell-positioner.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/rendering/cell-positioner/cell-positioner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,IAAI,eAAe,EACjC,qBAAqB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AAIzD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,IAAI,CAAgC;IAC5C,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,UAAU,CAAsC;IACxD,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,UAAU,CAAmD;IACrE,OAAO,CAAC,QAAQ,CAAiD;IACjE,OAAO,CAAC,SAAS,CAAkD;IAEnE,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,aAAa,CAAkC;gBAE3C,OAAO,EAAE,qBAAqB;IAa1C,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IA0B/D,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI;IASnC,OAAO,IAAI,IAAI;IAWf,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,UAAU;IAmGlB,OAAO,CAAC,UAAU;CAGnB"}
@@ -0,0 +1,86 @@
1
+ import type { CellRef, ColumnDef } from '../../types';
2
+ import type { VirtualScroller } from '../virtual-scroller';
3
+ import type { CellPool } from '../cell-pool';
4
+ import type { RendererRegistry } from '../renderers';
5
+ import type { IRendererCache } from '../cache';
6
+ /**
7
+ * Options for creating a CellPositioner
8
+ */
9
+ export interface CellPositionerOptions {
10
+ /**
11
+ * VirtualScroller instance for calculating visible ranges
12
+ */
13
+ scroller: VirtualScroller;
14
+ /**
15
+ * CellPool instance for element reuse
16
+ */
17
+ pool: CellPool;
18
+ /**
19
+ * RendererRegistry instance for renderer lookup
20
+ */
21
+ registry: RendererRegistry;
22
+ /**
23
+ * Renderer cache instance (optional)
24
+ */
25
+ cache?: IRendererCache;
26
+ /**
27
+ * Function to get cell data value
28
+ */
29
+ getData: (row: number, col: number) => any;
30
+ /**
31
+ * Function to get full row data (optional, for composite renderers)
32
+ */
33
+ getRowData?: (row: number) => any;
34
+ /**
35
+ * Function to get column definition (optional)
36
+ */
37
+ getColumn?: (col: number) => ColumnDef | undefined;
38
+ /**
39
+ * Function to check if cell is selected
40
+ * @default () => false
41
+ */
42
+ isSelected?: (row: number, col: number) => boolean;
43
+ /**
44
+ * Function to check if cell is active (has focus)
45
+ * @default () => false
46
+ */
47
+ isActive?: (row: number, col: number) => boolean;
48
+ /**
49
+ * Function to check if cell is being edited
50
+ * @default () => false
51
+ */
52
+ isEditing?: (row: number, col: number) => boolean;
53
+ }
54
+ /**
55
+ * CellPositioner interface
56
+ *
57
+ * Orchestrates cell rendering by coordinating VirtualScroller,
58
+ * CellPool, and RendererRegistry.
59
+ */
60
+ export interface CellPositioner {
61
+ /**
62
+ * Render visible cells based on scroll position
63
+ * This is the main rendering entry point
64
+ *
65
+ * @param scrollTop - Vertical scroll position in pixels
66
+ * @param scrollLeft - Horizontal scroll position in pixels
67
+ */
68
+ renderVisibleCells(scrollTop: number, scrollLeft: number): void;
69
+ /**
70
+ * Update specific cells without re-rendering entire range
71
+ * Useful for selection changes, editing state, etc.
72
+ *
73
+ * @param cells - Array of cell references to update
74
+ */
75
+ updateCells(cells: CellRef[]): void;
76
+ /**
77
+ * Force refresh all currently visible cells
78
+ * Re-renders cells using their current renderers
79
+ */
80
+ refresh(): void;
81
+ /**
82
+ * Cleanup and release all resources
83
+ */
84
+ destroy(): void;
85
+ }
86
+ //# sourceMappingURL=cell-positioner.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cell-positioner.interface.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/rendering/cell-positioner/cell-positioner.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAC;IAE1B;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC;IAEf;;OAEG;IACH,QAAQ,EAAE,gBAAgB,CAAC;IAE3B;;OAEG;IACH,KAAK,CAAC,EAAE,cAAc,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;IAE3C;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;IAElC;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,CAAC;IAEnD;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAEnD;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAEjD;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CACnD;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhE;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEpC;;;OAGG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * CellPositioner - Orchestrates cell rendering
3
+ */
4
+ export type { CellPositionerOptions } from './cell-positioner.interface';
5
+ export { CellPositioner } from './cell-positioner';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/rendering/cell-positioner/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * HeightProvider interface for configurable row height calculation
3
+ *
4
+ * Provides a strategy pattern for calculating row heights and positions.
5
+ * Implementations can provide uniform heights, variable heights, or custom logic.
6
+ */
7
+ export interface HeightProvider {
8
+ /**
9
+ * Get the height of a specific row
10
+ * @param index - Row index
11
+ * @returns Height in pixels
12
+ * @complexity O(1)
13
+ */
14
+ getHeight(index: number): number;
15
+ /**
16
+ * Get the Y offset where a row starts
17
+ * @param index - Row index
18
+ * @returns Offset in pixels from top
19
+ * @complexity O(1) for uniform, O(1) for variable (cached)
20
+ */
21
+ getOffset(index: number): number;
22
+ /**
23
+ * Get the total height of all rows
24
+ * @returns Total height in pixels
25
+ * @complexity O(1)
26
+ */
27
+ getTotalHeight(): number;
28
+ /**
29
+ * Find which row contains a given Y offset
30
+ * @param offset - Y position in pixels
31
+ * @returns Row index at that offset
32
+ * @complexity O(1) for uniform, O(log n) for variable
33
+ */
34
+ findIndexAtOffset(offset: number): number;
35
+ /**
36
+ * Update the height of a specific row (optional)
37
+ * @param index - Row index
38
+ * @param height - New height in pixels
39
+ * @complexity Varies by implementation
40
+ */
41
+ setHeight?(index: number, height: number): void;
42
+ /**
43
+ * Total number of rows
44
+ */
45
+ readonly length: number;
46
+ }
47
+ /**
48
+ * Options for creating a height provider
49
+ */
50
+ export interface HeightProviderOptions {
51
+ /**
52
+ * Total number of rows
53
+ */
54
+ rowCount: number;
55
+ /**
56
+ * Height value(s):
57
+ * - number: uniform height for all rows
58
+ * - number[]: individual heights per row
59
+ */
60
+ height: number | number[];
61
+ }
62
+ //# sourceMappingURL=height-provider.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"height-provider.interface.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/rendering/height-provider/height-provider.interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAEjC;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAEjC;;;;OAIG;IACH,cAAc,IAAI,MAAM,CAAC;IAEzB;;;;;OAKG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAE1C;;;;;OAKG;IACH,SAAS,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhD;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * HeightProvider - Strategy pattern for row height calculation
3
+ */
4
+ export type { HeightProvider, HeightProviderOptions } from './height-provider.interface';
5
+ export { UniformHeightProvider } from './uniform-height-provider';
6
+ export { VariableHeightProvider } from './variable-height-provider';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/rendering/height-provider/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { HeightProvider } from './height-provider.interface';
2
+ /**
3
+ * UniformHeightProvider - Fixed height for all rows
4
+ *
5
+ * Provides constant-time O(1) operations for all methods.
6
+ * Ideal for grids where all rows have the same height.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const provider = new UniformHeightProvider(30, 1000);
11
+ * provider.getHeight(0); // 30
12
+ * provider.getOffset(10); // 300
13
+ * provider.findIndexAtOffset(450); // 15
14
+ * ```
15
+ */
16
+ export declare class UniformHeightProvider implements HeightProvider {
17
+ private rowHeight;
18
+ private rowCount;
19
+ /**
20
+ * Create a uniform height provider
21
+ * @param height - Height in pixels for all rows
22
+ * @param length - Total number of rows
23
+ */
24
+ constructor(height: number, length: number);
25
+ getHeight(index: number): number;
26
+ getOffset(index: number): number;
27
+ getTotalHeight(): number;
28
+ findIndexAtOffset(offset: number): number;
29
+ get length(): number;
30
+ }
31
+ //# sourceMappingURL=uniform-height-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniform-height-provider.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/rendering/height-provider/uniform-height-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;;;;;;;;;;;GAaG;AACH,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;OAIG;gBACS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAY1C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAShC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAShC,cAAc,IAAI,MAAM;IAIxB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAYzC,IAAI,MAAM,IAAI,MAAM,CAEnB;CACF"}
@@ -0,0 +1,33 @@
1
+ import type { HeightProvider } from './height-provider.interface';
2
+ /**
3
+ * VariableHeightProvider - Variable heights using PrefixSumArray
4
+ *
5
+ * Supports different height for each row using prefix sums for efficient lookup.
6
+ * - O(1) for getHeight, getOffset, getTotalHeight
7
+ * - O(log n) for findIndexAtOffset (binary search)
8
+ * - O(n) for setHeight (updates all prefix sums after the changed index)
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const heights = [30, 40, 50, 30, 60];
13
+ * const provider = new VariableHeightProvider(heights);
14
+ * provider.getHeight(2); // 50
15
+ * provider.getOffset(2); // 70 (30 + 40)
16
+ * provider.findIndexAtOffset(100); // 2
17
+ * ```
18
+ */
19
+ export declare class VariableHeightProvider implements HeightProvider {
20
+ private heights;
21
+ /**
22
+ * Create a variable height provider
23
+ * @param heights - Array of heights for each row
24
+ */
25
+ constructor(heights: number[]);
26
+ getHeight(index: number): number;
27
+ getOffset(index: number): number;
28
+ getTotalHeight(): number;
29
+ findIndexAtOffset(offset: number): number;
30
+ setHeight(index: number, height: number): void;
31
+ get length(): number;
32
+ }
33
+ //# sourceMappingURL=variable-height-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable-height-provider.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/rendering/height-provider/variable-height-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,OAAO,CAAC,OAAO,CAAiB;IAEhC;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE;IAQ7B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIhC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIhC,cAAc,IAAI,MAAM;IAIxB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIzC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAO9C,IAAI,MAAM,IAAI,MAAM,CAEnB;CACF"}
@@ -0,0 +1,105 @@
1
+ import type { CellRenderer, RenderParams } from './renderer.interface';
2
+ /**
3
+ * Composite element configuration
4
+ */
5
+ export interface CompositeElement {
6
+ /**
7
+ * Element type
8
+ */
9
+ type: 'icon' | 'text' | 'badge' | 'custom';
10
+ /**
11
+ * Function to extract value from render params
12
+ */
13
+ getValue: (params: RenderParams) => any;
14
+ /**
15
+ * Additional CSS class
16
+ */
17
+ className?: string;
18
+ /**
19
+ * Custom renderer (for 'custom' type only)
20
+ */
21
+ renderer?: CellRenderer;
22
+ }
23
+ /**
24
+ * Conditional styling rule
25
+ */
26
+ export interface ConditionalStyle {
27
+ /**
28
+ * Condition function
29
+ */
30
+ condition: (params: RenderParams) => boolean;
31
+ /**
32
+ * CSS class to apply when condition is true
33
+ */
34
+ className?: string;
35
+ /**
36
+ * Inline styles to apply when condition is true
37
+ */
38
+ style?: Partial<CSSStyleDeclaration>;
39
+ }
40
+ /**
41
+ * Options for AdvancedCellRenderer
42
+ */
43
+ export interface AdvancedCellRendererOptions {
44
+ /**
45
+ * Composite elements to render
46
+ */
47
+ elements: CompositeElement[];
48
+ /**
49
+ * Conditional styling rules
50
+ */
51
+ conditions?: ConditionalStyle[];
52
+ /**
53
+ * Layout direction
54
+ * @default 'horizontal'
55
+ */
56
+ layout?: 'horizontal' | 'vertical';
57
+ /**
58
+ * Gap between elements in pixels
59
+ * @default 4
60
+ */
61
+ gap?: number;
62
+ }
63
+ /**
64
+ * AdvancedCellRenderer - Composite elements with conditional styling
65
+ *
66
+ * Supports rendering multiple elements in a single cell (icon + text + badge)
67
+ * and applying conditional styles based on cell value or state.
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * const renderer = new AdvancedCellRenderer({
72
+ * elements: [
73
+ * {
74
+ * type: 'icon',
75
+ * getValue: (params) => params.rowData?.status === 'active' ? '✓' : '✗',
76
+ * },
77
+ * {
78
+ * type: 'text',
79
+ * getValue: (params) => params.value,
80
+ * },
81
+ * {
82
+ * type: 'badge',
83
+ * getValue: (params) => params.rowData?.count,
84
+ * },
85
+ * ],
86
+ * conditions: [
87
+ * {
88
+ * condition: (params) => params.value < 0,
89
+ * className: 'negative-value',
90
+ * },
91
+ * ],
92
+ * });
93
+ * ```
94
+ */
95
+ export declare class AdvancedCellRenderer implements CellRenderer {
96
+ private options;
97
+ constructor(options: AdvancedCellRendererOptions);
98
+ render(element: HTMLElement, params: RenderParams): void;
99
+ update(element: HTMLElement, params: RenderParams): void;
100
+ destroy(element: HTMLElement): void;
101
+ private createCompositeElement;
102
+ private updateCompositeElement;
103
+ private applyConditions;
104
+ }
105
+ //# sourceMappingURL=advanced-cell-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced-cell-renderer.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/rendering/renderers/advanced-cell-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAE3C;;OAEG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,GAAG,CAAC;IAExC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC;IAE7C;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAE7B;;OAEG;IACH,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEhC;;;OAGG;IACH,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IAEnC;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,oBAAqB,YAAW,YAAY;IACvD,OAAO,CAAC,OAAO,CAA8B;gBAEjC,OAAO,EAAE,2BAA2B;IAQhD,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAkBxD,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAexD,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAMnC,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,sBAAsB;IA6B9B,OAAO,CAAC,eAAe;CAmBxB"}
@@ -0,0 +1,60 @@
1
+ import type { CellRenderer, RenderParams } from './renderer.interface';
2
+ /**
3
+ * Options for ImageRenderer
4
+ */
5
+ export interface ImageRendererOptions {
6
+ /**
7
+ * Fallback image URL if primary image fails to load
8
+ */
9
+ fallbackSrc?: string;
10
+ /**
11
+ * CSS object-fit property
12
+ * @default 'contain'
13
+ */
14
+ fit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';
15
+ /**
16
+ * Placeholder to show while image loads
17
+ * Can be a URL or 'skeleton' for skeleton loader
18
+ */
19
+ placeholder?: string;
20
+ /**
21
+ * Alt text for accessibility
22
+ * @default ''
23
+ */
24
+ alt?: string;
25
+ }
26
+ /**
27
+ * ImageRenderer - Image display with lazy loading
28
+ *
29
+ * Renders images with lazy loading, fallback support, and object-fit options.
30
+ * Handles both string URLs and object values with 'src' property.
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * const renderer = new ImageRenderer({
35
+ * fit: 'cover',
36
+ * fallbackSrc: '/images/placeholder.png',
37
+ * });
38
+ * renderer.render(element, { value: 'https://example.com/image.jpg', ...otherParams });
39
+ * ```
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * // Using object value
44
+ * renderer.render(element, {
45
+ * value: { src: 'https://example.com/image.jpg', alt: 'Product photo' },
46
+ * ...otherParams
47
+ * });
48
+ * ```
49
+ */
50
+ export declare class ImageRenderer implements CellRenderer {
51
+ private options;
52
+ constructor(options?: ImageRendererOptions);
53
+ render(element: HTMLElement, params: RenderParams): void;
54
+ update(element: HTMLElement, params: RenderParams): void;
55
+ destroy(element: HTMLElement): void;
56
+ private updateImage;
57
+ private extractSrc;
58
+ private extractAlt;
59
+ }
60
+ //# sourceMappingURL=image-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-renderer.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/rendering/renderers/image-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,CAAC;IAE3D;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,aAAc,YAAW,YAAY;IAChD,OAAO,CAAC,OAAO,CAAuB;gBAE1B,OAAO,GAAE,oBAAyB;IAQ9C,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAsBxD,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAWxD,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAKnC,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,UAAU;CAInB"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Cell Renderers - DOM-based cell content rendering
3
+ */
4
+ export type { CellRenderer, RenderParams } from './renderer.interface';
5
+ export { RendererRegistry } from './renderer-registry';
6
+ export { TextRenderer } from './text-renderer';
7
+ export { NumberRenderer } from './number-renderer';
8
+ export type { NumberRendererOptions } from './number-renderer';
9
+ export { ImageRenderer } from './image-renderer';
10
+ export type { ImageRendererOptions } from './image-renderer';
11
+ export { AdvancedCellRenderer } from './advanced-cell-renderer';
12
+ export type { AdvancedCellRendererOptions, CompositeElement, ConditionalStyle, } from './advanced-cell-renderer';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/rendering/renderers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,YAAY,EACV,2BAA2B,EAC3B,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC"}