@affino/datagrid-core 0.2.0 → 0.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 (137) hide show
  1. package/README.md +34 -0
  2. package/dist/plugins/index.js +2 -2
  3. package/dist/plugins/manager.js +1 -1
  4. package/dist/src/a11y/index.js +1 -1
  5. package/dist/src/columns/__tests__/pinning.spec.js +1 -1
  6. package/dist/src/columns/columnGroup.js +1 -1
  7. package/dist/src/config/tableConfig.js +1 -1
  8. package/dist/src/core/gridApi.d.ts +14 -1
  9. package/dist/src/core/gridApi.d.ts.map +1 -1
  10. package/dist/src/core/gridApi.js +71 -1
  11. package/dist/src/dom/getCellElementsByRange.js +1 -1
  12. package/dist/src/dom/gridUtils.js +1 -1
  13. package/dist/src/events/useTableEvents.js +1 -1
  14. package/dist/src/models/aggregationEngine.d.ts +27 -0
  15. package/dist/src/models/aggregationEngine.d.ts.map +1 -0
  16. package/dist/src/models/aggregationEngine.js +524 -0
  17. package/dist/src/models/clientRowLifecycle.d.ts +10 -0
  18. package/dist/src/models/clientRowLifecycle.d.ts.map +1 -0
  19. package/dist/src/models/clientRowLifecycle.js +38 -0
  20. package/dist/src/models/clientRowModel.d.ts +31 -1
  21. package/dist/src/models/clientRowModel.d.ts.map +1 -1
  22. package/dist/src/models/clientRowModel.js +1914 -377
  23. package/dist/src/models/clientRowProjectionEngine.d.ts +44 -0
  24. package/dist/src/models/clientRowProjectionEngine.d.ts.map +1 -0
  25. package/dist/src/models/clientRowProjectionEngine.js +101 -0
  26. package/dist/src/models/clientRowProjectionOrchestrator.d.ts +11 -0
  27. package/dist/src/models/clientRowProjectionOrchestrator.d.ts.map +1 -0
  28. package/dist/src/models/clientRowProjectionOrchestrator.js +19 -0
  29. package/dist/src/models/clientRowRuntimeStateStore.d.ts +27 -0
  30. package/dist/src/models/clientRowRuntimeStateStore.d.ts.map +1 -0
  31. package/dist/src/models/clientRowRuntimeStateStore.js +52 -0
  32. package/dist/src/models/dataSourceBackedRowModel.d.ts.map +1 -1
  33. package/dist/src/models/dataSourceBackedRowModel.js +48 -0
  34. package/dist/src/models/dependencyGraph.d.ts +20 -0
  35. package/dist/src/models/dependencyGraph.d.ts.map +1 -0
  36. package/dist/src/models/dependencyGraph.js +223 -0
  37. package/dist/src/models/dependencyModel.d.ts +36 -0
  38. package/dist/src/models/dependencyModel.d.ts.map +1 -0
  39. package/dist/src/models/dependencyModel.js +72 -0
  40. package/dist/src/models/groupProjectionController.d.ts +17 -0
  41. package/dist/src/models/groupProjectionController.d.ts.map +1 -0
  42. package/dist/src/models/groupProjectionController.js +132 -0
  43. package/dist/src/models/index.d.ts +8 -2
  44. package/dist/src/models/index.d.ts.map +1 -1
  45. package/dist/src/models/index.js +3 -0
  46. package/dist/src/models/projectionPolicy.d.ts +39 -0
  47. package/dist/src/models/projectionPolicy.d.ts.map +1 -0
  48. package/dist/src/models/projectionPolicy.js +78 -0
  49. package/dist/src/models/projectionStages.d.ts +12 -0
  50. package/dist/src/models/projectionStages.d.ts.map +1 -0
  51. package/dist/src/models/projectionStages.js +35 -0
  52. package/dist/src/models/rowModel.d.ts +38 -2
  53. package/dist/src/models/rowModel.d.ts.map +1 -1
  54. package/dist/src/models/rowModel.js +36 -2
  55. package/dist/src/models/rowPatchAnalyzer.d.ts +75 -0
  56. package/dist/src/models/rowPatchAnalyzer.d.ts.map +1 -0
  57. package/dist/src/models/rowPatchAnalyzer.js +260 -0
  58. package/dist/src/models/serverBackedRowModel.d.ts.map +1 -1
  59. package/dist/src/models/serverBackedRowModel.js +46 -0
  60. package/dist/src/protocol/index.js +3 -3
  61. package/dist/src/public.d.ts +2 -2
  62. package/dist/src/public.d.ts.map +1 -1
  63. package/dist/src/public.js +1 -1
  64. package/dist/src/selection/__tests__/coordinateSpace.contract.spec.js +1 -1
  65. package/dist/src/selection/__tests__/geometry.ranges.property.spec.js +2 -2
  66. package/dist/src/selection/__tests__/overlay.fill.geometry.contract.spec.js +2 -2
  67. package/dist/src/selection/adapters/plainSelectionAdapter.js +2 -2
  68. package/dist/src/selection/cutPreview.js +1 -1
  69. package/dist/src/selection/dragSession.js +1 -1
  70. package/dist/src/selection/fillAuto.js +1 -1
  71. package/dist/src/selection/fillCommit.js +2 -2
  72. package/dist/src/selection/fillHandle.js +2 -2
  73. package/dist/src/selection/fillPreview.js +1 -1
  74. package/dist/src/selection/fillSession.js +2 -2
  75. package/dist/src/selection/fullSelection.js +2 -2
  76. package/dist/src/selection/headlessSelectionController.js +3 -3
  77. package/dist/src/selection/matrix.js +1 -1
  78. package/dist/src/selection/operations.js +2 -2
  79. package/dist/src/selection/remap.js +2 -2
  80. package/dist/src/selection/selectionOverlay.js +4 -4
  81. package/dist/src/selection/selectionStore.js +1 -1
  82. package/dist/src/selection/update.js +1 -1
  83. package/dist/src/serverRowModel/index.js +1 -1
  84. package/dist/src/serverRowModel/serverRowModel.js +1 -1
  85. package/dist/src/sorting/tableSorting.js +1 -1
  86. package/dist/src/types/index.d.ts +2 -2
  87. package/dist/src/types/index.d.ts.map +1 -1
  88. package/dist/src/types/index.js +2 -2
  89. package/dist/src/utils/validators.js +1 -1
  90. package/dist/src/viewport/__tests__/horizontalClamp.contract.spec.js +1 -1
  91. package/dist/src/viewport/__tests__/horizontalUpdate.contract.spec.js +6 -6
  92. package/dist/src/viewport/__tests__/horizontalVirtualization.stress.contract.spec.js +1 -1
  93. package/dist/src/viewport/__tests__/scrollSync.raf.spec.js +3 -3
  94. package/dist/src/viewport/__tests__/scrollSync.transforms.spec.js +1 -1
  95. package/dist/src/viewport/__tests__/syncTargets.contract.spec.js +1 -1
  96. package/dist/src/viewport/dataGridViewportConstants.js +1 -1
  97. package/dist/src/viewport/dataGridViewportController.d.ts +3 -3
  98. package/dist/src/viewport/dataGridViewportController.d.ts.map +1 -1
  99. package/dist/src/viewport/dataGridViewportController.js +26 -26
  100. package/dist/src/viewport/dataGridViewportHorizontalClamp.js +2 -2
  101. package/dist/src/viewport/dataGridViewportHorizontalMeta.js +2 -2
  102. package/dist/src/viewport/dataGridViewportHorizontalUpdate.js +1 -1
  103. package/dist/src/viewport/dataGridViewportModelBridgeService.d.ts +7 -7
  104. package/dist/src/viewport/dataGridViewportModelBridgeService.d.ts.map +1 -1
  105. package/dist/src/viewport/dataGridViewportModelBridgeService.js +1 -1
  106. package/dist/src/viewport/dataGridViewportRenderSyncService.js +1 -1
  107. package/dist/src/viewport/dataGridViewportScrollIo.js +2 -2
  108. package/dist/src/viewport/dataGridViewportSignals.js +1 -1
  109. package/dist/src/viewport/dataGridViewportTypes.d.ts +2 -2
  110. package/dist/src/viewport/dataGridViewportTypes.d.ts.map +1 -1
  111. package/dist/src/viewport/dataGridViewportVirtualization.js +5 -5
  112. package/dist/src/viewport/horizontalViewportController.js +6 -6
  113. package/dist/src/viewport/tableViewportConstants.js +1 -1
  114. package/dist/src/viewport/tableViewportController.js +25 -25
  115. package/dist/src/viewport/tableViewportHorizontalClamp.js +2 -2
  116. package/dist/src/viewport/tableViewportHorizontalMeta.js +2 -2
  117. package/dist/src/viewport/tableViewportHorizontalUpdate.js +1 -1
  118. package/dist/src/viewport/tableViewportRenderSyncService.js +1 -1
  119. package/dist/src/viewport/tableViewportScrollIo.js +2 -2
  120. package/dist/src/viewport/tableViewportSignals.js +1 -1
  121. package/dist/src/viewport/tableViewportVirtualization.js +5 -5
  122. package/dist/src/viewport/verticalViewportController.js +3 -3
  123. package/dist/src/virtualization/autoColumnResize.js +2 -2
  124. package/dist/src/virtualization/axisMath.js +1 -1
  125. package/dist/src/virtualization/axisVirtualizer.js +1 -1
  126. package/dist/src/virtualization/horizontalLayout.js +1 -1
  127. package/dist/src/virtualization/horizontalVirtualWindowMath.js +2 -2
  128. package/dist/src/virtualization/horizontalVirtualizer.js +4 -4
  129. package/dist/src/virtualization/useAutoColumnResize.js +1 -1
  130. package/dist/src/virtualization/verticalVirtualizer.js +1 -1
  131. package/dist/theme/defaultStyleConfig.js +1 -1
  132. package/dist/theme/index.js +8 -8
  133. package/dist/theme/industrialNeutralTheme.js +2 -2
  134. package/dist/theme/palette.js +1 -1
  135. package/dist/theme/utils.js +1 -1
  136. package/dist/tsconfig.public.tsbuildinfo +1 -1
  137. package/package.json +6 -5
