@affino/datagrid-vue 0.3.11 → 0.3.13

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 CHANGED
@@ -6,7 +6,7 @@ Vue adapter and headless foundation for `@affino/datagrid-core`.
6
6
  `@affino/datagrid-core` and `@affino/datagrid-orchestration` remain internal dependencies of this package.
7
7
 
8
8
  If you want a declarative app-facing component, use
9
- [`@affino/datagrid-vue-app`](/Users/anton/Projects/affinio/datagrid/packages/datagrid-vue-app/README.md).
9
+ [`@affino/datagrid-vue-app`](https://github.com/affinio/affinio/tree/main/packages/datagrid-vue-app#readme).
10
10
 
11
11
  ## Canonical Feature Catalog
12
12
 
@@ -18,7 +18,7 @@ Single source of truth for platform capabilities:
18
18
 
19
19
  If a Vue app needs direct formula-engine APIs, import them from:
20
20
 
21
- - [@affino/datagrid-formula-engine](/Users/anton/Projects/affinio/datagrid/packages/datagrid-formula-engine/README.md)
21
+ - [@affino/datagrid-formula-engine](https://github.com/affinio/affinio/tree/main/packages/datagrid-formula-engine#readme)
22
22
 
23
23
  Do not import formula compile/graph helpers from `@affino/datagrid-core` directly in new integrations.
24
24
 
@@ -26,7 +26,7 @@ Do not import formula compile/graph helpers from `@affino/datagrid-core` directl
26
26
 
27
27
  If a Vue app needs direct pivot contracts, import them from:
28
28
 
29
- - [@affino/datagrid-pivot](/Users/anton/Projects/affinio/datagrid/packages/datagrid-pivot/README.md)
29
+ - [@affino/datagrid-pivot](https://github.com/affinio/affinio/tree/main/packages/datagrid-pivot#readme)
30
30
 
31
31
  Do not import pivot contracts from `@affino/datagrid-core` directly in new integrations.
32
32
 
@@ -425,5 +425,5 @@ For new integrations:
425
425
 
426
426
  For end-to-end UI behavior and spreadsheet interaction contracts, use:
427
427
 
428
- - `/workspace/docs/datagrid-vue-stable-entrypoint.md`
429
- - `/workspace/docs/datagrid-sheets-user-interactions-and-integrator-api.md`
428
+ - [datagrid-vue-stable-entrypoint.md](https://github.com/affinio/affinio/blob/main/docs/datagrid-vue-stable-entrypoint.md)
429
+ - [datagrid-sheets-user-interactions-and-integrator-api.md](https://github.com/affinio/affinio/blob/main/docs/datagrid-sheets-user-interactions-and-integrator-api.md)
@@ -14,6 +14,7 @@ export interface UseDataGridAppActiveCellViewportOptions {
14
14
  }
15
15
  export interface UseDataGridAppActiveCellViewportResult {
16
16
  ensureKeyboardActiveCellVisible: (rowIndex: number, columnIndex: number) => void;
17
+ revealCellInComfortZone: (rowIndex: number, columnIndex: number) => Promise<void>;
17
18
  }
18
19
  export declare function useDataGridAppActiveCellViewport(options: UseDataGridAppActiveCellViewportOptions): UseDataGridAppActiveCellViewportResult;
19
20
  //# sourceMappingURL=useDataGridAppActiveCellViewport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDataGridAppActiveCellViewport.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppActiveCellViewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAC9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAEnE,MAAM,WAAW,uCAAuC;IACtD,eAAe,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IACxC,cAAc,EAAE,GAAG,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAAA;IACtD,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC1C,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,MAAM,CAAA;IAC/D,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACpC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/C,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,sCAAsC;IACrD,+BAA+B,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;CACjF;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,uCAAuC,GAC/C,sCAAsC,CAyKxC"}
1
+ {"version":3,"file":"useDataGridAppActiveCellViewport.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppActiveCellViewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AACxC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAEnE,MAAM,WAAW,uCAAuC;IACtD,eAAe,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IACxC,cAAc,EAAE,GAAG,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAAA;IACtD,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC1C,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,MAAM,CAAA;IAC/D,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACpC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/C,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,sCAAsC;IACrD,+BAA+B,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;IAChF,uBAAuB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAClF;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,uCAAuC,GAC/C,sCAAsC,CA8PxC"}
@@ -1,7 +1,10 @@
1
- import {} from "vue";
1
+ import { nextTick } from "vue";
2
2
  export function useDataGridAppActiveCellViewport(options) {
3
3
  const defaultColumnWidth = options.defaultColumnWidth ?? 140;
4
4
  const visibilityMarginPx = 2;
5
+ const resolveComfortMarginPx = (size) => {
6
+ return Math.max(18, Math.min(96, Math.floor(size * 0.18)));
7
+ };
5
8
  const resolveCellElement = (rowIndex, columnIndex) => {
6
9
  const viewport = options.bodyViewportRef.value;
7
10
  if (!viewport) {
@@ -19,7 +22,7 @@ export function useDataGridAppActiveCellViewport(options) {
19
22
  }
20
23
  return options.columnWidths?.value[column.key] ?? column.width ?? defaultColumnWidth;
21
24
  };
22
- const ensureEstimatedRowVisible = (viewport, rowIndex) => {
25
+ const ensureEstimatedRowVisible = (viewport, rowIndex, comfortMarginPx = visibilityMarginPx) => {
23
26
  const estimatedTop = typeof options.resolveRowOffset === "function"
24
27
  ? Math.max(0, options.resolveRowOffset(rowIndex))
25
28
  : Math.max(0, rowIndex * options.normalizedBaseRowHeight.value);
@@ -28,12 +31,12 @@ export function useDataGridAppActiveCellViewport(options) {
28
31
  : options.normalizedBaseRowHeight.value);
29
32
  const visibleTop = viewport.scrollTop;
30
33
  const visibleBottom = visibleTop + viewport.clientHeight;
31
- if (estimatedTop < visibleTop) {
32
- viewport.scrollTop = estimatedTop;
34
+ if (estimatedTop < visibleTop + comfortMarginPx) {
35
+ viewport.scrollTop = Math.max(0, estimatedTop - comfortMarginPx);
33
36
  options.syncViewport();
34
37
  }
35
- else if (estimatedBottom > visibleBottom) {
36
- viewport.scrollTop = Math.max(0, estimatedBottom - viewport.clientHeight);
38
+ else if (estimatedBottom > visibleBottom - comfortMarginPx) {
39
+ viewport.scrollTop = Math.max(0, estimatedBottom - viewport.clientHeight + comfortMarginPx);
37
40
  options.syncViewport();
38
41
  }
39
42
  };
@@ -75,15 +78,15 @@ export function useDataGridAppActiveCellViewport(options) {
75
78
  }
76
79
  viewport.focus({ preventScroll: true });
77
80
  };
78
- const ensureCenterCellVisibleByDomRect = (viewport, rowIndex, columnIndex) => {
81
+ const ensureCenterCellVisibleByDomRect = (viewport, rowIndex, columnIndex, comfortMarginPx = visibilityMarginPx) => {
79
82
  const targetCell = resolveCellElement(rowIndex, columnIndex);
80
83
  if (!targetCell) {
81
84
  return false;
82
85
  }
83
86
  const viewportRect = viewport.getBoundingClientRect();
84
87
  const targetRect = targetCell.getBoundingClientRect();
85
- const visibleLeft = viewportRect.left + visibilityMarginPx;
86
- const visibleRight = viewportRect.right - visibilityMarginPx;
88
+ const visibleLeft = viewportRect.left + comfortMarginPx;
89
+ const visibleRight = viewportRect.right - comfortMarginPx;
87
90
  let nextScrollLeft = viewport.scrollLeft;
88
91
  if (targetRect.left < visibleLeft) {
89
92
  nextScrollLeft += targetRect.left - visibleLeft;
@@ -99,6 +102,42 @@ export function useDataGridAppActiveCellViewport(options) {
99
102
  options.syncViewport();
100
103
  return true;
101
104
  };
105
+ const ensureEstimatedCenterColumnVisible = (viewport, columnIndex, comfortMarginPx) => {
106
+ const centerMetrics = resolveCenterColumnMetrics(columnIndex);
107
+ if (!centerMetrics) {
108
+ return;
109
+ }
110
+ const visibleLeft = viewport.scrollLeft;
111
+ const visibleRight = visibleLeft + viewport.clientWidth;
112
+ const maxScrollLeft = Math.max(0, centerMetrics.totalWidth - viewport.clientWidth);
113
+ let nextScrollLeft = visibleLeft;
114
+ if (centerMetrics.start < visibleLeft + comfortMarginPx) {
115
+ nextScrollLeft = centerMetrics.start - comfortMarginPx;
116
+ }
117
+ else if (centerMetrics.end > visibleRight - comfortMarginPx) {
118
+ nextScrollLeft = centerMetrics.end - viewport.clientWidth + comfortMarginPx;
119
+ }
120
+ nextScrollLeft = Math.max(0, Math.min(maxScrollLeft, nextScrollLeft));
121
+ if (Math.abs(nextScrollLeft - viewport.scrollLeft) >= 1) {
122
+ viewport.scrollLeft = nextScrollLeft;
123
+ options.syncViewport();
124
+ }
125
+ };
126
+ const waitForNextAnimationFrame = async () => {
127
+ if (typeof window === "undefined" || typeof window.requestAnimationFrame !== "function") {
128
+ return;
129
+ }
130
+ await new Promise(resolve => {
131
+ window.requestAnimationFrame(() => resolve());
132
+ });
133
+ };
134
+ const focusResolvedCellWithRetry = async (viewport, rowIndex, columnIndex) => {
135
+ focusResolvedCellOrViewport(viewport, rowIndex, columnIndex);
136
+ await nextTick();
137
+ focusResolvedCellOrViewport(viewport, rowIndex, columnIndex);
138
+ await waitForNextAnimationFrame();
139
+ focusResolvedCellOrViewport(viewport, rowIndex, columnIndex);
140
+ };
102
141
  const ensureKeyboardActiveCellVisible = (rowIndex, columnIndex) => {
103
142
  const viewport = options.bodyViewportRef.value;
104
143
  if (!viewport) {
@@ -133,7 +172,27 @@ export function useDataGridAppActiveCellViewport(options) {
133
172
  }
134
173
  focusResolvedCellOrViewport(viewport, rowIndex, columnIndex);
135
174
  };
175
+ const revealCellInComfortZone = async (rowIndex, columnIndex) => {
176
+ const viewport = options.bodyViewportRef.value;
177
+ if (!viewport) {
178
+ return;
179
+ }
180
+ const targetColumn = options.visibleColumns.value[columnIndex];
181
+ const verticalComfortMarginPx = resolveComfortMarginPx(viewport.clientHeight);
182
+ ensureEstimatedRowVisible(viewport, rowIndex, verticalComfortMarginPx);
183
+ if (targetColumn?.pin === "left" || targetColumn?.pin === "right") {
184
+ await focusResolvedCellWithRetry(viewport, rowIndex, columnIndex);
185
+ return;
186
+ }
187
+ const horizontalComfortMarginPx = resolveComfortMarginPx(viewport.clientWidth);
188
+ const usedDomScrollAlignment = ensureCenterCellVisibleByDomRect(viewport, rowIndex, columnIndex, horizontalComfortMarginPx);
189
+ if (!usedDomScrollAlignment) {
190
+ ensureEstimatedCenterColumnVisible(viewport, columnIndex, horizontalComfortMarginPx);
191
+ }
192
+ await focusResolvedCellWithRetry(viewport, rowIndex, columnIndex);
193
+ };
136
194
  return {
137
195
  ensureKeyboardActiveCellVisible,
196
+ revealCellInComfortZone,
138
197
  };
139
198
  }
@@ -19,6 +19,7 @@ export interface UseDataGridAppClipboardOptions<TRow, TSnapshot> {
19
19
  applySelectionRange: (range: DataGridCopyRange) => void;
20
20
  clearCellSelection: () => void;
21
21
  captureRowsSnapshot: () => TSnapshot;
22
+ captureRowsSnapshotForRowIds?: (rowIds: readonly (string | number)[]) => TSnapshot;
22
23
  recordEditTransaction: (beforeSnapshot: TSnapshot) => void;
23
24
  readCell: (row: DataGridRowNode<TRow>, columnKey: string) => string;
24
25
  readClipboardCell?: (row: DataGridRowNode<TRow>, columnKey: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"useDataGridAppClipboard.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppClipboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDataGridAppClipboard.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppClipboard.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,9 @@ export function useDataGridAppClipboard(options) {
9
9
  const lastCopiedPayload = ref("");
10
10
  const pendingClipboardOperation = ref("none");
11
11
  const pendingClipboardRange = ref(null);
12
+ const captureRowsSnapshotForRowIds = (rowIds) => {
13
+ return options.captureRowsSnapshotForRowIds?.(rowIds) ?? options.captureRowsSnapshot();
14
+ };
12
15
  const normalizeClipboardRange = (range) => {
13
16
  const rowCount = options.totalRows.value;
14
17
  const columnCount = options.visibleColumns.value.length;
@@ -33,6 +36,23 @@ export function useDataGridAppClipboard(options) {
33
36
  resolveSelectionRange: options.resolveSelectionRange,
34
37
  resolveCurrentCellCoord: options.resolveCurrentCellCoord,
35
38
  });
39
+ const collectBodyRowIdsInRange = (range) => {
40
+ const normalized = range ? normalizeClipboardRange(range) : null;
41
+ if (!normalized) {
42
+ return [];
43
+ }
44
+ const rowIds = [];
45
+ const seen = new Set();
46
+ for (let rowIndex = normalized.startRow; rowIndex <= normalized.endRow; rowIndex += 1) {
47
+ const row = getBodyRowAtIndex(rowIndex);
48
+ if (!row || row.rowId == null || row.kind === "group" || seen.has(row.rowId)) {
49
+ continue;
50
+ }
51
+ seen.add(row.rowId);
52
+ rowIds.push(row.rowId);
53
+ }
54
+ return rowIds;
55
+ };
36
56
  const clipboardBridge = useDataGridClipboardBridge({
37
57
  copiedSelectionRange,
38
58
  lastCopiedPayload,
@@ -77,7 +97,9 @@ export function useDataGridAppClipboard(options) {
77
97
  if (editsByRowId.size === 0) {
78
98
  return 0;
79
99
  }
80
- const beforeSnapshot = applyOptions.recordHistory === false ? null : options.captureRowsSnapshot();
100
+ const beforeSnapshot = applyOptions.recordHistory === false
101
+ ? null
102
+ : captureRowsSnapshotForRowIds(Array.from(editsByRowId.keys()));
81
103
  const updates = Array.from(editsByRowId.entries(), ([rowId, data]) => ({
82
104
  rowId,
83
105
  data: data,
@@ -187,7 +209,10 @@ export function useDataGridAppClipboard(options) {
187
209
  void trigger;
188
210
  return true;
189
211
  }
190
- const beforeSnapshot = options.captureRowsSnapshot();
212
+ const beforeSnapshot = captureRowsSnapshotForRowIds([
213
+ ...collectBodyRowIdsInRange(pendingSourceRange),
214
+ ...collectBodyRowIdsInRange(normalizedTargetRange),
215
+ ]);
191
216
  if (pendingOperation === "cut" && pendingSourceRange) {
192
217
  applyClipboardEdits(pendingSourceRange, [[""]], { recordHistory: false });
193
218
  }
@@ -29,6 +29,7 @@ export interface UseDataGridAppInlineEditingOptions<TRow, TSnapshot> {
29
29
  ensureActiveCellVisible: (rowIndex: number, columnIndex: number) => void;
30
30
  isCellEditable: (row: DataGridRowNode<TRow>, rowIndex: number, columnKey: string, columnIndex: number) => boolean;
31
31
  captureRowsSnapshot: () => TSnapshot;
32
+ captureRowsSnapshotForRowIds?: (rowIds: readonly (string | number)[]) => TSnapshot;
32
33
  recordEditTransaction: (beforeSnapshot: TSnapshot) => void;
33
34
  }
34
35
  export interface UseDataGridAppInlineEditingResult<TRow> {
@@ -38,6 +39,8 @@ export interface UseDataGridAppInlineEditingResult<TRow> {
38
39
  editingCellOpenOnMount: Ref<boolean>;
39
40
  isEditingCell: (row: DataGridRowNode<TRow>, columnKey: string) => boolean;
40
41
  startInlineEdit: (row: DataGridRowNode<TRow>, columnKey: string, options?: DataGridAppInlineEditStartOptions) => void;
42
+ appendInlineEditTextInput: (value: string) => boolean;
43
+ handleEditorBlur: () => void;
41
44
  commitInlineEdit: (targetOrEvent?: DataGridAppInlineEditCommitTarget | boolean | FocusEvent) => void;
42
45
  cancelInlineEdit: () => void;
43
46
  handleEditorKeydown: (event: KeyboardEvent) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useDataGridAppInlineEditing.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppInlineEditing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDataGridAppInlineEditing.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppInlineEditing.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ export function useDataGridAppInlineEditing(options) {
5
5
  const editingCellValue = ref("");
6
6
  const editingCellInitialFilter = ref("");
7
7
  const editingCellOpenOnMount = ref(false);
8
+ const editingCellEditorMode = ref("none");
9
+ const suppressNextBlurCommit = ref(false);
8
10
  const resolveBodyRowIndexById = options.resolveBodyRowIndexById ?? options.resolveRowIndexById ?? (() => -1);
9
11
  const getBodyRowAtIndex = (rowIndex) => {
10
12
  const runtime = options.runtime;
@@ -72,10 +74,38 @@ export function useDataGridAppInlineEditing(options) {
72
74
  // Browsers can require a direct user gesture for showPicker; focus should still succeed.
73
75
  }
74
76
  };
77
+ const resolveEditorSearchRoot = () => {
78
+ const viewport = options.bodyViewportRef.value;
79
+ if (!viewport) {
80
+ return null;
81
+ }
82
+ const stageRoot = viewport.closest(".grid-stage");
83
+ return stageRoot ?? viewport;
84
+ };
85
+ const resolveActiveInlineEditor = () => {
86
+ const root = resolveEditorSearchRoot();
87
+ if (!root) {
88
+ return null;
89
+ }
90
+ const currentEditingCell = editingCell.value;
91
+ if (!currentEditingCell) {
92
+ return root.querySelector(".cell-editor-control");
93
+ }
94
+ const editors = root.querySelectorAll(".cell-editor-control");
95
+ const editingRowId = String(currentEditingCell.rowId);
96
+ for (const editor of editors) {
97
+ const hostCell = editor.closest(".grid-cell");
98
+ if (hostCell?.dataset.rowId === editingRowId
99
+ && hostCell.dataset.columnKey === currentEditingCell.columnKey) {
100
+ return editor;
101
+ }
102
+ }
103
+ return root.querySelector(".cell-editor-control");
104
+ };
75
105
  const focusInlineEditor = () => {
76
106
  void nextTick(() => {
77
107
  const applyFocus = () => {
78
- const editor = options.bodyViewportRef.value?.querySelector(".cell-editor-control");
108
+ const editor = resolveActiveInlineEditor();
79
109
  if (!editor) {
80
110
  return;
81
111
  }
@@ -97,7 +127,13 @@ export function useDataGridAppInlineEditing(options) {
97
127
  if (typeof window !== "undefined") {
98
128
  window.requestAnimationFrame(() => {
99
129
  applyFocus();
130
+ window.requestAnimationFrame(() => {
131
+ applyFocus();
132
+ });
100
133
  });
134
+ window.setTimeout(() => {
135
+ applyFocus();
136
+ }, 0);
101
137
  }
102
138
  });
103
139
  };
@@ -106,6 +142,7 @@ export function useDataGridAppInlineEditing(options) {
106
142
  editingCellValue.value = "";
107
143
  editingCellInitialFilter.value = "";
108
144
  editingCellOpenOnMount.value = false;
145
+ editingCellEditorMode.value = "none";
109
146
  };
110
147
  const focusAfterInlineEdit = (rowId, columnKey, target) => {
111
148
  const columnIndex = options.visibleColumns.value.findIndex(column => column.key === columnKey);
@@ -225,7 +262,27 @@ export function useDataGridAppInlineEditing(options) {
225
262
  ? ""
226
263
  : (startOptions.draftValue ?? "");
227
264
  editingCellOpenOnMount.value = startOptions.openOnMount === true;
265
+ editingCellEditorMode.value = editorMode;
266
+ suppressNextBlurCommit.value = false;
267
+ focusInlineEditor();
268
+ };
269
+ const appendInlineEditTextInput = (value) => {
270
+ if (!editingCell.value || value.length === 0) {
271
+ return false;
272
+ }
273
+ if (editingCellEditorMode.value === "none"
274
+ || editingCellEditorMode.value === "date"
275
+ || editingCellEditorMode.value === "datetime") {
276
+ return false;
277
+ }
278
+ if (editingCellEditorMode.value === "select") {
279
+ editingCellInitialFilter.value += value;
280
+ focusInlineEditor();
281
+ return true;
282
+ }
283
+ editingCellValue.value += value;
228
284
  focusInlineEditor();
285
+ return true;
229
286
  };
230
287
  const commitInlineEdit = (targetOrEvent = "stay") => {
231
288
  const currentEditingCell = editingCell.value;
@@ -237,7 +294,8 @@ export function useDataGridAppInlineEditing(options) {
237
294
  : typeof targetOrEvent === "boolean"
238
295
  ? (targetOrEvent ? "next" : "stay")
239
296
  : "stay";
240
- const beforeSnapshot = options.captureRowsSnapshot();
297
+ const beforeSnapshot = options.captureRowsSnapshotForRowIds?.([currentEditingCell.rowId])
298
+ ?? options.captureRowsSnapshot();
241
299
  const rowIndex = resolveBodyRowIndexById(currentEditingCell.rowId);
242
300
  const rowNode = rowIndex >= 0 ? getBodyRowAtIndex(rowIndex) : null;
243
301
  const columnSnapshot = options.visibleColumns.value.find(column => column.key === currentEditingCell.columnKey);
@@ -258,16 +316,25 @@ export function useDataGridAppInlineEditing(options) {
258
316
  ]);
259
317
  options.recordEditTransaction(beforeSnapshot);
260
318
  clearInlineEdit();
319
+ suppressNextBlurCommit.value = false;
261
320
  focusAfterInlineEdit(currentEditingCell.rowId, currentEditingCell.columnKey, target);
262
321
  };
263
322
  const cancelInlineEdit = () => {
264
323
  const currentEditingCell = editingCell.value;
324
+ suppressNextBlurCommit.value = true;
265
325
  clearInlineEdit();
266
326
  if (!currentEditingCell) {
267
327
  return;
268
328
  }
269
329
  focusAfterInlineEdit(currentEditingCell.rowId, currentEditingCell.columnKey, "stay");
270
330
  };
331
+ const handleEditorBlur = () => {
332
+ if (suppressNextBlurCommit.value) {
333
+ suppressNextBlurCommit.value = false;
334
+ return;
335
+ }
336
+ commitInlineEdit();
337
+ };
271
338
  const handleEditorKeydown = (event) => {
272
339
  if (event.key === "Tab") {
273
340
  event.preventDefault();
@@ -294,8 +361,10 @@ export function useDataGridAppInlineEditing(options) {
294
361
  editingCellOpenOnMount,
295
362
  isEditingCell,
296
363
  startInlineEdit,
364
+ appendInlineEditTextInput,
297
365
  commitInlineEdit,
298
366
  cancelInlineEdit,
299
367
  handleEditorKeydown,
368
+ handleEditorBlur,
300
369
  };
301
370
  }
@@ -1,18 +1,20 @@
1
1
  import { useDataGridIntentHistory } from "../advanced";
2
2
  import type { UseDataGridRuntimeResult } from "../composables/useDataGridRuntime";
3
3
  export interface DataGridAppRowSnapshot<TRow> {
4
+ kind: "full" | "partial";
4
5
  rows: Array<{
5
6
  rowId: string | number;
6
7
  row: TRow;
7
8
  }>;
8
9
  }
9
10
  export interface UseDataGridAppIntentHistoryOptions<TRow> {
10
- runtime: Pick<UseDataGridRuntimeResult<TRow>, "api">;
11
+ runtime: Pick<UseDataGridRuntimeResult<TRow>, "api" | "getBodyRowAtIndex" | "resolveBodyRowIndexById">;
11
12
  cloneRowData: (row: TRow) => TRow;
12
13
  syncViewport: () => void;
13
14
  }
14
15
  export interface UseDataGridAppIntentHistoryResult<TRow> {
15
16
  captureRowsSnapshot: () => DataGridAppRowSnapshot<TRow>;
17
+ captureRowsSnapshotByIds: (rowIds: readonly (string | number)[]) => DataGridAppRowSnapshot<TRow>;
16
18
  canUndo: ReturnType<typeof useDataGridIntentHistory<DataGridAppRowSnapshot<TRow>>>["canUndo"];
17
19
  canRedo: ReturnType<typeof useDataGridIntentHistory<DataGridAppRowSnapshot<TRow>>>["canRedo"];
18
20
  runHistoryAction: ReturnType<typeof useDataGridIntentHistory<DataGridAppRowSnapshot<TRow>>>["runHistoryAction"];
@@ -1 +1 @@
1
- {"version":3,"file":"useDataGridAppIntentHistory.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppIntentHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AAEjF,MAAM,WAAW,sBAAsB,CAAC,IAAI;IAC1C,IAAI,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,CAAC,CAAA;CACnD;AAED,MAAM,WAAW,kCAAkC,CAAC,IAAI;IACtD,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;IACpD,YAAY,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAA;IACjC,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,iCAAiC,CAAC,IAAI;IACrD,mBAAmB,EAAE,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAA;IACvD,OAAO,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC7F,OAAO,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC7F,gBAAgB,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAA;IAC/G,uBAAuB,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAA;IAC7H,OAAO,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;CAC9F;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAC9C,OAAO,EAAE,kCAAkC,CAAC,IAAI,CAAC,GAChD,iCAAiC,CAAC,IAAI,CAAC,CAqCzC"}
1
+ {"version":3,"file":"useDataGridAppIntentHistory.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppIntentHistory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AAEjF,MAAM,WAAW,sBAAsB,CAAC,IAAI;IAC1C,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,IAAI,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,CAAC,CAAA;CACnD;AAED,MAAM,WAAW,kCAAkC,CAAC,IAAI;IACtD,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,mBAAmB,GAAG,yBAAyB,CAAC,CAAA;IACtG,YAAY,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAA;IACjC,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,iCAAiC,CAAC,IAAI;IACrD,mBAAmB,EAAE,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAA;IACvD,wBAAwB,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,sBAAsB,CAAC,IAAI,CAAC,CAAA;IAChG,OAAO,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC7F,OAAO,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC7F,gBAAgB,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAA;IAC/G,uBAAuB,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAA;IAC7H,OAAO,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;CAC9F;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAC9C,OAAO,EAAE,kCAAkC,CAAC,IAAI,CAAC,GAChD,iCAAiC,CAAC,IAAI,CAAC,CAiGzC"}
@@ -1,5 +1,19 @@
1
1
  import { useDataGridIntentHistory } from "../advanced";
2
2
  export function useDataGridAppIntentHistory(options) {
3
+ const resolveRuntimeRowById = (rowId) => {
4
+ const rowIndex = options.runtime.resolveBodyRowIndexById(rowId);
5
+ if (rowIndex >= 0) {
6
+ return options.runtime.getBodyRowAtIndex(rowIndex) ?? options.runtime.api.rows.get(rowIndex);
7
+ }
8
+ const count = options.runtime.api.rows.getCount();
9
+ for (let candidateIndex = 0; candidateIndex < count; candidateIndex += 1) {
10
+ const candidate = options.runtime.api.rows.get(candidateIndex);
11
+ if (candidate?.rowId === rowId) {
12
+ return candidate;
13
+ }
14
+ }
15
+ return null;
16
+ };
3
17
  const captureRowsSnapshot = () => {
4
18
  const count = options.runtime.api.rows.getCount();
5
19
  const snapshotRows = [];
@@ -13,11 +27,40 @@ export function useDataGridAppIntentHistory(options) {
13
27
  row: options.cloneRowData(node.data),
14
28
  });
15
29
  }
16
- return { rows: snapshotRows };
30
+ return { kind: "full", rows: snapshotRows };
31
+ };
32
+ const captureRowsSnapshotByIds = (rowIds) => {
33
+ const snapshotRows = [];
34
+ const seen = new Set();
35
+ for (const rowId of rowIds) {
36
+ if (seen.has(rowId)) {
37
+ continue;
38
+ }
39
+ seen.add(rowId);
40
+ const node = resolveRuntimeRowById(rowId);
41
+ if (!node || node.rowId == null || node.kind === "group") {
42
+ continue;
43
+ }
44
+ snapshotRows.push({
45
+ rowId: node.rowId,
46
+ row: options.cloneRowData(node.data),
47
+ });
48
+ }
49
+ return { kind: "partial", rows: snapshotRows };
17
50
  };
18
51
  const intentHistory = useDataGridIntentHistory({
19
52
  captureSnapshot: captureRowsSnapshot,
20
53
  applySnapshot: snapshot => {
54
+ if (snapshot.kind === "partial") {
55
+ if (snapshot.rows.length > 0) {
56
+ options.runtime.api.rows.applyEdits(snapshot.rows.map(entry => ({
57
+ rowId: entry.rowId,
58
+ data: options.cloneRowData(entry.row),
59
+ })));
60
+ }
61
+ options.syncViewport();
62
+ return;
63
+ }
21
64
  options.runtime.api.rows.setData(snapshot.rows.map((entry, index) => ({
22
65
  rowId: entry.rowId,
23
66
  originalIndex: index,
@@ -26,12 +69,20 @@ export function useDataGridAppIntentHistory(options) {
26
69
  options.syncViewport();
27
70
  },
28
71
  });
72
+ const recordIntentTransaction = (descriptor, beforeSnapshot, afterSnapshotOverride) => {
73
+ const afterSnapshot = afterSnapshotOverride
74
+ ?? (beforeSnapshot.kind === "partial"
75
+ ? captureRowsSnapshotByIds(beforeSnapshot.rows.map(entry => entry.rowId))
76
+ : captureRowsSnapshot());
77
+ return intentHistory.recordIntentTransaction(descriptor, beforeSnapshot, afterSnapshot);
78
+ };
29
79
  return {
30
80
  captureRowsSnapshot,
81
+ captureRowsSnapshotByIds,
31
82
  canUndo: intentHistory.canUndo,
32
83
  canRedo: intentHistory.canRedo,
33
84
  runHistoryAction: intentHistory.runHistoryAction,
34
- recordIntentTransaction: intentHistory.recordIntentTransaction,
85
+ recordIntentTransaction,
35
86
  dispose: intentHistory.dispose,
36
87
  };
37
88
  }
@@ -33,6 +33,7 @@ export interface UseDataGridAppInteractionControllerOptions<TRow extends Record<
33
33
  cloneRowData: (row: TRow) => TRow;
34
34
  resolveRowIndexById?: (rowId: string | number) => number;
35
35
  captureRowsSnapshot: () => TSnapshot;
36
+ captureRowsSnapshotForRowIds?: (rowIds: readonly (string | number)[]) => TSnapshot;
36
37
  recordIntentTransaction: (descriptor: {
37
38
  intent: string;
38
39
  label: string;
@@ -59,6 +60,8 @@ export interface UseDataGridAppInteractionControllerOptions<TRow extends Record<
59
60
  draftValue?: string;
60
61
  openOnMount?: boolean;
61
62
  }) => void;
63
+ appendInlineEditTextInput?: (value: string) => boolean;
64
+ cancelInlineEdit: () => void;
62
65
  commitInlineEdit: (target?: "stay" | "next" | "previous") => void;
63
66
  canUndo: () => boolean;
64
67
  canRedo: () => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"useDataGridAppInteractionController.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppInteractionController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDataGridAppInteractionController.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppInteractionController.ts"],"names":[],"mappings":"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"}
@@ -97,7 +97,7 @@ export function useDataGridAppInteractionController(options) {
97
97
  if (row.kind === "group" || row.rowId == null) {
98
98
  return false;
99
99
  }
100
- const beforeSnapshot = options.captureRowsSnapshot();
100
+ const beforeSnapshot = options.captureRowsSnapshotForRowIds?.([row.rowId]) ?? options.captureRowsSnapshot();
101
101
  options.runtime.api.rows.applyEdits([
102
102
  {
103
103
  rowId: row.rowId,
@@ -236,6 +236,30 @@ export function useDataGridAppInteractionController(options) {
236
236
  }
237
237
  return result;
238
238
  };
239
+ const collectRowIdsInRange = (range) => {
240
+ const normalizedRange = range ? options.normalizeClipboardRange(range) : null;
241
+ if (!normalizedRange) {
242
+ return [];
243
+ }
244
+ const rowIds = [];
245
+ const seen = new Set();
246
+ for (let rowIndex = normalizedRange.startRow; rowIndex <= normalizedRange.endRow; rowIndex += 1) {
247
+ const row = getBodyRowAtIndex(rowIndex);
248
+ if (!row || row.rowId == null || row.kind === "group" || seen.has(row.rowId)) {
249
+ continue;
250
+ }
251
+ seen.add(row.rowId);
252
+ rowIds.push(row.rowId);
253
+ }
254
+ return rowIds;
255
+ };
256
+ const captureRowsSnapshotForRanges = (ranges) => {
257
+ const rowIds = [];
258
+ for (const range of ranges) {
259
+ rowIds.push(...collectRowIdsInRange(range));
260
+ }
261
+ return options.captureRowsSnapshotForRowIds?.(rowIds) ?? options.captureRowsSnapshot();
262
+ };
239
263
  const rangeMutationEngine = useDataGridRangeMutationEngine({
240
264
  resolveRangeMoveBaseRange: () => rangeMoveBaseRange.value,
241
265
  resolveRangeMovePreviewRange: () => rangeMovePreviewRange.value,
@@ -378,7 +402,7 @@ export function useDataGridAppInteractionController(options) {
378
402
  if (restartSession && options.rangesEqual(restartSession.baseRange, baseRange)) {
379
403
  const removedRange = resolveRemovedFillRange(restartSession.previewRange, previewRange);
380
404
  if (removedRange) {
381
- const beforeSnapshot = options.captureRowsSnapshot();
405
+ const beforeSnapshot = captureRowsSnapshotForRanges([removedRange, previewRange]);
382
406
  const sourceMatrix = options.buildFillMatrixFromRange(baseRange);
383
407
  const resolvedBehavior = behavior
384
408
  ?? activeFillBehavior.value
@@ -950,7 +974,7 @@ export function useDataGridAppInteractionController(options) {
950
974
  if (!range) {
951
975
  return false;
952
976
  }
953
- const beforeSnapshot = options.captureRowsSnapshot();
977
+ const beforeSnapshot = captureRowsSnapshotForRanges([range]);
954
978
  options.clearPendingClipboardOperation(false);
955
979
  const applied = options.applyClipboardEdits(range, [[""]], { recordHistory: false });
956
980
  if (applied <= 0) {
@@ -1303,6 +1327,15 @@ export function useDataGridAppInteractionController(options) {
1303
1327
  }
1304
1328
  const columnSnapshot = options.visibleColumns.value[columnIndex];
1305
1329
  const columnKey = columnSnapshot?.key;
1330
+ const currentEditingCell = options.editingCell.value;
1331
+ if (event.key === "Escape"
1332
+ && columnKey
1333
+ && currentEditingCell?.rowId === row.rowId
1334
+ && currentEditingCell.columnKey === columnKey) {
1335
+ event.preventDefault();
1336
+ options.cancelInlineEdit();
1337
+ return;
1338
+ }
1306
1339
  const editable = Boolean(columnKey) && options.isCellEditable(row, rowIndex, columnKey, columnIndex);
1307
1340
  const printable = isPrintableEditingKey(event);
1308
1341
  const keyboardAction = columnSnapshot && columnKey
@@ -1315,6 +1348,19 @@ export function useDataGridAppInteractionController(options) {
1315
1348
  printable,
1316
1349
  })
1317
1350
  : "none";
1351
+ // Mirror Excel: Enter navigates vertically for editable cells; typing/F2/double-click opens edit mode.
1352
+ if (event.key === "Enter"
1353
+ && !event.ctrlKey
1354
+ && !event.metaKey
1355
+ && !event.altKey
1356
+ && (keyboardAction !== "invoke" || editable)) {
1357
+ keyboardNavigationExtendsSelection.value = event.shiftKey;
1358
+ const navigationHandled = cellNavigation.dispatchNavigation(event);
1359
+ keyboardNavigationExtendsSelection.value = false;
1360
+ if (navigationHandled) {
1361
+ return;
1362
+ }
1363
+ }
1318
1364
  if (keyboardAction === "toggle" && columnSnapshot && columnKey) {
1319
1365
  event.preventDefault();
1320
1366
  options.setCellSelection(row, rowOffset, columnIndex, event.shiftKey);
@@ -1344,6 +1390,12 @@ export function useDataGridAppInteractionController(options) {
1344
1390
  if ((keyboardAction === "startEdit" || keyboardAction === "openSelect") && columnKey) {
1345
1391
  event.preventDefault();
1346
1392
  if (editable) {
1393
+ if (printable
1394
+ && currentEditingCell?.rowId === row.rowId
1395
+ && currentEditingCell.columnKey === columnKey) {
1396
+ options.appendInlineEditTextInput?.(event.key);
1397
+ return;
1398
+ }
1347
1399
  options.startInlineEdit(row, columnKey, printable || keyboardAction === "openSelect"
1348
1400
  ? {
1349
1401
  draftValue: printable ? event.key : undefined,
@@ -8,7 +8,7 @@ export interface UseDataGridIntentHistoryResult<TSnapshot> {
8
8
  transactionSnapshot: Ref<DataGridTransactionSnapshot>;
9
9
  canUndo: Ref<boolean>;
10
10
  canRedo: Ref<boolean>;
11
- recordIntentTransaction: (descriptor: DataGridIntentTransactionDescriptor, beforeSnapshot: TSnapshot) => Promise<string | null>;
11
+ recordIntentTransaction: (descriptor: DataGridIntentTransactionDescriptor, beforeSnapshot: TSnapshot, afterSnapshotOverride?: TSnapshot) => Promise<string | null>;
12
12
  runHistoryAction: (direction: "undo" | "redo") => Promise<string | null>;
13
13
  dispose: () => void;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useDataGridIntentHistory.d.ts","sourceRoot":"","sources":["../../src/composables/useDataGridIntentHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsD,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAClF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAEL,KAAK,mCAAmC,EACxC,KAAK,+BAA+B,EACrC,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAA;AAEjF,YAAY,EACV,mCAAmC,EACnC,+BAA+B,GAChC,CAAA;AAED,MAAM,WAAW,8BAA8B,CAAC,SAAS;IACvD,kBAAkB,EAAE,8BAA8B,CAAA;IAClD,mBAAmB,EAAE,GAAG,CAAC,2BAA2B,CAAC,CAAA;IACrD,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACrB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACrB,uBAAuB,EAAE,CACvB,UAAU,EAAE,mCAAmC,EAC/C,cAAc,EAAE,SAAS,KACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC3B,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACxE,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAChD,OAAO,EAAE,+BAA+B,CAAC,SAAS,CAAC,GAClD,8BAA8B,CAAC,SAAS,CAAC,CA4B3C"}
1
+ {"version":3,"file":"useDataGridIntentHistory.d.ts","sourceRoot":"","sources":["../../src/composables/useDataGridIntentHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsD,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAClF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAEL,KAAK,mCAAmC,EACxC,KAAK,+BAA+B,EACrC,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAA;AAEjF,YAAY,EACV,mCAAmC,EACnC,+BAA+B,GAChC,CAAA;AAED,MAAM,WAAW,8BAA8B,CAAC,SAAS;IACvD,kBAAkB,EAAE,8BAA8B,CAAA;IAClD,mBAAmB,EAAE,GAAG,CAAC,2BAA2B,CAAC,CAAA;IACrD,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACrB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACrB,uBAAuB,EAAE,CACvB,UAAU,EAAE,mCAAmC,EAC/C,cAAc,EAAE,SAAS,EACzB,qBAAqB,CAAC,EAAE,SAAS,KAC9B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC3B,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACxE,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAChD,OAAO,EAAE,+BAA+B,CAAC,SAAS,CAAC,GAClD,8BAA8B,CAAC,SAAS,CAAC,CA4B3C"}
package/dist/public.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Stable public API for @affino/datagrid-vue.
3
3
  */
4
- export { buildDataGridCellRenderModel, createClientRowModel, createDataSourceBackedRowModel, createServerBackedRowModel, createServerRowModel, createDataGridServerPivotRowId, createDataGridCellTypeRegistry, createDataGridColumnModel, formatDataGridCellValue, invokeDataGridCellInteraction, parseDataGridCellDraftValue, createDataGridSelectionSummary, createInMemoryDataGridSettingsAdapter, buildDataGridAdvancedFilterExpressionFromLegacyFilters, cloneDataGridFilterSnapshot, evaluateColumnPredicateFilter, evaluateDataGridAdvancedFilterExpression, normalizeDataGridAdvancedFilterExpression, resolveDataGridCellInteraction, resolveDataGridCellClickAction, resolveDataGridCellKeyboardAction, resolveDataGridCellType, serializeColumnValueToToken, toggleDataGridCellValue, } from "@affino/datagrid-core";
4
+ export { buildDataGridCellRenderModel, createClientRowModel, createDataSourceBackedRowModel, createServerBackedRowModel, createServerRowModel, createDataGridServerPivotRowId, createDataGridCellTypeRegistry, createDataGridColumnModel, formatDataGridCellValue, getDataGridRowRenderMeta, invokeDataGridCellInteraction, parseDataGridCellDraftValue, createDataGridSelectionSummary, createInMemoryDataGridSettingsAdapter, buildDataGridAdvancedFilterExpressionFromLegacyFilters, cloneDataGridFilterSnapshot, evaluateColumnPredicateFilter, evaluateDataGridAdvancedFilterExpression, normalizeDataGridAdvancedFilterExpression, resolveDataGridCellInteraction, resolveDataGridCellClickAction, resolveDataGridCellKeyboardAction, resolveDataGridCellType, serializeColumnValueToToken, toggleDataGridCellValue, } from "@affino/datagrid-core";
5
5
  export { normalizePivotSpec, clonePivotSpec, isSamePivotSpec, } from "@affino/datagrid-pivot";
6
- export type { CreateDataGridCoreOptions, DataGridCoreServiceRegistry, DataGridAggOp, DataGridAggregationColumnSpec, DataGridAggregationColumnSpecAnyState, DataGridAggregationModel, DataGridAdvancedFilterExpression, DataGridAdvancedFilterCondition, DataGridApiCapabilities, DataGridApiMutationControlOptions, DataGridApiPivotNamespace, DataGridApiRowSelectionNamespace, DataGridApiSelectionNamespace, DataGridApiTransactionNamespace, DataGridApiRowsNamespace, DataGridApiDataNamespace, DataGridApiColumnsNamespace, DataGridApiViewNamespace, DataGridApiComputeNamespace, DataGridApiDiagnosticsNamespace, DataGridApiDiagnosticsSnapshot, DataGridApiFormulaExplainSnapshot, DataGridApiRowModelDiagnostics, DataGridApiLifecycleNamespace, DataGridApiMetaNamespace, DataGridApiSchemaSnapshot, DataGridApiSchemaColumn, DataGridApiRuntimeInfo, DataGridApiPolicyNamespace, DataGridApiProjectionMode, DataGridApiPluginDefinition, DataGridApiPluginsNamespace, DataGridApiStateNamespace, DataGridApiEventsNamespace, DataGridApiEventMap, DataGridApiEventName, DataGridApiEventPayload, DataGridApiErrorCode, DataGridApiErrorEvent, DataGridApiRowSelectionChangedEvent, DataGridApiSelectionChangedEvent, DataGridMigrateStateOptions, DataGridSetStateOptions, DataGridUnifiedRowsState, DataGridUnifiedColumnState, DataGridUnifiedState, DataGridColumnModel, DataGridColumnCapabilities, DataGridCellInteractionInvocationTrigger, DataGridCellInteractionKeyboardTrigger, DataGridCellInteractionRole, DataGridCellInteractionTriState, DataGridColumnCellInteraction, DataGridColumnCellInteractionContext, DataGridColumnCellInteractionInvokeContext, DataGridColumnConstraintValue, DataGridColumnConstraints, DataGridColumnDataType, DataGridColumnDateTimeFormatOptions, DataGridColumnDef, DataGridColumnInitialState, DataGridColumnInput, DataGridColumnOption, DataGridColumnNumberFormatOptions, DataGridColumnModelSnapshot, DataGridColumnPin, DataGridColumnPresentation, DataGridColumnSnapshot, DataGridColumnStateSnapshot, DataGridColumnState, DataGridColumnValueAccessors, BuildDataGridCellRenderModelOptions, CreateDataGridCellTypeRegistryOptions, DataGridCellClickAction, DataGridCellInteractionContext, DataGridCellEditorMode, DataGridCellKeyboardAction, DataGridCellRenderModel, DataGridResolvedCellInteraction, DataGridCellTypeDefinition, DataGridCellTypeId, DataGridCellTypeOption, DataGridCellTypeRegistry, InvokeDataGridCellInteractionOptions, DataGridClientRowPatch, DataGridClientRowPatchOptions, DataGridClientComputeMode, DataGridClientComputeDiagnostics, DataGridClientComputeRequest, DataGridClientComputeTransport, DataGridClientComputeTransportResult, DataGridApi, DataGridClientRowReorderInput, DataGridComputedFieldDefinition, DataGridComputedFieldSnapshot, DataGridCoreServiceContext, DataGridEventEnvelope, DataGridEventPhase, DataGridEventSource, DataGridEventTier, DataGridFilterSnapshot, DataGridGroupBySpec, DataGridGroupExpansionSnapshot, DataGridDataSource, DataGridDataSourceBackpressureDiagnostics, DataGridDataSourceInvalidation, DataGridDataSourcePaginationPullContext, DataGridDataSourcePullPriority, DataGridDataSourcePivotPullContext, DataGridDataSourcePullReason, DataGridDataSourcePullRequest, DataGridDataSourcePullResult, DataGridDataSourceTreePullContext, DataGridDataSourceTreePullOperation, DataGridDataSourceTreePullScope, DataGridDataSourcePushEvent, DataGridDataSourcePushInvalidateEvent, DataGridDataSourcePushListener, DataGridDataSourcePushRemoveEvent, DataGridDataSourcePushUpsertEvent, DataGridDataSourceRowEntry, DataGridServerPivotRowIdInput, DataGridServerPivotRowRole, DataSourceBackedRowModel, CreateDataSourceBackedRowModelOptions, ServerBackedRowModel, CreateServerBackedRowModelOptions, ServerRowModel, ServerRowModelOptions, ServerRowModelFetchResult, DataGridPaginationInput, DataGridPaginationSnapshot, DataGridProjectionDiagnostics, DataGridProjectionMemoryDiagnostics, DataGridProjectionPerformanceDiagnostics, DataGridProjectionPipelineDiagnostics, DataGridProjectionRowCounts, DataGridProjectionStageTimes, DataGridFormulaFieldDefinition, DataGridFormulaFieldSnapshot, DataGridFormulaFunctionDefinition, DataGridFormulaFunctionRegistry, DataGridFormulaComputeStageDiagnostics, DataGridFormulaRowRecomputeDiagnostics, DataGridRowId, DataGridRowSelectionSnapshot, DataGridRowModel, DataGridRowModelSnapshot, DataGridRowNode, DataGridRowNodeInput, DataGridSettingsAdapter, DataGridSelectionAggregationKind, DataGridSelectionSnapshot, DataGridSelectionSnapshotRange, DataGridSelectionSummaryColumnConfig, DataGridSelectionSummarySnapshot, GridSelectionSnapshot, GridSelectionSnapshotRange, DataGridSortDirection, DataGridSortState, DataGridViewportRange, ClientRowModel, CreateClientRowModelOptions, ResolveDataGridCellInteractionOptions, } from "@affino/datagrid-core";
6
+ export type { CreateDataGridCoreOptions, DataGridCoreServiceRegistry, DataGridAggOp, DataGridAggregationColumnSpec, DataGridAggregationColumnSpecAnyState, DataGridAggregationModel, DataGridAdvancedFilterExpression, DataGridAdvancedFilterCondition, DataGridApiCapabilities, DataGridApiMutationControlOptions, DataGridApiPivotNamespace, DataGridApiRowSelectionNamespace, DataGridApiSelectionNamespace, DataGridApiTransactionNamespace, DataGridApiRowsNamespace, DataGridApiDataNamespace, DataGridApiColumnsNamespace, DataGridApiViewNamespace, DataGridApiComputeNamespace, DataGridApiDiagnosticsNamespace, DataGridApiDiagnosticsSnapshot, DataGridApiFormulaExplainSnapshot, DataGridApiRowModelDiagnostics, DataGridApiLifecycleNamespace, DataGridApiMetaNamespace, DataGridApiSchemaSnapshot, DataGridApiSchemaColumn, DataGridApiRuntimeInfo, DataGridApiPolicyNamespace, DataGridApiProjectionMode, DataGridApiPluginDefinition, DataGridApiPluginsNamespace, DataGridApiStateNamespace, DataGridApiEventsNamespace, DataGridApiEventMap, DataGridApiEventName, DataGridApiEventPayload, DataGridApiErrorCode, DataGridApiErrorEvent, DataGridApiRowSelectionChangedEvent, DataGridApiSelectionChangedEvent, DataGridMigrateStateOptions, DataGridSetStateOptions, DataGridUnifiedRowsState, DataGridUnifiedColumnState, DataGridUnifiedState, DataGridColumnModel, DataGridColumnCapabilities, DataGridCellInteractionInvocationTrigger, DataGridCellInteractionKeyboardTrigger, DataGridCellInteractionRole, DataGridCellInteractionTriState, DataGridColumnCellInteraction, DataGridColumnCellInteractionContext, DataGridColumnCellInteractionInvokeContext, DataGridColumnConstraintValue, DataGridColumnConstraints, DataGridColumnDataType, DataGridColumnDateTimeFormatOptions, DataGridColumnDef, DataGridColumnInitialState, DataGridColumnInput, DataGridColumnOption, DataGridColumnNumberFormatOptions, DataGridColumnModelSnapshot, DataGridColumnPin, DataGridColumnPresentation, DataGridColumnSnapshot, DataGridColumnStateSnapshot, DataGridColumnState, DataGridColumnValueAccessors, BuildDataGridCellRenderModelOptions, CreateDataGridCellTypeRegistryOptions, DataGridCellClickAction, DataGridCellInteractionContext, DataGridCellEditorMode, DataGridCellKeyboardAction, DataGridCellRenderModel, DataGridResolvedCellInteraction, DataGridCellTypeDefinition, DataGridCellTypeId, DataGridCellTypeOption, DataGridCellTypeRegistry, InvokeDataGridCellInteractionOptions, DataGridClientRowPatch, DataGridClientRowPatchOptions, DataGridClientComputeMode, DataGridClientComputeDiagnostics, DataGridClientComputeRequest, DataGridClientComputeTransport, DataGridClientComputeTransportResult, DataGridApi, DataGridClientRowReorderInput, DataGridComputedFieldDefinition, DataGridComputedFieldSnapshot, DataGridCoreServiceContext, DataGridEventEnvelope, DataGridEventPhase, DataGridEventSource, DataGridEventTier, DataGridFilterSnapshot, DataGridGroupBySpec, DataGridGroupExpansionSnapshot, DataGridDataSource, DataGridDataSourceBackpressureDiagnostics, DataGridDataSourceInvalidation, DataGridDataSourcePaginationPullContext, DataGridDataSourcePullPriority, DataGridDataSourcePivotPullContext, DataGridDataSourcePullReason, DataGridDataSourcePullRequest, DataGridDataSourcePullResult, DataGridDataSourceTreePullContext, DataGridDataSourceTreePullOperation, DataGridDataSourceTreePullScope, DataGridDataSourcePushEvent, DataGridDataSourcePushInvalidateEvent, DataGridDataSourcePushListener, DataGridDataSourcePushRemoveEvent, DataGridDataSourcePushUpsertEvent, DataGridDataSourceRowEntry, DataGridServerPivotRowIdInput, DataGridServerPivotRowRole, DataSourceBackedRowModel, CreateDataSourceBackedRowModelOptions, ServerBackedRowModel, CreateServerBackedRowModelOptions, ServerRowModel, ServerRowModelOptions, ServerRowModelFetchResult, DataGridPaginationInput, DataGridPaginationSnapshot, DataGridProjectionDiagnostics, DataGridProjectionMemoryDiagnostics, DataGridProjectionPerformanceDiagnostics, DataGridProjectionPipelineDiagnostics, DataGridProjectionRowCounts, DataGridProjectionStageTimes, DataGridFormulaFieldDefinition, DataGridFormulaFieldSnapshot, DataGridFormulaFunctionDefinition, DataGridFormulaFunctionRegistry, DataGridFormulaComputeStageDiagnostics, DataGridFormulaRowRecomputeDiagnostics, DataGridRowId, DataGridRowRenderMeta, DataGridRowSelectionSnapshot, DataGridRowModel, DataGridRowModelSnapshot, DataGridRowNode, DataGridRowNodeInput, DataGridSettingsAdapter, DataGridSelectionAggregationKind, DataGridSelectionSnapshot, DataGridSelectionSnapshotRange, DataGridSelectionSummaryColumnConfig, DataGridSelectionSummarySnapshot, GridSelectionSnapshot, GridSelectionSnapshotRange, DataGridSortDirection, DataGridSortState, DataGridViewportRange, ClientRowModel, CreateClientRowModelOptions, ResolveDataGridCellInteractionOptions, } from "@affino/datagrid-core";
7
7
  export type { DataGridPivotSpec, DataGridPivotValueSpec, DataGridPivotColumn, DataGridPivotColumnPathSegment, DataGridPivotCellDrilldownInput, DataGridPivotCellDrilldown, DataGridPivotLayoutColumnState, DataGridPivotLayoutSnapshot, DataGridPivotLayoutImportOptions, DataGridPivotInteropSnapshot, } from "@affino/datagrid-pivot";
8
8
  export type { DataGridTransactionSnapshot, GridSelectionPointLike, } from "@affino/datagrid-core/advanced";
9
9
  export type { DataGridRuntimeOverrides, } from "@affino/datagrid-orchestration";
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../src/public.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../src/public.ts"],"names":[],"mappings":"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"}
package/dist/public.js CHANGED
@@ -3,7 +3,7 @@
3
3
  */
4
4
  // Curated core facade exports so Vue consumers can stay on @affino/datagrid-vue
5
5
  // for common configuration/state/filter/sort/row-model typing and helper functions.
6
- export { buildDataGridCellRenderModel, createClientRowModel, createDataSourceBackedRowModel, createServerBackedRowModel, createServerRowModel, createDataGridServerPivotRowId, createDataGridCellTypeRegistry, createDataGridColumnModel, formatDataGridCellValue, invokeDataGridCellInteraction, parseDataGridCellDraftValue, createDataGridSelectionSummary, createInMemoryDataGridSettingsAdapter, buildDataGridAdvancedFilterExpressionFromLegacyFilters, cloneDataGridFilterSnapshot, evaluateColumnPredicateFilter, evaluateDataGridAdvancedFilterExpression, normalizeDataGridAdvancedFilterExpression, resolveDataGridCellInteraction, resolveDataGridCellClickAction, resolveDataGridCellKeyboardAction, resolveDataGridCellType, serializeColumnValueToToken, toggleDataGridCellValue, } from "@affino/datagrid-core";
6
+ export { buildDataGridCellRenderModel, createClientRowModel, createDataSourceBackedRowModel, createServerBackedRowModel, createServerRowModel, createDataGridServerPivotRowId, createDataGridCellTypeRegistry, createDataGridColumnModel, formatDataGridCellValue, getDataGridRowRenderMeta, invokeDataGridCellInteraction, parseDataGridCellDraftValue, createDataGridSelectionSummary, createInMemoryDataGridSettingsAdapter, buildDataGridAdvancedFilterExpressionFromLegacyFilters, cloneDataGridFilterSnapshot, evaluateColumnPredicateFilter, evaluateDataGridAdvancedFilterExpression, normalizeDataGridAdvancedFilterExpression, resolveDataGridCellInteraction, resolveDataGridCellClickAction, resolveDataGridCellKeyboardAction, resolveDataGridCellType, serializeColumnValueToToken, toggleDataGridCellValue, } from "@affino/datagrid-core";
7
7
  export { normalizePivotSpec, clonePivotSpec, isSamePivotSpec, } from "@affino/datagrid-pivot";
8
8
  export { createDataGridSettingsAdapter, } from "./dataGridSettingsAdapter";
9
9
  export { useDataGridSettingsStore, } from "./dataGridSettingsStore";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@affino/datagrid-vue",
3
- "version": "0.3.11",
3
+ "version": "0.3.13",
4
4
  "author": "Anton Pavlov <a.pavlov@affino.dev>",
5
5
  "type": "module",
6
6
  "description": "Vue adapter and headless foundation for Affino DataGrid",
@@ -75,11 +75,10 @@
75
75
  }
76
76
  },
77
77
  "dependencies": {
78
- "@affino/menu-vue": "^2.1.1",
79
- "@affino/datagrid-orchestration": "0.3.5",
80
- "@affino/datagrid-pivot": "0.1.1",
78
+ "@affino/datagrid-core": "0.3.9",
79
+ "@affino/datagrid-orchestration": "0.3.6",
81
80
  "@affino/datagrid-worker": "0.1.1",
82
- "@affino/datagrid-core": "0.3.7"
81
+ "@affino/datagrid-pivot": "0.1.1"
83
82
  },
84
83
  "devDependencies": {
85
84
  "@affino/datagrid-theme": "^0.2.2"