@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.
- package/README.md +55 -0
- package/dist/README.md +55 -0
- package/dist/index.cjs.default.js +1 -0
- package/dist/index.cjs.js +9882 -0
- package/dist/index.cjs.mjs +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.esm.js +9847 -0
- package/dist/package.json +49 -0
- package/dist/src/a11y/aria-manager.d.ts +171 -0
- package/dist/src/a11y/aria-manager.d.ts.map +1 -0
- package/dist/src/a11y/focus-manager.d.ts +124 -0
- package/dist/src/a11y/focus-manager.d.ts.map +1 -0
- package/dist/src/a11y/index.d.ts +8 -0
- package/dist/src/a11y/index.d.ts.map +1 -0
- package/dist/src/data/data-accessor/array-accessor.d.ts +38 -0
- package/dist/src/data/data-accessor/array-accessor.d.ts.map +1 -0
- package/dist/src/data/data-accessor/column-store-accessor.d.ts +41 -0
- package/dist/src/data/data-accessor/column-store-accessor.d.ts.map +1 -0
- package/dist/src/data/data-accessor/data-accessor.interface.d.ts +41 -0
- package/dist/src/data/data-accessor/data-accessor.interface.d.ts.map +1 -0
- package/dist/src/data/data-accessor/index.d.ts +9 -0
- package/dist/src/data/data-accessor/index.d.ts.map +1 -0
- package/dist/src/data/data-accessor/sparse-matrix-accessor.d.ts +39 -0
- package/dist/src/data/data-accessor/sparse-matrix-accessor.d.ts.map +1 -0
- package/dist/src/data/data-manager.d.ts +161 -0
- package/dist/src/data/data-manager.d.ts.map +1 -0
- package/dist/src/data/data-source.interface.d.ts +82 -0
- package/dist/src/data/data-source.interface.d.ts.map +1 -0
- package/dist/src/data/grid-data-model.d.ts +102 -0
- package/dist/src/data/grid-data-model.d.ts.map +1 -0
- package/dist/src/data/index-map/index-map.d.ts +30 -0
- package/dist/src/data/index-map/index-map.d.ts.map +1 -0
- package/dist/src/data/index-map/index-map.interface.d.ts +49 -0
- package/dist/src/data/index-map/index-map.interface.d.ts.map +1 -0
- package/dist/src/data/index-map/index.d.ts +7 -0
- package/dist/src/data/index-map/index.d.ts.map +1 -0
- package/dist/src/data/index.d.ts +9 -0
- package/dist/src/data/index.d.ts.map +1 -0
- package/dist/src/editing/cell-editor.interface.d.ts +87 -0
- package/dist/src/editing/cell-editor.interface.d.ts.map +1 -0
- package/dist/src/editing/date-editor.d.ts +67 -0
- package/dist/src/editing/date-editor.d.ts.map +1 -0
- package/dist/src/editing/editor-manager.d.ts +141 -0
- package/dist/src/editing/editor-manager.d.ts.map +1 -0
- package/dist/src/editing/index.d.ts +15 -0
- package/dist/src/editing/index.d.ts.map +1 -0
- package/dist/src/editing/number-editor.d.ts +68 -0
- package/dist/src/editing/number-editor.d.ts.map +1 -0
- package/dist/src/editing/select-editor.d.ts +53 -0
- package/dist/src/editing/select-editor.d.ts.map +1 -0
- package/dist/src/editing/text-editor.d.ts +69 -0
- package/dist/src/editing/text-editor.d.ts.map +1 -0
- package/dist/src/events/event-emitter.d.ts +90 -0
- package/dist/src/events/event-emitter.d.ts.map +1 -0
- package/dist/src/events/grid-events.d.ts +277 -0
- package/dist/src/events/grid-events.d.ts.map +1 -0
- package/dist/src/events/index.d.ts +6 -0
- package/dist/src/events/index.d.ts.map +1 -0
- package/dist/src/features/autofill/autofill-manager.d.ts +103 -0
- package/dist/src/features/autofill/autofill-manager.d.ts.map +1 -0
- package/dist/src/features/autofill/index.d.ts +6 -0
- package/dist/src/features/autofill/index.d.ts.map +1 -0
- package/dist/src/features/column-resize/auto-fit-calculator.d.ts +52 -0
- package/dist/src/features/column-resize/auto-fit-calculator.d.ts.map +1 -0
- package/dist/src/features/column-resize/column-resize-manager.d.ts +114 -0
- package/dist/src/features/column-resize/column-resize-manager.d.ts.map +1 -0
- package/dist/src/features/column-resize/column-resize-manager.interface.d.ts +167 -0
- package/dist/src/features/column-resize/column-resize-manager.interface.d.ts.map +1 -0
- package/dist/src/features/column-resize/column-resize.styles.css +30 -0
- package/dist/src/features/column-resize/index.d.ts +15 -0
- package/dist/src/features/column-resize/index.d.ts.map +1 -0
- package/dist/src/features/column-resize/resize-constraint-manager.d.ts +52 -0
- package/dist/src/features/column-resize/resize-constraint-manager.d.ts.map +1 -0
- package/dist/src/features/column-resize/resize-handle-renderer.d.ts +41 -0
- package/dist/src/features/column-resize/resize-handle-renderer.d.ts.map +1 -0
- package/dist/src/features/column-resize/resize-preview.d.ts +32 -0
- package/dist/src/features/column-resize/resize-preview.d.ts.map +1 -0
- package/dist/src/features/column-resize/resize-state-manager.d.ts +75 -0
- package/dist/src/features/column-resize/resize-state-manager.d.ts.map +1 -0
- package/dist/src/features/column-resize/resize-strategies.d.ts +26 -0
- package/dist/src/features/column-resize/resize-strategies.d.ts.map +1 -0
- package/dist/src/features/column-resize/resize-test-helper.d.ts +71 -0
- package/dist/src/features/column-resize/resize-test-helper.d.ts.map +1 -0
- package/dist/src/features/column-resize/resize-zone-detector.d.ts +32 -0
- package/dist/src/features/column-resize/resize-zone-detector.d.ts.map +1 -0
- package/dist/src/features/copy-paste/clipboard-manager.d.ts +116 -0
- package/dist/src/features/copy-paste/clipboard-manager.d.ts.map +1 -0
- package/dist/src/features/copy-paste/index.d.ts +6 -0
- package/dist/src/features/copy-paste/index.d.ts.map +1 -0
- package/dist/src/features/filtering/adapters/adapter.interface.d.ts +100 -0
- package/dist/src/features/filtering/adapters/adapter.interface.d.ts.map +1 -0
- package/dist/src/features/filtering/adapters/graphql-adapter.d.ts +124 -0
- package/dist/src/features/filtering/adapters/graphql-adapter.d.ts.map +1 -0
- package/dist/src/features/filtering/adapters/index.d.ts +11 -0
- package/dist/src/features/filtering/adapters/index.d.ts.map +1 -0
- package/dist/src/features/filtering/adapters/rest-adapter.d.ts +108 -0
- package/dist/src/features/filtering/adapters/rest-adapter.d.ts.map +1 -0
- package/dist/src/features/filtering/adapters/sql-adapter.d.ts +123 -0
- package/dist/src/features/filtering/adapters/sql-adapter.d.ts.map +1 -0
- package/dist/src/features/filtering/adapters/types.d.ts +201 -0
- package/dist/src/features/filtering/adapters/types.d.ts.map +1 -0
- package/dist/src/features/filtering/column-filter.d.ts +117 -0
- package/dist/src/features/filtering/column-filter.d.ts.map +1 -0
- package/dist/src/features/filtering/filter-autocomplete.d.ts +78 -0
- package/dist/src/features/filtering/filter-autocomplete.d.ts.map +1 -0
- package/dist/src/features/filtering/filter-cache.d.ts +113 -0
- package/dist/src/features/filtering/filter-cache.d.ts.map +1 -0
- package/dist/src/features/filtering/filter-compiler.d.ts +66 -0
- package/dist/src/features/filtering/filter-compiler.d.ts.map +1 -0
- package/dist/src/features/filtering/filter-export-manager.d.ts +131 -0
- package/dist/src/features/filtering/filter-export-manager.d.ts.map +1 -0
- package/dist/src/features/filtering/filter-index-manager.d.ts +126 -0
- package/dist/src/features/filtering/filter-index-manager.d.ts.map +1 -0
- package/dist/src/features/filtering/filter-manager.d.ts +408 -0
- package/dist/src/features/filtering/filter-manager.d.ts.map +1 -0
- package/dist/src/features/filtering/filter-optimizer.d.ts +101 -0
- package/dist/src/features/filtering/filter-optimizer.d.ts.map +1 -0
- package/dist/src/features/filtering/filter-query-parser.d.ts +69 -0
- package/dist/src/features/filtering/filter-query-parser.d.ts.map +1 -0
- package/dist/src/features/filtering/index.d.ts +20 -0
- package/dist/src/features/filtering/index.d.ts.map +1 -0
- package/dist/src/features/filtering/range-filter-optimizer.d.ts +138 -0
- package/dist/src/features/filtering/range-filter-optimizer.d.ts.map +1 -0
- package/dist/src/features/filtering/substring-filter.d.ts +90 -0
- package/dist/src/features/filtering/substring-filter.d.ts.map +1 -0
- package/dist/src/features/filtering/types.d.ts +204 -0
- package/dist/src/features/filtering/types.d.ts.map +1 -0
- package/dist/src/features/formulas/formula-calculator.d.ts +151 -0
- package/dist/src/features/formulas/formula-calculator.d.ts.map +1 -0
- package/dist/src/features/formulas/index.d.ts +6 -0
- package/dist/src/features/formulas/index.d.ts.map +1 -0
- package/dist/src/features/hit-testing/index.d.ts +7 -0
- package/dist/src/features/hit-testing/index.d.ts.map +1 -0
- package/dist/src/features/hit-testing/spatial-hit-tester.d.ts +137 -0
- package/dist/src/features/hit-testing/spatial-hit-tester.d.ts.map +1 -0
- package/dist/src/features/loading/index.d.ts +5 -0
- package/dist/src/features/loading/index.d.ts.map +1 -0
- package/dist/src/features/loading/loading-indicator.d.ts +79 -0
- package/dist/src/features/loading/loading-indicator.d.ts.map +1 -0
- package/dist/src/features/loading/loading.styles.css +413 -0
- package/dist/src/features/pagination/index.d.ts +5 -0
- package/dist/src/features/pagination/index.d.ts.map +1 -0
- package/dist/src/features/pagination/pagination.styles.css +288 -0
- package/dist/src/features/pagination/paginator.d.ts +89 -0
- package/dist/src/features/pagination/paginator.d.ts.map +1 -0
- package/dist/src/features/selection/index.d.ts +7 -0
- package/dist/src/features/selection/index.d.ts.map +1 -0
- package/dist/src/features/selection/selection-manager.d.ts +167 -0
- package/dist/src/features/selection/selection-manager.d.ts.map +1 -0
- package/dist/src/features/sorting/index.d.ts +13 -0
- package/dist/src/features/sorting/index.d.ts.map +1 -0
- package/dist/src/features/sorting/row-sorter.interface.d.ts +63 -0
- package/dist/src/features/sorting/row-sorter.interface.d.ts.map +1 -0
- package/dist/src/features/sorting/single-column-sorter.d.ts +75 -0
- package/dist/src/features/sorting/single-column-sorter.d.ts.map +1 -0
- package/dist/src/features/sorting/sort-manager.d.ts +132 -0
- package/dist/src/features/sorting/sort-manager.d.ts.map +1 -0
- package/dist/src/features/undo-redo/index.d.ts +8 -0
- package/dist/src/features/undo-redo/index.d.ts.map +1 -0
- package/dist/src/features/undo-redo/undo-redo-manager.d.ts +215 -0
- package/dist/src/features/undo-redo/undo-redo-manager.d.ts.map +1 -0
- package/dist/src/grid.d.ts +412 -0
- package/dist/src/grid.d.ts.map +1 -0
- package/dist/src/i18n/index.d.ts +8 -0
- package/dist/src/i18n/index.d.ts.map +1 -0
- package/dist/src/i18n/locale-manager.d.ts +123 -0
- package/dist/src/i18n/locale-manager.d.ts.map +1 -0
- package/dist/src/i18n/rtl-support.d.ts +120 -0
- package/dist/src/i18n/rtl-support.d.ts.map +1 -0
- package/dist/src/index.d.ts +38 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/keyboard/index.d.ts +6 -0
- package/dist/src/keyboard/index.d.ts.map +1 -0
- package/dist/src/keyboard/keyboard-navigator.d.ts +171 -0
- package/dist/src/keyboard/keyboard-navigator.d.ts.map +1 -0
- package/dist/src/rendering/cache/index.d.ts +3 -0
- package/dist/src/rendering/cache/index.d.ts.map +1 -0
- package/dist/src/rendering/cache/renderer-cache.d.ts +100 -0
- package/dist/src/rendering/cache/renderer-cache.d.ts.map +1 -0
- package/dist/src/rendering/cache/renderer-cache.interface.d.ts +89 -0
- package/dist/src/rendering/cache/renderer-cache.interface.d.ts.map +1 -0
- package/dist/src/rendering/cell-pool/cell-pool.d.ts +36 -0
- package/dist/src/rendering/cell-pool/cell-pool.d.ts.map +1 -0
- package/dist/src/rendering/cell-pool/cell-pool.interface.d.ts +76 -0
- package/dist/src/rendering/cell-pool/cell-pool.interface.d.ts.map +1 -0
- package/dist/src/rendering/cell-pool/index.d.ts +6 -0
- package/dist/src/rendering/cell-pool/index.d.ts.map +1 -0
- package/dist/src/rendering/cell-positioner/cell-positioner.d.ts +46 -0
- package/dist/src/rendering/cell-positioner/cell-positioner.d.ts.map +1 -0
- package/dist/src/rendering/cell-positioner/cell-positioner.interface.d.ts +86 -0
- package/dist/src/rendering/cell-positioner/cell-positioner.interface.d.ts.map +1 -0
- package/dist/src/rendering/cell-positioner/index.d.ts +6 -0
- package/dist/src/rendering/cell-positioner/index.d.ts.map +1 -0
- package/dist/src/rendering/height-provider/height-provider.interface.d.ts +62 -0
- package/dist/src/rendering/height-provider/height-provider.interface.d.ts.map +1 -0
- package/dist/src/rendering/height-provider/index.d.ts +7 -0
- package/dist/src/rendering/height-provider/index.d.ts.map +1 -0
- package/dist/src/rendering/height-provider/uniform-height-provider.d.ts +31 -0
- package/dist/src/rendering/height-provider/uniform-height-provider.d.ts.map +1 -0
- package/dist/src/rendering/height-provider/variable-height-provider.d.ts +33 -0
- package/dist/src/rendering/height-provider/variable-height-provider.d.ts.map +1 -0
- package/dist/src/rendering/renderers/advanced-cell-renderer.d.ts +105 -0
- package/dist/src/rendering/renderers/advanced-cell-renderer.d.ts.map +1 -0
- package/dist/src/rendering/renderers/image-renderer.d.ts +60 -0
- package/dist/src/rendering/renderers/image-renderer.d.ts.map +1 -0
- package/dist/src/rendering/renderers/index.d.ts +13 -0
- package/dist/src/rendering/renderers/index.d.ts.map +1 -0
- package/dist/src/rendering/renderers/number-renderer.d.ts +71 -0
- package/dist/src/rendering/renderers/number-renderer.d.ts.map +1 -0
- package/dist/src/rendering/renderers/renderer-registry.d.ts +55 -0
- package/dist/src/rendering/renderers/renderer-registry.d.ts.map +1 -0
- package/dist/src/rendering/renderers/renderer.interface.d.ts +79 -0
- package/dist/src/rendering/renderers/renderer.interface.d.ts.map +1 -0
- package/dist/src/rendering/renderers/text-renderer.d.ts +20 -0
- package/dist/src/rendering/renderers/text-renderer.d.ts.map +1 -0
- package/dist/src/rendering/spatial-hit-tester.d.ts +108 -0
- package/dist/src/rendering/spatial-hit-tester.d.ts.map +1 -0
- package/dist/src/rendering/virtual-scroller/index.d.ts +6 -0
- package/dist/src/rendering/virtual-scroller/index.d.ts.map +1 -0
- package/dist/src/rendering/virtual-scroller/virtual-scroller.d.ts +56 -0
- package/dist/src/rendering/virtual-scroller/virtual-scroller.d.ts.map +1 -0
- package/dist/src/rendering/virtual-scroller/virtual-scroller.interface.d.ts +170 -0
- package/dist/src/rendering/virtual-scroller/virtual-scroller.interface.d.ts.map +1 -0
- package/dist/src/rendering/width-provider/index.d.ts +7 -0
- package/dist/src/rendering/width-provider/index.d.ts.map +1 -0
- package/dist/src/rendering/width-provider/uniform-width-provider.d.ts +31 -0
- package/dist/src/rendering/width-provider/uniform-width-provider.d.ts.map +1 -0
- package/dist/src/rendering/width-provider/variable-width-provider.d.ts +33 -0
- package/dist/src/rendering/width-provider/variable-width-provider.d.ts.map +1 -0
- package/dist/src/rendering/width-provider/width-provider.interface.d.ts +62 -0
- package/dist/src/rendering/width-provider/width-provider.interface.d.ts.map +1 -0
- package/dist/src/selection/hit-tester.d.ts +168 -0
- package/dist/src/selection/hit-tester.d.ts.map +1 -0
- package/dist/src/selection/hit-tester.interface.d.ts +108 -0
- package/dist/src/selection/hit-tester.interface.d.ts.map +1 -0
- package/dist/src/selection/index.d.ts +9 -0
- package/dist/src/selection/index.d.ts.map +1 -0
- package/dist/src/selection/range-utils.d.ts +219 -0
- package/dist/src/selection/range-utils.d.ts.map +1 -0
- package/dist/src/selection/range-utils.interface.d.ts +51 -0
- package/dist/src/selection/range-utils.interface.d.ts.map +1 -0
- package/dist/src/styles/grid.css +356 -0
- package/dist/src/styles.css +273 -0
- package/dist/src/touch/index.d.ts +6 -0
- package/dist/src/touch/index.d.ts.map +1 -0
- package/dist/src/touch/touch-handler.d.ts +167 -0
- package/dist/src/touch/touch-handler.d.ts.map +1 -0
- package/dist/src/types/index.d.ts +133 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types.d.ts +559 -0
- package/dist/src/types.d.ts.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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"}
|