@affino/datagrid-vue 0.3.25 → 0.3.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/dataGridFocusRestore.d.ts +6 -0
- package/dist/app/dataGridFocusRestore.d.ts.map +1 -0
- package/dist/app/dataGridFocusRestore.js +37 -0
- package/dist/app/index.d.ts +1 -0
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/index.js +1 -0
- package/dist/app/useDataGridAppActiveCellViewport.d.ts.map +1 -1
- package/dist/app/useDataGridAppActiveCellViewport.js +9 -16
- package/dist/app/useDataGridAppCellSelection.d.ts +1 -0
- package/dist/app/useDataGridAppCellSelection.d.ts.map +1 -1
- package/dist/app/useDataGridAppCellSelection.js +20 -6
- package/dist/app/useDataGridAppInlineEditing.d.ts.map +1 -1
- package/dist/app/useDataGridAppInlineEditing.js +47 -33
- package/dist/app/useDataGridAppInteractionController.d.ts.map +1 -1
- package/dist/app/useDataGridAppInteractionController.js +14 -12
- package/dist/app/useDataGridAppRowSizing.d.ts +1 -0
- package/dist/app/useDataGridAppRowSizing.d.ts.map +1 -1
- package/dist/app/useDataGridAppRowSizing.js +11 -0
- package/dist/app/useDataGridAppSelection.d.ts +1 -0
- package/dist/app/useDataGridAppSelection.d.ts.map +1 -1
- package/dist/app/useDataGridAppSelection.js +1 -1
- package/dist/app/useDataGridAppViewport.d.ts.map +1 -1
- package/dist/app/useDataGridAppViewport.js +15 -0
- package/package.json +2 -2
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface RestoreDataGridFocusOptions {
|
|
2
|
+
animationFramePasses?: number;
|
|
3
|
+
includeTimeoutPass?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function restoreDataGridFocus(applyFocus: () => void, options?: RestoreDataGridFocusOptions): Promise<void>;
|
|
6
|
+
//# sourceMappingURL=dataGridFocusRestore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataGridFocusRestore.d.ts","sourceRoot":"","sources":["../../src/app/dataGridFocusRestore.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,2BAA2B;IAC1C,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AA2BD,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,IAAI,EACtB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,IAAI,CAAC,CAgBf"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { nextTick } from "vue";
|
|
2
|
+
function resolveAnimationFramePasses(value) {
|
|
3
|
+
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
4
|
+
return 1;
|
|
5
|
+
}
|
|
6
|
+
return Math.max(0, Math.trunc(value));
|
|
7
|
+
}
|
|
8
|
+
async function waitForAnimationFrame() {
|
|
9
|
+
if (typeof window === "undefined" || typeof window.requestAnimationFrame !== "function") {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
await new Promise(resolve => {
|
|
13
|
+
window.requestAnimationFrame(() => resolve());
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
async function waitForTimeout() {
|
|
17
|
+
if (typeof window === "undefined") {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
await new Promise(resolve => {
|
|
21
|
+
window.setTimeout(() => resolve(), 0);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
export async function restoreDataGridFocus(applyFocus, options = {}) {
|
|
25
|
+
const animationFramePasses = resolveAnimationFramePasses(options.animationFramePasses);
|
|
26
|
+
applyFocus();
|
|
27
|
+
await nextTick();
|
|
28
|
+
applyFocus();
|
|
29
|
+
for (let passIndex = 0; passIndex < animationFramePasses; passIndex += 1) {
|
|
30
|
+
await waitForAnimationFrame();
|
|
31
|
+
applyFocus();
|
|
32
|
+
}
|
|
33
|
+
if (options.includeTimeoutPass === true) {
|
|
34
|
+
await waitForTimeout();
|
|
35
|
+
applyFocus();
|
|
36
|
+
}
|
|
37
|
+
}
|
package/dist/app/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export type { DataGridAppAdvancedFilterClauseDraft, DataGridAppAdvancedFilterCla
|
|
|
2
2
|
export type { DataGridAppApplyColumnLayoutPayload, DataGridAppColumnLayoutDraftColumn, DataGridAppColumnLayoutPanelItem, DataGridAppColumnLayoutVisibilityPatch, } from "./columnLayoutPanel.types";
|
|
3
3
|
export { useDataGridAppModeMeta, type UseDataGridAppModeMetaOptions, type UseDataGridAppModeMetaResult, } from "./useDataGridAppModeMeta";
|
|
4
4
|
export { createDataGridAppRowHeightMetrics, type DataGridAppRowHeightMutation, type DataGridAppRowHeightMetrics, type DataGridAppRowHeightMetricsOptions, } from "./dataGridRowHeightMetrics";
|
|
5
|
+
export { restoreDataGridFocus, type RestoreDataGridFocusOptions, } from "./dataGridFocusRestore";
|
|
5
6
|
export { useDataGridAppClipboard, type DataGridAppPasteOptions, type DataGridAppPendingClipboardEdge, type DataGridAppPendingClipboardOperation, type UseDataGridAppClipboardOptions, type UseDataGridAppClipboardResult, } from "./useDataGridAppClipboard";
|
|
6
7
|
export { useDataGridAppFill, type UseDataGridAppFillOptions, type UseDataGridAppFillResult, } from "./useDataGridAppFill";
|
|
7
8
|
export { useDataGridAppInteractionController, type UseDataGridAppInteractionControllerOptions, type UseDataGridAppInteractionControllerResult, } from "./useDataGridAppInteractionController";
|
package/dist/app/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"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"}
|
package/dist/app/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { useDataGridAppModeMeta, } from "./useDataGridAppModeMeta";
|
|
2
2
|
export { createDataGridAppRowHeightMetrics, } from "./dataGridRowHeightMetrics";
|
|
3
|
+
export { restoreDataGridFocus, } from "./dataGridFocusRestore";
|
|
3
4
|
export { useDataGridAppClipboard, } from "./useDataGridAppClipboard";
|
|
4
5
|
export { useDataGridAppFill, } from "./useDataGridAppFill";
|
|
5
6
|
export { useDataGridAppInteractionController, } from "./useDataGridAppInteractionController";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataGridAppActiveCellViewport.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppActiveCellViewport.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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;AAGnE,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,CAqPxC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {} from "vue";
|
|
2
|
+
import { restoreDataGridFocus } from "./dataGridFocusRestore";
|
|
2
3
|
export function useDataGridAppActiveCellViewport(options) {
|
|
3
4
|
const defaultColumnWidth = options.defaultColumnWidth ?? 140;
|
|
4
5
|
const visibilityMarginPx = 2;
|
|
@@ -123,20 +124,10 @@ export function useDataGridAppActiveCellViewport(options) {
|
|
|
123
124
|
options.syncViewport();
|
|
124
125
|
}
|
|
125
126
|
};
|
|
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
127
|
const focusResolvedCellWithRetry = async (viewport, rowIndex, columnIndex) => {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
await waitForNextAnimationFrame();
|
|
139
|
-
focusResolvedCellOrViewport(viewport, rowIndex, columnIndex);
|
|
128
|
+
await restoreDataGridFocus(() => {
|
|
129
|
+
focusResolvedCellOrViewport(viewport, rowIndex, columnIndex);
|
|
130
|
+
});
|
|
140
131
|
};
|
|
141
132
|
const ensureKeyboardActiveCellVisible = (rowIndex, columnIndex) => {
|
|
142
133
|
const viewport = options.bodyViewportRef.value;
|
|
@@ -144,7 +135,7 @@ export function useDataGridAppActiveCellViewport(options) {
|
|
|
144
135
|
return;
|
|
145
136
|
}
|
|
146
137
|
const targetColumn = options.visibleColumns.value[columnIndex];
|
|
147
|
-
ensureEstimatedRowVisible(viewport, rowIndex);
|
|
138
|
+
ensureEstimatedRowVisible(viewport, rowIndex, 0);
|
|
148
139
|
if (targetColumn?.pin === "left" || targetColumn?.pin === "right") {
|
|
149
140
|
focusResolvedCellOrViewport(viewport, rowIndex, columnIndex);
|
|
150
141
|
return;
|
|
@@ -170,7 +161,9 @@ export function useDataGridAppActiveCellViewport(options) {
|
|
|
170
161
|
}
|
|
171
162
|
}
|
|
172
163
|
}
|
|
173
|
-
|
|
164
|
+
void restoreDataGridFocus(() => {
|
|
165
|
+
focusResolvedCellOrViewport(viewport, rowIndex, columnIndex);
|
|
166
|
+
});
|
|
174
167
|
};
|
|
175
168
|
const revealCellInComfortZone = async (rowIndex, columnIndex) => {
|
|
176
169
|
const viewport = options.bodyViewportRef.value;
|
|
@@ -15,6 +15,7 @@ export interface UseDataGridAppCellSelectionOptions<TRow> {
|
|
|
15
15
|
totalRows: Ref<number>;
|
|
16
16
|
visibleColumns: Ref<readonly DataGridColumnSnapshot[]>;
|
|
17
17
|
viewportRowStart: Ref<number>;
|
|
18
|
+
resolveRowIndex?: (rowOffset: number) => number;
|
|
18
19
|
selectionSnapshot: Ref<DataGridSelectionSnapshot | null>;
|
|
19
20
|
selectionAnchor: Ref<GridSelectionPointLike<DataGridRowId> | null>;
|
|
20
21
|
isEditingCell: (row: DataGridRowNode<TRow>, columnKey: string) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataGridAppCellSelection.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppCellSelection.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useDataGridAppCellSelection.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppCellSelection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { createGridSelectionRange } from "../advanced";
|
|
2
2
|
export function useDataGridAppCellSelection(options) {
|
|
3
|
+
const resolveRowIndex = (rowOffset) => {
|
|
4
|
+
if (typeof options.resolveRowIndex === "function") {
|
|
5
|
+
return options.resolveRowIndex(rowOffset);
|
|
6
|
+
}
|
|
7
|
+
return options.viewportRowStart.value + rowOffset;
|
|
8
|
+
};
|
|
3
9
|
const supportsCellSelectionMode = () => {
|
|
4
10
|
return options.mode.value === "base" || options.mode.value === "tree" || options.mode.value === "worker";
|
|
5
11
|
};
|
|
@@ -261,11 +267,19 @@ export function useDataGridAppCellSelection(options) {
|
|
|
261
267
|
if (options.isEditingCell(row, options.visibleColumns.value[columnIndex]?.key ?? "")) {
|
|
262
268
|
return;
|
|
263
269
|
}
|
|
264
|
-
|
|
265
|
-
|
|
270
|
+
const rowIndex = Number.isFinite(row.displayIndex)
|
|
271
|
+
? Math.max(0, Math.trunc(row.displayIndex))
|
|
272
|
+
: resolveRowIndex(rowOffset);
|
|
273
|
+
const coord = {
|
|
274
|
+
rowIndex,
|
|
266
275
|
columnIndex,
|
|
267
276
|
rowId: row.rowId ?? null,
|
|
268
|
-
}
|
|
277
|
+
};
|
|
278
|
+
if (additive) {
|
|
279
|
+
applyCellSelectionByCoord(coord, extend, undefined, true);
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
applyCellSelectionByCoord(coord, extend);
|
|
269
283
|
};
|
|
270
284
|
const clearCellSelection = () => {
|
|
271
285
|
options.selectionAnchor.value = null;
|
|
@@ -277,7 +291,7 @@ export function useDataGridAppCellSelection(options) {
|
|
|
277
291
|
if (ranges.length === 0) {
|
|
278
292
|
return false;
|
|
279
293
|
}
|
|
280
|
-
const rowIndex =
|
|
294
|
+
const rowIndex = resolveRowIndex(rowOffset);
|
|
281
295
|
return ranges.some(range => (rowIndex >= range.startRow
|
|
282
296
|
&& rowIndex <= range.endRow
|
|
283
297
|
&& columnIndex >= range.startColumn
|
|
@@ -288,7 +302,7 @@ export function useDataGridAppCellSelection(options) {
|
|
|
288
302
|
if (!anchor) {
|
|
289
303
|
return false;
|
|
290
304
|
}
|
|
291
|
-
const rowIndex =
|
|
305
|
+
const rowIndex = resolveRowIndex(rowOffset);
|
|
292
306
|
return rowIndex === anchor.rowIndex && columnIndex === anchor.columnIndex;
|
|
293
307
|
};
|
|
294
308
|
const shouldHighlightSelectedCell = (rowOffset, columnIndex) => {
|
|
@@ -309,7 +323,7 @@ export function useDataGridAppCellSelection(options) {
|
|
|
309
323
|
if (ranges.length === 0 || !isCellSelected(rowOffset, columnIndex)) {
|
|
310
324
|
return false;
|
|
311
325
|
}
|
|
312
|
-
const rowIndex =
|
|
326
|
+
const rowIndex = resolveRowIndex(rowOffset);
|
|
313
327
|
return ranges.some(range => {
|
|
314
328
|
if (rowIndex < range.startRow
|
|
315
329
|
|| rowIndex > range.endRow
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataGridAppInlineEditing.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppInlineEditing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAC7C,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"useDataGridAppInlineEditing.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppInlineEditing.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { nextTick, ref } from "vue";
|
|
2
2
|
import { buildDataGridCellRenderModel, parseDataGridCellDraftValue, } from "@affino/datagrid-core";
|
|
3
|
+
import { restoreDataGridFocus } from "./dataGridFocusRestore";
|
|
3
4
|
export function useDataGridAppInlineEditing(options) {
|
|
4
5
|
const editingCell = ref(null);
|
|
5
6
|
const editingCellValue = ref("");
|
|
@@ -103,38 +104,28 @@ export function useDataGridAppInlineEditing(options) {
|
|
|
103
104
|
return root.querySelector(".cell-editor-control");
|
|
104
105
|
};
|
|
105
106
|
const focusInlineEditor = () => {
|
|
106
|
-
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
if (editor
|
|
114
|
-
if (editor.type === "date" || editor.type === "datetime-local") {
|
|
115
|
-
tryShowNativePicker(editor);
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
const caretPosition = editor.value.length;
|
|
119
|
-
editor.setSelectionRange(caretPosition, caretPosition);
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
if (editor instanceof HTMLSelectElement) {
|
|
107
|
+
const applyFocus = () => {
|
|
108
|
+
const editor = resolveActiveInlineEditor();
|
|
109
|
+
if (!editor) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
editor.focus({ preventScroll: true });
|
|
113
|
+
if (editor instanceof HTMLInputElement) {
|
|
114
|
+
if (editor.type === "date" || editor.type === "datetime-local") {
|
|
123
115
|
tryShowNativePicker(editor);
|
|
116
|
+
return;
|
|
124
117
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
applyFocus();
|
|
132
|
-
});
|
|
133
|
-
});
|
|
134
|
-
window.setTimeout(() => {
|
|
135
|
-
applyFocus();
|
|
136
|
-
}, 0);
|
|
118
|
+
const caretPosition = editor.value.length;
|
|
119
|
+
editor.setSelectionRange(caretPosition, caretPosition);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
if (editor instanceof HTMLSelectElement) {
|
|
123
|
+
tryShowNativePicker(editor);
|
|
137
124
|
}
|
|
125
|
+
};
|
|
126
|
+
void restoreDataGridFocus(applyFocus, {
|
|
127
|
+
animationFramePasses: 2,
|
|
128
|
+
includeTimeoutPass: true,
|
|
138
129
|
});
|
|
139
130
|
};
|
|
140
131
|
const clearInlineEdit = () => {
|
|
@@ -144,7 +135,14 @@ export function useDataGridAppInlineEditing(options) {
|
|
|
144
135
|
editingCellOpenOnMount.value = false;
|
|
145
136
|
editingCellEditorMode.value = "none";
|
|
146
137
|
};
|
|
147
|
-
const
|
|
138
|
+
const restoreViewportFocus = () => {
|
|
139
|
+
void restoreDataGridFocus(() => {
|
|
140
|
+
options.bodyViewportRef.value?.focus({ preventScroll: true });
|
|
141
|
+
}, {
|
|
142
|
+
includeTimeoutPass: true,
|
|
143
|
+
});
|
|
144
|
+
};
|
|
145
|
+
const focusAfterInlineEdit = (rowId, columnKey, target, settings = {}) => {
|
|
148
146
|
const columnIndex = options.visibleColumns.value.findIndex(column => column.key === columnKey);
|
|
149
147
|
if (columnIndex < 0) {
|
|
150
148
|
return;
|
|
@@ -231,6 +229,9 @@ export function useDataGridAppInlineEditing(options) {
|
|
|
231
229
|
});
|
|
232
230
|
void nextTick(() => {
|
|
233
231
|
options.ensureActiveCellVisible(nextCoord.rowIndex, nextCoord.columnIndex);
|
|
232
|
+
if (settings.restoreViewportFocus === true) {
|
|
233
|
+
restoreViewportFocus();
|
|
234
|
+
}
|
|
234
235
|
});
|
|
235
236
|
};
|
|
236
237
|
const startInlineEdit = (row, columnKey, startOptions = {}) => {
|
|
@@ -295,8 +296,14 @@ export function useDataGridAppInlineEditing(options) {
|
|
|
295
296
|
? (targetOrEvent ? "next" : "stay")
|
|
296
297
|
: "stay";
|
|
297
298
|
const rowIndex = resolveBodyRowIndexById(currentEditingCell.rowId);
|
|
299
|
+
const backingRowNode = rowIndex >= 0 ? options.runtime.api.rows.get(rowIndex) ?? null : null;
|
|
298
300
|
let rowNode = rowIndex >= 0 ? getBodyRowAtIndex(rowIndex) : null;
|
|
299
|
-
const
|
|
301
|
+
const requiresFullSnapshot = rowIndex < 0
|
|
302
|
+
|| !backingRowNode
|
|
303
|
+
|| backingRowNode.rowId !== currentEditingCell.rowId;
|
|
304
|
+
const beforeSnapshot = !requiresFullSnapshot && typeof options.captureRowsSnapshotForRowIds === "function"
|
|
305
|
+
? options.captureRowsSnapshotForRowIds([currentEditingCell.rowId])
|
|
306
|
+
: options.captureRowsSnapshot();
|
|
300
307
|
if (rowIndex >= 0 && typeof options.ensureEditableRowAtIndex === "function") {
|
|
301
308
|
rowNode = options.ensureEditableRowAtIndex(rowIndex) ?? rowNode;
|
|
302
309
|
}
|
|
@@ -321,7 +328,12 @@ export function useDataGridAppInlineEditing(options) {
|
|
|
321
328
|
clearInlineEdit();
|
|
322
329
|
suppressNextBlurCommit.value = false;
|
|
323
330
|
if (target !== "none") {
|
|
324
|
-
focusAfterInlineEdit(resolvedRowId, currentEditingCell.columnKey, target
|
|
331
|
+
focusAfterInlineEdit(resolvedRowId, currentEditingCell.columnKey, target, {
|
|
332
|
+
restoreViewportFocus: target === "next"
|
|
333
|
+
|| target === "previous"
|
|
334
|
+
|| target === "below"
|
|
335
|
+
|| target === "above",
|
|
336
|
+
});
|
|
325
337
|
}
|
|
326
338
|
};
|
|
327
339
|
const cancelInlineEdit = () => {
|
|
@@ -331,7 +343,9 @@ export function useDataGridAppInlineEditing(options) {
|
|
|
331
343
|
if (!currentEditingCell) {
|
|
332
344
|
return;
|
|
333
345
|
}
|
|
334
|
-
focusAfterInlineEdit(currentEditingCell.rowId, currentEditingCell.columnKey, "stay"
|
|
346
|
+
focusAfterInlineEdit(currentEditingCell.rowId, currentEditingCell.columnKey, "stay", {
|
|
347
|
+
restoreViewportFocus: true,
|
|
348
|
+
});
|
|
335
349
|
};
|
|
336
350
|
const handleEditorBlur = () => {
|
|
337
351
|
if (suppressNextBlurCommit.value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataGridAppInteractionController.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppInteractionController.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AACzE,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EACf,yBAAyB,EAC1B,MAAM,uBAAuB,CAAA;AAM9B,OAAO,EACL,KAAK,oBAAoB,EAI1B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAeL,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AACjF,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"useDataGridAppInteractionController.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppInteractionController.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AACzE,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EACf,yBAAyB,EAC1B,MAAM,uBAAuB,CAAA;AAM9B,OAAO,EACL,KAAK,oBAAoB,EAI1B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAeL,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AACjF,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EACV,oBAAoB,EACpB,8BAA8B,EAC/B,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAS/D,KAAK,8BAA8B,GAAG,kBAAkB,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,sBAAsB,GAAG,eAAe,CAAA;AAI1I,MAAM,WAAW,0CAA0C,CACzD,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS;IAET,IAAI,EAAE,GAAG,CAAC,eAAe,CAAC,CAAA;IAC1B,gBAAgB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAC/B,eAAe,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAC9B,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,mBAAmB,GAAG,yBAAyB,CAAC,CAAA;IACtG,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACtB,cAAc,EAAE,GAAG,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAAA;IACtD,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7B,iBAAiB,EAAE,GAAG,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAA;IACxD,eAAe,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,MAAM,CAAA;IAC9D,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;IAC9C,uBAAuB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;IACnD,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IAC1D,kBAAkB,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,oBAAoB,GAAG,IAAI,CAAA;IAChF,qBAAqB,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAA;IACrD,mBAAmB,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACvD,yBAAyB,EAAE,CACzB,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,OAAO,EACf,cAAc,CAAC,EAAE,8BAA8B,EAC/C,QAAQ,CAAC,EAAE,OAAO,KACf,IAAI,CAAA;IACT,gBAAgB,EAAE,CAChB,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAC1B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,OAAO,KACf,IAAI,CAAA;IACT,kBAAkB,EAAE,MAAM,IAAI,CAAA;IAC9B,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAA;IACnE,wBAAwB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC7E,cAAc,EAAE,CACd,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAC1B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,KAChB,OAAO,CAAA;IACZ,YAAY,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAA;IACjC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAA;IACxD,mBAAmB,EAAE,MAAM,SAAS,CAAA;IACpC,4BAA4B,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,SAAS,CAAA;IAClF,uBAAuB,EAAE,CACvB,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;KAAE,EACvF,cAAc,EAAE,SAAS,KACtB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,8BAA8B,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,6BAA6B,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;IAC7G,sCAAsC,CAAC,EAAE,MAAM,OAAO,CAAA;IACtD,iBAAiB,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9E,kBAAkB,EAAE,CAClB,OAAO,CAAC,EAAE,UAAU,GAAG,cAAc,EACrC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;KAAE,KACtC,OAAO,CAAC,OAAO,CAAC,CAAA;IACrB,gBAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7E,uBAAuB,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,iBAAiB,GAAG,IAAI,CAAA;IAC/E,mBAAmB,EAAE,CACnB,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,MAAM,EAAE,EAAE,EAClB,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,KAClC,MAAM,CAAA;IACX,WAAW,EAAE,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI,KAAK,OAAO,CAAA;IACzF,wBAAwB,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,MAAM,EAAE,EAAE,CAAA;IAClE,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,KAAK,OAAO,CAAA;IAC1F,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,WAAW,EAAE,GAAG,CAAC;QAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IACtE,eAAe,EAAE,CACf,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAC1B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,KACrD,IAAI,CAAA;IACT,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;IACtD,gBAAgB,EAAE,MAAM,IAAI,CAAA;IAC5B,gBAAgB,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,KAAK,IAAI,CAAA;IAC1E,OAAO,EAAE,MAAM,OAAO,CAAA;IACtB,OAAO,EAAE,MAAM,OAAO,CAAA;IACtB,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;IAC5E,+BAA+B,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;IAChF,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAA;IACpC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B,8BAA8B,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3C,yBAAyB,CAAC,EAAE,CAC1B,MAAM,EAAE,8BAA8B,EACtC,KAAK,EAAE,MAAM,GAAG,MAAM,KACnB,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;CAChC;AAED,MAAM,WAAW,yCAAyC,CAAC,IAAI;IAC7D,uBAAuB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACrC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAC5B,gBAAgB,EAAE,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IAC/C,eAAe,EAAE,GAAG,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAAA;IAC1D,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAC3B,cAAc,EAAE,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IACrD,qBAAqB,EAAE,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IACpD,oBAAoB,EAAE,MAAM,IAAI,CAAA;IAChC,iBAAiB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IAC5C,mBAAmB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IAChD,0BAA0B,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IACvD,qBAAqB,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,OAAO,CAAA;IAClE,mBAAmB,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;IACpH,iBAAiB,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;IACrH,qBAAqB,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACpG,qBAAqB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IAClD,mBAAmB,EAAE,MAAM,IAAI,CAAA;IAC/B,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAA;IACxE,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAA;IACrE,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/E,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,wBAAgB,mCAAmC,CACjD,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,EAET,OAAO,EAAE,0CAA0C,CAAC,IAAI,EAAE,SAAS,CAAC,GACnE,yCAAyC,CAAC,IAAI,CAAC,CAsyDjD"}
|
|
@@ -3,8 +3,14 @@ import { invokeDataGridCellInteraction, resolveDataGridCellKeyboardAction, toggl
|
|
|
3
3
|
import { buildDataGridFillMatrix, canToggleDataGridFillBehavior, resolveDataGridDefaultFillBehavior, } from "../composables/dataGridFillBehavior";
|
|
4
4
|
import { useDataGridAxisAutoScrollDelta, useDataGridCellNavigation, useDataGridCellPointerDownRouter, useDataGridDragPointerSelection, useDataGridFillHandleStart, useDataGridFillSelectionLifecycle, useDataGridHistoryActionRunner, useDataGridKeyboardCommandRouter, useDataGridPointerCellCoordResolver, useDataGridPointerAutoScroll, useDataGridPointerPreviewRouter, useDataGridRangeMoveLifecycle, useDataGridRangeMoveStart, useDataGridRangeMutationEngine, } from "../advanced";
|
|
5
5
|
import { useDataGridAppFill, } from "./useDataGridAppFill";
|
|
6
|
+
import { restoreDataGridFocus } from "./dataGridFocusRestore";
|
|
6
7
|
const DRAG_SELECTION_POINTER_THRESHOLD_PX = 4;
|
|
7
8
|
export function useDataGridAppInteractionController(options) {
|
|
9
|
+
const resolveRowIndex = (row, rowOffset) => {
|
|
10
|
+
return Number.isFinite(row.displayIndex)
|
|
11
|
+
? Math.max(0, Math.trunc(row.displayIndex))
|
|
12
|
+
: options.viewportRowStart.value + rowOffset;
|
|
13
|
+
};
|
|
8
14
|
const isContextMenuVisible = () => options.isContextMenuVisible?.() === true;
|
|
9
15
|
const closeContextMenu = () => {
|
|
10
16
|
options.closeContextMenu?.();
|
|
@@ -160,15 +166,7 @@ export function useDataGridAppInteractionController(options) {
|
|
|
160
166
|
}
|
|
161
167
|
focusViewport();
|
|
162
168
|
};
|
|
163
|
-
applyFocus
|
|
164
|
-
void nextTick(() => {
|
|
165
|
-
applyFocus();
|
|
166
|
-
if (typeof window !== "undefined") {
|
|
167
|
-
window.requestAnimationFrame(() => {
|
|
168
|
-
applyFocus();
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
});
|
|
169
|
+
void restoreDataGridFocus(applyFocus);
|
|
172
170
|
};
|
|
173
171
|
const isPrintableEditingKey = (event) => {
|
|
174
172
|
if (event.ctrlKey || event.metaKey || event.altKey) {
|
|
@@ -1179,7 +1177,11 @@ export function useDataGridAppInteractionController(options) {
|
|
|
1179
1177
|
pendingDragPointerStart.value = pointer;
|
|
1180
1178
|
},
|
|
1181
1179
|
applyCellSelection: (coord, extend, fallbackAnchor, additive) => {
|
|
1182
|
-
|
|
1180
|
+
if (additive) {
|
|
1181
|
+
options.applyCellSelectionByCoord(coord, extend, fallbackAnchor, true);
|
|
1182
|
+
return;
|
|
1183
|
+
}
|
|
1184
|
+
options.applyCellSelectionByCoord(coord, extend, fallbackAnchor);
|
|
1183
1185
|
},
|
|
1184
1186
|
startInteractionAutoScroll: () => {
|
|
1185
1187
|
pointerAutoScroll.startInteractionAutoScroll();
|
|
@@ -1329,7 +1331,7 @@ export function useDataGridAppInteractionController(options) {
|
|
|
1329
1331
|
return;
|
|
1330
1332
|
}
|
|
1331
1333
|
const target = event.currentTarget instanceof HTMLElement ? event.currentTarget : null;
|
|
1332
|
-
const rowIndex =
|
|
1334
|
+
const rowIndex = resolveRowIndex(row, rowOffset);
|
|
1333
1335
|
const coord = options.normalizeCellCoord({
|
|
1334
1336
|
rowIndex,
|
|
1335
1337
|
columnIndex,
|
|
@@ -1376,7 +1378,7 @@ export function useDataGridAppInteractionController(options) {
|
|
|
1376
1378
|
pendingDragCoord.value = resolveCellCoordFromElement(target);
|
|
1377
1379
|
};
|
|
1378
1380
|
const handleCellKeydown = (event, row, rowOffset, columnIndex) => {
|
|
1379
|
-
const rowIndex =
|
|
1381
|
+
const rowIndex = resolveRowIndex(row, rowOffset);
|
|
1380
1382
|
if (isFillDragging.value && event.key === "Escape") {
|
|
1381
1383
|
event.preventDefault();
|
|
1382
1384
|
stopFillSelection(false);
|
|
@@ -18,6 +18,7 @@ export interface UseDataGridAppRowSizingResult<TRow> {
|
|
|
18
18
|
measureVisibleRowHeights: () => void;
|
|
19
19
|
startRowResize: (event: MouseEvent, row: DataGridRowNode<TRow>, rowOffset: number) => void;
|
|
20
20
|
autosizeRow: (event: MouseEvent, row: DataGridRowNode<TRow>, rowOffset: number) => void;
|
|
21
|
+
consumeRecentRowResizeInteraction: () => boolean;
|
|
21
22
|
dispose: () => void;
|
|
22
23
|
}
|
|
23
24
|
export declare function useDataGridAppRowSizing<TRow>(options: UseDataGridAppRowSizingOptions<TRow>): UseDataGridAppRowSizingResult<TRow>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataGridAppRowSizing.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppRowSizing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEzF,MAAM,WAAW,8BAA8B,CAAC,IAAI;IAClD,IAAI,EAAE,GAAG,CAAC,eAAe,CAAC,CAAA;IAC1B,aAAa,EAAE,GAAG,CAAC,wBAAwB,CAAC,CAAA;IAC5C,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACpC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7B,eAAe,CAAC,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IACzC,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;IACpD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,6BAA6B,CAAC,IAAI;IACjD,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnF,kBAAkB,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;IAC9E,wBAAwB,EAAE,MAAM,IAAI,CAAA;IACpC,cAAc,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1F,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACvF,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAC1C,OAAO,EAAE,8BAA8B,CAAC,IAAI,CAAC,GAC5C,6BAA6B,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"useDataGridAppRowSizing.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppRowSizing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEzF,MAAM,WAAW,8BAA8B,CAAC,IAAI;IAClD,IAAI,EAAE,GAAG,CAAC,eAAe,CAAC,CAAA;IAC1B,aAAa,EAAE,GAAG,CAAC,wBAAwB,CAAC,CAAA;IAC5C,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACpC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7B,eAAe,CAAC,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IACzC,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;IACpD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,6BAA6B,CAAC,IAAI;IACjD,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnF,kBAAkB,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;IAC9E,wBAAwB,EAAE,MAAM,IAAI,CAAA;IACpC,cAAc,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1F,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACvF,iCAAiC,EAAE,MAAM,OAAO,CAAA;IAChD,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAC1C,OAAO,EAAE,8BAA8B,CAAC,IAAI,CAAC,GAC5C,6BAA6B,CAAC,IAAI,CAAC,CA0PrC"}
|
|
@@ -4,6 +4,7 @@ export function useDataGridAppRowSizing(options) {
|
|
|
4
4
|
const rowHeightRenderRevision = ref(0);
|
|
5
5
|
const measuringRowKey = ref(null);
|
|
6
6
|
const rowResizeState = ref(null);
|
|
7
|
+
const suppressNextRowIndexClick = ref(false);
|
|
7
8
|
const autoMeasuredRowIndexes = new Set();
|
|
8
9
|
const manualAutoRowHeightFloors = new Map();
|
|
9
10
|
const shouldUseFixedRowHeight = () => {
|
|
@@ -165,6 +166,7 @@ export function useDataGridAppRowSizing(options) {
|
|
|
165
166
|
if (options.mode.value !== "base") {
|
|
166
167
|
return;
|
|
167
168
|
}
|
|
169
|
+
suppressNextRowIndexClick.value = true;
|
|
168
170
|
const rowIndex = options.viewportRowStart.value + rowOffset;
|
|
169
171
|
const rowKey = String(rowIndex);
|
|
170
172
|
rowResizeState.value = {
|
|
@@ -181,6 +183,7 @@ export function useDataGridAppRowSizing(options) {
|
|
|
181
183
|
if (options.mode.value !== "base") {
|
|
182
184
|
return;
|
|
183
185
|
}
|
|
186
|
+
suppressNextRowIndexClick.value = true;
|
|
184
187
|
const rowIndex = options.viewportRowStart.value + rowOffset;
|
|
185
188
|
if (options.rowHeightMode.value === "auto") {
|
|
186
189
|
manualAutoRowHeightFloors.delete(rowIndex);
|
|
@@ -201,12 +204,20 @@ export function useDataGridAppRowSizing(options) {
|
|
|
201
204
|
options.syncViewport?.();
|
|
202
205
|
});
|
|
203
206
|
};
|
|
207
|
+
const consumeRecentRowResizeInteraction = () => {
|
|
208
|
+
if (!suppressNextRowIndexClick.value) {
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
suppressNextRowIndexClick.value = false;
|
|
212
|
+
return true;
|
|
213
|
+
};
|
|
204
214
|
return {
|
|
205
215
|
rowStyle,
|
|
206
216
|
isRowAutosizeProbe,
|
|
207
217
|
measureVisibleRowHeights,
|
|
208
218
|
startRowResize,
|
|
209
219
|
autosizeRow,
|
|
220
|
+
consumeRecentRowResizeInteraction,
|
|
210
221
|
dispose: () => {
|
|
211
222
|
stopRowResize();
|
|
212
223
|
clearAutoMeasuredRowHeights();
|
|
@@ -11,6 +11,7 @@ export interface UseDataGridAppSelectionOptions<TRow> {
|
|
|
11
11
|
totalRows?: Ref<number>;
|
|
12
12
|
showRowSelection?: MaybeRef<boolean>;
|
|
13
13
|
readSelectionCell?: (row: DataGridRowNode<TRow>, columnKey: string) => unknown;
|
|
14
|
+
resolveSelectionRowAtIndex?: (rowIndex: number) => DataGridRowNode<TRow> | null;
|
|
14
15
|
}
|
|
15
16
|
export interface UseDataGridAppSelectionResult<TRow> {
|
|
16
17
|
selectionSnapshot: Ref<DataGridSelectionSnapshot | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataGridAppSelection.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppSelection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAIpD,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EAEb,eAAe,EACf,yBAAyB,EAC1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAC5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AAC5G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;AAS7B,MAAM,WAAW,8BAA8B,CAAC,IAAI;IAClD,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAA;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IACvI,cAAc,CAAC,EAAE,GAAG,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAAA;IACvD,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACvB,gBAAgB,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IACpC,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"useDataGridAppSelection.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppSelection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAIpD,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EAEb,eAAe,EACf,yBAAyB,EAC1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAC5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AAC5G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;AAS7B,MAAM,WAAW,8BAA8B,CAAC,IAAI;IAClD,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAA;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IACvI,cAAc,CAAC,EAAE,GAAG,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAAA;IACvD,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACvB,gBAAgB,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IACpC,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;IAC9E,0BAA0B,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAChF;AAED,MAAM,WAAW,6BAA6B,CAAC,IAAI;IACjD,iBAAiB,EAAE,GAAG,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAA;IACxD,eAAe,EAAE,GAAG,CAAC,sBAAsB,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAA;IAClE,gBAAgB,EAAE,WAAW,CAAC,WAAW,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;IACpG,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;IAC5F,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACrC,gCAAgC,EAAE,MAAM,IAAI,CAAA;CAC7C;AAkED,wBAAgB,uBAAuB,CAAC,IAAI,EAC1C,OAAO,EAAE,8BAA8B,CAAC,IAAI,CAAC,GAC5C,6BAA6B,CAAC,IAAI,CAAC,CA6KrC"}
|
|
@@ -140,7 +140,7 @@ export function useDataGridAppSelection(options) {
|
|
|
140
140
|
const startColumn = Math.max(0, Math.min(columnCount - 1, Math.min(range.startCol, range.endCol)));
|
|
141
141
|
const endColumn = Math.max(0, Math.min(columnCount - 1, Math.max(range.startCol, range.endCol)));
|
|
142
142
|
for (let rowIndex = startRow; rowIndex <= endRow; rowIndex += 1) {
|
|
143
|
-
const rowNode = runtime.api.rows.get(rowIndex);
|
|
143
|
+
const rowNode = options.resolveSelectionRowAtIndex?.(rowIndex) ?? runtime.api.rows.get(rowIndex);
|
|
144
144
|
if (!rowNode || rowNode.kind === "group") {
|
|
145
145
|
continue;
|
|
146
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataGridAppViewport.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppViewport.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useDataGridAppViewport.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppViewport.ts"],"names":[],"mappings":"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"}
|
|
@@ -804,6 +804,21 @@ export function useDataGridAppViewport(options) {
|
|
|
804
804
|
const element = event.target;
|
|
805
805
|
pendingViewportScrollTop = element.scrollTop;
|
|
806
806
|
pendingViewportScrollLeft = element.scrollLeft;
|
|
807
|
+
const shouldRefreshDimensions = cachedViewportElement !== element
|
|
808
|
+
|| cachedViewportDimensions == null
|
|
809
|
+
|| cachedViewportDimensions.clientWidth <= 0
|
|
810
|
+
|| cachedViewportDimensions.clientHeight <= 0
|
|
811
|
+
|| cachedViewportDimensions.shellClientWidth <= 0;
|
|
812
|
+
if (shouldRefreshDimensions) {
|
|
813
|
+
const dimensions = captureViewportDimensions(element);
|
|
814
|
+
if (viewportClientWidth.value !== dimensions.clientWidth) {
|
|
815
|
+
viewportClientWidth.value = dimensions.clientWidth;
|
|
816
|
+
}
|
|
817
|
+
if (viewportShellClientWidth.value !== dimensions.shellClientWidth) {
|
|
818
|
+
viewportShellClientWidth.value = dimensions.shellClientWidth;
|
|
819
|
+
}
|
|
820
|
+
cacheViewportDimensions(element, dimensions);
|
|
821
|
+
}
|
|
807
822
|
syncHeaderScrollLeftFromBody(pendingViewportScrollLeft);
|
|
808
823
|
scheduleViewportCommit({
|
|
809
824
|
forceVisibleRows: false,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@affino/datagrid-vue",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.26",
|
|
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,7 +75,7 @@
|
|
|
75
75
|
}
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
|
-
"@affino/datagrid-core": "0.3.
|
|
78
|
+
"@affino/datagrid-core": "0.3.17",
|
|
79
79
|
"@affino/datagrid-pivot": "0.1.2",
|
|
80
80
|
"@affino/datagrid-worker": "0.1.1",
|
|
81
81
|
"@affino/datagrid-orchestration": "0.3.11"
|