@affino/datagrid-core 0.2.1 → 0.3.0

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 (34) hide show
  1. package/dist/src/core/gridApi.d.ts +2 -1
  2. package/dist/src/core/gridApi.d.ts.map +1 -1
  3. package/dist/src/core/gridApi.js +17 -0
  4. package/dist/src/core/gridCore.d.ts +2 -2
  5. package/dist/src/core/gridCore.d.ts.map +1 -1
  6. package/dist/src/models/advancedFilter.d.ts.map +1 -1
  7. package/dist/src/models/advancedFilter.js +16 -1
  8. package/dist/src/models/clientRowModel.d.ts +2 -1
  9. package/dist/src/models/clientRowModel.d.ts.map +1 -1
  10. package/dist/src/models/clientRowModel.js +199 -36
  11. package/dist/src/models/columnFilterUtils.d.ts +4 -0
  12. package/dist/src/models/columnFilterUtils.d.ts.map +1 -0
  13. package/dist/src/models/columnFilterUtils.js +114 -0
  14. package/dist/src/models/index.d.ts +2 -1
  15. package/dist/src/models/index.d.ts.map +1 -1
  16. package/dist/src/models/index.js +1 -0
  17. package/dist/src/models/rowModel.d.ts +29 -1
  18. package/dist/src/models/rowModel.d.ts.map +1 -1
  19. package/dist/src/models/rowPatchAnalyzer.d.ts.map +1 -1
  20. package/dist/src/models/rowPatchAnalyzer.js +6 -1
  21. package/dist/src/public.d.ts +1 -1
  22. package/dist/src/public.d.ts.map +1 -1
  23. package/dist/src/public.js +1 -1
  24. package/dist/src/types/base.d.ts +15 -1
  25. package/dist/src/types/base.d.ts.map +1 -1
  26. package/dist/src/types/filters.d.ts +13 -1
  27. package/dist/src/types/filters.d.ts.map +1 -1
  28. package/dist/src/types/stable.d.ts +1 -1
  29. package/dist/src/types/stable.d.ts.map +1 -1
  30. package/dist/src/viewport/dataGridViewportModelBridgeService.d.ts.map +1 -1
  31. package/dist/src/viewport/dataGridViewportModelBridgeService.js +32 -11
  32. package/dist/tsconfig.public.tsbuildinfo +1 -1
  33. package/package.json +20 -19
  34. package/LICENSE +0 -21
@@ -1,4 +1,4 @@
1
- import type { DataGridColumnDef, DataGridColumnModel, DataGridColumnModelSnapshot, DataGridColumnPin, DataGridColumnSnapshot, DataGridClientRowPatch, DataGridClientRowPatchOptions, DataGridFilterSnapshot, DataGridSortAndFilterModelInput, DataGridGroupBySpec, DataGridGroupExpansionSnapshot, DataGridAggregationModel, DataGridPaginationInput, DataGridPaginationSnapshot, DataGridRowId, DataGridRowModel, DataGridRowModelSnapshot, DataGridRowNode, DataGridSortState, DataGridViewportRange } from "../models";
1
+ import type { DataGridColumnDef, DataGridColumnModel, DataGridColumnModelSnapshot, DataGridColumnPin, DataGridColumnSnapshot, DataGridClientRowPatch, DataGridClientRowPatchOptions, DataGridColumnHistogram, DataGridColumnHistogramOptions, DataGridFilterSnapshot, DataGridSortAndFilterModelInput, DataGridGroupBySpec, DataGridGroupExpansionSnapshot, DataGridAggregationModel, DataGridPaginationInput, DataGridPaginationSnapshot, DataGridRowId, DataGridRowModel, DataGridRowModelSnapshot, DataGridRowNode, DataGridSortState, DataGridViewportRange } from "../models";
2
2
  import type { DataGridSelectionSnapshot } from "../selection/snapshot";
3
3
  import { type DataGridSelectionAggregationKind, type DataGridSelectionSummaryColumnConfig, type DataGridSelectionSummaryScope, type DataGridSelectionSummarySnapshot } from "../selection/selectionSummary";
4
4
  import type { DataGridTransactionInput, DataGridTransactionSnapshot } from "./transactionService";
