@zengrid/core 1.2.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 (90) hide show
  1. package/dist/index.cjs.js +10897 -8362
  2. package/dist/index.esm.js +10898 -8363
  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/events/grid-events.d.ts +3 -0
  10. package/dist/src/events/grid-events.d.ts.map +1 -1
  11. package/dist/src/features/filtering/filter-ast-compiler.d.ts +30 -0
  12. package/dist/src/features/filtering/filter-ast-compiler.d.ts.map +1 -0
  13. package/dist/src/features/filtering/filter-ast.d.ts +39 -0
  14. package/dist/src/features/filtering/filter-ast.d.ts.map +1 -0
  15. package/dist/src/features/filtering/filter-export-manager.d.ts +0 -8
  16. package/dist/src/features/filtering/filter-export-manager.d.ts.map +1 -1
  17. package/dist/src/features/filtering/filter-expression.d.ts +15 -0
  18. package/dist/src/features/filtering/filter-expression.d.ts.map +1 -0
  19. package/dist/src/features/filtering/filter-manager/filter-core.d.ts +63 -11
  20. package/dist/src/features/filtering/filter-manager/filter-core.d.ts.map +1 -1
  21. package/dist/src/features/filtering/filter-manager/filter-export.d.ts +3 -49
  22. package/dist/src/features/filtering/filter-manager/filter-export.d.ts.map +1 -1
  23. package/dist/src/features/filtering/filter-manager/filter-optimizer.d.ts.map +1 -1
  24. package/dist/src/features/filtering/filter-manager/filter-query.d.ts +14 -48
  25. package/dist/src/features/filtering/filter-manager/filter-query.d.ts.map +1 -1
  26. package/dist/src/features/filtering/filter-manager/index.d.ts +11 -129
  27. package/dist/src/features/filtering/filter-manager/index.d.ts.map +1 -1
  28. package/dist/src/features/filtering/filter-manager/types.d.ts +0 -11
  29. package/dist/src/features/filtering/filter-manager/types.d.ts.map +1 -1
  30. package/dist/src/features/filtering/filter-query-parser.d.ts +10 -50
  31. package/dist/src/features/filtering/filter-query-parser.d.ts.map +1 -1
  32. package/dist/src/features/filtering/index.d.ts +3 -0
  33. package/dist/src/features/filtering/index.d.ts.map +1 -1
  34. package/dist/src/features/query/query-state.d.ts +12 -0
  35. package/dist/src/features/query/query-state.d.ts.map +1 -0
  36. package/dist/src/features/sorting/sort-manager.d.ts +9 -23
  37. package/dist/src/features/sorting/sort-manager.d.ts.map +1 -1
  38. package/dist/src/features/sorting/sort-request.d.ts +5 -0
  39. package/dist/src/features/sorting/sort-request.d.ts.map +1 -0
  40. package/dist/src/grid/api/filter-api.d.ts +7 -3
  41. package/dist/src/grid/api/filter-api.d.ts.map +1 -1
  42. package/dist/src/grid/api/sort-api.d.ts.map +1 -1
  43. package/dist/src/grid/filter-ui.d.ts +34 -5
  44. package/dist/src/grid/filter-ui.d.ts.map +1 -1
  45. package/dist/src/grid/grid-core.d.ts +12 -3
  46. package/dist/src/grid/grid-core.d.ts.map +1 -1
  47. package/dist/src/grid/grid-setup.d.ts.map +1 -1
  48. package/dist/src/overlay/index.d.ts +2 -0
  49. package/dist/src/overlay/index.d.ts.map +1 -0
  50. package/dist/src/overlay/overlay-manager.d.ts +46 -0
  51. package/dist/src/overlay/overlay-manager.d.ts.map +1 -0
  52. package/dist/src/plugins/async-filter-plugin.d.ts.map +1 -1
  53. package/dist/src/plugins/data-plugin.d.ts +14 -0
  54. package/dist/src/plugins/data-plugin.d.ts.map +1 -0
  55. package/dist/src/plugins/filter-plugin.d.ts +1 -1
  56. package/dist/src/plugins/filter-plugin.d.ts.map +1 -1
  57. package/dist/src/plugins/filter-ui/filter-ui-plugin.d.ts +1 -0
  58. package/dist/src/plugins/filter-ui/filter-ui-plugin.d.ts.map +1 -1
  59. package/dist/src/plugins/header/header-render-params.d.ts.map +1 -1
  60. package/dist/src/plugins/index.d.ts +2 -0
  61. package/dist/src/plugins/index.d.ts.map +1 -1
  62. package/dist/src/plugins/lifecycle/lifecycle-plugin.d.ts +3 -0
  63. package/dist/src/plugins/lifecycle/lifecycle-plugin.d.ts.map +1 -1
  64. package/dist/src/plugins/sort-plugin.d.ts +3 -2
  65. package/dist/src/plugins/sort-plugin.d.ts.map +1 -1
  66. package/dist/src/rendering/headers/renderers/sortable-header-renderer.d.ts +4 -1
  67. package/dist/src/rendering/headers/renderers/sortable-header-renderer.d.ts.map +1 -1
  68. package/dist/src/rendering/renderers/button/button-renderer.d.ts.map +1 -1
  69. package/dist/src/rendering/renderers/chip/chip-renderer.d.ts.map +1 -1
  70. package/dist/src/rendering/renderers/dropdown/dropdown-dom.d.ts +1 -1
  71. package/dist/src/rendering/renderers/dropdown/dropdown-dom.d.ts.map +1 -1
  72. package/dist/src/rendering/renderers/dropdown/dropdown-events.d.ts.map +1 -1
  73. package/dist/src/rendering/renderers/dropdown/dropdown-renderer.d.ts.map +1 -1
  74. package/dist/src/rendering/renderers/dropdown/dropdown-state.d.ts +10 -6
  75. package/dist/src/rendering/renderers/dropdown/dropdown-state.d.ts.map +1 -1
  76. package/dist/src/rendering/virtual-scroller/virtual-scroller.d.ts.map +1 -1
  77. package/dist/src/styles.css +93 -4
  78. package/dist/src/types/data.d.ts +34 -60
  79. package/dist/src/types/data.d.ts.map +1 -1
  80. package/dist/src/types/filter.d.ts +107 -35
  81. package/dist/src/types/filter.d.ts.map +1 -1
  82. package/dist/src/types/grid.d.ts +1 -46
  83. package/dist/src/types/grid.d.ts.map +1 -1
  84. package/dist/src/types/index.d.ts +1 -0
  85. package/dist/src/types/index.d.ts.map +1 -1
  86. package/dist/src/types/query.d.ts +64 -0
  87. package/dist/src/types/query.d.ts.map +1 -0
  88. package/dist/src/types/sort.d.ts +9 -6
  89. package/dist/src/types/sort.d.ts.map +1 -1
  90. package/package.json +8 -5
