@zengrid/core 1.1.0 → 1.2.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 (283) hide show
  1. package/dist/index.cjs.js +19925 -16577
  2. package/dist/index.esm.js +19899 -16577
  3. package/dist/package.json +5 -2
  4. package/dist/src/data/data-accessor/array-accessor.d.ts.map +1 -1
  5. package/dist/src/data/data-manager.d.ts +5 -7
  6. package/dist/src/data/data-manager.d.ts.map +1 -1
  7. package/dist/src/datetime-core/popup/popup-manager.d.ts +4 -12
  8. package/dist/src/datetime-core/popup/popup-manager.d.ts.map +1 -1
  9. package/dist/src/editing/datetime/date-editor/date-editor.d.ts +1 -0
  10. package/dist/src/editing/datetime/date-editor/date-editor.d.ts.map +1 -1
  11. package/dist/src/editing/datetime/date-range-editor/date-range-calendar.d.ts.map +1 -1
  12. package/dist/src/editing/datetime/date-range-editor/date-range-dom.d.ts.map +1 -1
  13. package/dist/src/editing/datetime/date-range-editor/date-range-validation.d.ts.map +1 -1
  14. package/dist/src/editing/datetime/date-range-editor/types.d.ts +0 -3
  15. package/dist/src/editing/datetime/date-range-editor/types.d.ts.map +1 -1
  16. package/dist/src/events/grid-events.d.ts +4 -0
  17. package/dist/src/events/grid-events.d.ts.map +1 -1
  18. package/dist/src/features/column-drag/column-drag.styles.css +8 -18
  19. package/dist/src/features/column-drag/drop-zone-detector.d.ts.map +1 -1
  20. package/dist/src/features/column-resize/column-resize.styles.css +5 -4
  21. package/dist/src/features/column-resize/programmatic-operations.d.ts +1 -1
  22. package/dist/src/features/column-resize/programmatic-operations.d.ts.map +1 -1
  23. package/dist/src/features/filtering/filter-ast-compiler.d.ts +30 -0
  24. package/dist/src/features/filtering/filter-ast-compiler.d.ts.map +1 -0
  25. package/dist/src/features/filtering/filter-ast.d.ts +39 -0
  26. package/dist/src/features/filtering/filter-ast.d.ts.map +1 -0
  27. package/dist/src/features/filtering/filter-export-manager.d.ts +0 -8
  28. package/dist/src/features/filtering/filter-export-manager.d.ts.map +1 -1
  29. package/dist/src/features/filtering/filter-expression.d.ts +15 -0
  30. package/dist/src/features/filtering/filter-expression.d.ts.map +1 -0
  31. package/dist/src/features/filtering/filter-manager/filter-core.d.ts +63 -11
  32. package/dist/src/features/filtering/filter-manager/filter-core.d.ts.map +1 -1
  33. package/dist/src/features/filtering/filter-manager/filter-export.d.ts +3 -49
  34. package/dist/src/features/filtering/filter-manager/filter-export.d.ts.map +1 -1
  35. package/dist/src/features/filtering/filter-manager/filter-optimizer.d.ts.map +1 -1
  36. package/dist/src/features/filtering/filter-manager/filter-query.d.ts +14 -48
  37. package/dist/src/features/filtering/filter-manager/filter-query.d.ts.map +1 -1
  38. package/dist/src/features/filtering/filter-manager/index.d.ts +11 -129
  39. package/dist/src/features/filtering/filter-manager/index.d.ts.map +1 -1
  40. package/dist/src/features/filtering/filter-manager/types.d.ts +0 -11
  41. package/dist/src/features/filtering/filter-manager/types.d.ts.map +1 -1
  42. package/dist/src/features/filtering/filter-query-parser.d.ts +10 -50
  43. package/dist/src/features/filtering/filter-query-parser.d.ts.map +1 -1
  44. package/dist/src/features/filtering/index.d.ts +3 -0
  45. package/dist/src/features/filtering/index.d.ts.map +1 -1
  46. package/dist/src/features/loading/loading.styles.css +19 -90
  47. package/dist/src/features/pagination/pagination.styles.css +34 -74
  48. package/dist/src/features/query/query-state.d.ts +12 -0
  49. package/dist/src/features/query/query-state.d.ts.map +1 -0
  50. package/dist/src/features/sorting/sort-manager.d.ts +9 -23
  51. package/dist/src/features/sorting/sort-manager.d.ts.map +1 -1
  52. package/dist/src/features/sorting/sort-request.d.ts +5 -0
  53. package/dist/src/features/sorting/sort-request.d.ts.map +1 -0
  54. package/dist/src/grid/api/column-api.d.ts +23 -0
  55. package/dist/src/grid/api/column-api.d.ts.map +1 -0
  56. package/dist/src/grid/api/export-api.d.ts +9 -0
  57. package/dist/src/grid/api/export-api.d.ts.map +1 -0
  58. package/dist/src/grid/api/filter-api.d.ts +28 -0
  59. package/dist/src/grid/api/filter-api.d.ts.map +1 -0
  60. package/dist/src/grid/api/index.d.ts +15 -0
  61. package/dist/src/grid/api/index.d.ts.map +1 -0
  62. package/dist/src/grid/api/pagination-api.d.ts +14 -0
  63. package/dist/src/grid/api/pagination-api.d.ts.map +1 -0
  64. package/dist/src/grid/api/scroll-api.d.ts +26 -0
  65. package/dist/src/grid/api/scroll-api.d.ts.map +1 -0
  66. package/dist/src/grid/api/sort-api.d.ts +17 -0
  67. package/dist/src/grid/api/sort-api.d.ts.map +1 -0
  68. package/dist/src/grid/api/state-api.d.ts +10 -0
  69. package/dist/src/grid/api/state-api.d.ts.map +1 -0
  70. package/dist/src/grid/filter-ui.d.ts +34 -5
  71. package/dist/src/grid/filter-ui.d.ts.map +1 -1
  72. package/dist/src/grid/grid-api.d.ts +0 -3
  73. package/dist/src/grid/grid-api.d.ts.map +1 -1
  74. package/dist/src/grid/grid-context.d.ts +5 -29
  75. package/dist/src/grid/grid-context.d.ts.map +1 -1
  76. package/dist/src/grid/grid-core.d.ts +92 -95
  77. package/dist/src/grid/grid-core.d.ts.map +1 -1
  78. package/dist/src/grid/grid-setup.d.ts +3 -3
  79. package/dist/src/grid/grid-setup.d.ts.map +1 -1
  80. package/dist/src/grid/grid-theme-methods.d.ts +17 -0
  81. package/dist/src/grid/grid-theme-methods.d.ts.map +1 -0
  82. package/dist/src/grid/index.d.ts +5 -10
  83. package/dist/src/grid/index.d.ts.map +1 -1
  84. package/dist/src/index.d.ts +21 -3
  85. package/dist/src/index.d.ts.map +1 -1
  86. package/dist/src/overlay/index.d.ts +2 -0
  87. package/dist/src/overlay/index.d.ts.map +1 -0
  88. package/dist/src/overlay/overlay-manager.d.ts +46 -0
  89. package/dist/src/overlay/overlay-manager.d.ts.map +1 -0
  90. package/dist/src/plugins/async-filter-plugin.d.ts.map +1 -1
  91. package/dist/src/plugins/async-sort-plugin.d.ts.map +1 -1
  92. package/dist/src/plugins/column/column-plugin.d.ts +18 -0
  93. package/dist/src/plugins/column/column-plugin.d.ts.map +1 -0
  94. package/dist/src/{grid → plugins/column}/grid-state.d.ts +2 -2
  95. package/dist/src/plugins/column/grid-state.d.ts.map +1 -0
  96. package/dist/src/plugins/column/index.d.ts +3 -0
  97. package/dist/src/plugins/column/index.d.ts.map +1 -0
  98. package/dist/src/plugins/data-plugin.d.ts +14 -0
  99. package/dist/src/plugins/data-plugin.d.ts.map +1 -0
  100. package/dist/src/plugins/dom/dom-plugin.d.ts +14 -0
  101. package/dist/src/plugins/dom/dom-plugin.d.ts.map +1 -0
  102. package/dist/src/plugins/dom/index.d.ts +3 -0
  103. package/dist/src/plugins/dom/index.d.ts.map +1 -0
  104. package/dist/src/plugins/editing/editing-plugin.d.ts +11 -12
  105. package/dist/src/plugins/editing/editing-plugin.d.ts.map +1 -1
  106. package/dist/src/plugins/filter-plugin.d.ts +1 -1
  107. package/dist/src/plugins/filter-plugin.d.ts.map +1 -1
  108. package/dist/src/plugins/filter-ui/filter-ui-plugin.d.ts +1 -0
  109. package/dist/src/plugins/filter-ui/filter-ui-plugin.d.ts.map +1 -1
  110. package/dist/src/{grid → plugins/header}/header-dom-operations.d.ts +3 -3
  111. package/dist/src/plugins/header/header-dom-operations.d.ts.map +1 -0
  112. package/dist/src/{grid → plugins/header}/header-event-handlers.d.ts +3 -3
  113. package/dist/src/plugins/header/header-event-handlers.d.ts.map +1 -0
  114. package/dist/src/plugins/header/header-plugin.d.ts +18 -0
  115. package/dist/src/plugins/header/header-plugin.d.ts.map +1 -0
  116. package/dist/src/{grid → plugins/header}/header-reactive-subscription.d.ts +1 -1
  117. package/dist/src/plugins/header/header-reactive-subscription.d.ts.map +1 -0
  118. package/dist/src/{grid → plugins/header}/header-registry-setup.d.ts +1 -1
  119. package/dist/src/plugins/header/header-registry-setup.d.ts.map +1 -0
  120. package/dist/src/{grid → plugins/header}/header-render-params.d.ts +4 -4
  121. package/dist/src/plugins/header/header-render-params.d.ts.map +1 -0
  122. package/dist/src/{grid → plugins/header}/header-rendering.d.ts +2 -2
  123. package/dist/src/plugins/header/header-rendering.d.ts.map +1 -0
  124. package/dist/src/{grid → plugins/header}/header-types.d.ts +5 -5
  125. package/dist/src/plugins/header/header-types.d.ts.map +1 -0
  126. package/dist/src/plugins/header/index.d.ts +3 -0
  127. package/dist/src/plugins/header/index.d.ts.map +1 -0
  128. package/dist/src/plugins/index.d.ts +14 -1
  129. package/dist/src/plugins/index.d.ts.map +1 -1
  130. package/dist/src/plugins/infinite-scroll/infinite-scroll-plugin.d.ts +4 -2
  131. package/dist/src/plugins/infinite-scroll/infinite-scroll-plugin.d.ts.map +1 -1
  132. package/dist/src/plugins/legacy-bridge/devtools-connector.d.ts.map +1 -1
  133. package/dist/src/plugins/legacy-bridge/index.d.ts +0 -1
  134. package/dist/src/plugins/legacy-bridge/index.d.ts.map +1 -1
  135. package/dist/src/plugins/lifecycle/index.d.ts +3 -0
  136. package/dist/src/plugins/lifecycle/index.d.ts.map +1 -0
  137. package/dist/src/plugins/lifecycle/lifecycle-plugin.d.ts +19 -0
  138. package/dist/src/plugins/lifecycle/lifecycle-plugin.d.ts.map +1 -0
  139. package/dist/src/plugins/pagination/index.d.ts +3 -0
  140. package/dist/src/plugins/pagination/index.d.ts.map +1 -0
  141. package/dist/src/plugins/pagination/pagination-plugin.d.ts +13 -0
  142. package/dist/src/plugins/pagination/pagination-plugin.d.ts.map +1 -0
  143. package/dist/src/plugins/rendering/index.d.ts +3 -0
  144. package/dist/src/plugins/rendering/index.d.ts.map +1 -0
  145. package/dist/src/plugins/rendering/rendering-plugin.d.ts +22 -0
  146. package/dist/src/plugins/rendering/rendering-plugin.d.ts.map +1 -0
  147. package/dist/src/plugins/resize/resize-plugin.d.ts.map +1 -1
  148. package/dist/src/plugins/scroll/scroll-plugin.d.ts.map +1 -1
  149. package/dist/src/plugins/selection/selection-plugin.d.ts.map +1 -1
  150. package/dist/src/plugins/sort-plugin.d.ts +3 -2
  151. package/dist/src/plugins/sort-plugin.d.ts.map +1 -1
  152. package/dist/src/reactive/debug.d.ts +3 -0
  153. package/dist/src/reactive/debug.d.ts.map +1 -1
  154. package/dist/src/reactive/store.d.ts +3 -1
  155. package/dist/src/reactive/store.d.ts.map +1 -1
  156. package/dist/src/reactive/types.d.ts +5 -2
  157. package/dist/src/reactive/types.d.ts.map +1 -1
  158. package/dist/src/rendering/cache/renderer-cache.d.ts +4 -0
  159. package/dist/src/rendering/cache/renderer-cache.d.ts.map +1 -1
  160. package/dist/src/rendering/cell-positioner/cell-positioner.d.ts +5 -0
  161. package/dist/src/rendering/cell-positioner/cell-positioner.d.ts.map +1 -1
  162. package/dist/src/rendering/cell-positioner/cell-positioner.interface.d.ts +9 -0
  163. package/dist/src/rendering/cell-positioner/cell-positioner.interface.d.ts.map +1 -1
  164. package/dist/src/rendering/headers/renderers/filterable-header-renderer.d.ts.map +1 -1
  165. package/dist/src/rendering/headers/renderers/sortable-header-renderer.d.ts +4 -1
  166. package/dist/src/rendering/headers/renderers/sortable-header-renderer.d.ts.map +1 -1
  167. package/dist/src/rendering/renderers/button/button-renderer.d.ts.map +1 -1
  168. package/dist/src/rendering/renderers/chip/chip-renderer.d.ts.map +1 -1
  169. package/dist/src/rendering/renderers/date-range/date-range-renderer.d.ts.map +1 -1
  170. package/dist/src/rendering/renderers/datetime/date-renderer.d.ts.map +1 -1
  171. package/dist/src/rendering/renderers/dropdown/dropdown-dom.d.ts +1 -1
  172. package/dist/src/rendering/renderers/dropdown/dropdown-dom.d.ts.map +1 -1
  173. package/dist/src/rendering/renderers/dropdown/dropdown-events.d.ts.map +1 -1
  174. package/dist/src/rendering/renderers/dropdown/dropdown-renderer.d.ts.map +1 -1
  175. package/dist/src/rendering/renderers/dropdown/dropdown-state.d.ts +10 -6
  176. package/dist/src/rendering/renderers/dropdown/dropdown-state.d.ts.map +1 -1
  177. package/dist/src/rendering/virtual-scroller/virtual-scroller.d.ts +4 -0
  178. package/dist/src/rendering/virtual-scroller/virtual-scroller.d.ts.map +1 -1
  179. package/dist/src/rendering/width-provider/column-model-width-provider.d.ts +6 -7
  180. package/dist/src/rendering/width-provider/column-model-width-provider.d.ts.map +1 -1
  181. package/dist/src/styles/grid.css +362 -362
  182. package/dist/src/styles.css +183 -45
  183. package/dist/src/theming/color-utils.d.ts +10 -0
  184. package/dist/src/theming/color-utils.d.ts.map +1 -0
  185. package/dist/src/theming/index.d.ts +10 -0
  186. package/dist/src/theming/index.d.ts.map +1 -0
  187. package/dist/src/theming/theme-builder.d.ts +46 -0
  188. package/dist/src/theming/theme-builder.d.ts.map +1 -0
  189. package/dist/src/theming/theme-manager.d.ts +11 -0
  190. package/dist/src/theming/theme-manager.d.ts.map +1 -0
  191. package/dist/src/theming/theme-registry.d.ts +17 -0
  192. package/dist/src/theming/theme-registry.d.ts.map +1 -0
  193. package/dist/src/theming/theme.interface.d.ts +88 -0
  194. package/dist/src/theming/theme.interface.d.ts.map +1 -0
  195. package/dist/src/theming/themes/dark.d.ts +3 -0
  196. package/dist/src/theming/themes/dark.d.ts.map +1 -0
  197. package/dist/src/theming/themes/dracula.d.ts +3 -0
  198. package/dist/src/theming/themes/dracula.d.ts.map +1 -0
  199. package/dist/src/theming/themes/github.d.ts +3 -0
  200. package/dist/src/theming/themes/github.d.ts.map +1 -0
  201. package/dist/src/theming/themes/index.d.ts +14 -0
  202. package/dist/src/theming/themes/index.d.ts.map +1 -0
  203. package/dist/src/theming/themes/light.d.ts +3 -0
  204. package/dist/src/theming/themes/light.d.ts.map +1 -0
  205. package/dist/src/theming/themes/material.d.ts +3 -0
  206. package/dist/src/theming/themes/material.d.ts.map +1 -0
  207. package/dist/src/theming/themes/nord.d.ts +3 -0
  208. package/dist/src/theming/themes/nord.d.ts.map +1 -0
  209. package/dist/src/theming/themes/one-dark.d.ts +3 -0
  210. package/dist/src/theming/themes/one-dark.d.ts.map +1 -0
  211. package/dist/src/theming/themes/solarized.d.ts +3 -0
  212. package/dist/src/theming/themes/solarized.d.ts.map +1 -0
  213. package/dist/src/types/data.d.ts +34 -60
  214. package/dist/src/types/data.d.ts.map +1 -1
  215. package/dist/src/types/filter.d.ts +107 -35
  216. package/dist/src/types/filter.d.ts.map +1 -1
  217. package/dist/src/types/grid.d.ts +11 -46
  218. package/dist/src/types/grid.d.ts.map +1 -1
  219. package/dist/src/types/index.d.ts +1 -0
  220. package/dist/src/types/index.d.ts.map +1 -1
  221. package/dist/src/types/query.d.ts +64 -0
  222. package/dist/src/types/query.d.ts.map +1 -0
  223. package/dist/src/types/sort.d.ts +9 -6
  224. package/dist/src/types/sort.d.ts.map +1 -1
  225. package/package.json +7 -4
  226. package/dist/src/editing/date-range/calendar-manager.d.ts +0 -17
  227. package/dist/src/editing/date-range/calendar-manager.d.ts.map +0 -1
  228. package/dist/src/editing/date-range/event-handlers.d.ts +0 -30
  229. package/dist/src/editing/date-range/event-handlers.d.ts.map +0 -1
  230. package/dist/src/editing/date-range/formatters.d.ts +0 -26
  231. package/dist/src/editing/date-range/formatters.d.ts.map +0 -1
  232. package/dist/src/editing/date-range/positioning.d.ts +0 -14
  233. package/dist/src/editing/date-range/positioning.d.ts.map +0 -1
  234. package/dist/src/editing/date-range/types.d.ts +0 -41
  235. package/dist/src/editing/date-range/types.d.ts.map +0 -1
  236. package/dist/src/editing/date-range/ui-builder.d.ts +0 -33
  237. package/dist/src/editing/date-range/ui-builder.d.ts.map +0 -1
  238. package/dist/src/editing/date-range/validator.d.ts +0 -7
  239. package/dist/src/editing/date-range/validator.d.ts.map +0 -1
  240. package/dist/src/grid/data.d.ts +0 -74
  241. package/dist/src/grid/data.d.ts.map +0 -1
  242. package/dist/src/grid/dom.d.ts +0 -37
  243. package/dist/src/grid/dom.d.ts.map +0 -1
  244. package/dist/src/grid/drag.d.ts +0 -50
  245. package/dist/src/grid/drag.d.ts.map +0 -1
  246. package/dist/src/grid/grid-column-methods.d.ts +0 -37
  247. package/dist/src/grid/grid-column-methods.d.ts.map +0 -1
  248. package/dist/src/grid/grid-editing.d.ts +0 -43
  249. package/dist/src/grid/grid-editing.d.ts.map +0 -1
  250. package/dist/src/grid/grid-filter-methods.d.ts +0 -24
  251. package/dist/src/grid/grid-filter-methods.d.ts.map +0 -1
  252. package/dist/src/grid/grid-header-methods.d.ts +0 -10
  253. package/dist/src/grid/grid-header-methods.d.ts.map +0 -1
  254. package/dist/src/grid/grid-lifecycle.d.ts +0 -10
  255. package/dist/src/grid/grid-lifecycle.d.ts.map +0 -1
  256. package/dist/src/grid/grid-sort-methods.d.ts +0 -17
  257. package/dist/src/grid/grid-sort-methods.d.ts.map +0 -1
  258. package/dist/src/grid/grid-state.d.ts.map +0 -1
  259. package/dist/src/grid/grid-wiring.d.ts +0 -11
  260. package/dist/src/grid/grid-wiring.d.ts.map +0 -1
  261. package/dist/src/grid/header-dom-operations.d.ts.map +0 -1
  262. package/dist/src/grid/header-event-handlers.d.ts.map +0 -1
  263. package/dist/src/grid/header-manager.d.ts +0 -119
  264. package/dist/src/grid/header-manager.d.ts.map +0 -1
  265. package/dist/src/grid/header-reactive-subscription.d.ts.map +0 -1
  266. package/dist/src/grid/header-registry-setup.d.ts.map +0 -1
  267. package/dist/src/grid/header-render-params.d.ts.map +0 -1
  268. package/dist/src/grid/header-rendering.d.ts.map +0 -1
  269. package/dist/src/grid/header-types.d.ts.map +0 -1
  270. package/dist/src/grid/init.d.ts +0 -56
  271. package/dist/src/grid/init.d.ts.map +0 -1
  272. package/dist/src/grid/pagination.d.ts +0 -63
  273. package/dist/src/grid/pagination.d.ts.map +0 -1
  274. package/dist/src/grid/resize.d.ts +0 -87
  275. package/dist/src/grid/resize.d.ts.map +0 -1
  276. package/dist/src/grid/scroll.d.ts +0 -86
  277. package/dist/src/grid/scroll.d.ts.map +0 -1
  278. package/dist/src/plugins/legacy-bridge/legacy-api-plugin.d.ts +0 -3
  279. package/dist/src/plugins/legacy-bridge/legacy-api-plugin.d.ts.map +0 -1
  280. package/dist/src/rendering/renderers/date/date-renderer.d.ts +0 -156
  281. package/dist/src/rendering/renderers/date/date-renderer.d.ts.map +0 -1
  282. package/dist/src/rendering/renderers/date/index.d.ts +0 -3
  283. package/dist/src/rendering/renderers/date/index.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"filter-core.d.ts","sourceRoot":"","sources":["../../../../../src/features/filtering/filter-manager/filter-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAC,CAA2B;IAC1C,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,eAAe,CAAM;IAG7B,OAAO,CAAC,mBAAmB,CAAC,CAAa;gBAGvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,EAC3C,MAAM,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,EACjC,mBAAmB,CAAC,EAAE,MAAM,IAAI;IAQlC;;OAEG;IACH,iBAAiB,CAAC,cAAc,EAAE,WAAW,EAAE,GAAG,IAAI;IAMtD;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,KAAK,GAAE,KAAK,GAAG,IAAY,GAAG,IAAI;IAwBrF;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAIhC;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQvC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAWhB;;;;OAIG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAe7B;;;;OAIG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAU/C;;OAEG;IACH,cAAc,IAAI,WAAW,EAAE;IAI/B;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,gBAAgB,IAAI,OAAO;IAI3B;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIzD;;OAEG;IACH,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC;IAI7C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAW1B"}
