@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,131 @@
1
+ /**
2
+ * Filter Export Manager
3
+ *
4
+ * Manages filter state transformation and export to multiple formats.
5
+ * Orchestrates adapters and handles conversions between column-based and field-based filters.
6
+ */
7
+ import type { ColumnDef, FilterModel } from '../../types';
8
+ import type { FieldFilterState, CustomOperator } from './types';
9
+ import type { FilterExportResult } from './adapters/types';
10
+ import type { FilterAdapter } from './adapters/adapter.interface';
11
+ import { type RESTAdapterOptions } from './adapters/rest-adapter';
12
+ import { type GraphQLAdapterOptions } from './adapters/graphql-adapter';
13
+ import { type SQLAdapterOptions } from './adapters/sql-adapter';
14
+ /**
15
+ * FilterExportManager configuration
16
+ */
17
+ export interface FilterExportManagerOptions {
18
+ /**
19
+ * Column definitions (for field mapping)
20
+ */
21
+ columns: ColumnDef[];
22
+ /**
23
+ * Adapter configurations
24
+ */
25
+ adapters?: {
26
+ rest?: RESTAdapterOptions;
27
+ graphql?: GraphQLAdapterOptions;
28
+ sql?: SQLAdapterOptions;
29
+ };
30
+ /**
31
+ * Custom operators
32
+ */
33
+ customOperators?: CustomOperator[];
34
+ }
35
+ /**
36
+ * FilterExportManager - Manages filter transformation and export
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * const exportManager = new FilterExportManager({
41
+ * columns: [
42
+ * { field: 'id', header: 'ID' },
43
+ * { field: 'name', header: 'Name' },
44
+ * { field: 'age', header: 'Age' }
45
+ * ],
46
+ * adapters: {
47
+ * rest: { style: 'brackets' },
48
+ * graphql: { style: 'prisma' },
49
+ * sql: { paramStyle: 'named' }
50
+ * }
51
+ * });
52
+ *
53
+ * // Convert internal FilterModel[] to field-based format
54
+ * const fieldState = exportManager.convertFromModels(filterModels);
55
+ *
56
+ * // Export to all formats
57
+ * const exports = exportManager.export(fieldState);
58
+ * console.log(exports.rest.queryString); // ?filter[age][gt]=18
59
+ * console.log(exports.graphql.where); // { age: { gt: 18 } }
60
+ * console.log(exports.sql.whereClause); // age > :age
61
+ * ```
62
+ */
63
+ export declare class FilterExportManager {
64
+ private columns;
65
+ private fieldToIndex;
66
+ private indexToField;
67
+ private adapters;
68
+ private customOperators;
69
+ constructor(options: FilterExportManagerOptions);
70
+ /**
71
+ * Build field name to index mappings
72
+ */
73
+ private buildFieldMappings;
74
+ /**
75
+ * Initialize default adapters
76
+ */
77
+ private initializeAdapters;
78
+ /**
79
+ * Register custom operators
80
+ */
81
+ private registerCustomOperators;
82
+ /**
83
+ * Convert FilterModel[] (column-based) to FieldFilterState (field-based)
84
+ *
85
+ * This enables backend-friendly exports using field names instead of indices
86
+ */
87
+ convertFromModels(models: FilterModel[]): FieldFilterState;
88
+ /**
89
+ * Convert FieldFilterState (field-based) to FilterModel[] (column-based)
90
+ *
91
+ * Reverse conversion for internal use
92
+ */
93
+ convertToModels(state: FieldFilterState): FilterModel[];
94
+ /**
95
+ * Export filter state to all registered formats
96
+ */
97
+ export(state: FieldFilterState): FilterExportResult;
98
+ /**
99
+ * Export to specific format
100
+ */
101
+ exportAs<T>(state: FieldFilterState, adapterName: string): T;
102
+ /**
103
+ * Register custom adapter
104
+ */
105
+ registerAdapter(name: string, adapter: FilterAdapter<any>): void;
106
+ /**
107
+ * Register custom operator
108
+ */
109
+ registerOperator(operator: CustomOperator): void;
110
+ /**
111
+ * Update columns (rebuild mappings)
112
+ */
113
+ setColumns(columns: ColumnDef[]): void;
114
+ /**
115
+ * Map internal operator to standard operator
116
+ */
117
+ private mapOperatorToStandard;
118
+ /**
119
+ * Map standard operator to internal operator
120
+ */
121
+ private mapOperatorToInternal;
122
+ /**
123
+ * Get all registered adapters
124
+ */
125
+ getAdapters(): string[];
126
+ /**
127
+ * Get all custom operators
128
+ */
129
+ getCustomOperators(): CustomOperator[];
130
+ }
131
+ //# sourceMappingURL=filter-export-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-export-manager.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/features/filtering/filter-export-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAgD,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAwB,KAAK,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC9F,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,kBAAkB,CAAC;QAC1B,OAAO,CAAC,EAAE,qBAAqB,CAAC;QAChC,GAAG,CAAC,EAAE,iBAAiB,CAAC;KACzB,CAAC;IAEF;;OAEG;IACH,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,eAAe,CAA0C;gBAErD,OAAO,EAAE,0BAA0B;IAO/C;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAM/B;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB;IAoC1D;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,WAAW,EAAE;IAsCvD;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,kBAAkB;IA0BnD;;OAEG;IACH,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;IAQ5D;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI;IAIhE;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAIhD;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI;IAKtC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB;;OAEG;IACH,kBAAkB,IAAI,cAAc,EAAE;CAGvC"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Filter Index Manager using ColumnStore
3
+ *
4
+ * Provides vectorized filtering operations for high-performance
5
+ * numeric and typed column filtering.
6
+ */
7
+ import { ColumnType } from '@zengrid/shared/data-structures/column-store';
8
+ /**
9
+ * Filter operation for vectorized filtering
10
+ */
11
+ interface VectorizedFilterOperation {
12
+ /** Operation type */
13
+ type: 'gt' | 'gte' | 'lt' | 'lte' | 'eq' | 'neq' | 'between';
14
+ /** Filter value(s) */
15
+ value: number;
16
+ /** Secondary value for 'between' */
17
+ valueTo?: number;
18
+ }
19
+ /**
20
+ * FilterIndexManager - Vectorized filtering with ColumnStore
21
+ *
22
+ * Uses column-oriented storage for 10-100x faster numeric filtering.
23
+ * Particularly effective for large datasets with numeric columns.
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * const indexManager = new FilterIndexManager();
28
+ *
29
+ * // Index numeric column
30
+ * indexManager.indexColumn(0, rowCount, (row) => data[row].price, 'number');
31
+ *
32
+ * // Vectorized filter: price > 100
33
+ * const rows = indexManager.filter(0, { type: 'gt', value: 100 });
34
+ * // 10-100x faster than row-by-row scanning
35
+ * ```
36
+ */
37
+ export declare class FilterIndexManager {
38
+ private columnIndexes;
39
+ private memoryUsage;
40
+ private maxMemoryMB;
41
+ constructor(options?: {
42
+ maxMemoryMB?: number;
43
+ });
44
+ /**
45
+ * Index a column for vectorized filtering
46
+ *
47
+ * @param col - Column index
48
+ * @param rowCount - Total row count
49
+ * @param getValue - Function to get value for each row
50
+ * @param type - Column data type
51
+ */
52
+ indexColumn(col: number, rowCount: number, getValue: (row: number) => any, type?: ColumnType): void;
53
+ /**
54
+ * Vectorized filter operation
55
+ *
56
+ * Uses typed arrays for 10-100x faster filtering on numeric columns.
57
+ *
58
+ * @param col - Column index
59
+ * @param operation - Filter operation
60
+ * @returns Array of matching row indices
61
+ */
62
+ filter(col: number, operation: VectorizedFilterOperation): number[] | null;
63
+ /**
64
+ * Get column aggregation (MIN, MAX, SUM, AVG)
65
+ *
66
+ * @param col - Column index
67
+ * @param operation - Aggregation operation
68
+ * @returns Aggregated value or null
69
+ */
70
+ aggregate(col: number, operation: 'min' | 'max' | 'sum' | 'avg' | 'count'): number | null;
71
+ /**
72
+ * Update a single row value in the index
73
+ *
74
+ * @param col - Column index
75
+ * @param row - Row index
76
+ * @param value - New value
77
+ */
78
+ updateRow(col: number, row: number, value: any): void;
79
+ /**
80
+ * Check if column is indexed
81
+ *
82
+ * @param col - Column index
83
+ * @returns true if column has vectorized index
84
+ */
85
+ isIndexed(col: number): boolean;
86
+ /**
87
+ * Get column type
88
+ *
89
+ * @param col - Column index
90
+ * @returns Column type or null
91
+ */
92
+ getColumnType(col: number): ColumnType | null;
93
+ /**
94
+ * Clear index for a column
95
+ *
96
+ * @param col - Column index
97
+ */
98
+ clearColumn(col: number): void;
99
+ /**
100
+ * Clear all indexes
101
+ */
102
+ clearAll(): void;
103
+ /**
104
+ * Get memory usage statistics
105
+ */
106
+ getMemoryStats(): {
107
+ usedMB: number;
108
+ limitMB: number;
109
+ utilizationPercent: number;
110
+ indexedColumns: number;
111
+ };
112
+ /**
113
+ * Get all indexed columns
114
+ */
115
+ getIndexedColumns(): number[];
116
+ /**
117
+ * Estimate memory size for a column
118
+ *
119
+ * @param rowCount - Number of rows
120
+ * @param type - Column type
121
+ * @returns Estimated size in MB
122
+ */
123
+ private estimateColumnSize;
124
+ }
125
+ export {};
126
+ //# sourceMappingURL=filter-index-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-index-manager.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/features/filtering/filter-index-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,UAAU,EACX,MAAM,8CAA8C,CAAC;AAmBtD;;GAEG;AACH,UAAU,yBAAyB;IACjC,qBAAqB;IACrB,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,CAAC;IAE7D,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IAEd,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,aAAa,CAA4C;IACjE,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO;IAIlD;;;;;;;OAOG;IACH,WAAW,CACT,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,EAC9B,IAAI,GAAE,UAAsB,GAC3B,IAAI;IAqCP;;;;;;;;OAQG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,yBAAyB,GAAG,MAAM,EAAE,GAAG,IAAI;IA8F1E;;;;;;OAMG;IACH,SAAS,CACP,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GACjD,MAAM,GAAG,IAAI;IAShB;;;;;;OAMG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IASrD;;;;;OAKG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI/B;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAI7C;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAS9B;;OAEG;IACH,QAAQ,IAAI,IAAI;IAKhB;;OAEG;IACH,cAAc,IAAI;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,cAAc,EAAE,MAAM,CAAC;KACxB;IASD;;OAEG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAM7B;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;CAyB3B"}
@@ -0,0 +1,408 @@
1
+ import type { FilterModel, FilterQuery, FilterExpression, ColumnDef } from '../../types';
2
+ import type { OperationMode } from '@zengrid/shared';
3
+ import type { EventEmitter } from '../../events/event-emitter';
4
+ import type { GridEvents } from '../../events/grid-events';
5
+ import { ColumnFilter } from './column-filter';
6
+ import { type FilterExportManagerOptions } from './filter-export-manager';
7
+ import type { FieldFilterState } from './types';
8
+ import type { FilterExportResult } from './adapters/types';
9
+ import type { ColumnType } from '@zengrid/shared/data-structures/column-store';
10
+ /**
11
+ * Filter manager options
12
+ */
13
+ export interface FilterManagerOptions {
14
+ /**
15
+ * Total column count
16
+ */
17
+ colCount: number;
18
+ /**
19
+ * Event emitter for grid events
20
+ */
21
+ events?: EventEmitter<GridEvents>;
22
+ /**
23
+ * Callback to get cell value
24
+ */
25
+ getValue: (row: number, col: number) => any;
26
+ /**
27
+ * Initial filter models
28
+ */
29
+ initialFilters?: FilterModel[];
30
+ /**
31
+ * Filter mode: frontend, backend, or auto
32
+ * @default 'frontend'
33
+ */
34
+ mode?: OperationMode;
35
+ /**
36
+ * Column names for SQL query field mapping
37
+ */
38
+ columnNames?: string[];
39
+ /**
40
+ * Backend filtering callback
41
+ * Called when mode is 'backend' or 'auto' (with callback present)
42
+ */
43
+ onFilterRequest?: (filter: FilterExpression) => Promise<void> | void;
44
+ /**
45
+ * Column definitions (for field-based filtering)
46
+ * Required for FilterExportManager
47
+ */
48
+ columns?: ColumnDef[];
49
+ /**
50
+ * Enable automatic export transformation
51
+ * @default true
52
+ */
53
+ enableExport?: boolean;
54
+ /**
55
+ * Export manager configuration
56
+ */
57
+ exportConfig?: Partial<FilterExportManagerOptions>;
58
+ /**
59
+ * Enable performance optimizations
60
+ * @default true
61
+ */
62
+ enableOptimizations?: boolean;
63
+ /**
64
+ * Enable result caching with LRU cache
65
+ * @default true
66
+ */
67
+ enableCache?: boolean;
68
+ /**
69
+ * Cache capacity (number of cached filter results)
70
+ * @default 100
71
+ */
72
+ cacheCapacity?: number;
73
+ /**
74
+ * Enable vectorized filtering with ColumnStore
75
+ * @default true
76
+ */
77
+ enableVectorization?: boolean;
78
+ /**
79
+ * Enable range query optimization with SegmentTree
80
+ * @default true
81
+ */
82
+ enableRangeOptimization?: boolean;
83
+ /**
84
+ * Maximum memory for indexes (in MB)
85
+ * @default 100
86
+ */
87
+ maxIndexMemoryMB?: number;
88
+ /**
89
+ * Data version for cache invalidation
90
+ * Increment this when data changes
91
+ * @default 0
92
+ */
93
+ dataVersion?: number;
94
+ }
95
+ /**
96
+ * FilterManager - Manages filtering across all columns
97
+ *
98
+ * Supports both frontend and backend filtering with two input formats:
99
+ * 1. FilterModel[] - Traditional structured filters
100
+ * 2. FilterQuery - SQL-like queries with parameterization
101
+ *
102
+ * @example Traditional Filtering
103
+ * ```typescript
104
+ * const filterManager = new FilterManager({
105
+ * colCount: 10,
106
+ * getValue: (row, col) => data[row][col],
107
+ * mode: 'frontend'
108
+ * });
109
+ *
110
+ * // Add filter for column 0
111
+ * filterManager.setColumnFilter(0, [
112
+ * { operator: 'greaterThan', value: 100 },
113
+ * ]);
114
+ *
115
+ * // Test if row passes all filters
116
+ * const passes = filterManager.testRow(5);
117
+ *
118
+ * // Get visible row indices
119
+ * const visible = filterManager.getVisibleRows(1000);
120
+ * ```
121
+ *
122
+ * @example SQL-like Filtering
123
+ * ```typescript
124
+ * const filterManager = new FilterManager({
125
+ * colCount: 10,
126
+ * getValue: (row, col) => data[row][col],
127
+ * mode: 'frontend',
128
+ * columnNames: ['id', 'name', 'age', 'status']
129
+ * });
130
+ *
131
+ * // Apply SQL-like filter
132
+ * await filterManager.applyFilter({
133
+ * sql: "age > :minAge AND status = :status",
134
+ * params: { minAge: 18, status: 'active' }
135
+ * });
136
+ * ```
137
+ *
138
+ * @example Backend Filtering
139
+ * ```typescript
140
+ * const filterManager = new FilterManager({
141
+ * colCount: 10,
142
+ * getValue: (row, col) => data[row][col],
143
+ * mode: 'backend',
144
+ * onFilterRequest: async (filter) => {
145
+ * const data = await api.get('/data', {
146
+ * filter: filter.sql,
147
+ * params: filter.params
148
+ * });
149
+ * grid.setData(data);
150
+ * }
151
+ * });
152
+ * ```
153
+ */
154
+ export declare class FilterManager {
155
+ private colCount;
156
+ private events?;
157
+ private getValue;
158
+ private columnFilters;
159
+ private filterState;
160
+ private mode;
161
+ private columnNames;
162
+ private parser;
163
+ private onFilterRequest?;
164
+ private currentExpression;
165
+ private exportManager;
166
+ private enableExport;
167
+ private filterCache;
168
+ private indexManager;
169
+ private rangeOptimizer;
170
+ private enableOptimizations;
171
+ private dataVersion;
172
+ private filterStateHash;
173
+ constructor(options: FilterManagerOptions);
174
+ /**
175
+ * Set filter for a column
176
+ * @param column - Column index
177
+ * @param conditions - Filter conditions
178
+ * @param logic - Logic operator ('AND' or 'OR')
179
+ */
180
+ setColumnFilter(column: number, conditions: any[], logic?: 'AND' | 'OR'): void;
181
+ /**
182
+ * Set column filter from model
183
+ */
184
+ private setColumnFilterFromModel;
185
+ /**
186
+ * Clear filter for a column
187
+ * @param column - Column index
188
+ */
189
+ clearColumnFilter(column: number): void;
190
+ /**
191
+ * Clear all filters
192
+ */
193
+ clearAll(): void;
194
+ /**
195
+ * Test if a row passes all filters
196
+ * @param row - Row index
197
+ * @returns True if row passes all filters
198
+ */
199
+ testRow(row: number): boolean;
200
+ /**
201
+ * Get all visible row indices
202
+ * @param rowCount - Total row count
203
+ * @returns Array of visible row indices
204
+ */
205
+ getVisibleRows(rowCount: number): number[];
206
+ /**
207
+ * Get filter statistics
208
+ * @param rowCount - Total row count
209
+ */
210
+ getStats(rowCount: number): {
211
+ totalRows: number;
212
+ visibleRows: number;
213
+ hiddenRows: number;
214
+ activeFilters: number;
215
+ };
216
+ /**
217
+ * Get current filter state
218
+ */
219
+ getFilterState(): FilterModel[];
220
+ /**
221
+ * Check if any filters are active
222
+ */
223
+ hasActiveFilters(): boolean;
224
+ /**
225
+ * Get filter for specific column
226
+ * @param column - Column index
227
+ */
228
+ getColumnFilter(column: number): ColumnFilter | undefined;
229
+ /**
230
+ * Emit filter change event
231
+ */
232
+ private emitFilterChange;
233
+ /**
234
+ * Apply filter using SQL-like query or FilterModels
235
+ * Supports both frontend and backend filtering
236
+ *
237
+ * @example SQL Query (Frontend)
238
+ * ```typescript
239
+ * await filterManager.applyFilter({
240
+ * sql: "age > :minAge AND status = :status",
241
+ * params: { minAge: 18, status: 'active' }
242
+ * });
243
+ * ```
244
+ *
245
+ * @example SQL Query (Backend)
246
+ * ```typescript
247
+ * // With mode='backend', this will call onFilterRequest callback
248
+ * await filterManager.applyFilter({
249
+ * sql: "price BETWEEN :min AND :max",
250
+ * params: { min: 100, max: 500 }
251
+ * });
252
+ * ```
253
+ *
254
+ * @example FilterModels
255
+ * ```typescript
256
+ * await filterManager.applyFilter([
257
+ * {
258
+ * column: 2,
259
+ * conditions: [{ operator: 'greaterThan', value: 18 }],
260
+ * logic: 'AND'
261
+ * }
262
+ * ]);
263
+ * ```
264
+ */
265
+ applyFilter(filter: FilterQuery | FilterModel[] | null): Promise<void>;
266
+ /**
267
+ * Parse filter input into FilterExpression
268
+ */
269
+ private parseFilterInput;
270
+ /**
271
+ * Type guard for FilterQuery
272
+ */
273
+ private isFilterQuery;
274
+ /**
275
+ * Apply frontend filtering (in-memory)
276
+ */
277
+ private applyFrontendFilter;
278
+ /**
279
+ * Apply backend filtering (delegate to server)
280
+ */
281
+ private applyBackendFilter;
282
+ /**
283
+ * Get current filter expression
284
+ */
285
+ getCurrentExpression(): FilterExpression | null;
286
+ /**
287
+ * Update column names (for SQL query mapping)
288
+ */
289
+ setColumnNames(names: string[]): void;
290
+ /**
291
+ * Get current filter state in field-based format
292
+ * Returns filter state using field names instead of column indices
293
+ *
294
+ * @returns Field-based filter state or null if no export manager
295
+ */
296
+ getFieldFilterState(): FieldFilterState | null;
297
+ /**
298
+ * Get filter export in all formats (REST, GraphQL, SQL)
299
+ * Returns ready-to-use filter formats for backend consumption
300
+ *
301
+ * @returns Filter export result with all formats
302
+ *
303
+ * @example
304
+ * ```typescript
305
+ * const exports = filterManager.getFilterExport();
306
+ *
307
+ * // REST
308
+ * fetch(`/api/users?${exports.rest.queryString}`);
309
+ *
310
+ * // GraphQL
311
+ * graphqlClient.query({ query, variables: { where: exports.graphql.where } });
312
+ *
313
+ * // SQL
314
+ * db.query(`SELECT * FROM users WHERE ${exports.sql.whereClause}`, exports.sql.positionalParams);
315
+ * ```
316
+ */
317
+ getFilterExport(): FilterExportResult | null;
318
+ /**
319
+ * Get filter export in specific format
320
+ *
321
+ * @param format - Adapter name ('rest', 'graphql', 'sql', or custom)
322
+ * @returns Filter export in specified format
323
+ *
324
+ * @example
325
+ * ```typescript
326
+ * const restExport = filterManager.getFilterExportAs<RESTFilterExport>('rest');
327
+ * fetch(`/api/users?${restExport.queryString}`);
328
+ * ```
329
+ */
330
+ getFilterExportAs<T>(format: string): T | null;
331
+ /**
332
+ * Set filter from field-based format
333
+ * Converts field-based filter state to column-based FilterModels
334
+ *
335
+ * @param state - Field-based filter state
336
+ *
337
+ * @example
338
+ * ```typescript
339
+ * filterManager.setFieldFilter({
340
+ * root: {
341
+ * logic: 'AND',
342
+ * conditions: [
343
+ * { field: 'age', operator: 'gt', value: 18 },
344
+ * { field: 'status', operator: 'eq', value: 'active' }
345
+ * ]
346
+ * },
347
+ * activeFields: ['age', 'status'],
348
+ * timestamp: Date.now()
349
+ * });
350
+ * ```
351
+ */
352
+ setFieldFilter(state: FieldFilterState): void;
353
+ /**
354
+ * Update columns (for export manager)
355
+ */
356
+ setColumns(columns: ColumnDef[]): void;
357
+ /**
358
+ * Set data version (invalidates cache)
359
+ *
360
+ * @param version - New data version
361
+ */
362
+ setDataVersion(version: number): void;
363
+ /**
364
+ * Index a column for optimized filtering
365
+ *
366
+ * @param col - Column index
367
+ * @param rowCount - Total row count
368
+ * @param type - Column data type
369
+ */
370
+ indexColumn(col: number, rowCount: number, type?: ColumnType): void;
371
+ /**
372
+ * Get cache statistics
373
+ */
374
+ getCacheStats(): {
375
+ hitCount: number;
376
+ missCount: number;
377
+ hitRate: number;
378
+ size: number;
379
+ capacity: number;
380
+ } | null;
381
+ /**
382
+ * Get index memory statistics
383
+ */
384
+ getIndexMemoryStats(): {
385
+ usedMB: number;
386
+ limitMB: number;
387
+ utilizationPercent: number;
388
+ indexedColumns: number;
389
+ } | null;
390
+ /**
391
+ * Clear all caches and indexes
392
+ */
393
+ clearOptimizations(): void;
394
+ /**
395
+ * Destroy filter manager
396
+ */
397
+ destroy(): void;
398
+ /**
399
+ * Try optimized filtering using ColumnStore and SegmentTree
400
+ * Returns null if optimization not applicable
401
+ */
402
+ private tryOptimizedFilter;
403
+ /**
404
+ * Update filter state hash for caching
405
+ */
406
+ private updateFilterState;
407
+ }
408
+ //# sourceMappingURL=filter-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-manager.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/features/filtering/filter-manager.ts"],"names":[],"mappings":"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"}