@@ -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"}
@@ -0,0 +1,12 @@
1
+ import type { ColumnDef, FilterAst, QueryPaginationState, QueryState, SortState } from '../../types';
2
+ export interface BuildQueryStateOptions {
3
+ sortState?: SortState[] | null;
4
+ filterAst?: FilterAst | null;
5
+ pagination?: QueryPaginationState | null;
6
+ columns?: ColumnDef[];
7
+ }
8
+ export declare function buildQueryPaginationState(page: number, pageSize: number, offset?: number): QueryPaginationState;
9
+ export declare function buildRangeQueryPaginationState(startRow: number, endRow: number): QueryPaginationState;
10
+ export declare function buildStoreQueryPaginationState(page: number | null | undefined, pageSize: number | null | undefined): QueryPaginationState | null;
11
+ export declare function buildQueryState(options?: BuildQueryStateOptions): QueryState;
12
+ //# sourceMappingURL=query-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-state.d.ts","sourceRoot":"","sources":["../../../../src/features/query/query-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,oBAAoB,EACpB,UAAU,EACV,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;CACvB;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,SAAkB,GACvB,oBAAoB,CAMtB;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,oBAAoB,CAKtB;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,oBAAoB,GAAG,IAAI,CAU7B;AAED,wBAAgB,eAAe,CAAC,OAAO,GAAE,sBAA2B,GAAG,UAAU,CAYhF"}
@@ -1,7 +1,7 @@
1
- import type { SortState, SortDirection, SortMode } from '../../types';
1
+ import type { SortState, SortDirection } from '../../types';
2
2
  import type { EventEmitter } from '../../events/event-emitter';
3
3
  import type { GridEvents } from '../../events/grid-events';
4
- import type { IndexMap } from '../../data/index-map';
4
+ import { type IndexMap } from '../../data/index-map';
5
5
  /**
6
6
  * Sort manager options
7
7
  */