@@ -70,6 +70,7 @@ export interface DataGridApi<TRow = unknown> {
70
70
  setGroupBy(groupBy: DataGridGroupBySpec | null): void;
71
71
  setAggregationModel(aggregationModel: DataGridAggregationModel<TRow> | null): void;
72
72
  getAggregationModel(): DataGridAggregationModel<TRow> | null;
73
+ getColumnHistogram(columnId: string, options?: DataGridColumnHistogramOptions): DataGridColumnHistogram;
73
74
  setGroupExpansion(expansion: DataGridGroupExpansionSnapshot | null): void;
74
75
  toggleGroup(groupKey: string): void;
75
76
  expandGroup(groupKey: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"gridApi.d.ts","sourceRoot":"","sources":["../../../src/core/gridApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gridApi.d.ts","sourceRoot":"","sources":["../../../src/core/gridApi.ts"],"names":[],"mappings":"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"}
@@ -285,6 +285,15 @@ function resolveSortFilterBatchCapability(rowModel) {
285
285
  setSortAndFilterModel: candidate.setSortAndFilterModel.bind(rowModel),
286
286
  };
287
287
  }
288
+ function resolveColumnHistogramCapability(rowModel) {
289
+ const candidate = rowModel;
290
+ if (typeof candidate.getColumnHistogram !== "function") {
291
+ return null;
292
+ }
293
+ return {
294
+ getColumnHistogram: candidate.getColumnHistogram.bind(rowModel),
295
+ };
296
+ }
288
297
  function assertPatchCapability(capability) {
289
298
  if (!capability) {
290
299
  throw new Error('[DataGridApi] rowModel does not implement patchRows capability.');
@@ -298,6 +307,7 @@ export function createDataGridApi(options) {
298
307
  const resolveCurrentTransactionCapability = () => resolveTransactionCapability(getTransactionService());
299
308
  const resolveCurrentPatchCapability = () => resolvePatchCapability(rowModel);
300
309
  const resolveCurrentSortFilterBatchCapability = () => resolveSortFilterBatchCapability(rowModel);
310
+ const resolveCurrentColumnHistogramCapability = () => resolveColumnHistogramCapability(rowModel);
301
311
  const deferredScheduler = createDeferredScheduler();
302
312
  let autoReapply = false;
303
313
  const resolveVisibleCellRefreshEntries = (pendingRows) => {
@@ -422,6 +432,13 @@ export function createDataGridApi(options) {
422
432
  getAggregationModel() {
423
433
  return rowModel.getAggregationModel();
424
434
  },
435
+ getColumnHistogram(columnId, options) {
436
+ const capability = resolveCurrentColumnHistogramCapability();
437
+ if (!capability) {
438
+ return [];
439
+ }
440
+ return capability.getColumnHistogram(columnId, options);
441
+ },
425
442
  setGroupExpansion(expansion) {
426
443
  rowModel.setGroupExpansion(expansion);
427
444
  },
@@ -13,7 +13,7 @@ export interface DataGridCoreService {
13
13
  export interface DataGridCoreEventService extends DataGridCoreService {
14
14
  readonly name: "event";
15
15
  }
16
- export interface DataGridCoreRowModelService<TRow = unknown> extends DataGridCoreService {
16
+ export interface DataGridCoreRowModelService<TRow = any> extends DataGridCoreService {
17
17
  readonly name: "rowModel";
18
18
  model?: DataGridRowModel<TRow>;
19
19
  }
@@ -50,7 +50,7 @@ export interface DataGridCoreViewportService extends DataGridCoreService {
50
50
  }
51
51
  export interface DataGridCoreServiceByName {
52
52
  event: DataGridCoreEventService;
53
- rowModel: DataGridCoreRowModelService;
53
+ rowModel: DataGridCoreRowModelService<any>;
54
54
  columnModel: DataGridCoreColumnModelService;
55
55
  edit: DataGridCoreEditService;
56
56
  transaction: DataGridCoreTransactionService;
@@ -1 +1 @@
1
- {"version":3,"file":"gridCore.d.ts","sourceRoot":"","sources":["../../../src/core/gridCore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gridCore.d.ts","sourceRoot":"","sources":["../../../src/core/gridCore.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"advancedFilter.d.ts","sourceRoot":"","sources":["../../../src/models/advancedFilter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,+BAA+B,EAC/B,gCAAgC,EAIhC,sBAAsB,EACvB,MAAM,eAAe,CAAA;AAEtB,MAAM,MAAM,8BAA8B,GAAG,CAAC,SAAS,EAAE,+BAA+B,KAAK,OAAO,CAAA;AAkWpG,wBAAgB,yCAAyC,CACvD,UAAU,EAAE,gCAAgC,GAAG,IAAI,GAAG,SAAS,GAC9D,gCAAgC,GAAG,IAAI,CAkBzC;AAED,wBAAgB,sDAAsD,CACpE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,IAAI,GAAG,SAAS,GACzE,gCAAgC,GAAG,IAAI,CAiDzC;AAED,wBAAgB,wCAAwC,CACtD,UAAU,EAAE,gCAAgC,GAAG,IAAI,GAAG,SAAS,EAC/D,OAAO,EAAE,8BAA8B,GACtC,OAAO,CA8BT;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,sBAAsB,GAAG,IAAI,GAAG,SAAS,GAC/C,sBAAsB,GAAG,IAAI,CAsB/B"}
1
+ {"version":3,"file":"advancedFilter.d.ts","sourceRoot":"","sources":["../../../src/models/advancedFilter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EAEtB,+BAA+B,EAC/B,gCAAgC,EAIhC,sBAAsB,EACvB,MAAM,eAAe,CAAA;AAEtB,MAAM,MAAM,8BAA8B,GAAG,CAAC,SAAS,EAAE,+BAA+B,KAAK,OAAO,CAAA;AAkWpG,wBAAgB,yCAAyC,CACvD,UAAU,EAAE,gCAAgC,GAAG,IAAI,GAAG,SAAS,GAC9D,gCAAgC,GAAG,IAAI,CAkBzC;AAED,wBAAgB,sDAAsD,CACpE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,IAAI,GAAG,SAAS,GACzE,gCAAgC,GAAG,IAAI,CAiDzC;AAED,wBAAgB,wCAAwC,CACtD,UAAU,EAAE,gCAAgC,GAAG,IAAI,GAAG,SAAS,EAC/D,OAAO,EAAE,8BAA8B,GACtC,OAAO,CA8BT;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,sBAAsB,GAAG,IAAI,GAAG,SAAS,GAC/C,sBAAsB,GAAG,IAAI,CAsB/B"}
@@ -406,7 +406,7 @@ export function cloneDataGridFilterSnapshot(input) {
406
406
  return null;
407
407
  }
408
408
  return {
409
- columnFilters: Object.fromEntries(Object.entries((_a = input.columnFilters) !== null && _a !== void 0 ? _a : {}).map(([key, values]) => [key, [...values]])),
409
+ columnFilters: Object.fromEntries(Object.entries((_a = input.columnFilters) !== null && _a !== void 0 ? _a : {}).map(([key, entry]) => [key, cloneColumnFilterEntry(entry)])),
410
410
  advancedFilters: Object.fromEntries(Object.entries((_b = input.advancedFilters) !== null && _b !== void 0 ? _b : {}).map(([key, condition]) => [
411
411
  key,
412
412
  {
@@ -419,6 +419,21 @@ export function cloneDataGridFilterSnapshot(input) {
419
419
  advancedExpression: cloneDataGridAdvancedFilterExpression((_c = input.advancedExpression) !== null && _c !== void 0 ? _c : null),
420
420
  };
421
421
  }
422
+ function cloneColumnFilterEntry(entry) {
423
+ if (entry.kind === "valueSet") {
424
+ return {
425
+ kind: "valueSet",
426
+ tokens: Array.isArray(entry.tokens) ? [...entry.tokens] : [],
427
+ };
428
+ }
429
+ return {
430
+ kind: "predicate",
431
+ operator: entry.operator,
432
+ value: entry.value,
433
+ value2: entry.value2,
434
+ caseSensitive: entry.caseSensitive,
435
+ };
436
+ }
422
437
  function cloneDataGridAdvancedFilterExpression(expression) {
423
438
  var _a;
424
439
  if (!expression || typeof expression !== "object") {
@@ -1,4 +1,4 @@
1
- import { type DataGridPaginationInput, type DataGridFilterSnapshot, type DataGridSortAndFilterModelInput, type DataGridAggregationModel, type DataGridGroupBySpec, type DataGridRowId, type DataGridRowIdResolver, type DataGridRowNodeInput, type DataGridRowModel, type DataGridSortState, type DataGridTreeDataSpec } from "./rowModel.js";
1
+ import { type DataGridPaginationInput, type DataGridColumnHistogram, type DataGridColumnHistogramOptions, type DataGridFilterSnapshot, type DataGridSortAndFilterModelInput, type DataGridAggregationModel, type DataGridGroupBySpec, type DataGridRowId, type DataGridRowIdResolver, type DataGridRowNodeInput, type DataGridRowModel, type DataGridSortState, type DataGridTreeDataSpec } from "./rowModel.js";
2
2
  import { type DataGridClientPerformanceMode, type DataGridProjectionPolicy } from "./projectionPolicy.js";
3
3
  import type { DataGridFieldDependency } from "./dependencyGraph.js";
4
4
  export interface CreateClientRowModelOptions<T> {
@@ -44,6 +44,7 @@ export interface DataGridClientRowPatchOptions {
44
44
  export interface ClientRowModel<T> extends DataGridRowModel<T> {
45
45
  setRows(rows: readonly DataGridRowNodeInput<T>[]): void;
46
46
  setSortAndFilterModel(input: DataGridSortAndFilterModelInput): void;
47
+ getColumnHistogram(columnId: string, options?: DataGridColumnHistogramOptions): DataGridColumnHistogram;
47
48
  patchRows(updates: readonly DataGridClientRowPatch<T>[], options?: DataGridClientRowPatchOptions): void;
48
49
  reorderRows(input: DataGridClientRowReorderInput): boolean;
49
50
  getDerivedCacheDiagnostics(): DataGridClientRowModelDerivedCacheDiagnostics;
@@ -1 +1 @@
1
- {"version":3,"file":"clientRowModel.d.ts","sourceRoot":"","sources":["../../../src/models/clientRowModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clientRowModel.d.ts","sourceRoot":"","sources":["../../../src/models/clientRowModel.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { DATAGRID_CLIENT_ALL_PROJECTION_STAGES } from "./projectionStages.js";
5
5
  import { buildGroupedRowsProjection } from "./groupProjectionController.js";
6
6
  import { createDataGridAggregationEngine, } from "./aggregationEngine.js";
7
7
  import { cloneDataGridFilterSnapshot as cloneFilterSnapshot, evaluateDataGridAdvancedFilterExpression, } from "./advancedFilter.js";
8
+ import { evaluateColumnPredicateFilter, serializeColumnValueToToken, } from "./columnFilterUtils.js";
8
9
  import { analyzeRowPatchChangeSet, collectAggregationModelFields, buildPatchProjectionExecutionPlan, collectFilterModelFields, collectGroupByFields, collectSortModelFields, collectTreeDataDependencyFields, resolveAdvancedExpression, } from "./rowPatchAnalyzer.js";
9
10
  import { createDataGridProjectionPolicy, } from "./projectionPolicy.js";
10
11
  import { createClientRowRuntimeStateStore } from "./clientRowRuntimeStateStore.js";
@@ -262,55 +263,113 @@ function areSameAggregateRecords(left, right) {
262
263
  return true;
263
264
  }
264
265
  function normalizeColumnFilterEntries(columnFilters) {
266
+ var _a;
265
267
  const normalized = [];
266
- for (const [rawKey, rawValues] of Object.entries(columnFilters !== null && columnFilters !== void 0 ? columnFilters : {})) {
267
- if (!Array.isArray(rawValues) || rawValues.length === 0) {
268
- continue;
269
- }
268
+ for (const [rawKey, rawEntry] of Object.entries(columnFilters !== null && columnFilters !== void 0 ? columnFilters : {})) {
270
269
  const key = rawKey.trim();
271
270
  if (key.length === 0) {
272
271
  continue;
273
272
  }
274
- const seen = new Set();
275
- const values = [];
276
- for (const rawValue of rawValues) {
277
- const value = normalizeText(rawValue);
278
- if (seen.has(value)) {
273
+ if (!rawEntry || typeof rawEntry !== "object") {
274
+ continue;
275
+ }
276
+ if (rawEntry.kind === "valueSet") {
277
+ const seen = new Set();
278
+ const valueTokens = [];
279
+ for (const rawToken of (_a = rawEntry.tokens) !== null && _a !== void 0 ? _a : []) {
280
+ const token = String(rawToken !== null && rawToken !== void 0 ? rawToken : "");
281
+ if (!token || seen.has(token)) {
282
+ continue;
283
+ }
284
+ seen.add(token);
285
+ valueTokens.push(token);
286
+ }
287
+ if (valueTokens.length === 0) {
279
288
  continue;
280
289
  }
281
- seen.add(value);
282
- values.push(value);
290
+ normalized.push({ key, kind: "valueSet", valueTokenSet: new Set(valueTokens) });
291
+ continue;
283
292
  }
284
- if (values.length === 0) {
293
+ if (rawEntry.kind !== "predicate") {
285
294
  continue;
286
295
  }
287
- normalized.push({ key, values });
296
+ normalized.push({
297
+ key,
298
+ kind: "predicate",
299
+ predicate: {
300
+ kind: "predicate",
301
+ operator: rawEntry.operator,
302
+ value: rawEntry.value,
303
+ value2: rawEntry.value2,
304
+ caseSensitive: rawEntry.caseSensitive,
305
+ },
306
+ });
288
307
  }
289
308
  return normalized;
290
309
  }
291
- function toComparableNumber(value) {
292
- if (typeof value === "number" && Number.isFinite(value)) {
293
- return value;
294
- }
295
- if (value instanceof Date) {
296
- return value.getTime();
297
- }
298
- const parsed = Number(value);
299
- return Number.isFinite(parsed) ? parsed : null;
300
- }
301
- function createFilterPredicate(filterModel) {
310
+ function createFilterPredicate(filterModel, options = {}) {
302
311
  var _a;
303
312
  if (!filterModel) {
304
313
  return () => true;
305
314
  }
306
- const columnFilters = normalizeColumnFilterEntries(((_a = filterModel.columnFilters) !== null && _a !== void 0 ? _a : {})).map(entry => {
307
- return [entry.key, new Set(entry.values)];
308
- });
309
- const advancedExpression = resolveAdvancedExpression(filterModel);
315
+ const ignoredColumnKey = typeof options.ignoreColumnFilterKey === "string"
316
+ ? options.ignoreColumnFilterKey.trim()
317
+ : "";
318
+ const effectiveFilterModel = (() => {
319
+ var _a, _b, _c;
320
+ if (!ignoredColumnKey) {
321
+ return filterModel;
322
+ }
323
+ let changed = false;
324
+ const nextColumnFilters = {};
325
+ for (const [rawKey, values] of Object.entries((_a = filterModel.columnFilters) !== null && _a !== void 0 ? _a : {})) {
326
+ if (rawKey.trim() === ignoredColumnKey) {
327
+ changed = true;
328
+ continue;
329
+ }
330
+ if (values.kind === "valueSet") {
331
+ nextColumnFilters[rawKey] = { kind: "valueSet", tokens: [...values.tokens] };
332
+ continue;
333
+ }
334
+ nextColumnFilters[rawKey] = {
335
+ kind: "predicate",
336
+ operator: values.operator,
337
+ value: values.value,
338
+ value2: values.value2,
339
+ caseSensitive: values.caseSensitive,
340
+ };
341
+ }
342
+ const nextAdvancedFilters = {};
343
+ for (const [rawKey, advancedFilter] of Object.entries((_b = filterModel.advancedFilters) !== null && _b !== void 0 ? _b : {})) {
344
+ if (rawKey.trim() === ignoredColumnKey) {
345
+ changed = true;
346
+ continue;
347
+ }
348
+ nextAdvancedFilters[rawKey] = advancedFilter;
349
+ }
350
+ if (!changed) {
351
+ return filterModel;
352
+ }
353
+ return {
354
+ columnFilters: nextColumnFilters,
355
+ advancedFilters: nextAdvancedFilters,
356
+ advancedExpression: (_c = filterModel.advancedExpression) !== null && _c !== void 0 ? _c : null,
357
+ };
358
+ })();
359
+ const columnFilters = normalizeColumnFilterEntries(((_a = effectiveFilterModel.columnFilters) !== null && _a !== void 0 ? _a : {})).map(entry => [entry.key, entry]);
360
+ const advancedExpression = resolveAdvancedExpression(effectiveFilterModel);
310
361
  return (rowNode) => {
311
- for (const [key, valueSet] of columnFilters) {
312
- const candidate = normalizeText(readRowField(rowNode, key));
313
- if (!valueSet.has(candidate)) {
362
+ var _a;
363
+ for (const [key, filterEntry] of columnFilters) {
364
+ const candidate = readRowField(rowNode, key);
365
+ if (filterEntry.kind === "valueSet") {
366
+ const candidateToken = serializeColumnValueToToken(candidate);
367
+ if (!((_a = filterEntry.valueTokenSet) === null || _a === void 0 ? void 0 : _a.has(candidateToken))) {
368
+ return false;
369
+ }
370
+ continue;
371
+ }
372
+ if (filterEntry.predicate && !evaluateColumnPredicateFilter(filterEntry.predicate, candidate)) {
314
373
  return false;
315
374
  }
316
375
  }
@@ -328,7 +387,12 @@ function hasActiveFilterModel(filterModel) {
328
387
  return false;
329
388
  }
330
389
  const columnFilters = Object.values((_a = filterModel.columnFilters) !== null && _a !== void 0 ? _a : {});
331
- if (columnFilters.some(values => Array.isArray(values) && values.length > 0)) {
390
+ if (columnFilters.some(entry => {
391
+ if (entry.kind === "valueSet") {
392
+ return entry.tokens.length > 0;
393
+ }
394
+ return true;
395
+ })) {
332
396
  return true;
333
397
  }
334
398
  const advancedKeys = Object.keys((_b = filterModel.advancedFilters) !== null && _b !== void 0 ? _b : {});
@@ -376,6 +440,50 @@ function stableSerializeUnknown(value) {
376
440
  .map(([key, nested]) => `${JSON.stringify(key)}:${stableSerializeUnknown(nested)}`);
377
441
  return `{${entries.join(",")}}`;
378
442
  }
443
+ function buildColumnHistogram(rows, columnId, options) {
444
+ var _a;
445
+ const countsByToken = new Map();
446
+ for (const row of rows) {
447
+ if (row.kind !== "leaf") {
448
+ continue;
449
+ }
450
+ const value = readRowField(row, columnId);
451
+ const token = serializeColumnValueToToken(value);
452
+ const current = countsByToken.get(token);
453
+ if (current) {
454
+ current.count += 1;
455
+ continue;
456
+ }
457
+ countsByToken.set(token, { value, count: 1 });
458
+ }
459
+ const entries = [];
460
+ for (const [token, entry] of countsByToken.entries()) {
461
+ entries.push({
462
+ token,
463
+ value: entry.value,
464
+ count: entry.count,
465
+ text: normalizeText(entry.value),
466
+ });
467
+ }
468
+ const orderBy = (_a = options === null || options === void 0 ? void 0 : options.orderBy) !== null && _a !== void 0 ? _a : "valueAsc";
469
+ if (orderBy === "countDesc") {
470
+ entries.sort((left, right) => { var _a, _b; return right.count - left.count || ((_a = left.text) === null || _a === void 0 ? void 0 : _a.localeCompare((_b = right.text) !== null && _b !== void 0 ? _b : "")) || 0; });
471
+ }
472
+ else {
473
+ entries.sort((left, right) => {
474
+ var _a, _b;
475
+ return ((_a = left.text) !== null && _a !== void 0 ? _a : "").localeCompare((_b = right.text) !== null && _b !== void 0 ? _b : "", undefined, {
476
+ numeric: true,
477
+ sensitivity: "base",
478
+ });
479
+ });
480
+ }
481
+ const limit = Number.isFinite(options === null || options === void 0 ? void 0 : options.limit) ? Math.max(0, Math.trunc(options === null || options === void 0 ? void 0 : options.limit)) : 0;
482
+ if (limit > 0 && entries.length > limit) {
483
+ return entries.slice(0, limit);
484
+ }
485
+ return entries;
486
+ }
379
487
  function normalizeFilterValuesForSignature(values) {
380
488
  const normalized = [];
381
489
  const seen = new Set();
@@ -389,21 +497,36 @@ function normalizeFilterValuesForSignature(values) {
389
497
  }
390
498
  return normalized.sort((left, right) => left.localeCompare(right));
391
499
  }
500
+ function normalizeColumnFilterEntryForSignature(entry) {
501
+ if (entry.kind === "valueSet") {
502
+ return stableSerializeUnknown({ kind: "valueSet", tokens: normalizeFilterValuesForSignature(entry.tokens) });
503
+ }
504
+ return stableSerializeUnknown({
505
+ kind: "predicate",
506
+ operator: entry.operator,
507
+ value: entry.value,
508
+ value2: entry.value2,
509
+ caseSensitive: entry.caseSensitive,
510
+ });
511
+ }
392
512
  function serializeFilterModelForSignature(filterModel) {
393
513
  var _a, _b;
394
514
  if (!filterModel) {
395
515
  return "__none__";
396
516
  }
397
517
  const normalizedColumnFilters = {};
398
- for (const [rawKey, values] of Object.entries((_a = filterModel.columnFilters) !== null && _a !== void 0 ? _a : {})) {
399
- if (!Array.isArray(values) || values.length === 0) {
518
+ for (const [rawKey, entry] of Object.entries((_a = filterModel.columnFilters) !== null && _a !== void 0 ? _a : {})) {
519
+ const hasContent = entry.kind === "valueSet"
520
+ ? entry.tokens.length > 0
521
+ : true;
522
+ if (!hasContent) {
400
523
  continue;
401
524
  }
402
525
  const key = rawKey.trim();
403
526
  if (!key) {
404
527
  continue;
405
528
  }
406
- normalizedColumnFilters[key] = normalizeFilterValuesForSignature(values);
529
+ normalizedColumnFilters[key] = normalizeColumnFilterEntryForSignature(entry);
407
530
  }
408
531
  const normalizedAdvancedFilters = {};
409
532
  for (const [rawKey, advancedFilter] of Object.entries((_b = filterModel.advancedFilters) !== null && _b !== void 0 ? _b : {})) {
@@ -426,6 +549,16 @@ function isSameSortModel(left, right) {
426
549
  function isSameFilterModel(left, right) {
427
550
  return serializeFilterModelForSignature(left) === serializeFilterModelForSignature(right);
428
551
  }
552
+ function toComparableNumber(value) {
553
+ if (typeof value === "number" && Number.isFinite(value)) {
554
+ return value;
555
+ }
556
+ if (value instanceof Date) {
557
+ return value.getTime();
558
+ }
559
+ const parsed = Number(value);
560
+ return Number.isFinite(parsed) ? parsed : null;
561
+ }
429
562
  function compareUnknown(left, right) {
430
563
  if (left == null && right == null) {
431
564
  return 0;
@@ -1889,7 +2022,14 @@ export function createClientRowModel(options = {}) {
1889
2022
  }
1890
2023
  return applyIncrementalGroupByAggregationDelta(changeSet.changedRowIds, previousRowsById);
1891
2024
  }
1892
- function resolveFilterPredicate() {
2025
+ function resolveFilterPredicate(options = {}) {
2026
+ const ignoredColumnKey = typeof options.ignoreColumnFilterKey === "string"
2027
+ ? options.ignoreColumnFilterKey.trim()
2028
+ : "";
2029
+ if (ignoredColumnKey) {
2030
+ derivedCacheDiagnostics.filterPredicateMisses += 1;
2031
+ return createFilterPredicate(filterModel, { ignoreColumnFilterKey: ignoredColumnKey });
2032
+ }
1893
2033
  const filterKey = String(runtimeState.filterRevision);
1894
2034
  return filterKey === cachedFilterPredicateKey && cachedFilterPredicate
1895
2035
  ? (() => {
@@ -2596,6 +2736,29 @@ export function createClientRowModel(options = {}) {
2596
2736
  getAggregationModel() {
2597
2737
  return cloneAggregationModel(aggregationModel);
2598
2738
  },
2739
+ getColumnHistogram(columnId, options) {
2740
+ var _a;
2741
+ ensureActive();
2742
+ const normalizedColumnId = columnId.trim();
2743
+ if (normalizedColumnId.length === 0) {
2744
+ return [];
2745
+ }
2746
+ const scope = (_a = options === null || options === void 0 ? void 0 : options.scope) !== null && _a !== void 0 ? _a : "filtered";
2747
+ if (scope === "sourceAll") {
2748
+ return buildColumnHistogram(sourceRows, normalizedColumnId, options);
2749
+ }
2750
+ if ((options === null || options === void 0 ? void 0 : options.ignoreSelfFilter) === true) {
2751
+ const filterPredicate = resolveFilterPredicate({ ignoreColumnFilterKey: normalizedColumnId });
2752
+ const rowsForHistogram = [];
2753
+ for (const row of sourceRows) {
2754
+ if (filterPredicate(row)) {
2755
+ rowsForHistogram.push(row);
2756
+ }
2757
+ }
2758
+ return buildColumnHistogram(rowsForHistogram, normalizedColumnId, options);
2759
+ }
2760
+ return buildColumnHistogram(runtimeState.filteredRowsProjection, normalizedColumnId, options);
2761
+ },
2599
2762
  setGroupExpansion(expansion) {
2600
2763
  ensureActive();
2601
2764
  if (!applyGroupExpansion(expansion)) {
@@ -0,0 +1,4 @@
1
+ import type { DataGridColumnPredicateFilter } from "./rowModel.js";
2
+ export declare function serializeColumnValueToToken(value: unknown): string;
3
+ export declare function evaluateColumnPredicateFilter(filter: DataGridColumnPredicateFilter, candidate: unknown): boolean;
4
+ //# sourceMappingURL=columnFilterUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columnFilterUtils.d.ts","sourceRoot":"","sources":["../../../src/models/columnFilterUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAA;AAsBlE,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAgBlE;AAaD,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,6BAA6B,EACrC,SAAS,EAAE,OAAO,GACjB,OAAO,CAsET"}
@@ -0,0 +1,114 @@
1
+ function normalizeText(value) {
2
+ if (value == null) {
3
+ return "";
4
+ }
5
+ return String(value);
6
+ }
7
+ function stableSerializeUnknown(value) {
8
+ if (value == null || typeof value !== "object") {
9
+ return JSON.stringify(value);
10
+ }
11
+ if (Array.isArray(value)) {
12
+ return `[${value.map(stableSerializeUnknown).join(",")}]`;
13
+ }
14
+ const entries = Object.entries(value)
15
+ .sort(([left], [right]) => left.localeCompare(right))
16
+ .map(([key, nested]) => `${JSON.stringify(key)}:${stableSerializeUnknown(nested)}`);
17
+ return `{${entries.join(",")}}`;
18
+ }
19
+ export function serializeColumnValueToToken(value) {
20
+ if (value == null) {
21
+ return "null";
22
+ }
23
+ if (value instanceof Date) {
24
+ return `date:${value.toISOString()}`;
25
+ }
26
+ const kind = typeof value;
27
+ if (kind === "number" || kind === "string" || kind === "boolean" || kind === "bigint" || kind === "undefined") {
28
+ return `${kind}:${String(value)}`;
29
+ }
30
+ try {
31
+ return `json:${stableSerializeUnknown(value)}`;
32
+ }
33
+ catch {
34
+ return `repr:${String(value)}`;
35
+ }
36
+ }
37
+ function toComparableNumber(value) {
38
+ if (typeof value === "number" && Number.isFinite(value)) {
39
+ return value;
40
+ }
41
+ if (value instanceof Date) {
42
+ return value.getTime();
43
+ }
44
+ const parsed = Number(value);
45
+ return Number.isFinite(parsed) ? parsed : null;
46
+ }
47
+ export function evaluateColumnPredicateFilter(filter, candidate) {
48
+ const operator = filter.operator;
49
+ const caseSensitive = filter.caseSensitive === true;
50
+ const normalizeForTextCompare = (value) => {
51
+ const text = normalizeText(value);
52
+ return caseSensitive ? text : text.toLowerCase();
53
+ };
54
+ if (operator === "isEmpty") {
55
+ return normalizeText(candidate).trim().length === 0;
56
+ }
57
+ if (operator === "notEmpty") {
58
+ return normalizeText(candidate).trim().length > 0;
59
+ }
60
+ if (operator === "isNull") {
61
+ return candidate == null;
62
+ }
63
+ if (operator === "notNull") {
64
+ return candidate != null;
65
+ }
66
+ if (operator === "contains") {
67
+ const haystack = normalizeForTextCompare(candidate);
68
+ const needle = normalizeForTextCompare(filter.value);
69
+ return needle.length > 0 && haystack.includes(needle);
70
+ }
71
+ if (operator === "startsWith") {
72
+ const haystack = normalizeForTextCompare(candidate);
73
+ const needle = normalizeForTextCompare(filter.value);
74
+ return needle.length > 0 && haystack.startsWith(needle);
75
+ }
76
+ if (operator === "endsWith") {
77
+ const haystack = normalizeForTextCompare(candidate);
78
+ const needle = normalizeForTextCompare(filter.value);
79
+ return needle.length > 0 && haystack.endsWith(needle);
80
+ }
81
+ if (operator === "equals") {
82
+ return normalizeForTextCompare(candidate) === normalizeForTextCompare(filter.value);
83
+ }
84
+ if (operator === "notEquals") {
85
+ return normalizeForTextCompare(candidate) !== normalizeForTextCompare(filter.value);
86
+ }
87
+ const left = toComparableNumber(candidate);
88
+ const right = toComparableNumber(filter.value);
89
+ if (left == null || right == null) {
90
+ return false;
91
+ }
92
+ if (operator === "gt") {
93
+ return left > right;
94
+ }
95
+ if (operator === "gte") {
96
+ return left >= right;
97
+ }
98
+ if (operator === "lt") {
99
+ return left < right;
100
+ }
101
+ if (operator === "lte") {
102
+ return left <= right;
103
+ }
104
+ if (operator === "between") {
105
+ const right2 = toComparableNumber(filter.value2);
106
+ if (right2 == null) {
107
+ return false;
108
+ }
109
+ const lower = Math.min(right, right2);
110
+ const upper = Math.max(right, right2);
111
+ return left >= lower && left <= upper;
112
+ }
113
+ return false;
114
+ }
@@ -1,6 +1,7 @@
1
- export type { DataGridAdvancedFilter, DataGridAdvancedFilterCondition, DataGridAdvancedFilterConditionType, DataGridAdvancedFilterExpression, DataGridAdvancedFilterGroup, DataGridAdvancedFilterNot, DataGridFilterClause, DataGridFilterSnapshot, DataGridSortAndFilterModelInput, DataGridPaginationInput, DataGridPaginationSnapshot, DataGridGroupExpansionSnapshot, DataGridGroupBySpec, DataGridAggOp, DataGridAggregationColumnSpec, DataGridAggregationModel, DataGridTreeDataMode, DataGridTreeDataFilterMode, DataGridTreeDataOrphanPolicy, DataGridTreeDataCyclePolicy, DataGridTreeDataBaseSpec, DataGridTreeDataPathSpec, DataGridTreeDataParentSpec, DataGridTreeDataSpec, DataGridTreeDataResolvedPathSpec, DataGridTreeDataResolvedParentSpec, DataGridTreeDataResolvedSpec, DataGridTreeDataDiagnostics, DataGridLegacyVisibleRow, DataGridRowGroupMeta, DataGridRowKind, DataGridRowRenderMeta, DataGridRowNode, DataGridRowNodeInput, DataGridRowNodeState, DataGridRowPinState, DataGridRowId, DataGridRowIdResolver, DataGridRowModel, DataGridRowModelKind, DataGridProjectionDiagnostics, DataGridProjectionStage, DataGridRowModelListener, DataGridRowModelRefreshReason, DataGridRowModelSnapshot, DataGridSortDirection, DataGridSortState, DataGridViewportRange, } from "./rowModel.js";
1
+ export type { DataGridAdvancedFilter, DataGridAdvancedFilterCondition, DataGridAdvancedFilterConditionType, DataGridAdvancedFilterExpression, DataGridAdvancedFilterGroup, DataGridAdvancedFilterNot, DataGridColumnFilter, DataGridColumnFilterSnapshotEntry, DataGridColumnPredicateFilter, DataGridColumnPredicateOperator, DataGridColumnValueSetFilter, DataGridColumnHistogram, DataGridColumnHistogramEntry, DataGridColumnHistogramOptions, DataGridFilterClause, DataGridFilterSnapshot, DataGridSortAndFilterModelInput, DataGridPaginationInput, DataGridPaginationSnapshot, DataGridGroupExpansionSnapshot, DataGridGroupBySpec, DataGridAggOp, DataGridAggregationColumnSpec, DataGridAggregationModel, DataGridTreeDataMode, DataGridTreeDataFilterMode, DataGridTreeDataOrphanPolicy, DataGridTreeDataCyclePolicy, DataGridTreeDataBaseSpec, DataGridTreeDataPathSpec, DataGridTreeDataParentSpec, DataGridTreeDataSpec, DataGridTreeDataResolvedPathSpec, DataGridTreeDataResolvedParentSpec, DataGridTreeDataResolvedSpec, DataGridTreeDataDiagnostics, DataGridLegacyVisibleRow, DataGridRowGroupMeta, DataGridRowKind, DataGridRowRenderMeta, DataGridRowNode, DataGridRowNodeInput, DataGridRowNodeState, DataGridRowPinState, DataGridRowId, DataGridRowIdResolver, DataGridRowModel, DataGridRowModelKind, DataGridProjectionDiagnostics, DataGridProjectionStage, DataGridRowModelListener, DataGridRowModelRefreshReason, DataGridRowModelSnapshot, DataGridSortDirection, DataGridSortState, DataGridViewportRange, } from "./rowModel.js";
2
2
  export { buildGroupExpansionSnapshot, cloneTreeDataSpec, isDataGridGroupRowNode, isDataGridLeafRowNode, getDataGridRowRenderMeta, isSameTreeDataSpec, isGroupExpanded, isSameGroupExpansionSnapshot, normalizeTreeDataSpec, setGroupExpansionKey, toggleGroupExpansionKey, normalizePaginationInput, buildPaginationSnapshot, normalizeRowNode, normalizeViewportRange, withResolvedRowIdentity, } from "./rowModel.js";
3
3
  export { buildDataGridAdvancedFilterExpressionFromLegacyFilters, cloneDataGridFilterSnapshot, evaluateDataGridAdvancedFilterExpression, normalizeDataGridAdvancedFilterExpression, type DataGridAdvancedFilterResolver, } from "./advancedFilter.js";
4
+ export { evaluateColumnPredicateFilter, serializeColumnValueToToken, } from "./columnFilterUtils.js";
4
5
  export type { ClientRowModel, DataGridClientRowPatch, DataGridClientRowPatchOptions, CreateClientRowModelOptions, DataGridClientRowModelDerivedCacheDiagnostics, DataGridClientRowReorderInput, } from "./clientRowModel.js";
5
6
  export { createClientRowModel } from "./clientRowModel.js";
6
7
  export type { DataGridDependencyTokenDomain, DataGridDependencyToken, DataGridFieldNode, DataGridComputedNode, DataGridMetaNode, DataGridDependencyNode, DataGridDependencyEdgeKind, DataGridDependencyEdge, CreateDataGridDependencyEdgeInput, } from "./dependencyModel.js";