@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.
- package/dist/src/core/gridApi.d.ts +2 -1
- package/dist/src/core/gridApi.d.ts.map +1 -1
- package/dist/src/core/gridApi.js +17 -0
- package/dist/src/core/gridCore.d.ts +2 -2
- package/dist/src/core/gridCore.d.ts.map +1 -1
- package/dist/src/models/advancedFilter.d.ts.map +1 -1
- package/dist/src/models/advancedFilter.js +16 -1
- package/dist/src/models/clientRowModel.d.ts +2 -1
- package/dist/src/models/clientRowModel.d.ts.map +1 -1
- package/dist/src/models/clientRowModel.js +199 -36
- package/dist/src/models/columnFilterUtils.d.ts +4 -0
- package/dist/src/models/columnFilterUtils.d.ts.map +1 -0
- package/dist/src/models/columnFilterUtils.js +114 -0
- package/dist/src/models/index.d.ts +2 -1
- package/dist/src/models/index.d.ts.map +1 -1
- package/dist/src/models/index.js +1 -0
- package/dist/src/models/rowModel.d.ts +29 -1
- package/dist/src/models/rowModel.d.ts.map +1 -1
- package/dist/src/models/rowPatchAnalyzer.d.ts.map +1 -1
- package/dist/src/models/rowPatchAnalyzer.js +6 -1
- package/dist/src/public.d.ts +1 -1
- package/dist/src/public.d.ts.map +1 -1
- package/dist/src/public.js +1 -1
- package/dist/src/types/base.d.ts +15 -1
- package/dist/src/types/base.d.ts.map +1 -1
- package/dist/src/types/filters.d.ts +13 -1
- package/dist/src/types/filters.d.ts.map +1 -1
- package/dist/src/types/stable.d.ts +1 -1
- package/dist/src/types/stable.d.ts.map +1 -1
- package/dist/src/viewport/dataGridViewportModelBridgeService.d.ts.map +1 -1
- package/dist/src/viewport/dataGridViewportModelBridgeService.js +32 -11
- package/dist/tsconfig.public.tsbuildinfo +1 -1
- package/package.json +20 -19
- 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":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAC3B,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,+BAA+B,EAC/B,mBAAmB,EACnB,8BAA8B,EAC9B,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,aAAa,EACb,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,WAAW,CAAA;AAClB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAEL,KAAK,gCAAgC,EACrC,KAAK,oCAAoC,EACzC,KAAK,6BAA6B,EAClC,KAAK,gCAAgC,EACtC,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EACV,wBAAwB,EACxB,2BAA2B,EAC5B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EACV,YAAY,EAGZ,4BAA4B,EAC5B,8BAA8B,EAC9B,2BAA2B,EAC5B,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,YAAY,CAAA;CACnB;AAED,MAAM,WAAW,gCAAgC,CAAC,IAAI,GAAG,OAAO;IAC9D,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,CAAA;IACpC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAChC,WAAW,EAAE,mBAAmB,CAAA;IAChC,eAAe,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAA;IACpD,kBAAkB,CAAC,EAAE,8BAA8B,GAAG,IAAI,CAAA;IAC1D,gBAAgB,CAAC,EAAE,4BAA4B,GAAG,IAAI,CAAA;CACvD;AAED,gEAAgE;AAChE,MAAM,MAAM,6BAA6B,CAAC,IAAI,GAAG,OAAO,IAAI,gCAAgC,CAAC,IAAI,CAAC,CAAA;AAElG,MAAM,MAAM,wBAAwB,CAAC,IAAI,GAAG,OAAO,IAC/C,gCAAgC,GAChC,gCAAgC,CAAC,IAAI,CAAC,CAAA;AAE1C,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,aAAa,CAAA;IACrB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,iBAAiB,CAAA;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,SAAS,wBAAwB,EAAE,CAAA;CAC3C;AAED,MAAM,MAAM,4BAA4B,GAAG,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAA;AAErF,MAAM,WAAW,WAAW,CAAC,IAAI,GAAG,OAAO;IACzC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,CAAA;IAC7C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,mBAAmB,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAA;IACrD,WAAW,IAAI,MAAM,CAAA;IACrB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;IACxD,cAAc,CAAC,KAAK,EAAE,qBAAqB,GAAG,SAAS,eAAe,CAAC,IAAI,CAAC,EAAE,CAAA;IAC9E,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpD,qBAAqB,IAAI,0BAA0B,CAAA;IACnD,aAAa,CAAC,UAAU,EAAE,uBAAuB,GAAG,IAAI,GAAG,IAAI,CAAA;IAC/D,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;IAC1C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,YAAY,CAAC,SAAS,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI,CAAA;IAC3D,cAAc,CAAC,WAAW,EAAE,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAAA;IAChE,qBAAqB,CAAC,KAAK,EAAE,+BAA+B,GAAG,IAAI,CAAA;IACnE,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,GAAG,IAAI,CAAA;IACrD,mBAAmB,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;IAClF,mBAAmB,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC5D,iBAAiB,CAAC,SAAS,EAAE,8BAA8B,GAAG,IAAI,GAAG,IAAI,CAAA;IACzE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,eAAe,IAAI,IAAI,CAAA;IACvB,iBAAiB,IAAI,IAAI,CAAA;IACzB,OAAO,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC/D,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACnC,eAAe,IAAI,OAAO,CAAA;IAC1B,SAAS,CACP,OAAO,EAAE,SAAS,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAChD,OAAO,CAAC,EAAE,6BAA6B,GACtC,IAAI,CAAA;IACP,UAAU,CACR,OAAO,EAAE,SAAS,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAChD,OAAO,CAAC,EAAE,yBAAyB,GAClC,IAAI,CAAA;IACP,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IACpC,cAAc,IAAI,OAAO,CAAA;IACzB,qBAAqB,CACnB,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,OAAO,CAAC,EAAE,0BAA0B,GACnC,IAAI,CAAA;IACP,oBAAoB,CAClB,MAAM,EAAE,SAAS,wBAAwB,EAAE,EAC3C,OAAO,CAAC,EAAE,0BAA0B,GACnC,IAAI,CAAA;IACP,cAAc,CAAC,QAAQ,EAAE,4BAA4B,GAAG,MAAM,IAAI,CAAA;IAClE,sBAAsB,IAAI,2BAA2B,CAAA;IACrD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAAA;IAC1D,UAAU,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAA;IAC9C,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAA;IAC7C,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACxD,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;IACvD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAAA;IACvD,qBAAqB,IAAI,OAAO,CAAA;IAChC,sBAAsB,IAAI,2BAA2B,GAAG,IAAI,CAAA;IAC5D,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7C,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;IACpE,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;IAC7D,gBAAgB,CAAC,WAAW,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACxE,kBAAkB,IAAI,OAAO,CAAA;IAC7B,kBAAkB,IAAI,OAAO,CAAA;IAC7B,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACzC,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACzC,mBAAmB,IAAI,OAAO,CAAA;IAC9B,oBAAoB,IAAI,yBAAyB,GAAG,IAAI,CAAA;IACxD,oBAAoB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC/D,cAAc,IAAI,IAAI,CAAA;IACtB,kBAAkB,CAAC,OAAO,CAAC,EAAE,kCAAkC,CAAC,IAAI,CAAC,GAAG,gCAAgC,GAAG,IAAI,CAAA;CAChH;AAED,MAAM,WAAW,kCAAkC,CAAC,IAAI,GAAG,OAAO;IAChE;;;OAGG;IACH,KAAK,CAAC,EAAE,6BAA6B,CAAA;IACrC,OAAO,CAAC,EAAE,SAAS,oCAAoC,CAAC,IAAI,CAAC,EAAE,CAAA;IAC/D,mBAAmB,CAAC,EAAE,SAAS,gCAAgC,EAAE,CAAA;IACjE,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CACzE;AA+
|
|
1
|
+
{"version":3,"file":"gridApi.d.ts","sourceRoot":"","sources":["../../../src/core/gridApi.ts"],"names":[],"mappings":"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"}
|
package/dist/src/core/gridApi.js
CHANGED
|
@@ -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 =
|
|
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":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AAChH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,KAAK,EACV,wBAAwB,EACxB,2BAA2B,EAC5B,MAAM,sBAAsB,CAAA;AAE7B,MAAM,MAAM,uBAAuB,GAC/B,OAAO,GACP,UAAU,GACV,aAAa,GACb,MAAM,GACN,aAAa,GACb,WAAW,GACX,UAAU,CAAA;AAEd,MAAM,MAAM,0BAA0B,GAClC,MAAM,GACN,aAAa,GACb,SAAS,GACT,SAAS,GACT,UAAU,CAAA;AAEd,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAA;IACtC,IAAI,CAAC,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChE,KAAK,CAAC,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE,IAAI,CAAC,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChE,OAAO,CAAC,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpE;AAED,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACnE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,2BAA2B,CAAC,IAAI,GAAG,
|
|
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,
|
|
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,
|
|
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":"AAAA,OAAO,EAgBL,KAAK,uBAAuB,EAG5B,KAAK,sBAAsB,EAC3B,KAAK,+BAA+B,EACpC,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAE1B,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EAIrB,KAAK,iBAAiB,EAItB,KAAK,oBAAoB,EAE1B,MAAM,eAAe,CAAA;
|
|
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,
|
|
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
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
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
|
-
|
|
282
|
-
|
|
290
|
+
normalized.push({ key, kind: "valueSet", valueTokenSet: new Set(valueTokens) });
|
|
291
|
+
continue;
|
|
283
292
|
}
|
|
284
|
-
if (
|
|
293
|
+
if (rawEntry.kind !== "predicate") {
|
|
285
294
|
continue;
|
|
286
295
|
}
|
|
287
|
-
normalized.push({
|
|
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
|
|
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
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
const
|
|
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
|
-
|
|
312
|
-
|
|
313
|
-
|
|
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(
|
|
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,
|
|
399
|
-
|
|
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] =
|
|
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";
|