@affino/datagrid-vue 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.
- package/README.md +31 -0
- package/dist/advanced.d.ts +5 -0
- package/dist/advanced.d.ts.map +1 -1
- package/dist/advanced.js +4 -0
- package/dist/composables/useAffinoDataGrid.d.ts.map +1 -1
- package/dist/composables/useAffinoDataGrid.js +45 -0
- package/dist/composables/useDataGridRuntime.d.ts +17 -1
- package/dist/composables/useDataGridRuntime.d.ts.map +1 -1
- package/dist/composables/useDataGridRuntime.js +25 -0
- package/dist/public.d.ts +4 -0
- package/dist/public.d.ts.map +1 -1
- package/dist/public.js +3 -0
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Vue adapter surface for `@affino/datagrid-core`.
|
|
4
4
|
|
|
5
|
+
For normal Vue usage, install and import only `@affino/datagrid-vue`.
|
|
6
|
+
`@affino/datagrid-core` and `@affino/datagrid-orchestration` are internal dependencies of this adapter.
|
|
7
|
+
|
|
5
8
|
## Stable API (`@affino/datagrid-vue`)
|
|
6
9
|
|
|
7
10
|
- `createDataGridVueRuntime`
|
|
@@ -135,6 +138,34 @@ const { api, columnSnapshot } = useDataGridRuntime({
|
|
|
135
138
|
})
|
|
136
139
|
```
|
|
137
140
|
|
|
141
|
+
`useDataGridRuntime` also exposes `patchRows(updates, options?)` for partial row updates without mandatory sort/filter/group recompute on every cell change:
|
|
142
|
+
|
|
143
|
+
```ts
|
|
144
|
+
const runtime = useDataGridRuntime({ rows, columns })
|
|
145
|
+
runtime.patchRows(
|
|
146
|
+
[{ rowId: "r-42", data: { tested_at: "2026-02-21T10:15:00Z" } }],
|
|
147
|
+
{ recomputeSort: false, recomputeFilter: false, recomputeGroup: false },
|
|
148
|
+
)
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Use `setRows` for full data replacement; use `patchRows` for interactive/streaming cell updates when you want to avoid immediate projection jumps.
|
|
152
|
+
In no-recompute mode (`recomputeSort/filter/group = false`), row order/filter/group visibility can remain temporarily stale by design until a recompute pass is requested.
|
|
153
|
+
|
|
154
|
+
For app-level editing flows, prefer the higher-level `applyEdits()` + `reapplyView()` API:
|
|
155
|
+
|
|
156
|
+
```ts
|
|
157
|
+
const runtime = useDataGridRuntime({ rows, columns })
|
|
158
|
+
|
|
159
|
+
// default Excel-style behavior: update values, keep current view stable
|
|
160
|
+
runtime.applyEdits([{ rowId: "r-42", data: { tested_at: "2026-02-21T10:15:00Z" } }])
|
|
161
|
+
|
|
162
|
+
// explicit reapply when the user clicks "Reapply" or leaves edit mode
|
|
163
|
+
runtime.reapplyView()
|
|
164
|
+
|
|
165
|
+
// optional live-reapply mode
|
|
166
|
+
runtime.autoReapply.value = true
|
|
167
|
+
```
|
|
168
|
+
|
|
138
169
|
## Managed wheel scroll (advanced)
|
|
139
170
|
|
|
140
171
|
Use `useDataGridManagedWheelScroll` when you want deterministic wheel ownership (axis lock, preventDefault policy, and consistent header/body horizontal sync).
|
package/dist/advanced.d.ts
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
import { type Ref } from "vue";
|
|
7
7
|
import type { DataGridSortDirection, DataGridSortState } from "@affino/datagrid-core";
|
|
8
8
|
import type { DataGridOverlayTransform, DataGridOverlayTransformInput } from "./types";
|
|
9
|
+
export { createDataGridViewportController, } from "@affino/datagrid-core/advanced";
|
|
10
|
+
export type { DataGridImperativeRowUpdatePayload, DataGridVirtualWindowSnapshot, } from "@affino/datagrid-core/advanced";
|
|
9
11
|
export { useDataGridClipboardValuePolicy, type UseDataGridClipboardValuePolicyResult, } from "./composables/useDataGridClipboardValuePolicy";
|
|
10
12
|
export { useDataGridCopyRangeHelpers, type DataGridCopyRangeCoord, type DataGridCopyRange, type UseDataGridCopyRangeHelpersOptions, type UseDataGridCopyRangeHelpersResult, } from "./composables/useDataGridCopyRangeHelpers";
|
|
11
13
|
export { useDataGridCellDatasetResolver, type DataGridDatasetCellCoord, type UseDataGridCellDatasetResolverOptions, type UseDataGridCellDatasetResolverResult, } from "./composables/useDataGridCellDatasetResolver";
|
|
@@ -37,6 +39,7 @@ export { type DataGridHeaderLayerViewportGeometryInput, type DataGridHeaderLayer
|
|
|
37
39
|
export { useDataGridViewportMeasureScheduler, type DataGridViewportMeasuredState, type UseDataGridViewportMeasureSchedulerOptions, type UseDataGridViewportMeasureSchedulerResult, } from "./composables/useDataGridViewportMeasureScheduler";
|
|
38
40
|
export { useDataGridVisibleRowsSyncScheduler, type DataGridVisibleRowsRange, type UseDataGridVisibleRowsSyncSchedulerOptions, type UseDataGridVisibleRowsSyncSchedulerResult, } from "./composables/useDataGridVisibleRowsSyncScheduler";
|
|
39
41
|
export { useDataGridColumnLayoutOrchestration, type DataGridColumnLayoutColumn, type DataGridColumnLayoutMetric, type DataGridVisibleColumnsWindow, type DataGridColumnLayerKey, type DataGridColumnLayer, type UseDataGridColumnLayoutOrchestrationOptions, type UseDataGridColumnLayoutOrchestrationResult, } from "./composables/useDataGridColumnLayoutOrchestration";
|
|
42
|
+
export { setsEqual, } from "@affino/datagrid-orchestration";
|
|
40
43
|
export { useDataGridSelectionOverlayOrchestration, type DataGridOverlayRange, type DataGridOverlayColumnLike, type DataGridOverlayColumnMetricLike, type DataGridSelectionOverlaySegment, type UseDataGridSelectionOverlayOrchestrationOptions, type UseDataGridSelectionOverlayOrchestrationResult, } from "./composables/useDataGridSelectionOverlayOrchestration";
|
|
41
44
|
export { useDataGridRowsProjection, type UseDataGridRowsProjectionOptions, type UseDataGridRowsProjectionResult, } from "./composables/useDataGridRowsProjection";
|
|
42
45
|
export { useDataGridRowSelectionOrchestration, type UseDataGridRowSelectionOrchestrationOptions, type UseDataGridRowSelectionOrchestrationResult, } from "./composables/useDataGridRowSelectionOrchestration";
|
|
@@ -95,10 +98,12 @@ export declare function useDataGridHeaderOrchestration(options?: UseDataGridHead
|
|
|
95
98
|
sortState: Ref<readonly {
|
|
96
99
|
key: string;
|
|
97
100
|
field?: string | undefined;
|
|
101
|
+
dependencyFields?: readonly string[] | undefined;
|
|
98
102
|
direction: DataGridSortDirection;
|
|
99
103
|
}[], readonly DataGridSortState[] | readonly {
|
|
100
104
|
key: string;
|
|
101
105
|
field?: string | undefined;
|
|
106
|
+
dependencyFields?: readonly string[] | undefined;
|
|
102
107
|
direction: DataGridSortDirection;
|
|
103
108
|
}[]>;
|
|
104
109
|
setSortState: (nextState: readonly DataGridSortState[]) => void;
|
package/dist/advanced.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../src/advanced.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAC7C,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAIrF,OAAO,KAAK,EACV,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../src/advanced.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAC7C,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAIrF,OAAO,KAAK,EACV,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,SAAS,CAAA;AAIhB,OAAO,EACL,gCAAgC,GACjC,MAAM,gCAAgC,CAAA;AAEvC,YAAY,EACV,kCAAkC,EAClC,6BAA6B,GAC9B,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EACL,+BAA+B,EAC/B,KAAK,qCAAqC,GAC3C,MAAM,+CAA+C,CAAA;AACtD,OAAO,EACL,2BAA2B,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,GACvC,MAAM,2CAA2C,CAAA;AAClD,OAAO,EACL,8BAA8B,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,GAC1C,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,2BAA2B,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,GACvC,MAAM,2CAA2C,CAAA;AAClD,OAAO,EACL,+BAA+B,EAC/B,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACrC,KAAK,iCAAiC,EACtC,KAAK,sCAAsC,EAC3C,KAAK,qCAAqC,GAC3C,MAAM,+CAA+C,CAAA;AACtD,OAAO,EACL,2BAA2B,EAC3B,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,GACvC,MAAM,2CAA2C,CAAA;AAClD,OAAO,EACL,oCAAoC,EACpC,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,2CAA2C,EAChD,KAAK,0CAA0C,GAChD,MAAM,oDAAoD,CAAA;AAC3D,OAAO,EACL,8BAA8B,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,GAC1C,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,GAClC,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,yBAAyB,EACzB,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,GACrC,MAAM,yCAAyC,CAAA;AAChD,OAAO,EACL,6BAA6B,EAC7B,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,GACzC,MAAM,6CAA6C,CAAA;AACpD,OAAO,EACL,8BAA8B,EAC9B,KAAK,6BAA6B,EAClC,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,GAC1C,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,6BAA6B,EAC7B,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,GACzC,MAAM,6CAA6C,CAAA;AACpD,OAAO,EACL,kCAAkC,EAClC,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,yCAAyC,EAC9C,KAAK,wCAAwC,GAC9C,MAAM,kDAAkD,CAAA;AACzD,OAAO,EACL,uCAAuC,EACvC,KAAK,wCAAwC,EAC7C,KAAK,mCAAmC,EACxC,KAAK,oCAAoC,EACzC,KAAK,8CAA8C,EACnD,KAAK,6CAA6C,GACnD,MAAM,uDAAuD,CAAA;AAC9D,OAAO,EACL,gCAAgC,EAChC,KAAK,uCAAuC,EAC5C,KAAK,sCAAsC,GAC5C,MAAM,gDAAgD,CAAA;AACvD,OAAO,EACL,yBAAyB,EACzB,KAAK,2BAA2B,EAChC,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,GACrC,MAAM,yCAAyC,CAAA;AAChD,OAAO,EACL,+BAA+B,EAC/B,KAAK,sCAAsC,EAC3C,KAAK,qCAAqC,GAC3C,MAAM,+CAA+C,CAAA;AACtD,OAAO,EACL,kCAAkC,EAClC,KAAK,uBAAuB,EAC5B,KAAK,yCAAyC,EAC9C,KAAK,wCAAwC,GAC9C,MAAM,kDAAkD,CAAA;AACzD,OAAO,EACL,oCAAoC,EACpC,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC9B,KAAK,2CAA2C,EAChD,KAAK,0CAA0C,GAChD,MAAM,oDAAoD,CAAA;AAC3D,OAAO,EACL,kCAAkC,EAClC,KAAK,yCAAyC,EAC9C,KAAK,wCAAwC,GAC9C,MAAM,kDAAkD,CAAA;AACzD,OAAO,EACL,oCAAoC,EACpC,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,2CAA2C,EAChD,KAAK,0CAA0C,GAChD,MAAM,oDAAoD,CAAA;AAC3D,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,GAClC,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,kCAAkC,EAClC,KAAK,yCAAyC,EAC9C,KAAK,wCAAwC,GAC9C,MAAM,kDAAkD,CAAA;AACzD,OAAO,EACL,iCAAiC,EACjC,KAAK,yBAAyB,EAC9B,KAAK,wCAAwC,EAC7C,KAAK,uCAAuC,GAC7C,MAAM,iDAAiD,CAAA;AACxD,OAAO,EACL,qBAAqB,EACrB,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,GACjC,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EACL,oCAAoC,EACpC,KAAK,2CAA2C,EAChD,KAAK,0CAA0C,GAChD,MAAM,oDAAoD,CAAA;AAC3D,OAAO,EACL,KAAK,wCAAwC,EAC7C,KAAK,mCAAmC,EACxC,mCAAmC,EACnC,0CAA0C,GAC3C,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EACL,mCAAmC,EACnC,KAAK,6BAA6B,EAClC,KAAK,0CAA0C,EAC/C,KAAK,yCAAyC,GAC/C,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EACL,mCAAmC,EACnC,KAAK,wBAAwB,EAC7B,KAAK,0CAA0C,EAC/C,KAAK,yCAAyC,GAC/C,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EACL,oCAAoC,EACpC,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,2CAA2C,EAChD,KAAK,0CAA0C,GAChD,MAAM,oDAAoD,CAAA;AAC3D,OAAO,EACL,SAAS,GACV,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,wCAAwC,EACxC,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,+BAA+B,EACpC,KAAK,+BAA+B,EACpC,KAAK,+CAA+C,EACpD,KAAK,8CAA8C,GACpD,MAAM,wDAAwD,CAAA;AAC/D,OAAO,EACL,yBAAyB,EACzB,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,GACrC,MAAM,yCAAyC,CAAA;AAChD,OAAO,EACL,oCAAoC,EACpC,KAAK,2CAA2C,EAChD,KAAK,0CAA0C,GAChD,MAAM,oDAAoD,CAAA;AAC3D,OAAO,EACL,oCAAoC,EACpC,KAAK,2CAA2C,EAChD,KAAK,0CAA0C,GAChD,MAAM,oDAAoD,CAAA;AAC3D,OAAO,EACL,8BAA8B,EAC9B,KAAK,oBAAoB,EACzB,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,GAC1C,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,4BAA4B,EAC5B,KAAK,kCAAkC,EACvC,KAAK,8BAA8B,EACnC,KAAK,oCAAoC,EACzC,KAAK,uCAAuC,EAC5C,KAAK,mCAAmC,EACxC,KAAK,kCAAkC,GACxC,MAAM,4CAA4C,CAAA;AACnD,OAAO,EACL,gCAAgC,EAChC,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,uCAAuC,EAC5C,KAAK,sCAAsC,GAC5C,MAAM,gDAAgD,CAAA;AACvD,OAAO,EACL,iCAAiC,EACjC,KAAK,6BAA6B,EAClC,KAAK,wCAAwC,EAC7C,KAAK,uCAAuC,GAC7C,MAAM,iDAAiD,CAAA;AACxD,OAAO,EACL,kCAAkC,EAClC,KAAK,yCAAyC,EAC9C,KAAK,wCAAwC,GAC9C,MAAM,kDAAkD,CAAA;AACzD,OAAO,EACL,iCAAiC,EACjC,KAAK,wCAAwC,EAC7C,KAAK,uCAAuC,GAC7C,MAAM,iDAAiD,CAAA;AACxD,OAAO,EACL,+BAA+B,EAC/B,KAAK,iCAAiC,EACtC,KAAK,uCAAuC,EAC5C,KAAK,sCAAsC,EAC3C,KAAK,qCAAqC,GAC3C,MAAM,+CAA+C,CAAA;AACtD,OAAO,EACL,iCAAiC,EACjC,KAAK,wCAAwC,EAC7C,KAAK,uCAAuC,GAC7C,MAAM,iDAAiD,CAAA;AACxD,OAAO,EACL,0BAA0B,EAC1B,KAAK,4BAA4B,EACjC,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,GACtC,MAAM,0CAA0C,CAAA;AACjD,OAAO,EACL,6BAA6B,EAC7B,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,GACzC,MAAM,6CAA6C,CAAA;AACpD,OAAO,EACL,yBAAyB,EACzB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,EAClC,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,GACrC,MAAM,yCAAyC,CAAA;AAChD,OAAO,EACL,8BAA8B,EAC9B,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACrC,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,GAC1C,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,4BAA4B,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,mCAAmC,EACxC,KAAK,kCAAkC,GACxC,MAAM,4CAA4C,CAAA;AACnD,OAAO,EACL,kCAAkC,EAClC,KAAK,oCAAoC,EACzC,KAAK,yCAAyC,EAC9C,KAAK,wCAAwC,GAC9C,MAAM,kDAAkD,CAAA;AACzD,OAAO,EACL,oCAAoC,EACpC,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACrC,KAAK,2CAA2C,EAChD,KAAK,0CAA0C,GAChD,MAAM,oDAAoD,CAAA;AAC3D,OAAO,EACL,8BAA8B,EAC9B,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,GAC1C,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,kCAAkC,EAClC,KAAK,yCAAyC,EAC9C,KAAK,wCAAwC,GAC9C,MAAM,kDAAkD,CAAA;AACzD,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,sCAAsC,EAC3C,KAAK,qCAAqC,EAC1C,+BAA+B,GAChC,MAAM,+CAA+C,CAAA;AACtD,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,EACtC,2BAA2B,GAC5B,MAAM,2CAA2C,CAAA;AAClD,OAAO,EACL,KAAK,yCAAyC,EAC9C,KAAK,wCAAwC,EAC7C,kCAAkC,GACnC,MAAM,kDAAkD,CAAA;AACzD,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACrC,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,EACxC,2BAA2B,EAC3B,8BAA8B,EAC9B,uCAAuC,EACvC,6BAA6B,GAC9B,MAAM,6CAA6C,CAAA;AACpD,OAAO,EACL,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,yBAAyB,GAC1B,MAAM,yCAAyC,CAAA;AAChD,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,EACzC,8BAA8B,GAC/B,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,KAAK,+BAA+B,EACpC,iCAAiC,EACjC,KAAK,0BAA0B,EAC/B,KAAK,+BAA+B,EACpC,KAAK,wCAAwC,EAC7C,KAAK,uCAAuC,GAC7C,MAAM,iDAAiD,CAAA;AACxD,OAAO,EACL,4BAA4B,EAC5B,KAAK,yCAAyC,EAC9C,KAAK,iCAAiC,EACtC,KAAK,mCAAmC,EACxC,KAAK,kCAAkC,GACxC,MAAM,4CAA4C,CAAA;AACnD,OAAO,EACL,+BAA+B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,EACtC,KAAK,sCAAsC,EAC3C,KAAK,qCAAqC,GAC3C,MAAM,+CAA+C,CAAA;AACtD,OAAO,EACL,mCAAmC,EACnC,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,EAClC,KAAK,oCAAoC,EACzC,KAAK,0CAA0C,EAC/C,KAAK,yCAAyC,GAC/C,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EACL,8BAA8B,EAC9B,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,GAC1C,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,iCAAiC,EACjC,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,EACvC,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,EACxC,KAAK,wCAAwC,EAC7C,KAAK,uCAAuC,GAC7C,MAAM,iDAAiD,CAAA;AACxD,OAAO,EACL,2CAA2C,EAC3C,KAAK,kDAAkD,EACvD,KAAK,iDAAiD,GACvD,MAAM,2DAA2D,CAAA;AAClE,OAAO,EACL,gCAAgC,EAChC,KAAK,uCAAuC,EAC5C,KAAK,sCAAsC,GAC5C,MAAM,gDAAgD,CAAA;AACvD,OAAO,EACL,6BAA6B,EAC7B,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,GACzC,MAAM,6CAA6C,CAAA;AACpD,OAAO,EACL,8BAA8B,EAC9B,KAAK,gCAAgC,EACrC,KAAK,wCAAwC,EAC7C,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,GAC1C,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,+BAA+B,EAC/B,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACrC,KAAK,qCAAqC,GAC3C,MAAM,+CAA+C,CAAA;AACtD,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,mCAAmC,EACxC,KAAK,kCAAkC,EACvC,4BAA4B,GAC7B,MAAM,4CAA4C,CAAA;AACnD,OAAO,EACL,gCAAgC,EAChC,KAAK,sCAAsC,GAC5C,MAAM,gDAAgD,CAAA;AACvD,OAAO,EACL,8BAA8B,EAC9B,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,GAC1C,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,4BAA4B,EAC5B,KAAK,mCAAmC,EACxC,KAAK,kCAAkC,GACxC,MAAM,4CAA4C,CAAA;AACnD,OAAO,EACL,0BAA0B,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,GACtC,MAAM,0CAA0C,CAAA;AACjD,OAAO,EACL,6BAA6B,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,+BAA+B,EACpC,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,GACzC,MAAM,6CAA6C,CAAA;AACpD,OAAO,EACL,wBAAwB,EACxB,KAAK,mCAAmC,EACxC,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,GACpC,MAAM,wCAAwC,CAAA;AAE/C,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,GAAG,CAAC,6BAA6B,CAAC,CAAA;CAC7C;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,gCAAgC;;EAOlF;AAED,MAAM,WAAW,qCAAqC;IACpD,gBAAgB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAChD;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,GAAE,qCAA0C;;;;;;;;;;;;8BAIlB,SAAS,iBAAiB,EAAE;kCAIxB,MAAM,mBAAkB,SAAS,qBAAqB,EAAE;EAwB9F;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,UAAU,CAAC,OAAO,8BAA8B,CAAC;;qBAM7C,aAAa;EAOjC;AAED,MAAM,WAAW,oCAAoC;IACnD,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACxC;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,oCAAyC;;yBAItB,MAAM,KAAG,OAAO;0BAIf,MAAM,YAAY,OAAO;;EAuBvD;AAED,MAAM,WAAW,mCAAmC,CAAC,IAAI;IACvD,IAAI,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAA;IAC1B,gBAAgB,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1D,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1E;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAC/C,OAAO,EAAE,mCAAmC,CAAC,IAAI,CAAC;yBAEtB,MAAM,cAAc,SAAS,MAAM,EAAE,KAAG,kBAAkB,EAAE;yBAiB5D,MAAM,eAAe,MAAM,cAAc,SAAS,MAAM,EAAE,KAAG,MAAM;EA6BhG"}
|
package/dist/advanced.js
CHANGED
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { computed, ref } from "vue";
|
|
7
7
|
import { buildDataGridOverlayTransformFromSnapshot, } from "./composables/selectionOverlayTransform";
|
|
8
|
+
// Curated advanced core facade exports for Vue consumers that need lower-level viewport/runtime
|
|
9
|
+
// primitives without importing @affino/datagrid-core/advanced directly.
|
|
10
|
+
export { createDataGridViewportController, } from "@affino/datagrid-core/advanced";
|
|
8
11
|
export { useDataGridClipboardValuePolicy, } from "./composables/useDataGridClipboardValuePolicy";
|
|
9
12
|
export { useDataGridCopyRangeHelpers, } from "./composables/useDataGridCopyRangeHelpers";
|
|
10
13
|
export { useDataGridCellDatasetResolver, } from "./composables/useDataGridCellDatasetResolver";
|
|
@@ -36,6 +39,7 @@ export { resolveDataGridHeaderScrollSyncLeft, resolveDataGridHeaderLayerViewport
|
|
|
36
39
|
export { useDataGridViewportMeasureScheduler, } from "./composables/useDataGridViewportMeasureScheduler";
|
|
37
40
|
export { useDataGridVisibleRowsSyncScheduler, } from "./composables/useDataGridVisibleRowsSyncScheduler";
|
|
38
41
|
export { useDataGridColumnLayoutOrchestration, } from "./composables/useDataGridColumnLayoutOrchestration";
|
|
42
|
+
export { setsEqual, } from "@affino/datagrid-orchestration";
|
|
39
43
|
export { useDataGridSelectionOverlayOrchestration, } from "./composables/useDataGridSelectionOverlayOrchestration";
|
|
40
44
|
export { useDataGridRowsProjection, } from "./composables/useDataGridRowsProjection";
|
|
41
45
|
export { useDataGridRowSelectionOrchestration, } from "./composables/useDataGridRowSelectionOrchestration";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAffinoDataGrid.d.ts","sourceRoot":"","sources":["../../src/composables/useAffinoDataGrid.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAffinoDataGrid.d.ts","sourceRoot":"","sources":["../../src/composables/useAffinoDataGrid.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EASV,wBAAwB,EACxB,uBAAuB,EAGxB,MAAM,2BAA2B,CAAA;AAiTlC,YAAY,EACV,sBAAsB,EACtB,8BAA8B,EAC9B,8BAA8B,EAC9B,yBAAyB,EACzB,4BAA4B,EAC5B,sBAAsB,EACtB,sCAAsC,EACtC,iCAAiC,EACjC,kCAAkC,EAClC,6BAA6B,EAC7B,8BAA8B,EAC9B,oCAAoC,EACpC,uCAAuC,EACvC,2BAA2B,EAC3B,2BAA2B,EAC3B,8BAA8B,EAC9B,8BAA8B,EAC9B,4BAA4B,EAC5B,+BAA+B,EAC/B,yBAAyB,EACzB,8BAA8B,EAC9B,uCAAuC,EACvC,6BAA6B,EAC7B,gCAAgC,EAChC,8BAA8B,EAC9B,wBAAwB,EACxB,sBAAsB,EACtB,8BAA8B,EAC9B,0BAA0B,EAC1B,kCAAkC,EAClC,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,2BAA2B,CAAA;AAElC,wBAAgB,iBAAiB,CAAC,IAAI,EACpC,OAAO,EAAE,wBAAwB,CAAC,IAAI,CAAC,GACtC,uBAAuB,CAAC,IAAI,CAAC,CA+/C/B"}
|
|
@@ -635,6 +635,50 @@ export function useAffinoDataGrid(options) {
|
|
|
635
635
|
commitEdit: commitEditWithEvents,
|
|
636
636
|
runAction,
|
|
637
637
|
});
|
|
638
|
+
const resolveCellRefreshValue = (batch, rowKey, columnKey) => {
|
|
639
|
+
const targetKey = String(rowKey);
|
|
640
|
+
const directHit = batch.cells.find(cell => String(cell.rowKey) === targetKey && cell.columnKey === columnKey);
|
|
641
|
+
if (!directHit) {
|
|
642
|
+
return null;
|
|
643
|
+
}
|
|
644
|
+
const directNode = runtime.api.getRow(directHit.rowIndex);
|
|
645
|
+
let resolvedRow = directNode?.row;
|
|
646
|
+
if (!resolvedRow || String(directNode?.rowId ?? "") !== targetKey) {
|
|
647
|
+
const viewportRange = runtime.api.getRowModelSnapshot().viewportRange;
|
|
648
|
+
const visibleRows = runtime.api.getRowsInRange(viewportRange);
|
|
649
|
+
resolvedRow = visibleRows.find(node => String(node.rowId) === targetKey)?.row;
|
|
650
|
+
}
|
|
651
|
+
if (!resolvedRow || typeof resolvedRow !== "object") {
|
|
652
|
+
return null;
|
|
653
|
+
}
|
|
654
|
+
const value = resolvedRow[columnKey];
|
|
655
|
+
if (value == null) {
|
|
656
|
+
return "";
|
|
657
|
+
}
|
|
658
|
+
return String(value);
|
|
659
|
+
};
|
|
660
|
+
const unsubscribeCellRefresh = runtime.api.onCellsRefresh(batch => {
|
|
661
|
+
for (const cell of batch.cells) {
|
|
662
|
+
const cellElement = bindingSuite.findCellElement(String(cell.rowKey), cell.columnKey);
|
|
663
|
+
if (!cellElement) {
|
|
664
|
+
continue;
|
|
665
|
+
}
|
|
666
|
+
cellElement.setAttribute("data-affino-cell-refresh-ts", String(batch.timestamp));
|
|
667
|
+
const nextValue = resolveCellRefreshValue(batch, cell.rowKey, cell.columnKey);
|
|
668
|
+
if (nextValue != null && cellElement.childElementCount === 0) {
|
|
669
|
+
cellElement.textContent = nextValue;
|
|
670
|
+
}
|
|
671
|
+
if (typeof CustomEvent === "function") {
|
|
672
|
+
cellElement.dispatchEvent(new CustomEvent("affino-datagrid:cell-refresh", {
|
|
673
|
+
detail: {
|
|
674
|
+
...cell,
|
|
675
|
+
timestamp: batch.timestamp,
|
|
676
|
+
reason: batch.reason,
|
|
677
|
+
},
|
|
678
|
+
}));
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
});
|
|
638
682
|
const applyAdvancedExpression = (expression, options = {}) => {
|
|
639
683
|
const mergeMode = options.mergeMode ?? "replace";
|
|
640
684
|
const currentExpression = featureSuite.filterModel.value?.advancedExpression ?? null;
|
|
@@ -865,6 +909,7 @@ export function useAffinoDataGrid(options) {
|
|
|
865
909
|
stopRowResize();
|
|
866
910
|
unsubscribeRowModel();
|
|
867
911
|
unsubscribeColumnModel();
|
|
912
|
+
unsubscribeCellRefresh();
|
|
868
913
|
});
|
|
869
914
|
const baseResult = assembleAffinoDataGridResult({
|
|
870
915
|
runtime,
|
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
import { type Ref } from "vue";
|
|
2
|
-
import type { CreateDataGridCoreOptions, DataGridColumnDef, DataGridColumnModelSnapshot, DataGridRowNode, DataGridRowModel, DataGridViewportRange } from "@affino/datagrid-core";
|
|
2
|
+
import type { CreateDataGridCoreOptions, DataGridAggregationModel, DataGridClientRowPatch, DataGridClientRowPatchOptions, DataGridColumnDef, DataGridColumnModelSnapshot, DataGridRowNode, DataGridRowModel, DataGridViewportRange } from "@affino/datagrid-core";
|
|
3
3
|
import { type DataGridRuntimeVirtualWindowSnapshot, type DataGridRuntimeOverrides } from "@affino/datagrid-orchestration";
|
|
4
4
|
import type { DataGridVueRuntime } from "../runtime/createDataGridVueRuntime";
|
|
5
5
|
export type { DataGridRuntimeVirtualWindowSnapshot, };
|
|
6
6
|
type MaybeRef<T> = T | Ref<T>;
|
|
7
|
+
export interface DataGridEditOptions extends Omit<DataGridClientRowPatchOptions, "recomputeSort" | "recomputeFilter" | "recomputeGroup"> {
|
|
8
|
+
/**
|
|
9
|
+
* Excel-style default: freeze sort/filter/group projection during edit patches.
|
|
10
|
+
*/
|
|
11
|
+
freezeView?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Explicitly reapply projection after patch (sort/filter/group).
|
|
14
|
+
*/
|
|
15
|
+
reapplyView?: boolean;
|
|
16
|
+
}
|
|
7
17
|
export interface UseDataGridRuntimeOptions<TRow = unknown> {
|
|
8
18
|
rows?: MaybeRef<readonly TRow[]>;
|
|
9
19
|
rowModel?: DataGridRowModel<TRow>;
|
|
@@ -16,6 +26,12 @@ export interface UseDataGridRuntimeResult<TRow = unknown> extends DataGridVueRun
|
|
|
16
26
|
columnSnapshot: Ref<DataGridColumnModelSnapshot>;
|
|
17
27
|
virtualWindow: Ref<DataGridRuntimeVirtualWindowSnapshot | null>;
|
|
18
28
|
setRows: (rows: readonly TRow[]) => void;
|
|
29
|
+
setAggregationModel: (aggregationModel: DataGridAggregationModel<TRow> | null) => void;
|
|
30
|
+
getAggregationModel: () => DataGridAggregationModel<TRow> | null;
|
|
31
|
+
patchRows: (updates: readonly DataGridClientRowPatch<TRow>[], options?: DataGridClientRowPatchOptions) => void;
|
|
32
|
+
applyEdits: (updates: readonly DataGridClientRowPatch<TRow>[], options?: DataGridEditOptions) => void;
|
|
33
|
+
reapplyView: () => void;
|
|
34
|
+
autoReapply: Ref<boolean>;
|
|
19
35
|
start: () => Promise<void>;
|
|
20
36
|
stop: () => void;
|
|
21
37
|
syncRowsInRange: (range: DataGridViewportRange) => readonly DataGridRowNode<TRow>[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataGridRuntime.d.ts","sourceRoot":"","sources":["../../src/composables/useDataGridRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiD,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAC7E,OAAO,KAAK,EACV,yBAAyB,EACzB,iBAAiB,EACjB,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAEL,KAAK,oCAAoC,EACzC,KAAK,wBAAwB,EAC9B,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAE7E,YAAY,EACV,oCAAoC,GACrC,CAAA;AAED,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;AAM7B,MAAM,WAAW,yBAAyB,CAAC,IAAI,GAAG,OAAO;IACvD,IAAI,CAAC,EAAE,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,CAAA;IAChC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACjC,OAAO,EAAE,QAAQ,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAAA;IAC/C,QAAQ,CAAC,EAAE,wBAAwB,CAAA;IACnC,YAAY,CAAC,EAAE,yBAAyB,CAAC,cAAc,CAAC,CAAA;IACxD,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,wBAAwB,CAAC,IAAI,GAAG,OAAO,CAAE,SAAQ,kBAAkB,CAAC,IAAI,CAAC;IACxF,cAAc,EAAE,GAAG,CAAC,2BAA2B,CAAC,CAAA;IAChD,aAAa,EAAE,GAAG,CAAC,oCAAoC,GAAG,IAAI,CAAC,CAAA;IAC/D,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,KAAK,IAAI,CAAA;IACxC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,eAAe,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,SAAS,eAAe,CAAC,IAAI,CAAC,EAAE,CAAA;CACpF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,GAAG,OAAO,EAC/C,OAAO,EAAE,yBAAyB,CAAC,IAAI,CAAC,GACvC,wBAAwB,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"useDataGridRuntime.d.ts","sourceRoot":"","sources":["../../src/composables/useDataGridRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiD,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAC7E,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,iBAAiB,EACjB,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAEL,KAAK,oCAAoC,EACzC,KAAK,wBAAwB,EAC9B,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAE7E,YAAY,EACV,oCAAoC,GACrC,CAAA;AAED,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;AAM7B,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAC/C,6BAA6B,EAC7B,eAAe,GAAG,iBAAiB,GAAG,gBAAgB,CACvD;IACC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,yBAAyB,CAAC,IAAI,GAAG,OAAO;IACvD,IAAI,CAAC,EAAE,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,CAAA;IAChC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACjC,OAAO,EAAE,QAAQ,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAAA;IAC/C,QAAQ,CAAC,EAAE,wBAAwB,CAAA;IACnC,YAAY,CAAC,EAAE,yBAAyB,CAAC,cAAc,CAAC,CAAA;IACxD,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,wBAAwB,CAAC,IAAI,GAAG,OAAO,CAAE,SAAQ,kBAAkB,CAAC,IAAI,CAAC;IACxF,cAAc,EAAE,GAAG,CAAC,2BAA2B,CAAC,CAAA;IAChD,aAAa,EAAE,GAAG,CAAC,oCAAoC,GAAG,IAAI,CAAC,CAAA;IAC/D,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,KAAK,IAAI,CAAA;IACxC,mBAAmB,EAAE,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAA;IACtF,mBAAmB,EAAE,MAAM,wBAAwB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAChE,SAAS,EAAE,CACT,OAAO,EAAE,SAAS,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAChD,OAAO,CAAC,EAAE,6BAA6B,KACpC,IAAI,CAAA;IACT,UAAU,EAAE,CACV,OAAO,EAAE,SAAS,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAChD,OAAO,CAAC,EAAE,mBAAmB,KAC1B,IAAI,CAAA;IACT,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACzB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,eAAe,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,SAAS,eAAe,CAAC,IAAI,CAAC,EAAE,CAAA;CACpF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,GAAG,OAAO,EAC/C,OAAO,EAAE,yBAAyB,CAAC,IAAI,CAAC,GACvC,wBAAwB,CAAC,IAAI,CAAC,CAuHhC"}
|
|
@@ -34,6 +34,7 @@ export function useDataGridRuntime(options) {
|
|
|
34
34
|
virtualWindow.value = next ?? buildFallbackVirtualWindow();
|
|
35
35
|
});
|
|
36
36
|
const shouldAutoStart = options.autoStart !== false;
|
|
37
|
+
const autoReapply = ref(false);
|
|
37
38
|
if (options.rows && isRef(options.rows)) {
|
|
38
39
|
watch(options.rows, rows => {
|
|
39
40
|
if (runtime.isDisposed()) {
|
|
@@ -66,6 +67,24 @@ export function useDataGridRuntime(options) {
|
|
|
66
67
|
onBeforeUnmount(() => {
|
|
67
68
|
stop();
|
|
68
69
|
});
|
|
70
|
+
function reapplyView() {
|
|
71
|
+
api.reapplyView();
|
|
72
|
+
}
|
|
73
|
+
function patchRows(updates, options) {
|
|
74
|
+
runtime.patchRows(updates, options);
|
|
75
|
+
}
|
|
76
|
+
function applyEdits(updates, options = {}) {
|
|
77
|
+
const freezeView = options.freezeView ?? !autoReapply.value;
|
|
78
|
+
runtime.patchRows(updates, {
|
|
79
|
+
emit: options.emit,
|
|
80
|
+
recomputeSort: freezeView ? false : true,
|
|
81
|
+
recomputeFilter: freezeView ? false : true,
|
|
82
|
+
recomputeGroup: freezeView ? false : true,
|
|
83
|
+
});
|
|
84
|
+
if (options.reapplyView) {
|
|
85
|
+
reapplyView();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
69
88
|
return {
|
|
70
89
|
rowModel,
|
|
71
90
|
columnModel,
|
|
@@ -74,6 +93,12 @@ export function useDataGridRuntime(options) {
|
|
|
74
93
|
columnSnapshot,
|
|
75
94
|
virtualWindow,
|
|
76
95
|
setRows: runtime.setRows,
|
|
96
|
+
setAggregationModel: api.setAggregationModel,
|
|
97
|
+
getAggregationModel: api.getAggregationModel,
|
|
98
|
+
patchRows,
|
|
99
|
+
applyEdits,
|
|
100
|
+
reapplyView,
|
|
101
|
+
autoReapply,
|
|
77
102
|
start: runtime.start,
|
|
78
103
|
stop,
|
|
79
104
|
syncRowsInRange: runtime.syncRowsInRange,
|
package/dist/public.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Stable public API for @affino/datagrid-vue.
|
|
3
3
|
*/
|
|
4
|
+
export { createClientRowModel, createDataGridColumnModel, createDataGridSelectionSummary, createInMemoryDataGridSettingsAdapter, buildDataGridAdvancedFilterExpressionFromLegacyFilters, cloneDataGridFilterSnapshot, evaluateDataGridAdvancedFilterExpression, normalizeDataGridAdvancedFilterExpression, } from "@affino/datagrid-core";
|
|
5
|
+
export type { CreateDataGridCoreOptions, DataGridAggregationModel, DataGridAdvancedFilterExpression, DataGridAdvancedFilterCondition, DataGridColumnModel, DataGridColumnDef, DataGridColumnModelSnapshot, DataGridColumnPin, DataGridColumnSnapshot, DataGridColumnStateSnapshot, DataGridClientRowPatch, DataGridClientRowPatchOptions, DataGridClientRowReorderInput, DataGridCoreServiceContext, DataGridEventEnvelope, DataGridEventPhase, DataGridEventSource, DataGridEventTier, DataGridFilterSnapshot, DataGridGroupBySpec, DataGridGroupExpansionSnapshot, DataGridPaginationInput, DataGridPaginationSnapshot, DataGridProjectionDiagnostics, DataGridRowId, DataGridRowModel, DataGridRowNode, DataGridSettingsAdapter, DataGridSelectionAggregationKind, DataGridSelectionSummaryColumnConfig, DataGridSelectionSummarySnapshot, DataGridSortDirection, DataGridSortState, DataGridViewportRange, } from "@affino/datagrid-core";
|
|
6
|
+
export type { DataGridTransactionSnapshot, } from "@affino/datagrid-core/advanced";
|
|
7
|
+
export type { DataGridRuntimeOverrides, } from "@affino/datagrid-orchestration";
|
|
4
8
|
export { createDataGridSettingsAdapter, } from "./dataGridSettingsAdapter";
|
|
5
9
|
export { useDataGridSettingsStore, type DataGridSettingsStore, } from "./dataGridSettingsStore";
|
|
6
10
|
export { buildDataGridOverlayTransform, buildDataGridOverlayTransformFromSnapshot, } from "./composables/selectionOverlayTransform";
|
package/dist/public.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../src/public.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../src/public.ts"],"names":[],"mappings":"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"}
|
package/dist/public.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Stable public API for @affino/datagrid-vue.
|
|
3
3
|
*/
|
|
4
|
+
// Curated core facade exports so Vue consumers can stay on @affino/datagrid-vue
|
|
5
|
+
// for common configuration/state/filter/sort/row-model typing and helper functions.
|
|
6
|
+
export { createClientRowModel, createDataGridColumnModel, createDataGridSelectionSummary, createInMemoryDataGridSettingsAdapter, buildDataGridAdvancedFilterExpressionFromLegacyFilters, cloneDataGridFilterSnapshot, evaluateDataGridAdvancedFilterExpression, normalizeDataGridAdvancedFilterExpression, } from "@affino/datagrid-core";
|
|
4
7
|
export { createDataGridSettingsAdapter, } from "./dataGridSettingsAdapter";
|
|
5
8
|
export { useDataGridSettingsStore, } from "./dataGridSettingsStore";
|
|
6
9
|
export { buildDataGridOverlayTransform, buildDataGridOverlayTransformFromSnapshot, } from "./composables/selectionOverlayTransform";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@affino/datagrid-vue",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"author": "Anton Pavlov <a.pavlov@affino.dev>",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Vue adapter and UI layer for @affino/datagrid-core (bootstrap fork from .tmp/ui-table/vue)",
|
|
@@ -35,14 +35,14 @@
|
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"pinia": "^2.1.0 || ^3.0.0",
|
|
37
37
|
"vue": "^3.3.0",
|
|
38
|
-
"@affino/datagrid-theme": "^0.1
|
|
38
|
+
"@affino/datagrid-theme": "^0.2.1"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@affino/datagrid-
|
|
42
|
-
"@affino/datagrid-
|
|
41
|
+
"@affino/datagrid-core": "0.2.1",
|
|
42
|
+
"@affino/datagrid-orchestration": "0.2.1"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@affino/datagrid-theme": "^0.1
|
|
45
|
+
"@affino/datagrid-theme": "^0.2.1"
|
|
46
46
|
},
|
|
47
47
|
"repository": {
|
|
48
48
|
"type": "git",
|