@affino/datagrid-vue 0.3.30 → 0.3.32
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/useDataGridAppClipboard.d.ts +8 -3
- package/dist/app/useDataGridAppClipboard.d.ts.map +1 -1
- package/dist/app/useDataGridAppClipboard.js +99 -21
- package/dist/app/useDataGridAppFill.d.ts +28 -3
- package/dist/app/useDataGridAppFill.d.ts.map +1 -1
- package/dist/app/useDataGridAppFill.js +25 -3
- package/dist/app/useDataGridAppInlineEditing.d.ts +11 -1
- package/dist/app/useDataGridAppInlineEditing.d.ts.map +1 -1
- package/dist/app/useDataGridAppInlineEditing.js +44 -3
- package/dist/app/useDataGridAppIntentHistory.d.ts.map +1 -1
- package/dist/app/useDataGridAppIntentHistory.js +24 -3
- package/dist/app/useDataGridAppInteractionController.d.ts +105 -5
- package/dist/app/useDataGridAppInteractionController.d.ts.map +1 -1
- package/dist/app/useDataGridAppInteractionController.js +479 -39
- package/dist/app/useDataGridAppViewport.d.ts +4 -1
- package/dist/app/useDataGridAppViewport.d.ts.map +1 -1
- package/dist/app/useDataGridAppViewport.js +39 -4
- package/dist/composables/useDataGridRuntime.d.ts +1 -1
- package/dist/composables/useDataGridRuntime.d.ts.map +1 -1
- package/dist/composables/useDataGridRuntime.js +41 -1
- package/package.json +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Ref } from "vue";
|
|
2
|
-
import type { DataGridColumnSnapshot, DataGridRowNode } from "@affino/datagrid-core";
|
|
2
|
+
import type { DataGridColumnSnapshot, DataGridRowNode, DataGridViewportRange } from "@affino/datagrid-core";
|
|
3
3
|
import type { UseDataGridRuntimeResult } from "../composables/useDataGridRuntime";
|
|
4
4
|
import type { DataGridAppMode, DataGridAppRowRenderMode } from "./useDataGridAppControls";
|
|
5
5
|
type MaybeRef<T> = T | Ref<T>;
|
|
@@ -38,8 +38,10 @@ export interface UseDataGridAppViewportResult<TRow> {
|
|
|
38
38
|
bodyViewportRef: Ref<HTMLElement | null>;
|
|
39
39
|
viewportScrollTop: Ref<number>;
|
|
40
40
|
displayRows: Ref<readonly DataGridRowNode<TRow>[]>;
|
|
41
|
+
displayRowsRevision: Ref<number>;
|
|
41
42
|
pinnedBottomRows: Ref<readonly DataGridRowNode<TRow>[]>;
|
|
42
43
|
renderedColumns: Ref<readonly DataGridColumnSnapshot[]>;
|
|
44
|
+
renderedViewportRange: Ref<DataGridViewportRange | null>;
|
|
43
45
|
viewportRowStart: Ref<number>;
|
|
44
46
|
viewportRowEnd: Ref<number>;
|
|
45
47
|
viewportColumnStart: Ref<number>;
|
|
@@ -53,6 +55,7 @@ export interface UseDataGridAppViewportResult<TRow> {
|
|
|
53
55
|
mainTrackStyle: Ref<Record<string, string>>;
|
|
54
56
|
indexColumnStyle: Ref<Record<string, string>>;
|
|
55
57
|
columnStyle: (key: string) => Record<string, string>;
|
|
58
|
+
syncRenderedRowsInRange: (range: DataGridViewportRange) => void;
|
|
56
59
|
handleViewportScroll: (event: Event) => void;
|
|
57
60
|
syncViewportFromDom: () => void;
|
|
58
61
|
scheduleViewportSync: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataGridAppViewport.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppViewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAC9F,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"useDataGridAppViewport.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppViewport.ts"],"names":[],"mappings":"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"}
|
|
@@ -206,6 +206,8 @@ export function useDataGridAppViewport(options) {
|
|
|
206
206
|
const bodyViewportRef = ref(null);
|
|
207
207
|
const viewportScrollTop = ref(0);
|
|
208
208
|
const displayRows = shallowRef([]);
|
|
209
|
+
const displayRowsRevision = ref(0);
|
|
210
|
+
const renderedViewportRange = ref(null);
|
|
209
211
|
const viewportScrollLeft = ref(0);
|
|
210
212
|
const viewportClientWidth = ref(0);
|
|
211
213
|
const viewportShellClientWidth = ref(0);
|
|
@@ -589,6 +591,33 @@ export function useDataGridAppViewport(options) {
|
|
|
589
591
|
}
|
|
590
592
|
return nextRows;
|
|
591
593
|
};
|
|
594
|
+
const updateRenderedViewportRange = (rows) => {
|
|
595
|
+
if (rows.length === 0) {
|
|
596
|
+
renderedViewportRange.value = null;
|
|
597
|
+
return;
|
|
598
|
+
}
|
|
599
|
+
const first = rows[0];
|
|
600
|
+
const last = rows[rows.length - 1];
|
|
601
|
+
const start = first && Number.isFinite(first.displayIndex)
|
|
602
|
+
? Math.max(0, Math.trunc(first.displayIndex))
|
|
603
|
+
: null;
|
|
604
|
+
const end = last && Number.isFinite(last.displayIndex)
|
|
605
|
+
? Math.max(0, Math.trunc(last.displayIndex))
|
|
606
|
+
: null;
|
|
607
|
+
if (start == null || end == null) {
|
|
608
|
+
renderedViewportRange.value = null;
|
|
609
|
+
return;
|
|
610
|
+
}
|
|
611
|
+
renderedViewportRange.value = {
|
|
612
|
+
start,
|
|
613
|
+
end: Math.max(start, end),
|
|
614
|
+
};
|
|
615
|
+
};
|
|
616
|
+
const commitDisplayRows = (rows) => {
|
|
617
|
+
displayRows.value = rows;
|
|
618
|
+
displayRowsRevision.value += 1;
|
|
619
|
+
updateRenderedViewportRange(rows);
|
|
620
|
+
};
|
|
592
621
|
const syncVisibleRows = (range, force = false) => {
|
|
593
622
|
if (!force
|
|
594
623
|
&& lastSyncedRange
|
|
@@ -637,12 +666,12 @@ export function useDataGridAppViewport(options) {
|
|
|
637
666
|
setWindowRange(range);
|
|
638
667
|
setViewportRangeMs = resolveDataGridPerfNow() - setViewportRangeStart;
|
|
639
668
|
const displayRowsAssignStart = resolveDataGridPerfNow();
|
|
640
|
-
|
|
669
|
+
commitDisplayRows(incrementalRows);
|
|
641
670
|
displayRowsAssignMs = resolveDataGridPerfNow() - displayRowsAssignStart;
|
|
642
671
|
}
|
|
643
672
|
else {
|
|
644
673
|
setWindowRange(range);
|
|
645
|
-
|
|
674
|
+
commitDisplayRows(incrementalRows);
|
|
646
675
|
}
|
|
647
676
|
if (perfTraceEnabled) {
|
|
648
677
|
viewportCommitMs = resolveDataGridPerfNow() - commitStart;
|
|
@@ -650,7 +679,7 @@ export function useDataGridAppViewport(options) {
|
|
|
650
679
|
}
|
|
651
680
|
else {
|
|
652
681
|
const syncStart = perfTraceEnabled ? resolveDataGridPerfNow() : 0;
|
|
653
|
-
|
|
682
|
+
commitDisplayRows(options.runtime.syncBodyRowsInRange(range));
|
|
654
683
|
if (perfTraceEnabled) {
|
|
655
684
|
runtimeSyncMs = resolveDataGridPerfNow() - syncStart;
|
|
656
685
|
}
|
|
@@ -658,7 +687,7 @@ export function useDataGridAppViewport(options) {
|
|
|
658
687
|
}
|
|
659
688
|
else {
|
|
660
689
|
const syncStart = perfTraceEnabled ? resolveDataGridPerfNow() : 0;
|
|
661
|
-
|
|
690
|
+
commitDisplayRows(options.runtime.syncBodyRowsInRange(range));
|
|
662
691
|
if (perfTraceEnabled) {
|
|
663
692
|
runtimeSyncMs = resolveDataGridPerfNow() - syncStart;
|
|
664
693
|
}
|
|
@@ -688,6 +717,9 @@ export function useDataGridAppViewport(options) {
|
|
|
688
717
|
};
|
|
689
718
|
}
|
|
690
719
|
};
|
|
720
|
+
const syncRenderedRowsInRange = (range) => {
|
|
721
|
+
syncVisibleRows(range, true);
|
|
722
|
+
};
|
|
691
723
|
const syncHeaderScrollLeftFromBody = (bodyScrollLeft) => {
|
|
692
724
|
const headerViewport = headerViewportRef.value;
|
|
693
725
|
if (!headerViewport) {
|
|
@@ -869,8 +901,10 @@ export function useDataGridAppViewport(options) {
|
|
|
869
901
|
bodyViewportRef,
|
|
870
902
|
viewportScrollTop,
|
|
871
903
|
displayRows,
|
|
904
|
+
displayRowsRevision,
|
|
872
905
|
pinnedBottomRows: computed(() => options.runtime.rowPartition.value.pinnedBottomRows),
|
|
873
906
|
renderedColumns: computed(() => viewportColumnMetrics.value.renderedColumns),
|
|
907
|
+
renderedViewportRange,
|
|
874
908
|
viewportRowStart,
|
|
875
909
|
viewportRowEnd,
|
|
876
910
|
viewportColumnStart: computed(() => viewportColumnMetrics.value.start),
|
|
@@ -884,6 +918,7 @@ export function useDataGridAppViewport(options) {
|
|
|
884
918
|
mainTrackStyle,
|
|
885
919
|
indexColumnStyle,
|
|
886
920
|
columnStyle,
|
|
921
|
+
syncRenderedRowsInRange,
|
|
887
922
|
handleViewportScroll,
|
|
888
923
|
syncViewportFromDom,
|
|
889
924
|
scheduleViewportSync,
|
|
@@ -54,7 +54,7 @@ export interface UseDataGridRuntimeResult<TRow = unknown> extends DataGridVueRun
|
|
|
54
54
|
exportPivotInterop: () => DataGridPivotInteropSnapshot<TRow> | null;
|
|
55
55
|
importPivotLayout: (layout: DataGridPivotLayoutSnapshot<TRow>, options?: DataGridPivotLayoutImportOptions) => void;
|
|
56
56
|
patchRows: (updates: readonly DataGridClientRowPatch<TRow>[], options?: DataGridClientRowPatchOptions) => void;
|
|
57
|
-
applyEdits: (updates: readonly DataGridClientRowPatch<TRow>[], options?: DataGridEditOptions) => void
|
|
57
|
+
applyEdits: (updates: readonly DataGridClientRowPatch<TRow>[], options?: DataGridEditOptions) => void | Promise<void>;
|
|
58
58
|
reapplyView: () => void;
|
|
59
59
|
autoReapply: Ref<boolean>;
|
|
60
60
|
getProjectionMode: () => DataGridApiProjectionMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataGridRuntime.d.ts","sourceRoot":"","sources":["../../src/composables/useDataGridRuntime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useDataGridRuntime.d.ts","sourceRoot":"","sources":["../../src/composables/useDataGridRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -279,17 +279,38 @@ export function useDataGridRuntime(options) {
|
|
|
279
279
|
const normalizedRange = normalizeBodyViewportRange(range, rowPartition.value.bodyRowCount);
|
|
280
280
|
const syncedRows = runtime.syncRowsInRange(normalizedRange);
|
|
281
281
|
if (sparseRowModel) {
|
|
282
|
+
for (let bodyIndex = normalizedRange.start; bodyIndex <= normalizedRange.end; bodyIndex += 1) {
|
|
283
|
+
const previousRow = bodyRows[bodyIndex];
|
|
284
|
+
if (previousRow
|
|
285
|
+
&& (typeof previousRow.rowId === "string" || typeof previousRow.rowId === "number")
|
|
286
|
+
&& bodyRowIndexById.get(previousRow.rowId) === bodyIndex) {
|
|
287
|
+
bodyRowIndexById.delete(previousRow.rowId);
|
|
288
|
+
}
|
|
289
|
+
delete bodyRows[bodyIndex];
|
|
290
|
+
}
|
|
291
|
+
const rowsByBodyIndex = new Map();
|
|
282
292
|
for (const row of syncedRows) {
|
|
283
293
|
if (isPinnedBodyExcludedRow(row)) {
|
|
284
294
|
continue;
|
|
285
295
|
}
|
|
286
296
|
const bodyIndex = Math.max(0, Math.trunc(row.displayIndex));
|
|
297
|
+
if (bodyIndex < normalizedRange.start || bodyIndex > normalizedRange.end) {
|
|
298
|
+
continue;
|
|
299
|
+
}
|
|
287
300
|
bodyRows[bodyIndex] = row;
|
|
301
|
+
rowsByBodyIndex.set(bodyIndex, row);
|
|
288
302
|
if (typeof row.rowId === "string" || typeof row.rowId === "number") {
|
|
289
303
|
bodyRowIndexById.set(row.rowId, bodyIndex);
|
|
290
304
|
}
|
|
291
305
|
}
|
|
292
|
-
|
|
306
|
+
const rows = [];
|
|
307
|
+
for (let bodyIndex = normalizedRange.start; bodyIndex <= normalizedRange.end; bodyIndex += 1) {
|
|
308
|
+
const row = rowsByBodyIndex.get(bodyIndex);
|
|
309
|
+
if (row) {
|
|
310
|
+
rows.push(row);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
return rows;
|
|
293
314
|
}
|
|
294
315
|
if (rowPartition.value.bodyRowCount === 0 || bodyRows.length === 0) {
|
|
295
316
|
return [];
|
|
@@ -298,6 +319,25 @@ export function useDataGridRuntime(options) {
|
|
|
298
319
|
if (normalizedRange.start >= endExclusive) {
|
|
299
320
|
return [];
|
|
300
321
|
}
|
|
322
|
+
for (const row of syncedRows) {
|
|
323
|
+
if (isPinnedBodyExcludedRow(row)) {
|
|
324
|
+
continue;
|
|
325
|
+
}
|
|
326
|
+
let bodyIndex = -1;
|
|
327
|
+
if (typeof row.rowId === "string" || typeof row.rowId === "number") {
|
|
328
|
+
bodyIndex = resolveBodyRowIndexById(row.rowId);
|
|
329
|
+
}
|
|
330
|
+
if (bodyIndex < 0) {
|
|
331
|
+
bodyIndex = Math.max(0, Math.trunc(row.displayIndex));
|
|
332
|
+
}
|
|
333
|
+
if (bodyIndex < normalizedRange.start || bodyIndex >= endExclusive) {
|
|
334
|
+
continue;
|
|
335
|
+
}
|
|
336
|
+
bodyRows[bodyIndex] = row;
|
|
337
|
+
if (typeof row.rowId === "string" || typeof row.rowId === "number") {
|
|
338
|
+
bodyRowIndexById.set(row.rowId, bodyIndex);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
301
341
|
return bodyRows.slice(normalizedRange.start, endExclusive);
|
|
302
342
|
}
|
|
303
343
|
function getBodyRowAtIndex(rowIndex) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@affino/datagrid-vue",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.32",
|
|
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,8 +75,8 @@
|
|
|
75
75
|
}
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
|
-
"@affino/datagrid-core": "0.3.
|
|
79
|
-
"@affino/datagrid-orchestration": "0.3.
|
|
78
|
+
"@affino/datagrid-core": "0.3.21",
|
|
79
|
+
"@affino/datagrid-orchestration": "0.3.13",
|
|
80
80
|
"@affino/datagrid-pivot": "0.1.2",
|
|
81
81
|
"@affino/datagrid-worker": "0.1.1"
|
|
82
82
|
},
|