package/README.md CHANGED
@@ -49,6 +49,40 @@ Unsafe, no semver guarantees. Use only for local tooling and migrations.
49
49
 
50
50
  Core naming is fully canonicalized to `DataGrid*` across stable, advanced, and internal entrypoints.
51
51
 
52
+ ## Row Updates: `setRows` vs `patchRows`
53
+
54
+ `createClientRowModel()` now supports two update modes:
55
+
56
+ - `setRows(rows)`:
57
+ - full source replacement.
58
+ - keeps legacy behavior: increments row revision and recomputes filter/sort/group projection.
59
+ - `patchRows(updates, options?)`:
60
+ - partial updates by `rowId` (cell-level/streaming updates).
61
+ - defaults are backward-compatible (`recomputeSort/filter/group = true`).
62
+ - can disable projection phases for UX stability:
63
+ - `recomputeSort: false`
64
+ - `recomputeFilter: false`
65
+ - `recomputeGroup: false`
66
+
67
+ ```ts
68
+ rowModel.patchRows(
69
+ [{ rowId: "r-42", data: { tested_at: "2026-02-21T10:15:00Z" } }],
70
+ { recomputeSort: false, recomputeFilter: false, recomputeGroup: false },
71
+ )
72
+ ```
73
+
74
+ When all recompute flags are disabled, cell values update and snapshot revision changes, but visible row order/filter/group projection may be temporarily stale by design.
75
+
76
+ Client projection is internally modeled as a stage graph:
77
+
78
+ - `filter -> sort -> group -> paginate -> visible`
79
+
80
+ Stage dirty state is propagated through dependencies, and snapshot includes `projection` diagnostics (`version`, `staleStages`) for devtools/integration debugging.
81
+ `patchRows` uses field-aware invalidation internally: only stages whose dependency fields intersect patched fields are invalidated.
82
+ Projection recompute is dirty-stage driven (not full-pass): blocked stages (`recompute* = false`) run in non-recompute mode for data continuity and remain marked stale until an explicit recompute is allowed.
83
+ Projection diagnostics expose cycle vs actual recompute semantics: `version`/`cycleVersion` increase every projection cycle, while `recomputeVersion` increases only when at least one stage actually recomputed.
84
+ For `treeData`, set `dependencyFields` to avoid unnecessary regroup/tree projection on unrelated cell patches.
85
+
52
86
  ## Deterministic Integration Snapshot