1
+ {"version":3,"file":"filter-core.d.ts","sourceRoot":"","sources":["../../../../../src/features/filtering/filter-manager/filter-core.ts"],"names":[],"mappings":"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"}
@@ -12,68 +12,22 @@ export declare class FilterExporter {
12
12
  private exportManager;
13
13
  private enableExport;
14
14
  private core;
15
+ private columns;
15
16
  constructor(core: FilterCore, enableExport: boolean, columns?: ColumnDef[], exportConfig?: Partial<FilterExportManagerOptions>);
16
17
  /**
17
- * Get current filter state in field-based format
18
- * Returns filter state using field names instead of column indices
19
- *
20
- * @returns Field-based filter state or null if no export manager
18
+ * Get current filter state in field-based format.
21
19
  */
22
20
  getFieldFilterState(): FieldFilterState | null;
23
21
  /**
24
22
  * Get filter export in all formats (REST, GraphQL, SQL)
25
- * Returns ready-to-use filter formats for backend consumption
26
- *
27
- * @returns Filter export result with all formats
28
- *
29
- * @example
30
- * ```typescript
31
- * const exports = filterManager.getFilterExport();
32
- *
33
- * // REST
34
- * fetch(`/api/users?${exports.rest.queryString}`);
35
- *
36
- * // GraphQL
37
- * graphqlClient.query({ query, variables: { where: exports.graphql.where } });
38
- *
39
- * // SQL
40
- * db.query(`SELECT * FROM users WHERE ${exports.sql.whereClause}`, exports.sql.positionalParams);
41
- * ```
42
23
  */
43
24
  getFilterExport(): FilterExportResult | null;
44
25
  /**
45
26
  * Get filter export in specific format
46
- *
47
- * @param format - Adapter name ('rest', 'graphql', 'sql', or custom)
48
- * @returns Filter export in specified format
49
- *
50
- * @example
51
- * ```typescript
52
- * const restExport = filterManager.getFilterExportAs<RESTFilterExport>('rest');
53
- * fetch(`/api/users?${restExport.queryString}`);
54
- * ```
55
27
  */
56
28
  getFilterExportAs<T>(format: string): T | null;
57
29
  /**
58
- * Set filter from field-based format
59
- * Converts field-based filter state to column-based FilterModels
60
- *
61
- * @param state - Field-based filter state
62
- *
63
- * @example
64
- * ```typescript
65
- * filterManager.setFieldFilter({
66
- * root: {
67
- * logic: 'AND',
68
- * conditions: [
69
- * { field: 'age', operator: 'gt', value: 18 },
70
- * { field: 'status', operator: 'eq', value: 'active' }
71
- * ]
72
- * },
73
- * activeFields: ['age', 'status'],
74
- * timestamp: Date.now()
75
- * });
76
- * ```
30
+ * Set filter from field-based format.
77
31
  */
78
32
  setFieldFilter(state: FieldFilterState): void;
79
33
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"filter-export.d.ts","sourceRoot":"","sources":["../../../../../src/features/filtering/filter-manager/filter-export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAuB,KAAK,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,IAAI,CAAa;gBAGvB,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,OAAO,EACrB,OAAO,CAAC,EAAE,SAAS,EAAE,EACrB,YAAY,CAAC,EAAE,OAAO,CAAC,0BAA0B,CAAC;IAcpD;;;;;OAKG;IACH,mBAAmB,IAAI,gBAAgB,GAAG,IAAI;IAY9C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,IAAI,kBAAkB,GAAG,IAAI;IAc5C;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAc9C;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAgB7C;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI;CAUvC"}
1
+ {"version":3,"file":"filter-export.d.ts","sourceRoot":"","sources":["../../../../../src/features/filtering/filter-manager/filter-export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAuB,KAAK,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEhG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,OAAO,CAAc;gBAG3B,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,OAAO,EACrB,OAAO,CAAC,EAAE,SAAS,EAAE,EACrB,YAAY,CAAC,EAAE,OAAO,CAAC,0BAA0B,CAAC;IAcpD;;OAEG;IACH,mBAAmB,IAAI,gBAAgB,GAAG,IAAI;IAgB9C;;OAEG;IACH,eAAe,IAAI,kBAAkB,GAAG,IAAI;IAc5C;;OAEG;IACH,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAc9C;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAY7C;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI;CAWvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"filter-optimizer.d.ts","sourceRoot":"","sources":["../../../../../src/features/filtering/filter-manager/filter-optimizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAa;gBAGvB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,EAC3C,mBAAmB,EAAE,OAAO,EAC5B,OAAO,EAAE;QACP,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAClC,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;IA8BH;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAgC1C;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IASrC;;;;;;OAMG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,UAAsB,GAAG,IAAI;IAe9E;;OAEG;IACH,aAAa,IAAI;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI;IAIR;;OAEG;IACH,mBAAmB,IAAI;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,cAAc,EAAE,MAAM,CAAC;KACxB,GAAG,IAAI;IAIR;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAY1B;;OAEG;IACH,eAAe,IAAI,IAAI;IAMvB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAiE3B"}
1
+ {"version":3,"file":"filter-optimizer.d.ts","sourceRoot":"","sources":["../../../../../src/features/filtering/filter-manager/filter-optimizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAa;gBAGvB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,EAC3C,mBAAmB,EAAE,OAAO,EAC5B,OAAO,EAAE;QACP,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAClC,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;IA8BH;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAgC1C;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IASrC;;;;;;OAMG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,UAAsB,GAAG,IAAI;IAe9E;;OAEG;IACH,aAAa,IAAI;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI;IAIR;;OAEG;IACH,mBAAmB,IAAI;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,cAAc,EAAE,MAAM,CAAC;KACxB,GAAG,IAAI;IAIR;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAY1B;;OAEG;IACH,eAAe,IAAI,IAAI;IAMvB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAmE3B"}
@@ -1,79 +1,45 @@
1
- import type { FilterModel, FilterQuery, FilterExpression } from '../../../types';
2
- import type { OperationMode } from '@zengrid/shared';
1
+ import type { ColumnDef, FilterExpression, FilterModel, FilterQuery } from '../../../types';
3
2
  import type { EventEmitter } from '../../../events/event-emitter';
4
3
  import type { GridEvents } from '../../../events/grid-events';
5
4
  import type { FilterCore } from './filter-core';
6
5
  /**
7
- * FilterQueryHandler - SQL-like query parsing and mode management
8
- *
9
- * Handles SQL-like filter queries, mode switching (frontend/backend/auto),
10
- * and filter expression management.
6
+ * FilterQueryHandler - SQL-like query parsing and expression management.
11
7
  */
12
8
  export declare class FilterQueryHandler {
13
- private mode;
14
9
  private columnNames;
10
+ private columns?;
15
11
  private parser;
16
- private onFilterRequest?;
17
12
  private currentExpression;
18
13
  private events?;
19
14
  private core;
20
- constructor(core: FilterCore, mode: OperationMode, columnNames: string[], events?: EventEmitter<GridEvents>, onFilterRequest?: (filter: FilterExpression) => Promise<void> | void);
15
+ constructor(core: FilterCore, columnNames: string[], columns?: ColumnDef[], events?: EventEmitter<GridEvents>);
21
16
  /**
22
- * Apply filter using SQL-like query or FilterModels
23
- * Supports both frontend and backend filtering
24
- *
25
- * @example SQL Query (Frontend)
26
- * ```typescript
27
- * await filterManager.applyFilter({
28
- * sql: "age > :minAge AND status = :status",
29
- * params: { minAge: 18, status: 'active' }
30
- * });
31
- * ```
32
- *
33
- * @example SQL Query (Backend)
34
- * ```typescript
35
- * // With mode='backend', this will call onFilterRequest callback
36
- * await filterManager.applyFilter({
37
- * sql: "price BETWEEN :min AND :max",
38
- * params: { min: 100, max: 500 }
39
- * });
40
- * ```
41
- *
42
- * @example FilterModels
43
- * ```typescript
44
- * await filterManager.applyFilter([
45
- * {
46
- * column: 2,
47
- * conditions: [{ operator: 'greaterThan', value: 18 }],
48
- * logic: 'AND'
49
- * }
50
- * ]);
51
- * ```
17
+ * Apply filter using SQL-like query or FilterModels.
52
18
  */
53
19
  applyFilter(filter: FilterQuery | FilterModel[] | null): Promise<void>;
54
20
  /**
55
- * Parse filter input into FilterExpression
21
+ * Parse filter input into FilterExpression.
56
22
  */
57
23
  private parseFilterInput;
58
24
  /**
59
- * Type guard for FilterQuery
25
+ * Type guard for FilterQuery.
60
26
  */
61
27
  private isFilterQuery;
62
28
  /**
63
- * Apply frontend filtering (in-memory)
29
+ * Apply frontend filtering (in-memory).
64
30
  */
65
31
  private applyFrontendFilter;
66
32
  /**
67
- * Apply backend filtering (delegate to server)
68
- */
69
- private applyBackendFilter;
70
- /**
71
- * Get current filter expression
33
+ * Get current filter expression.
72
34
  */
73
35
  getCurrentExpression(): FilterExpression | null;
74
36
  /**
75
- * Update column names (for SQL query mapping)
37
+ * Update column names (for SQL query mapping).
76
38
  */
77
39
  setColumnNames(names: string[]): void;
40
+ /**
41
+ * Update column metadata used for AST target enrichment.
42
+ */
43
+ setColumns(columns: ColumnDef[]): void;
78
44
  }
79
45
  //# sourceMappingURL=filter-query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter-query.d.ts","sourceRoot":"","sources":["../../../../../src/features/filtering/filter-manager/filter-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,eAAe,CAAC,CAAqD;IAC7E,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,MAAM,CAAC,CAA2B;IAC1C,OAAO,CAAC,IAAI,CAAa;gBAGvB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,EACjC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAmBtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACG,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAoD5E;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;YACW,mBAAmB;IAuBjC;;OAEG;YACW,kBAAkB;IAahC;;OAEG;IACH,oBAAoB,IAAI,gBAAgB,GAAG,IAAI;IAI/C;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;CAQtC"}
1
+ {"version":3,"file":"filter-query.d.ts","sourceRoot":"","sources":["../../../../../src/features/filtering/filter-manager/filter-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,MAAM,CAAC,CAA2B;IAC1C,OAAO,CAAC,IAAI,CAAa;gBAGvB,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,CAAC,EAAE,SAAS,EAAE,EACrB,MAAM,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC;IAiBnC;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC5E;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;YACW,mBAAmB;IAgCjC;;OAEG;IACH,oBAAoB,IAAI,gBAAgB,GAAG,IAAI;IAI/C;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IASrC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI;CAGvC"}
@@ -1,67 +1,11 @@
1
- import type { FilterModel, FilterQuery, FilterExpression, ColumnDef } from '../../../types';
2
1
  import type { ColumnType } from '@zengrid/shared';
3
- import type { FieldFilterState } from '../types';
2
+ import type { ColumnDef, FilterAst, FilterExpression, FilterModel, FilterQuery } from '../../../types';
4
3
  import type { FilterExportResult } from '../adapters/types';
5
- import type { FilterManagerOptions } from './types';
6
4
  import type { ColumnFilter } from '../column-filter';
5
+ import type { FieldFilterState } from '../types';
6
+ import type { FilterManagerOptions } from './types';
7
7
  /**
8
- * FilterManager - Manages filtering across all columns
9
- *
10
- * Supports both frontend and backend filtering with two input formats:
11
- * 1. FilterModel[] - Traditional structured filters
12
- * 2. FilterQuery - SQL-like queries with parameterization
13
- *
14
- * @example Traditional Filtering
15
- * ```typescript
16
- * const filterManager = new FilterManager({
17
- * colCount: 10,
18
- * getValue: (row, col) => data[row][col],
19
- * mode: 'frontend'
20
- * });
21
- *
22
- * // Add filter for column 0
23
- * filterManager.setColumnFilter(0, [
24
- * { operator: 'greaterThan', value: 100 },
25
- * ]);
26
- *
27
- * // Test if row passes all filters
28
- * const passes = filterManager.testRow(5);
29
- *
30
- * // Get visible row indices
31
- * const visible = filterManager.getVisibleRows(1000);
32
- * ```
33
- *
34
- * @example SQL-like Filtering
35
- * ```typescript
36
- * const filterManager = new FilterManager({
37
- * colCount: 10,
38
- * getValue: (row, col) => data[row][col],
39
- * mode: 'frontend',
40
- * columnNames: ['id', 'name', 'age', 'status']
41
- * });
42
- *
43
- * // Apply SQL-like filter
44
- * await filterManager.applyFilter({
45
- * sql: "age > :minAge AND status = :status",
46
- * params: { minAge: 18, status: 'active' }
47
- * });
48
- * ```
49
- *
50
- * @example Backend Filtering
51
- * ```typescript
52
- * const filterManager = new FilterManager({
53
- * colCount: 10,
54
- * getValue: (row, col) => data[row][col],
55
- * mode: 'backend',
56
- * onFilterRequest: async (filter) => {
57
- * const data = await api.get('/data', {
58
- * filter: filter.sql,
59
- * params: filter.params
60
- * });
61
- * grid.setData(data);
62
- * }
63
- * });
64
- * ```
8
+ * FilterManager - Manages filtering across all columns.
65
9
  */
66
10
  export declare class FilterManager {
67
11
  private core;
@@ -69,90 +13,37 @@ export declare class FilterManager {
69
13
  private exporter;
70
14
  private optimizer;
71
15
  constructor(options: FilterManagerOptions);
72
- /**
73
- * Set filter for a column
74
- */
75
16
  setColumnFilter(column: number, conditions: any[], logic?: 'AND' | 'OR'): void;
76
- /**
77
- * Clear filter for a column
78
- */
79
17
  clearColumnFilter(column: number): void;
80
- /**
81
- * Clear all filters
82
- */
83
18
  clearAll(): void;
84
- /**
85
- * Test if a row passes all filters
86
- */
87
19
  testRow(row: number): boolean;
88
- /**
89
- * Get all visible row indices
90
- */
91
20
  getVisibleRows(rowCount: number): number[];
92
- /**
93
- * Get filter statistics
94
- */
95
21
  getStats(rowCount: number): {
96
22
  totalRows: number;
97
23
  visibleRows: number;
98
24
  hiddenRows: number;
99
25
  activeFilters: number;
100
26
  };
101
- /**
102
- * Get current filter state
103
- */
104
27
  getFilterState(): FilterModel[];
105
- /**
106
- * Check if any filters are active
107
- */
28
+ setFilterState(models: FilterModel[]): void;
29
+ getFilterAst(): FilterAst | null;
30
+ getAstProjectionWarnings(): string[];
31
+ getAstExecutionWarnings(): string[];
108
32
  hasActiveFilters(): boolean;
109
- /**
110
- * Get filter for specific column
111
- */
33
+ hasStructuredFilters(): boolean;
34
+ isUsingAstExecution(): boolean;
35
+ hasUnexecutableFilters(): boolean;
112
36
  getColumnFilter(column: number): ColumnFilter | undefined;
113
- /**
114
- * Apply filter using SQL-like query or FilterModels
115
- */
116
37
  applyFilter(filter: FilterQuery | FilterModel[] | null): Promise<void>;
117
- /**
118
- * Get current filter expression
119
- */
120
38
  getCurrentExpression(): FilterExpression | null;
121
- /**
122
- * Update column names (for SQL query mapping)
123
- */
124
39
  setColumnNames(names: string[]): void;
125
- /**
126
- * Get current filter state in field-based format
127
- */
128
40
  getFieldFilterState(): FieldFilterState | null;
129
- /**
130
- * Get filter export in all formats (REST, GraphQL, SQL)
131
- */
132
41
  getFilterExport(): FilterExportResult | null;
133
- /**
134
- * Get filter export in specific format
135
- */
136
42
  getFilterExportAs<T>(format: string): T | null;
137
- /**
138
- * Set filter from field-based format
139
- */
140
43
  setFieldFilter(state: FieldFilterState): void;
141
- /**
142
- * Update columns (for export manager)
143
- */
144
44
  setColumns(columns: ColumnDef[]): void;
145
- /**
146
- * Set data version (invalidates cache)
147
- */
148
45
  setDataVersion(version: number): void;
149
- /**
150
- * Index a column for optimized filtering
151
- */
152
46
  indexColumn(col: number, rowCount: number, type?: ColumnType): void;
153
- /**
154
- * Get cache statistics
155
- */
156
47
  getCacheStats(): {
157
48
  hitCount: number;
158
49
  missCount: number;
@@ -160,22 +51,13 @@ export declare class FilterManager {
160
51
  size: number;
161
52
  capacity: number;
162
53
  } | null;
163
- /**
164
- * Get index memory statistics
165
- */
166
54
  getIndexMemoryStats(): {
167
55
  usedMB: number;
168
56
  limitMB: number;
169
57
  utilizationPercent: number;
170
58
  indexedColumns: number;
171
59
  } | null;
172
- /**
173
- * Clear all caches and indexes
174
- */
175
60
  clearOptimizations(): void;
176
- /**
177
- * Destroy filter manager
178
- */
179
61
  destroy(): void;
180
62
  }
181
63
  export type { FilterManagerOptions } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/filtering/filter-manager/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/filtering/filter-manager/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import type { FilterModel, ColumnDef } from '../../../types';
2
- import type { OperationMode } from '@zengrid/shared';
3
2
  import type { EventEmitter } from '../../../events/event-emitter';
4
3
  import type { GridEvents } from '../../../events/grid-events';
5
4
  import type { FilterExportManagerOptions } from '../filter-export-manager';
@@ -23,20 +22,10 @@ export interface FilterManagerOptions {
23
22
  * Initial filter models
24
23
  */
25
24
  initialFilters?: FilterModel[];
26
- /**
27
- * Filter mode: frontend, backend, or auto
28
- * @default 'frontend'
29
- */
30
- mode?: OperationMode;
31
25
  /**
32
26
  * Column names for SQL query field mapping
33
27
  */
34
28
  columnNames?: string[];
35
- /**
36
- * Backend filtering callback
37
- * Called when mode is 'backend' or 'auto' (with callback present)
38
- */
39
- onFilterRequest?: (filter: any) => Promise<void> | void;
40
29
  /**
41
30
  * Column definitions (for field-based filtering)
42
31
  * Required for FilterExportManager
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/features/filtering/filter-manager/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;IAE5C;;OAEG;IACH,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC;IAE/B;;;OAGG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAExD;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IAEtB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAEnD;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/features/filtering/filter-manager/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;IAE5C;;OAEG;IACH,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC;IAE/B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IAEtB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAEnD;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -1,69 +1,29 @@
1
- import type { FilterQuery, FilterExpression, FilterModel } from '../../types';
1
+ import type { FilterExpression, FilterModel, FilterQuery } from '../../types';
2
2
  /**
3
3
  * FilterQueryParser - Parses SQL-like filter queries
4
4
  *
5
- * Converts SQL-like syntax to FilterExpression for both backend and frontend use
6
- *
7
- * Supported operators:
8
- * - Comparison: =, !=, <, >, <=, >=
9
- * - String: LIKE, NOT LIKE
10
- * - Range: BETWEEN, NOT BETWEEN
11
- * - List: IN, NOT IN
12
- * - Null: IS NULL, IS NOT NULL
13
- * - Logic: AND, OR, NOT, ( )
14
- *
15
- * @example
16
- * ```typescript
17
- * const parser = new FilterQueryParser();
18
- *
19
- * // Simple query
20
- * parser.parse({ sql: "age > 18" });
21
- *
22
- * // Parameterized query (recommended)
23
- * parser.parse({
24
- * sql: "age > :minAge AND status = :status",
25
- * params: { minAge: 18, status: 'active' }
26
- * });
27
- *
28
- * // Complex query
29
- * parser.parse({
30
- * sql: "age BETWEEN :min AND :max AND (name LIKE :search OR email LIKE :search)",
31
- * params: { min: 18, max: 65, search: '%john%' }
32
- * });
33
- * ```
5
+ * Converts SQL-like syntax to FilterExpression for both backend and frontend use.
6
+ * Supported syntax is lowered into semantic AST nodes so frontend and backend
7
+ * now share the same canonical filter tree.
34
8
  */
35
9
  export declare class FilterQueryParser {
10
+ private columnMap;
36
11
  /**
37
12
  * Set column name to index mapping
38
13
  * Required for converting SQL field names to column indices
39
14
  */
40
- setColumnMapping(_mapping: Record<string, number>): void;
15
+ setColumnMapping(mapping: Record<string, number>): void;
41
16
  /**
42
17
  * Parse SQL-like filter query into FilterExpression
43
18
  */
44
19
  parse(query: FilterQuery): FilterExpression;
45
- /**
46
- * Bind named parameters (:paramName) to their values
47
- * Converts to positional placeholders (?)
48
- */
49
- private bindNamedParameters;
50
- /**
51
- * Extract positional parameters from SQL
52
- * Converts literal values to ? placeholders
53
- */
54
- private extractPositionalParameters;
55
- /**
56
- * Check if a value is part of a SQL keyword
57
- */
58
- private isPartOfKeyword;
59
20
  /**
60
21
  * Convert SQL query to FilterModels (for frontend filtering)
61
- * This is a simplified conversion - complex queries may not convert perfectly
62
22
  */
63
23
  parseToModels(query: FilterQuery, columnNames: string[]): FilterModel[];
64
- /**
65
- * Convert SQL operator to FilterOperator
66
- */
67
- private sqlOperatorToFilterOperator;
24
+ private parseSemanticAst;
25
+ private resolveTarget;
26
+ private toPositionalQuery;
27
+ private toSqlParamValue;
68
28
  }
69
29
  //# sourceMappingURL=filter-query-parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter-query-parser.d.ts","sourceRoot":"","sources":["../../../../src/features/filtering/filter-query-parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,iBAAiB;IAI5B;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAKxD;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,gBAAgB;IAoB3C;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAyBnC;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE;IAcvE;;OAEG;IACH,OAAO,CAAC,2BAA2B;CAepC"}
1
+ {"version":3,"file":"filter-query-parser.d.ts","sourceRoot":"","sources":["../../../../src/features/filtering/filter-query-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,gBAAgB,EAChB,WAAW,EAEX,WAAW,EACZ,MAAM,aAAa,CAAC;AAsCrB;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAAkC;IAEnD;;;OAGG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAIvD;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,gBAAgB;IAiB3C;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE;IAqBvE,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,eAAe;CAYxB"}
@@ -5,9 +5,12 @@ export { FilterCompiler } from './filter-compiler';
5
5
  export type { FilterPredicate } from './filter-compiler';
6
6
  export { ColumnFilter } from './column-filter';
7
7
  export type { ColumnFilterOptions } from './column-filter';
8
+ export { FilterAstCompiler } from './filter-ast-compiler';
9
+ export type { FilterAstRowPredicate } from './filter-ast-compiler';
8
10
  export { FilterManager } from './filter-manager';
9
11
  export type { FilterManagerOptions } from './filter-manager';
10
12
  export { FilterAutocomplete } from './filter-autocomplete';
13
+ export * from './filter-ast';
11
14
  export { FilterOptimizer } from './filter-optimizer';
12
15
  export { SubstringFilter } from './substring-filter';
13
16
  export { FilterCache } from './filter-cache';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/filtering/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,YAAY,EACV,sBAAsB,EACtB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAG1E,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/filtering/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,YAAY,EACV,sBAAsB,EACtB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAG1E,cAAc,YAAY,CAAC"}