@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,49 @@
1
+ {
2
+ "name": "@zengrid/core",
3
+ "version": "1.0.0",
4
+ "description": "High-performance data grid library with 14 advanced data structures and virtual scrolling",
5
+ "main": "./index.cjs.js",
6
+ "module": "./index.esm.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "module": "./index.esm.js",
11
+ "types": "./index.d.ts",
12
+ "import": "./index.cjs.mjs",
13
+ "default": "./index.cjs.js"
14
+ },
15
+ "./styles/*": "./dist/src/*",
16
+ "./package.json": "./package.json"
17
+ },
18
+ "files": [
19
+ "dist",
20
+ "README.md"
21
+ ],
22
+ "keywords": [
23
+ "grid",
24
+ "data-grid",
25
+ "table",
26
+ "spreadsheet",
27
+ "virtual-scroll",
28
+ "datagrid",
29
+ "angular",
30
+ "react",
31
+ "vue"
32
+ ],
33
+ "author": "ZenGrid Team",
34
+ "license": "MIT",
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "https://github.com/Balaji2682/zengrid.git",
38
+ "directory": "packages/core"
39
+ },
40
+ "bugs": {
41
+ "url": "https://github.com/Balaji2682/zengrid/issues"
42
+ },
43
+ "homepage": "https://github.com/Balaji2682/zengrid#readme",
44
+ "dependencies": {
45
+ "@zengrid/shared": "^1.0.0"
46
+ },
47
+ "peerDependencies": {},
48
+ "devDependencies": {}
49
+ }
@@ -0,0 +1,171 @@
1
+ import type { CellRef, SortDirection } from '../types';
2
+ /**
3
+ * ARIA Manager options
4
+ */
5
+ export interface ARIAManagerOptions {
6
+ /**
7
+ * Grid container element
8
+ */
9
+ container: HTMLElement;
10
+ /**
11
+ * Total row count
12
+ */
13
+ rowCount: number;
14
+ /**
15
+ * Total column count
16
+ */
17
+ colCount: number;
18
+ /**
19
+ * Label for screen readers
20
+ * @default 'Data grid'
21
+ */
22
+ label?: string;
23
+ /**
24
+ * Description for screen readers
25
+ */
26
+ description?: string;
27
+ /**
28
+ * Enable live region announcements
29
+ * @default true
30
+ */
31
+ enableLiveRegion?: boolean;
32
+ }
33
+ /**
34
+ * ARIA Manager - Accessibility features for screen readers
35
+ *
36
+ * Implements WCAG 2.1 AA compliance through:
37
+ * - Proper ARIA roles (grid, gridcell, rowheader, columnheader)
38
+ * - Dynamic aria-rowindex and aria-colindex
39
+ * - aria-selected state management
40
+ * - aria-sort for sortable columns
41
+ * - Live region for announcements
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * const aria = new ARIAManager({
46
+ * container: gridElement,
47
+ * rowCount: 100000,
48
+ * colCount: 10,
49
+ * label: 'Employee data grid',
50
+ * });
51
+ *
52
+ * // Mark cell as selected
53
+ * aria.setCellSelected(cellElement, 0, 0, true);
54
+ *
55
+ * // Announce to screen reader
56
+ * aria.announce('Data loaded successfully');
57
+ *
58
+ * // Update sort indicator
59
+ * aria.setColumnSort(headerElement, 0, 'asc');
60
+ * ```
61
+ */
62
+ export declare class ARIAManager {
63
+ private container;
64
+ private rowCount;
65
+ private colCount;
66
+ private liveRegion;
67
+ private announceTimeout;
68
+ constructor(options: ARIAManagerOptions);
69
+ /**
70
+ * Setup grid container ARIA roles and attributes
71
+ */
72
+ private setupGridRole;
73
+ /**
74
+ * Setup live region for screen reader announcements
75
+ */
76
+ private setupLiveRegion;
77
+ /**
78
+ * Set cell ARIA attributes
79
+ * @param element - Cell element
80
+ * @param row - Row index (0-based)
81
+ * @param col - Column index (0-based)
82
+ */
83
+ setCellAttributes(element: HTMLElement, row: number, col: number): void;
84
+ /**
85
+ * Set cell selected state
86
+ * @param element - Cell element
87
+ * @param row - Row index
88
+ * @param col - Column index
89
+ * @param selected - Selected state
90
+ */
91
+ setCellSelected(element: HTMLElement, row: number, col: number, selected: boolean): void;
92
+ /**
93
+ * Set header cell attributes
94
+ * @param element - Header element
95
+ * @param col - Column index
96
+ * @param label - Column label
97
+ */
98
+ setHeaderAttributes(element: HTMLElement, col: number, label: string): void;
99
+ /**
100
+ * Set row header attributes
101
+ * @param element - Row header element
102
+ * @param row - Row index
103
+ * @param label - Row label
104
+ */
105
+ setRowHeaderAttributes(element: HTMLElement, row: number, label: string): void;
106
+ /**
107
+ * Set column sort indicator
108
+ * @param element - Column header element
109
+ * @param col - Column index
110
+ * @param direction - Sort direction ('asc', 'desc', or null)
111
+ */
112
+ setColumnSort(element: HTMLElement, col: number, direction: SortDirection): void;
113
+ /**
114
+ * Set cell as editable
115
+ * @param element - Cell element
116
+ * @param editable - Whether cell is editable
117
+ */
118
+ setCellEditable(element: HTMLElement, editable: boolean): void;
119
+ /**
120
+ * Set cell as disabled
121
+ * @param element - Cell element
122
+ * @param disabled - Whether cell is disabled
123
+ */
124
+ setCellDisabled(element: HTMLElement, disabled: boolean): void;
125
+ /**
126
+ * Announce message to screen readers
127
+ * @param message - Message to announce
128
+ * @param priority - Announcement priority ('polite' or 'assertive')
129
+ */
130
+ announce(message: string, priority?: 'polite' | 'assertive'): void;
131
+ /**
132
+ * Update grid size
133
+ * @param rowCount - New row count
134
+ * @param colCount - New column count
135
+ */
136
+ updateSize(rowCount: number, colCount: number): void;
137
+ /**
138
+ * Set active cell (for keyboard navigation)
139
+ * @param element - Cell element
140
+ * @param cell - Cell reference
141
+ */
142
+ setActiveCell(element: HTMLElement, cell: CellRef): void;
143
+ /**
144
+ * Clear active cell
145
+ */
146
+ clearActiveCell(): void;
147
+ /**
148
+ * Announce range selection
149
+ * @param startRow - Start row (0-based)
150
+ * @param startCol - Start column (0-based)
151
+ * @param endRow - End row (0-based)
152
+ * @param endCol - End column (0-based)
153
+ */
154
+ announceRangeSelection(startRow: number, startCol: number, endRow: number, endCol: number): void;
155
+ /**
156
+ * Announce filter applied
157
+ * @param visibleRows - Number of visible rows
158
+ * @param totalRows - Total rows
159
+ */
160
+ announceFilter(visibleRows: number, totalRows: number): void;
161
+ /**
162
+ * Announce data load
163
+ * @param rowCount - Number of rows loaded
164
+ */
165
+ announceDataLoad(rowCount: number): void;
166
+ /**
167
+ * Destroy manager and cleanup
168
+ */
169
+ destroy(): void;
170
+ }
171
+ //# sourceMappingURL=aria-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aria-manager.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/a11y/aria-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,SAAS,EAAE,WAAW,CAAC;IAEvB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,eAAe,CAAuB;gBAElC,OAAO,EAAE,kBAAkB;IAcvC;;OAEG;IACH,OAAO,CAAC,aAAa;IAmBrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB;;;;;OAKG;IACH,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IASvE;;;;;;OAMG;IACH,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAUxF;;;;;OAKG;IACH,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAO3E;;;;;OAKG;IACH,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAO9E;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;IAYhF;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAQ9D;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAI9D;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAQ,GAAG,WAAsB,GAAG,IAAI;IAqB5E;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAUpD;;;;OAIG;IACH,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAUxD;;OAEG;IACH,eAAe,IAAI,IAAI;IAIvB;;;;;;OAMG;IACH,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAShG;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM5D;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKxC;;OAEG;IACH,OAAO,IAAI,IAAI;CAmBhB"}
@@ -0,0 +1,124 @@
1
+ import type { CellRef } from '../types';
2
+ import type { ARIAManager } from './aria-manager';
3
+ /**
4
+ * Focus Manager options
5
+ */
6
+ export interface FocusManagerOptions {
7
+ /**
8
+ * Grid container element
9
+ */
10
+ container: HTMLElement;
11
+ /**
12
+ * ARIA manager instance
13
+ */
14
+ ariaManager?: ARIAManager;
15
+ /**
16
+ * Callback to get cell element
17
+ */
18
+ getCellElement: (row: number, col: number) => HTMLElement | null;
19
+ /**
20
+ * Callback when active cell changes
21
+ */
22
+ onActiveCellChange?: (cell: CellRef | null, previousCell: CellRef | null) => void;
23
+ }
24
+ /**
25
+ * FocusManager - Manages keyboard focus using roving tabindex pattern
26
+ *
27
+ * Implements the roving tabindex pattern for grid navigation:
28
+ * - Only one cell is focusable at a time (tabindex="0")
29
+ * - All other cells have tabindex="-1"
30
+ * - Arrow keys move focus between cells
31
+ * - Tab key exits the grid
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const focus = new FocusManager({
36
+ * container: gridElement,
37
+ * getCellElement: (row, col) => document.getElementById(`cell-${row}-${col}`),
38
+ * onActiveCellChange: (cell) => {
39
+ * console.log('Active cell:', cell);
40
+ * },
41
+ * });
42
+ *
43
+ * // Set active cell
44
+ * focus.setActiveCell({ row: 0, col: 0 });
45
+ *
46
+ * // Move focus
47
+ * focus.moveFocus('down'); // Moves to row 1
48
+ * focus.moveFocus('right'); // Moves to col 1
49
+ * ```
50
+ */
51
+ export declare class FocusManager {
52
+ private container;
53
+ private ariaManager?;
54
+ private getCellElement;
55
+ private onActiveCellChange?;
56
+ private activeCell;
57
+ private focusedElement;
58
+ constructor(options: FocusManagerOptions);
59
+ /**
60
+ * Get current active cell
61
+ */
62
+ getActiveCell(): CellRef | null;
63
+ /**
64
+ * Set active cell and update focus
65
+ * @param cell - Cell to make active
66
+ * @param focus - Whether to actually focus the element (default true)
67
+ */
68
+ setActiveCell(cell: CellRef | null, focus?: boolean): void;
69
+ /**
70
+ * Move focus in a direction
71
+ * @param direction - Direction to move ('up', 'down', 'left', 'right')
72
+ * @param rowCount - Total row count
73
+ * @param colCount - Total column count
74
+ * @returns Whether focus moved successfully
75
+ */
76
+ moveFocus(direction: 'up' | 'down' | 'left' | 'right', rowCount: number, colCount: number): boolean;
77
+ /**
78
+ * Move focus by page (Page Up/Down)
79
+ * @param direction - 'up' or 'down'
80
+ * @param pageSize - Number of rows per page
81
+ * @param rowCount - Total row count
82
+ */
83
+ movePageFocus(direction: 'up' | 'down', pageSize: number, rowCount: number): boolean;
84
+ /**
85
+ * Move to first cell in row (Home)
86
+ */
87
+ moveToRowStart(): boolean;
88
+ /**
89
+ * Move to last cell in row (End)
90
+ * @param colCount - Total column count
91
+ */
92
+ moveToRowEnd(colCount: number): boolean;
93
+ /**
94
+ * Move to first cell in grid (Ctrl+Home)
95
+ */
96
+ moveToGridStart(): boolean;
97
+ /**
98
+ * Move to last cell in grid (Ctrl+End)
99
+ * @param rowCount - Total row count
100
+ * @param colCount - Total column count
101
+ */
102
+ moveToGridEnd(rowCount: number, colCount: number): boolean;
103
+ /**
104
+ * Focus the grid container
105
+ */
106
+ focusGrid(): void;
107
+ /**
108
+ * Check if grid or a cell has focus
109
+ */
110
+ hasFocus(): boolean;
111
+ /**
112
+ * Render focus ring on active cell
113
+ */
114
+ renderFocusRing(): void;
115
+ /**
116
+ * Clear focus
117
+ */
118
+ clearFocus(): void;
119
+ /**
120
+ * Destroy focus manager
121
+ */
122
+ destroy(): void;
123
+ }
124
+ //# sourceMappingURL=focus-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-manager.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/a11y/focus-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,SAAS,EAAE,WAAW,CAAC;IAEvB;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;OAEG;IACH,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,CAAC;IAEjE;;OAEG;IACH,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,YAAY,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;CACnF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,cAAc,CAAmD;IACzE,OAAO,CAAC,kBAAkB,CAAC,CAA+D;IAE1F,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,cAAc,CAA4B;gBAEtC,OAAO,EAAE,mBAAmB;IAOxC;;OAEG;IACH,aAAa,IAAI,OAAO,GAAG,IAAI;IAI/B;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,KAAK,GAAE,OAAc,GAAG,IAAI;IAuDhE;;;;;;OAMG;IACH,SAAS,CACP,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,EAC3C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO;IAgCV;;;;;OAKG;IACH,aAAa,CACX,SAAS,EAAE,IAAI,GAAG,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO;IAkBV;;OAEG;IACH,cAAc,IAAI,OAAO;IAQzB;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAUvC;;OAEG;IACH,eAAe,IAAI,OAAO;IAQ1B;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAc1D;;OAEG;IACH,SAAS,IAAI,IAAI;IAIjB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAOnB;;OAEG;IACH,eAAe,IAAI,IAAI;IAOvB;;OAEG;IACH,UAAU,IAAI,IAAI;IAoBlB;;OAEG;IACH,OAAO,IAAI,IAAI;CAKhB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Accessibility (a11y) features for ZenGrid
3
+ */
4
+ export { ARIAManager } from './aria-manager';
5
+ export type { ARIAManagerOptions } from './aria-manager';
6
+ export { FocusManager } from './focus-manager';
7
+ export type { FocusManagerOptions } from './focus-manager';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/a11y/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { DataAccessor } from './data-accessor.interface';
2
+ /**
3
+ * DataAccessor adapter for 2D arrays
4
+ *
5
+ * Provides unified access to array-based data for sorting/filtering/searching.
6
+ */
7
+ export declare class ArrayAccessor<T = any> implements DataAccessor<T> {
8
+ private data;
9
+ private _colCount;
10
+ constructor(data: T[][]);
11
+ getValue(row: number, col: number | string): T | undefined;
12
+ getRow(row: number): Iterable<[number, T]>;
13
+ getColumn(col: number | string): Iterable<[number, T]>;
14
+ get rowCount(): number;
15
+ get colCount(): number;
16
+ getColumnIds(): ReadonlyArray<number>;
17
+ }
18
+ /**
19
+ * Create a DataAccessor from a 2D array
20
+ *
21
+ * @param data - 2D array of data
22
+ * @returns DataAccessor instance
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * const data = [
27
+ * ['Alice', 25, true],
28
+ * ['Bob', 30, false],
29
+ * ['Charlie', 35, true]
30
+ * ];
31
+ *
32
+ * const accessor = createArrayAccessor(data);
33
+ * accessor.getValue(0, 0); // 'Alice'
34
+ * accessor.getValue(1, 1); // 30
35
+ * ```
36
+ */
37
+ export declare function createArrayAccessor<T>(data: T[][]): DataAccessor<T>;
38
+ //# sourceMappingURL=array-accessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-accessor.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/data/data-accessor/array-accessor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D;;;;GAIG;AACH,qBAAa,aAAa,CAAC,CAAC,GAAG,GAAG,CAAE,YAAW,YAAY,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,IAAI,CAAkC;IAC9C,OAAO,CAAC,SAAS,CAAS;gBAEd,IAAI,EAAE,CAAC,EAAE,EAAE;IAKvB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS;IAmB1D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAc1C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAuBtD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,YAAY,IAAI,aAAa,CAAC,MAAM,CAAC;CAGtC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAEnE"}
@@ -0,0 +1,41 @@
1
+ import type { ColumnStore as IColumnStore } from '@zengrid/shared';
2
+ import type { DataAccessor } from './data-accessor.interface';
3
+ /**
4
+ * DataAccessor adapter for ColumnStore
5
+ *
6
+ * Provides unified access to column-oriented data for sorting/filtering/searching.
7
+ */
8
+ export declare class ColumnStoreAccessor implements DataAccessor<any> {
9
+ private store;
10
+ constructor(store: IColumnStore);
11
+ getValue(row: number, col: number | string): any | undefined;
12
+ getRow(row: number): Iterable<[string, any]>;
13
+ getColumn(col: number | string): Iterable<[number, any]>;
14
+ get rowCount(): number;
15
+ get colCount(): number;
16
+ getColumnIds(): ReadonlyArray<string>;
17
+ }
18
+ /**
19
+ * Create a DataAccessor from a ColumnStore
20
+ *
21
+ * @param store - ColumnStore instance
22
+ * @returns DataAccessor instance
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * const store = new ColumnStore({
27
+ * rowCount: 100,
28
+ * columns: [
29
+ * { name: 'id', type: 'int32' },
30
+ * { name: 'name', type: 'string' },
31
+ * { name: 'price', type: 'float64' }
32
+ * ]
33
+ * });
34
+ *
35
+ * const accessor = createColumnStoreAccessor(store);
36
+ * accessor.getValue(0, 'name'); // Get by column name
37
+ * accessor.getValue(0, 1); // Get by column index
38
+ * ```
39
+ */
40
+ export declare function createColumnStoreAccessor(store: IColumnStore): DataAccessor<any>;
41
+ //# sourceMappingURL=column-store-accessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-store-accessor.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/data/data-accessor/column-store-accessor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,YAAY,CAAC,GAAG,CAAC;IAC3D,OAAO,CAAC,KAAK,CAAe;gBAEhB,KAAK,EAAE,YAAY;IAI/B,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,GAAG,SAAS;IAY5D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAM5C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAWxD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,YAAY,IAAI,aAAa,CAAC,MAAM,CAAC;CAGtC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,YAAY,GAClB,YAAY,CAAC,GAAG,CAAC,CAEnB"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Abstraction layer for accessing grid data from different sources
3
+ *
4
+ * Enables sorting/filtering/searching to work with any data structure
5
+ * (SparseMatrix, ColumnStore, or plain arrays).
6
+ */
7
+ export interface DataAccessor<T = any> {
8
+ /**
9
+ * Get value at specific cell
10
+ * @param row - Row index
11
+ * @param col - Column identifier (number for SparseMatrix, string for ColumnStore)
12
+ * @returns Cell value or undefined if not present
13
+ */
14
+ getValue(row: number, col: number | string): T | undefined;
15
+ /**
16
+ * Get all values in a row
17
+ * @param row - Row index
18
+ * @returns Iterable of [column, value] pairs
19
+ */
20
+ getRow(row: number): Iterable<[number | string, T]>;
21
+ /**
22
+ * Get all values in a column
23
+ * @param col - Column identifier
24
+ * @returns Iterable of [row, value] pairs
25
+ */
26
+ getColumn(col: number | string): Iterable<[number, T]>;
27
+ /**
28
+ * Total number of rows in data source
29
+ */
30
+ readonly rowCount: number;
31
+ /**
32
+ * Total number of columns
33
+ */
34
+ readonly colCount: number;
35
+ /**
36
+ * Get list of column identifiers
37
+ * @returns Array of column identifiers (numbers or strings)
38
+ */
39
+ getColumnIds(): ReadonlyArray<number | string>;
40
+ }
41
+ //# sourceMappingURL=data-accessor.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-accessor.interface.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/data/data-accessor/data-accessor.interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAE3D;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpD;;;;OAIG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAEvD;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,YAAY,IAAI,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CAChD"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * DataAccessor - Unified interface for accessing different data sources
3
+ * @packageDocumentation
4
+ */
5
+ export type { DataAccessor } from './data-accessor.interface';
6
+ export { SparseMatrixAccessor, createSparseMatrixAccessor, } from './sparse-matrix-accessor';
7
+ export { ColumnStoreAccessor, createColumnStoreAccessor, } from './column-store-accessor';
8
+ export { ArrayAccessor, createArrayAccessor } from './array-accessor';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/data/data-accessor/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { ReadonlySparseMatrix } from '@zengrid/shared';
2
+ import type { DataAccessor } from './data-accessor.interface';
3
+ /**
4
+ * DataAccessor adapter for SparseMatrix
5
+ *
6
+ * Provides unified access to sparse matrix data for sorting/filtering/searching.
7
+ */
8
+ export declare class SparseMatrixAccessor<T = any> implements DataAccessor<T> {
9
+ private matrix;
10
+ private _rowCount;
11
+ private _colCount;
12
+ constructor(matrix: ReadonlySparseMatrix<T>, rowCount: number, colCount: number);
13
+ getValue(row: number, col: number | string): T | undefined;
14
+ getRow(row: number): Iterable<[number, T]>;
15
+ getColumn(col: number | string): Iterable<[number, T]>;
16
+ get rowCount(): number;
17
+ get colCount(): number;
18
+ getColumnIds(): ReadonlyArray<number>;
19
+ }
20
+ /**
21
+ * Create a DataAccessor from a SparseMatrix
22
+ *
23
+ * @param matrix - Sparse matrix instance
24
+ * @param rowCount - Total number of rows (including empty rows)
25
+ * @param colCount - Total number of columns (including empty columns)
26
+ * @returns DataAccessor instance
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const matrix = new SparseMatrix<number>();
31
+ * matrix.set(0, 1, 42);
32
+ * matrix.set(5, 3, 99);
33
+ *
34
+ * const accessor = createSparseMatrixAccessor(matrix, 10, 5);
35
+ * accessor.getValue(0, 1); // 42
36
+ * ```
37
+ */
38
+ export declare function createSparseMatrixAccessor<T>(matrix: ReadonlySparseMatrix<T>, rowCount: number, colCount: number): DataAccessor<T>;
39
+ //# sourceMappingURL=sparse-matrix-accessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sparse-matrix-accessor.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/data/data-accessor/sparse-matrix-accessor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D;;;;GAIG;AACH,qBAAa,oBAAoB,CAAC,CAAC,GAAG,GAAG,CAAE,YAAW,YAAY,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAM/E,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS;IAS1D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAM1C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAWtD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,YAAY,IAAI,aAAa,CAAC,MAAM,CAAC;CAGtC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAC1C,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,YAAY,CAAC,CAAC,CAAC,CAEjB"}