53
87
 
54
88
  Viewport integration should read deterministic state from controller snapshot API instead of peeking into internal signals or DOM transforms:
@@ -1,3 +1,3 @@
1
1
  // src/datagrid/plugins/index.ts
2
- export * from "./types";
3
- export * from "./manager";
2
+ export * from "./types.js";
3
+ export * from "./manager.js";
@@ -1,6 +1,6 @@
1
1
  // src/datagrid/plugins/manager.ts
2
2
  // Runtime manager responsible for installing, updating, and disposing DataGrid plugins.
3
- import { DataGridPluginEventBus } from "./eventBus";
3
+ import { DataGridPluginEventBus } from "./eventBus.js";
4
4
  function isDataGridPlugin(value) {
5
5
  if (!value || typeof value !== "object") {
6
6
  return false;
@@ -1 +1 @@
1
- export { createDataGridA11yStateMachine } from "./headlessA11yStateMachine";
1
+ export { createDataGridA11yStateMachine } from "./headlessA11yStateMachine.js";
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { resolveCanonicalPinMode } from "../pinning";
2
+ import { resolveCanonicalPinMode } from "../pinning.js";
3
3
  describe("resolveCanonicalPinMode", () => {
4
4
  it("resolves canonical pin states and defaults to none", () => {
5
5
  expect(resolveCanonicalPinMode({ pin: "left" })).toBe("left");
@@ -1,4 +1,4 @@
1
- import { createWritableSignal, } from "../runtime/signals";
1
+ import { createWritableSignal, } from "../runtime/signals.js";
2
2
  function isGroupDef(candidate) {
3
3
  return typeof (candidate === null || candidate === void 0 ? void 0 : candidate.groupId) === "string" && Array.isArray(candidate === null || candidate === void 0 ? void 0 : candidate.children);
4
4
  }
@@ -1,4 +1,4 @@
1
- import { BASE_ROW_HEIGHT } from "../utils/constants";
1
+ import { BASE_ROW_HEIGHT } from "../utils/constants.js";
2
2
  export const DEFAULT_LAZY_PAGE_SIZE = 200;
3
3
  export const DEFAULT_SELECTION_METRIC_DEFINITIONS = [
4
4
  { id: "count", label: "Count", precision: 0 },
@@ -1,4 +1,4 @@
1
- import type { DataGridColumnDef, DataGridColumnModel, DataGridColumnModelSnapshot, DataGridColumnPin, DataGridColumnSnapshot, DataGridFilterSnapshot, DataGridGroupBySpec, DataGridGroupExpansionSnapshot, DataGridPaginationInput, DataGridPaginationSnapshot, DataGridRowId, DataGridRowModel, DataGridRowModelSnapshot, DataGridRowNode, DataGridSortState, DataGridViewportRange } from "../models";
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";
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";
@@ -28,6 +28,10 @@ export interface DataGridCellRefreshOptions {
28
28
  immediate?: boolean;
29
29
  reason?: string;
30
30
  }
31
+ export interface DataGridApplyEditsOptions {
32
+ emit?: boolean;
33
+ reapply?: boolean;
34
+ }
31
35
  export interface DataGridCellRefreshRange {
32
36
  rowKey: DataGridRowId;
33
37
  columnKeys: readonly string[];
@@ -62,7 +66,10 @@ export interface DataGridApi<TRow = unknown> {
62
66
  setCurrentPage(page: number): void;
63
67
  setSortModel(sortModel: readonly DataGridSortState[]): void;
64
68
  setFilterModel(filterModel: DataGridFilterSnapshot | null): void;
69
+ setSortAndFilterModel(input: DataGridSortAndFilterModelInput): void;
65
70
  setGroupBy(groupBy: DataGridGroupBySpec | null): void;
71
+ setAggregationModel(aggregationModel: DataGridAggregationModel<TRow> | null): void;
72
+ getAggregationModel(): DataGridAggregationModel<TRow> | null;
66
73
  setGroupExpansion(expansion: DataGridGroupExpansionSnapshot | null): void;
67
74
  toggleGroup(groupKey: string): void;
68
75
  expandGroup(groupKey: string): void;
@@ -70,6 +77,12 @@ export interface DataGridApi<TRow = unknown> {
70
77
  expandAllGroups(): void;
71
78
  collapseAllGroups(): void;
72
79
  refresh(options?: DataGridRefreshOptions): Promise<void> | void;
80
+ reapplyView(): Promise<void> | void;
81
+ hasPatchSupport(): boolean;
82
+ patchRows(updates: readonly DataGridClientRowPatch<TRow>[], options?: DataGridClientRowPatchOptions): void;
83
+ applyEdits(updates: readonly DataGridClientRowPatch<TRow>[], options?: DataGridApplyEditsOptions): void;
84
+ setAutoReapply(value: boolean): void;
85
+ getAutoReapply(): boolean;
73
86
  refreshCellsByRowKeys(rowKeys: readonly DataGridRowId[], columnKeys: readonly string[], options?: DataGridCellRefreshOptions): void;
74
87
  refreshCellsByRanges(ranges: readonly DataGridCellRefreshRange[], options?: DataGridCellRefreshOptions): void;
75
88
  onCellsRefresh(listener: DataGridCellsRefreshListener): () => 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":"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+XD,wBAAgB,iBAAiB,CAAC,IAAI,GAAG,OAAO,EAC9C,OAAO,EAAE,wBAAwB,CAAC,IAAI,CAAC,GACtC,WAAW,CAAC,IAAI,CAAC,CA+VnB"}
@@ -1,4 +1,4 @@
1
- import { createDataGridSelectionSummary, } from "../selection/selectionSummary";
1
+ import { createDataGridSelectionSummary, } from "../selection/selectionSummary.js";
2
2
  function normalizeRowRefreshKey(rowKey) {
3
3
  if (typeof rowKey === "number") {
4
4
  return `n:${rowKey}`;
@@ -267,12 +267,39 @@ function assertTransactionCapability(capability) {
267
267
  }
268
268
  return capability;
269
269
  }
270
+ function resolvePatchCapability(rowModel) {
271
+ const candidate = rowModel;
272
+ if (typeof candidate.patchRows !== "function") {
273
+ return null;
274
+ }
275
+ return {
276
+ patchRows: candidate.patchRows.bind(rowModel),
277
+ };
278
+ }
279
+ function resolveSortFilterBatchCapability(rowModel) {
280
+ const candidate = rowModel;
281
+ if (typeof candidate.setSortAndFilterModel !== "function") {
282
+ return null;
283
+ }
284
+ return {
285
+ setSortAndFilterModel: candidate.setSortAndFilterModel.bind(rowModel),
286
+ };
287
+ }
288
+ function assertPatchCapability(capability) {
289
+ if (!capability) {
290
+ throw new Error('[DataGridApi] rowModel does not implement patchRows capability.');
291
+ }
292
+ return capability;
293
+ }
270
294
  export function createDataGridApi(options) {
271
295
  const deps = resolveApiDependencies(options);
272
296
  const { lifecycle, init, start, stop, dispose, rowModel, columnModel, getViewportService, getSelectionService, getTransactionService, } = deps;
273
297
  const resolveCurrentSelectionCapability = () => resolveSelectionCapability(getSelectionService());
274
298
  const resolveCurrentTransactionCapability = () => resolveTransactionCapability(getTransactionService());
299
+ const resolveCurrentPatchCapability = () => resolvePatchCapability(rowModel);
300
+ const resolveCurrentSortFilterBatchCapability = () => resolveSortFilterBatchCapability(rowModel);
275
301
  const deferredScheduler = createDeferredScheduler();
302
+ let autoReapply = false;
276
303
  const resolveVisibleCellRefreshEntries = (pendingRows) => {
277
304
  if (pendingRows.length === 0) {
278
305
  return [];
@@ -377,9 +404,24 @@ export function createDataGridApi(options) {
377
404
  setFilterModel(filterModel) {
378
405
  rowModel.setFilterModel(filterModel);
379
406
  },
407
+ setSortAndFilterModel(input) {
408
+ const capability = resolveCurrentSortFilterBatchCapability();
409
+ if (capability) {
410
+ capability.setSortAndFilterModel(input);
411
+ return;
412
+ }
413
+ rowModel.setFilterModel(input.filterModel);
414
+ rowModel.setSortModel(input.sortModel);
415
+ },
380
416
  setGroupBy(groupBy) {
381
417
  rowModel.setGroupBy(groupBy);
382
418
  },
419
+ setAggregationModel(aggregationModel) {
420
+ rowModel.setAggregationModel(aggregationModel);
421
+ },
422
+ getAggregationModel() {
423
+ return rowModel.getAggregationModel();
424
+ },
383
425
  setGroupExpansion(expansion) {
384
426
  rowModel.setGroupExpansion(expansion);
385
427
  },
@@ -401,6 +443,34 @@ export function createDataGridApi(options) {
401
443
  refresh(options) {
402
444
  return rowModel.refresh((options === null || options === void 0 ? void 0 : options.reset) ? "reset" : undefined);
403
445
  },
446
+ reapplyView() {
447
+ return rowModel.refresh("reapply");
448
+ },
449
+ hasPatchSupport() {
450
+ return resolveCurrentPatchCapability() !== null;
451
+ },
452
+ patchRows(updates, options) {
453
+ const capability = assertPatchCapability(resolveCurrentPatchCapability());
454
+ capability.patchRows(updates, options);
455
+ },
456
+ applyEdits(updates, options) {
457
+ const capability = assertPatchCapability(resolveCurrentPatchCapability());
458
+ const shouldReapply = typeof (options === null || options === void 0 ? void 0 : options.reapply) === "boolean"
459
+ ? options.reapply
460
+ : autoReapply;
461
+ capability.patchRows(updates, {
462
+ recomputeSort: shouldReapply,
463
+ recomputeFilter: shouldReapply,
464
+ recomputeGroup: shouldReapply,
465
+ emit: options === null || options === void 0 ? void 0 : options.emit,
466
+ });
467
+ },
468
+ setAutoReapply(value) {
469
+ autoReapply = Boolean(value);
470
+ },
471
+ getAutoReapply() {
472
+ return autoReapply;
473
+ },
404
474
  refreshCellsByRowKeys(rowKeys, columnKeys, options) {
405
475
  cellRefreshRegistry.queueByRowKeys(rowKeys, columnKeys, options);
406
476
  },
@@ -1,4 +1,4 @@
1
- import { getCellElement } from "./gridUtils";
1
+ import { getCellElement } from "./gridUtils.js";
2
2
  function normalizeContainers(source) {
3
3
  if (!source) {
4
4
  return [];
@@ -1,4 +1,4 @@
1
- import { accumulateColumnWidths as accumulateColumnWidthsCore, calculateVisibleColumns as calculateVisibleColumnsCore, COLUMN_VIRTUALIZATION_BUFFER, DEFAULT_COLUMN_WIDTH, resolveColumnWidth as resolveColumnWidthCore, } from "../virtualization/columnSizing";
1
+ import { accumulateColumnWidths as accumulateColumnWidthsCore, calculateVisibleColumns as calculateVisibleColumnsCore, COLUMN_VIRTUALIZATION_BUFFER, DEFAULT_COLUMN_WIDTH, resolveColumnWidth as resolveColumnWidthCore, } from "../virtualization/columnSizing.js";
2
2
  export { COLUMN_VIRTUALIZATION_BUFFER, DEFAULT_COLUMN_WIDTH };
3
3
  export const supportsCssZoom = typeof CSS !== "undefined" &&
4
4
  typeof CSS.supports === "function" &&
@@ -1,4 +1,4 @@
1
- import { ZOOM_STEP } from "../utils/constants";
1
+ import { ZOOM_STEP } from "../utils/constants.js";
2
2
  export function useTableEvents({ isEditingCell, focusContainer, selection, clipboard, history, zoom, requestEdit, }) {
3
3
  async function handleKeydown(event) {
4
4
  const zoomModifier = event.ctrlKey || event.metaKey;
@@ -0,0 +1,27 @@
1
+ import type { DataGridAggOp, DataGridAggregationModel, DataGridRowNode } from "./rowModel.js";
2
+ export interface DataGridCompiledAggregationColumn<T = unknown> {
3
+ key: string;
4
+ op: DataGridAggOp;
5
+ readValue: (row: DataGridRowNode<T>) => unknown;
6
+ createState: () => unknown;
7
+ add: (state: unknown, value: unknown, row: DataGridRowNode<T>) => void;
8
+ merge?: (state: unknown, childState: unknown) => void;
9
+ remove?: (state: unknown, value: unknown, row: DataGridRowNode<T>) => void;
10
+ finalize: (state: unknown) => unknown;
11
+ }
12
+ export type DataGridIncrementalAggregationLeafContribution = Readonly<Record<string, unknown>>;
13
+ export type DataGridIncrementalAggregationGroupState = Record<string, unknown>;
14
+ export interface DataGridAggregationEngine<T = unknown> {
15
+ setModel: (model: DataGridAggregationModel<T> | null) => void;
16
+ getModel: () => DataGridAggregationModel<T> | null;
17
+ getCompiledColumns: () => readonly DataGridCompiledAggregationColumn<T>[];
18
+ isIncrementalAggregationSupported: () => boolean;
19
+ createEmptyGroupState: () => DataGridIncrementalAggregationGroupState | null;
20
+ createLeafContribution: (row: DataGridRowNode<T>) => DataGridIncrementalAggregationLeafContribution | null;
21
+ applyContributionDelta: (groupState: DataGridIncrementalAggregationGroupState, previous: DataGridIncrementalAggregationLeafContribution | null, next: DataGridIncrementalAggregationLeafContribution | null) => void;
22
+ finalizeGroupState: (groupState: DataGridIncrementalAggregationGroupState) => Record<string, unknown>;
23
+ computeAggregatesForLeaves: (rows: readonly DataGridRowNode<T>[]) => Record<string, unknown>;
24
+ computeAggregatesForGroupedRows: (projectedRows: readonly DataGridRowNode<T>[]) => ReadonlyMap<string, Record<string, unknown>>;
25
+ }
26
+ export declare function createDataGridAggregationEngine<T>(initialModel?: DataGridAggregationModel<T> | null): DataGridAggregationEngine<T>;
27
+ //# sourceMappingURL=aggregationEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregationEngine.d.ts","sourceRoot":"","sources":["../../../src/models/aggregationEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,wBAAwB,EACxB,eAAe,EAChB,MAAM,eAAe,CAAA;AAsGtB,MAAM,WAAW,iCAAiC,CAAC,CAAC,GAAG,OAAO;IAC5D,GAAG,EAAE,MAAM,CAAA;IACX,EAAE,EAAE,aAAa,CAAA;IACjB,SAAS,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,OAAO,CAAA;IAC/C,WAAW,EAAE,MAAM,OAAO,CAAA;IAC1B,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IACtE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,KAAK,IAAI,CAAA;IACrD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IAC1E,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;CACtC;AAED,MAAM,MAAM,8CAA8C,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAC9F,MAAM,MAAM,wCAAwC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE9E,MAAM,WAAW,yBAAyB,CAAC,CAAC,GAAG,OAAO;IACpD,QAAQ,EAAE,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAA;IAC7D,QAAQ,EAAE,MAAM,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAClD,kBAAkB,EAAE,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE,CAAA;IACzE,iCAAiC,EAAE,MAAM,OAAO,CAAA;IAChD,qBAAqB,EAAE,MAAM,wCAAwC,GAAG,IAAI,CAAA;IAC5E,sBAAsB,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,8CAA8C,GAAG,IAAI,CAAA;IAC1G,sBAAsB,EAAE,CACtB,UAAU,EAAE,wCAAwC,EACpD,QAAQ,EAAE,8CAA8C,GAAG,IAAI,EAC/D,IAAI,EAAE,8CAA8C,GAAG,IAAI,KACxD,IAAI,CAAA;IACT,kBAAkB,EAAE,CAAC,UAAU,EAAE,wCAAwC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrG,0BAA0B,EAAE,CAAC,IAAI,EAAE,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5F,+BAA+B,EAAE,CAC/B,aAAa,EAAE,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,KACzC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAClD;AAuTD,wBAAgB,+BAA+B,CAAC,CAAC,EAC/C,YAAY,GAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAW,GACtD,yBAAyB,CAAC,CAAC,CAAC,CAsL9B"}