@@ -27,20 +27,6 @@ export interface SortManagerOptions {
27
27
  * Initial sort state
28
28
  */
29
29
  initialSort?: SortState[];
30
- /**
31
- * Sort mode - determines where sorting is executed
32
- * - 'frontend': Sort data in memory (default)
33
- * - 'backend': Emit events only, application handles sorting
34
- * - 'auto': Use backend mode if onSortRequest is provided, otherwise frontend
35
- * @default 'frontend'
36
- */
37
- sortMode?: SortMode;
38
- /**
39
- * Callback for backend sorting
40
- * Called when sortMode is 'backend' or 'auto' (with callback present)
41
- * Application should fetch sorted data and call grid.setData()
42
- */
43
- onSortRequest?: (sortState: SortState[]) => Promise<void> | void;
44
30
  }
45
31
  /**
46
32
  * SortManager - Manages sorting state and execution
@@ -73,8 +59,6 @@ export declare class SortManager {
73
59
  private enableMultiSort;
74
60
  private sortState;
75
61
  private indexMap;
76
- private sortMode;
77
- private onSortRequest?;
78
62
  constructor(options: SortManagerOptions);
79
63
  /**
80
64
  * Toggle sort on a column
@@ -114,16 +98,18 @@ export declare class SortManager {
114
98
  * Execute the sort
115
99
  */
116
100
  private executeSort;
101
+ private sortMultipleColumns;
102
+ private compareRows;
103
+ private compareValues;
104
+ private compareNumbers;
105
+ private compareStrings;
106
+ private compareBooleans;
107
+ private compareDates;
117
108
  /**
118
109
  * Update row count
119
110
  * @param rowCount - New row count
120
111
  */
121
112
  updateRowCount(rowCount: number): void;
122
- /**
123
- * Get current sort mode (resolved from 'auto')
124
- * Returns the actual mode being used: 'frontend' or 'backend'
125
- */
126
- getSortMode(): 'frontend' | 'backend';
127
113
  /**
128
114
  * Destroy sort manager
129
115
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sort-manager.d.ts","sourceRoot":"","sources":["../../../../src/features/sorting/sort-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;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;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC;IAE1B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAClE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAC,CAA2B;IAC1C,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAmD;gBAE7D,OAAO,EAAE,kBAAkB;IAmBvC;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,IAAI;IA2D3D;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI;IAc1C;;OAEG;IACH,SAAS,IAAI,IAAI;IAajB;;OAEG;IACH,YAAY,IAAI,SAAS,EAAE;IAI3B;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;IAK5C;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;;OAGG;IACH,WAAW,IAAI,QAAQ,GAAG,IAAI;IAI9B;;OAEG;IACH,OAAO,CAAC,WAAW;IA6GnB;;;OAGG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAStC;;;OAGG;IACH,WAAW,IAAI,UAAU,GAAG,SAAS;IAIrC;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB"}
1
+ {"version":3,"file":"sort-manager.d.ts","sourceRoot":"","sources":["../../../../src/features/sorting/sort-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIrE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;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;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAC,CAA2B;IAC1C,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,QAAQ,CAAyB;gBAE7B,OAAO,EAAE,kBAAkB;IAYvC;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,IAAI;IA6D3D;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI;IAc1C;;OAEG;IACH,SAAS,IAAI,IAAI;IAajB;;OAEG;IACH,YAAY,IAAI,SAAS,EAAE;IAI3B;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;IAK5C;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;;OAGG;IACH,WAAW,IAAI,QAAQ,GAAG,IAAI;IAI9B;;OAEG;IACH,OAAO,CAAC,WAAW;IA6DnB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,YAAY;IAIpB;;;OAGG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAStC;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB"}
@@ -0,0 +1,5 @@
1
+ import type { ColumnDef } from '../../types/column';
2
+ import type { SortDescriptor, SortState } from '../../types/sort';
3
+ export declare function normalizeSortState(sortState: SortState[]): SortState[];
4
+ export declare function serializeSortState(sortState: SortState[], columns?: ColumnDef[]): SortDescriptor[];
5
+ //# sourceMappingURL=sort-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sort-request.d.ts","sourceRoot":"","sources":["../../../../src/features/sorting/sort-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAiB,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAQjF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CA6CtE;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EAAE,EACtB,OAAO,CAAC,EAAE,SAAS,EAAE,GACpB,cAAc,EAAE,CAOlB"}
@@ -1,4 +1,6 @@
1
- import type { FilterModel } from '../../types';
1
+ import type { FilterExpression, FilterModel } from '../../types';
2
+ import type { FilterExportResult } from '../../features/filtering/adapters/types';
3
+ import type { FieldFilterState } from '../../features/filtering/types';
2
4
  import type { SlimGridContext } from '../grid-context';
3
5
  export interface FilterApi {
4
6
  set(column: number, operator: string, value: any): void;
@@ -6,12 +8,14 @@ export interface FilterApi {
6
8
  operator: string;
7
9
  value: any;
8
10
  }>, logic?: 'AND' | 'OR'): void;
11
+ setFieldState(state: FieldFilterState): void;
9
12
  clear(): void;
10
13
  clearColumn(column: number): void;
11
14
  getState(): FilterModel[];
12
15
  setState(models: FilterModel[]): void;
13
- getFieldState(): any;
14
- getExports(): any;
16
+ getFieldState(): FieldFilterState | null;
17
+ getExports(): FilterExportResult | null;
18
+ getExpression(): FilterExpression | null;
15
19
  getMode(): 'frontend' | 'backend';
16
20
  setQuick(query: string, columns?: number[]): void;
17
21
  clearQuick(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"filter-api.d.ts","sourceRoot":"","sources":["../../../../src/grid/api/filter-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IACxD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3G,KAAK,IAAI,IAAI,CAAC;IACd,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,IAAI,WAAW,EAAE,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACtC,aAAa,IAAI,GAAG,CAAC;IACrB,UAAU,IAAI,GAAG,CAAC;IAClB,OAAO,IAAI,UAAU,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClD,UAAU,IAAI,IAAI,CAAC;IACnB,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;KAAE,CAAC;CACzD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,SAAS,CAqE/D"}
1
+ {"version":3,"file":"filter-api.d.ts","sourceRoot":"","sources":["../../../../src/grid/api/filter-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IACxD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3G,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC7C,KAAK,IAAI,IAAI,CAAC;IACd,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,IAAI,WAAW,EAAE,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACtC,aAAa,IAAI,gBAAgB,GAAG,IAAI,CAAC;IACzC,UAAU,IAAI,kBAAkB,GAAG,IAAI,CAAC;IACxC,aAAa,IAAI,gBAAgB,GAAG,IAAI,CAAC;IACzC,OAAO,IAAI,UAAU,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClD,UAAU,IAAI,IAAI,CAAC;IACnB,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;KAAE,CAAC;CACzD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,SAAS,CAoF/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"sort-api.d.ts","sourceRoot":"","sources":["../../../../src/grid/api/sort-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACpC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,IAAI,SAAS,EAAE,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACvC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IACnC,QAAQ,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,OAAO,IAAI,UAAU,GAAG,SAAS,CAAC;CACnC;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAkD3D"}
1
+ {"version":3,"file":"sort-api.d.ts","sourceRoot":"","sources":["../../../../src/grid/api/sort-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACpC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,IAAI,SAAS,EAAE,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACvC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IACnC,QAAQ,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,OAAO,IAAI,UAAU,GAAG,SAAS,CAAC;CACnC;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAsD3D"}
@@ -1,30 +1,43 @@
1
- import type { ColumnDef, FilterModel } from '../types';
1
+ import type { ColumnDef, FilterExpression, FilterModel } from '../types';
2
2
  import type { EventEmitter } from '../events/event-emitter';
3
3
  import type { GridEvents } from '../events/grid-events';
4
+ import type { FieldFilterState } from '../features/filtering/types';
4
5
  interface FilterUIOptions {
5
6
  container: HTMLElement;
6
7
  events: EventEmitter<GridEvents>;
8
+ columns?: ColumnDef[];
7
9
  getFilterState: () => FilterModel[];
10
+ getFilterExpression: () => FilterExpression | null;
8
11
  setColumnFilter: (column: number, conditions: Array<{
9
12
  operator: string;
10
13
  value: any;
11
14
  }>, logic?: 'AND' | 'OR') => void;
15
+ setFieldState: (state: FieldFilterState) => void;
12
16
  clearColumnFilter: (column: number) => void;
17
+ clearQuickFilter: () => void;
18
+ clearAllFilters: () => void;
13
19
  getColumnDef: (dataCol: number) => ColumnDef | undefined;
14
20
  mapVisualToDataCol: (visualCol: number) => number;
15
21
  }
16
22
  export declare class GridFilterUI {
17
23
  private container;
18
24
  private events;
25
+ private columns;
19
26
  private getFilterState;
27
+ private getFilterExpression;
20
28
  private setColumnFilter;
29
+ private setFieldState;
21
30
  private clearColumnFilter;
31
+ private clearQuickFilter;
32
+ private clearAllFilters;
22
33
  private getColumnDef;
23
34
  private mapVisualToDataCol;
35
+ private overlayManager;
24
36
  private popup;
25
- private documentClickHandler;
26
- private keyHandler;
37
+ private chipBar;
38
+ private popupKeyHandler;
27
39
  private filterClickUnsub;
40
+ private filterChangeUnsub;
28
41
  constructor(options: FilterUIOptions);
29
42
  private openFilterPopup;
30
43
  private buildCondition;
@@ -32,9 +45,25 @@ export declare class GridFilterUI {
32
45
  private getOperatorsForType;
33
46
  private getOperatorValueCount;
34
47
  private getColumnLabel;
35
- private positionPopup;
36
- private installGlobalHandlers;
48
+ private getColumnLabelByField;
49
+ private getColumnLabelByIndex;
50
+ private ensureChipBar;
51
+ private renderFilterChips;
52
+ private createChipElement;
53
+ private buildChipDescriptors;
54
+ private buildFieldStateChips;
55
+ private removeTopLevelCondition;
56
+ private removeTopLevelGroup;
57
+ private applyStructuredRoot;
58
+ private collectActiveFields;
59
+ private normalizeFieldGroup;
60
+ private describeQuickFilter;
61
+ private describeFieldGroup;
62
+ private describeFieldCondition;
63
+ private formatValue;
64
+ private updateChipBarLayout;
37
65
  private closePopup;
66
+ private teardownPopup;
38
67
  destroy(): void;
39
68
  }
40
69
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"filter-ui.d.ts","sourceRoot":"","sources":["../../../src/grid/filter-ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,UAAU,eAAe;IACvB,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACjC,cAAc,EAAE,MAAM,WAAW,EAAE,CAAC;IACpC,eAAe,EAAE,CACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC,EACnD,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,KACjB,IAAI,CAAC;IACV,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,CAAC;IACzD,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;CACnD;AAwCD,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,eAAe,CAIb;IACV,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,kBAAkB,CAAgC;IAE1D,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,oBAAoB,CAA0C;IACtE,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,gBAAgB,CAA6B;gBAEzC,OAAO,EAAE,eAAe;IAcpC,OAAO,CAAC,eAAe;IA8OvB,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,qBAAqB;IAgC7B,OAAO,CAAC,UAAU,CAehB;IAEF,OAAO,IAAI,IAAI;CAOhB"}
1
+ {"version":3,"file":"filter-ui.d.ts","sourceRoot":"","sources":["../../../src/grid/filter-ui.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { CellRef, GridOptions, GridExportOptions } from '../types';
1
+ import type { CellRef, GridOptions, GridExportOptions, DataRequestState } from '../types';
2
2
  import type { GridPlugin } from '../reactive';
3
3
  import type { ZenGridTheme, PartialTheme } from '../theming/theme.interface';
4
4
  import type { GridStoreImpl } from '../reactive/store';
@@ -21,6 +21,9 @@ export declare class Grid {
21
21
  setData(data: any[][]): void;
22
22
  getData(row: number, col: number): any;
23
23
  getDataMode(): 'frontend' | 'backend';
24
+ getDataStatus(): DataRequestState;
25
+ refreshData(): Promise<void>;
26
+ retryDataRequest(): Promise<void>;
24
27
  render(): void;
25
28
  refresh(): void;
26
29
  clearCache(): void;
@@ -74,8 +77,8 @@ export declare class Grid {
74
77
  clearColumnFilter: (col: number) => void;
75
78
  getFilterState: () => import("../types").FilterModel[];
76
79
  setFilterState: (m: any[]) => void;
77
- getFieldFilterState: () => any;
78
- getFilterExports: () => any;
80
+ getFieldFilterState: () => import("../features/filtering").FieldFilterState | null;
81
+ getFilterExports: () => import("../features/filtering").FilterExportResult | null;
79
82
  getFilterMode: () => "frontend" | "backend";
80
83
  setQuickFilter: (q: string, cols?: number[]) => void;
81
84
  clearQuickFilter: () => void;
@@ -118,5 +121,11 @@ export declare class Grid {
118
121
  applyStateSnapshot: (s: any) => void;
119
122
  exportCSV: (o?: GridExportOptions) => string;
120
123
  exportTSV: (o?: GridExportOptions) => string;
124
+ /** @deprecated Use refreshData() */
125
+ refreshGridData: () => Promise<void>;
126
+ /** @deprecated Use retryDataRequest() */
127
+ retryDataRequestAsync: () => Promise<void>;
128
+ /** @deprecated Use getDataStatus() */
129
+ getDataRequestStatus: () => DataRequestState;
121
130
  }
122
131
  //# sourceMappingURL=grid-core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid-core.d.ts","sourceRoot":"","sources":["../../../src/grid/grid-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grid-core.d.ts","sourceRoot":"","sources":["../../../src/grid/grid-core.ts"],"names":[],"mappings":"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"}