@affino/datagrid-vue-app 0.1.53 → 0.1.56

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.
@@ -0,0 +1,86 @@
1
+ import { type CSSProperties, type ComputedRef, type Ref } from "vue";
2
+ import type { DataGridTableStageBodyColumn, DataGridTableStageBodyRow } from "./dataGridTableStageBody.types";
3
+ import type { DataGridTableStageOverlayLane, DataGridTableStageOverlaySegment, DataGridTableStagePinnedPaneProps } from "./dataGridTableStageBody.types";
4
+ type LayoutRuntime = Readonly<Ref<{
5
+ leftPaneWidth: number;
6
+ rightPaneWidth: number;
7
+ bodyViewportClientWidth: number;
8
+ bodyViewportClientHeight: number;
9
+ pinnedBottomViewportClientHeight: number;
10
+ headerShellHeight: number;
11
+ headerViewportClientWidth: number;
12
+ }>>;
13
+ type PaneRuntime = Readonly<Ref<{
14
+ leftPaneContentRef: Ref<HTMLElement | null>;
15
+ rightPaneContentRef: Ref<HTMLElement | null>;
16
+ leftBottomPaneContentRef: Ref<HTMLElement | null>;
17
+ rightBottomPaneContentRef: Ref<HTMLElement | null>;
18
+ displayRows: Readonly<Ref<readonly DataGridTableStageBodyRow[]>>;
19
+ pinnedBottomRows: Readonly<Ref<readonly DataGridTableStageBodyRow[]>>;
20
+ showRowIndex: Readonly<Ref<boolean>>;
21
+ pinnedLeftColumns: Readonly<Ref<readonly DataGridTableStageBodyColumn[]>>;
22
+ pinnedRightColumns: Readonly<Ref<readonly DataGridTableStageBodyColumn[]>>;
23
+ }>>;
24
+ type OverlayRuntime = Readonly<Ref<{
25
+ leftSelectionOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
26
+ leftSelectionSeamOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
27
+ centerSelectionOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
28
+ rightSelectionOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
29
+ rightSelectionSeamOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
30
+ leftPinnedBottomSelectionOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
31
+ leftPinnedBottomSelectionSeamOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
32
+ centerPinnedBottomSelectionOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
33
+ rightPinnedBottomSelectionOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
34
+ rightPinnedBottomSelectionSeamOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
35
+ leftFillPreviewOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
36
+ leftFillPreviewSeamOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
37
+ centerFillPreviewOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
38
+ rightFillPreviewOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
39
+ rightFillPreviewSeamOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
40
+ leftPinnedBottomFillPreviewOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
41
+ leftPinnedBottomFillPreviewSeamOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
42
+ centerPinnedBottomFillPreviewOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
43
+ rightPinnedBottomFillPreviewOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
44
+ rightPinnedBottomFillPreviewSeamOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
45
+ leftMovePreviewOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
46
+ leftMovePreviewSeamOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
47
+ centerMovePreviewOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
48
+ rightMovePreviewOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
49
+ rightMovePreviewSeamOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
50
+ leftPinnedBottomMovePreviewOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
51
+ leftPinnedBottomMovePreviewSeamOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
52
+ centerPinnedBottomMovePreviewOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
53
+ rightPinnedBottomMovePreviewOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
54
+ rightPinnedBottomMovePreviewSeamOverlaySegments: Readonly<Ref<readonly DataGridTableStageOverlaySegment[]>>;
55
+ leftCustomOverlayLanes: Readonly<Ref<readonly DataGridTableStageOverlayLane[]>>;
56
+ centerCustomOverlayLanes: Readonly<Ref<readonly DataGridTableStageOverlayLane[]>>;
57
+ rightCustomOverlayLanes: Readonly<Ref<readonly DataGridTableStageOverlayLane[]>>;
58
+ leftCustomSeamOverlayLanes: Readonly<Ref<readonly DataGridTableStageOverlayLane[]>>;
59
+ rightCustomSeamOverlayLanes: Readonly<Ref<readonly DataGridTableStageOverlayLane[]>>;
60
+ leftPinnedBottomCustomOverlayLanes: Readonly<Ref<readonly DataGridTableStageOverlayLane[]>>;
61
+ centerPinnedBottomCustomOverlayLanes: Readonly<Ref<readonly DataGridTableStageOverlayLane[]>>;
62
+ rightPinnedBottomCustomOverlayLanes: Readonly<Ref<readonly DataGridTableStageOverlayLane[]>>;
63
+ leftPinnedBottomCustomSeamOverlayLanes: Readonly<Ref<readonly DataGridTableStageOverlayLane[]>>;
64
+ rightPinnedBottomCustomSeamOverlayLanes: Readonly<Ref<readonly DataGridTableStageOverlayLane[]>>;
65
+ }>>;
66
+ export interface UseDataGridStagePanesOptions {
67
+ layoutRuntime: LayoutRuntime;
68
+ paneRuntime: PaneRuntime;
69
+ overlayRuntime: OverlayRuntime;
70
+ }
71
+ export interface UseDataGridStagePanesResult {
72
+ paneLayoutStyle: ComputedRef<CSSProperties>;
73
+ leftPaneStyle: ComputedRef<CSSProperties>;
74
+ rightPaneStyle: ComputedRef<CSSProperties>;
75
+ leftTrackStyle: ComputedRef<CSSProperties>;
76
+ rightTrackStyle: ComputedRef<CSSProperties>;
77
+ centerHeaderChromeCanvasStyle: ComputedRef<CSSProperties>;
78
+ centerChromeCanvasStyle: ComputedRef<CSSProperties>;
79
+ centerBottomChromeCanvasStyle: ComputedRef<CSSProperties>;
80
+ leftPinnedPane: ComputedRef<DataGridTableStagePinnedPaneProps>;
81
+ rightPinnedPane: ComputedRef<DataGridTableStagePinnedPaneProps>;
82
+ leftPinnedBottomPane: ComputedRef<DataGridTableStagePinnedPaneProps>;
83
+ rightPinnedBottomPane: ComputedRef<DataGridTableStagePinnedPaneProps>;
84
+ }
85
+ export declare function useDataGridStagePanes(options: UseDataGridStagePanesOptions): UseDataGridStagePanesResult;
86
+ export {};
@@ -0,0 +1,30 @@
1
+ import { type Ref } from "vue";
2
+ import type { DataGridTableMode } from "./dataGridTableStage.types";
3
+ import type { DataGridOverlayRange } from "@affino/datagrid-vue";
4
+ import type { DataGridTableStageBodyColumn, DataGridTableStageBodyRow } from "./dataGridTableStageBody.types";
5
+ export interface UseDataGridStagePointerInteractionsOptions {
6
+ mode: Readonly<Ref<DataGridTableMode>>;
7
+ selection: Readonly<Ref<{
8
+ isFillDragging: boolean;
9
+ rangeMoveEnabled: boolean;
10
+ startFillHandleDrag: (event: MouseEvent) => void;
11
+ startFillHandleDoubleClick: (event: MouseEvent) => void;
12
+ } | null>>;
13
+ selectionRange: Readonly<Ref<DataGridOverlayRange | null>>;
14
+ visibleColumns: Readonly<Ref<readonly DataGridTableStageBodyColumn[]>>;
15
+ displayRows: Readonly<Ref<readonly DataGridTableStageBodyRow[]>>;
16
+ viewportRowStart: Readonly<Ref<number>>;
17
+ fillActionMenuOpen: Ref<boolean>;
18
+ isCellSelectedSafe: (rowOffset: number, columnIndex: number) => boolean;
19
+ isCellEditableSafe: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => boolean;
20
+ isCellOnSelectionEdgeSafe: (rowOffset: number, columnIndex: number, edge: "top" | "right" | "bottom" | "left") => boolean;
21
+ }
22
+ export interface UseDataGridStagePointerInteractionsResult {
23
+ clearRangeMoveHandleHover: () => void;
24
+ isRangeMoveHandleHoverCell: (rowOffset: number, columnIndex: number) => boolean;
25
+ handleCellMouseMove: (event: MouseEvent, rowOffset: number, columnIndex: number) => void;
26
+ handleFillHandleMouseDown: (event: MouseEvent) => void;
27
+ handleFillHandleDoubleClick: (event: MouseEvent) => void;
28
+ resetGlobalFillDragCursor: () => void;
29
+ }
30
+ export declare function useDataGridStagePointerInteractions(options: UseDataGridStagePointerInteractionsOptions): UseDataGridStagePointerInteractionsResult;
@@ -0,0 +1,141 @@
1
+ import { type CSSProperties, type Ref, type VNodeChild } from "vue";
2
+ import type { DataGridTableStageCenterPaneRenderApi, DataGridTableStagePinnedPaneRenderApi } from "./dataGridTableStageBody.types";
3
+ import type { DataGridTableStageEditingSection } from "./dataGridTableStage.types";
4
+ import type { DataGridTableStageBodyColumn, DataGridTableStageBodyRow, DataGridTableStageSelectEditorOption, DataGridTableStageSelectEditorOptionsLoader } from "./dataGridTableStageBody.types";
5
+ import type { DataGridFilterableComboboxOption } from "../overlays/dataGridFilterableCombobox";
6
+ import type { DataGridTableMode } from "./dataGridTableStage.types";
7
+ export interface UseDataGridStageRenderApisOptions {
8
+ mode: Readonly<Ref<DataGridTableMode>>;
9
+ rows: Readonly<Ref<{
10
+ rowClass: (row: DataGridTableStageBodyRow) => string;
11
+ rowStyle: (row: DataGridTableStageBodyRow, rowOffset: number) => CSSProperties;
12
+ isRowAutosizeProbe: (row: DataGridTableStageBodyRow, rowOffset: number) => boolean;
13
+ rowIndexLabel: (row: DataGridTableStageBodyRow, rowOffset: number) => string;
14
+ handleRowClick?: (row: DataGridTableStageBodyRow) => void;
15
+ isRowFocused?: (row: DataGridTableStageBodyRow) => boolean;
16
+ isRowCheckboxSelected?: (row: DataGridTableStageBodyRow) => boolean;
17
+ reorderRowsByIndex?: (payload: {
18
+ sourceRowId: string | number;
19
+ targetRowId: string | number;
20
+ placement: "before" | "after";
21
+ }) => boolean;
22
+ consumeRecentRowResizeInteraction?: () => boolean;
23
+ startRowResize: (event: MouseEvent, row: DataGridTableStageBodyRow, rowOffset: number) => void;
24
+ autosizeRow: (event: MouseEvent, row: DataGridTableStageBodyRow, rowOffset: number) => void;
25
+ showRowIndex?: boolean;
26
+ stripedRows?: boolean;
27
+ rowHover?: boolean;
28
+ }>>;
29
+ selection: Readonly<Ref<{
30
+ isFillDragging: boolean;
31
+ rangeMoveEnabled: boolean;
32
+ startFillHandleDrag: (event: MouseEvent) => void;
33
+ startFillHandleDoubleClick: (event: MouseEvent) => void;
34
+ isFillHandleCell: (rowOffset: number, columnIndex: number) => boolean;
35
+ }>>;
36
+ selectionRange: Readonly<Ref<{
37
+ startRow: number;
38
+ endRow: number;
39
+ startColumn: number;
40
+ endColumn: number;
41
+ } | null>>;
42
+ selectionRanges: Readonly<Ref<readonly {
43
+ startRow: number;
44
+ endRow: number;
45
+ startColumn: number;
46
+ endColumn: number;
47
+ }[]>>;
48
+ visibleColumns: Readonly<Ref<readonly DataGridTableStageBodyColumn[]>>;
49
+ displayRows: Readonly<Ref<readonly DataGridTableStageBodyRow[]>>;
50
+ editing: Readonly<Ref<DataGridTableStageEditingSection<Record<string, unknown>>>>;
51
+ cells: Readonly<Ref<{
52
+ isCellSelected?: (rowOffset: number, columnIndex: number) => boolean;
53
+ isSelectionAnchorCell?: (rowOffset: number, columnIndex: number) => boolean;
54
+ isCellInFillPreview?: (rowOffset: number, columnIndex: number) => boolean;
55
+ isCellInPendingClipboardRange?: (rowOffset: number, columnIndex: number) => boolean;
56
+ isCellOnPendingClipboardEdge?: (rowOffset: number, columnIndex: number, edge: "top" | "right" | "bottom" | "left") => boolean;
57
+ isCellEditable?: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => boolean;
58
+ isCellOnSelectionEdge?: (rowOffset: number, columnIndex: number, edge: "top" | "right" | "bottom" | "left") => boolean;
59
+ readCell: (row: DataGridTableStageBodyRow, columnKey: string) => string;
60
+ readDisplayCell: (row: DataGridTableStageBodyRow, columnKey: string) => string;
61
+ }>>;
62
+ isCellEditableSafe: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => boolean;
63
+ isEditingCellSafe: (row: DataGridTableStageBodyRow, columnKey: string) => boolean;
64
+ isCellSelectedSafe: (rowOffset: number, columnIndex: number) => boolean;
65
+ isSelectionAnchorCellSafe: (rowOffset: number, columnIndex: number) => boolean;
66
+ shouldHighlightSelectedCellVisual: (rowOffset: number, columnIndex: number) => boolean;
67
+ isCellInFillPreviewSafe: (rowOffset: number, columnIndex: number) => boolean;
68
+ isCellInPendingClipboardRangeSafe: (rowOffset: number, columnIndex: number) => boolean;
69
+ isCellOnPendingClipboardEdgeSafe: (rowOffset: number, columnIndex: number, edge: "top" | "right" | "bottom" | "left") => boolean;
70
+ isCellOnSelectionEdgeSafe: (rowOffset: number, columnIndex: number, edge: "top" | "right" | "bottom" | "left") => boolean;
71
+ isFillHandleCellSafe: (rowOffset: number, columnIndex: number) => boolean;
72
+ isVisibleCellEditableByAbsoluteCoord: (rowIndex: number, columnIndex: number) => boolean;
73
+ resolveAbsoluteRowIndex: (row: DataGridTableStageBodyRow, rowOffset: number) => number;
74
+ resolveViewportRowOffset: (row: DataGridTableStageBodyRow, rowOffset: number) => number;
75
+ rowStateClasses: (row: DataGridTableStageBodyRow, rowOffset: number) => Record<string, boolean>;
76
+ handleRowContainerClick: (row: DataGridTableStageBodyRow) => void;
77
+ setHoveredRow: (row: DataGridTableStageBodyRow, rowOffset: number) => void;
78
+ isFullRowSelectionSafe: (rowOffset: number) => boolean;
79
+ rowIndexColumnStyle: Readonly<Ref<CSSProperties>>;
80
+ rowIndexCellClasses: (row: DataGridTableStageBodyRow, rowOffset: number) => Record<string, boolean>;
81
+ rowIndexCellStyle: (row: DataGridTableStageBodyRow, rowOffset: number) => CSSProperties;
82
+ rowIndexTabIndex: (row: DataGridTableStageBodyRow) => number;
83
+ isRowIndexDraggable: (row: DataGridTableStageBodyRow) => boolean;
84
+ handleRowIndexClickSafe: (row: DataGridTableStageBodyRow, rowOffset: number, event: MouseEvent) => void;
85
+ handleRowIndexKeydownSafe: (event: KeyboardEvent, row: DataGridTableStageBodyRow, rowOffset: number) => void;
86
+ handleRowIndexDragStart: (event: DragEvent, row: DataGridTableStageBodyRow, rowOffset: number) => void;
87
+ handleRowIndexDragOver: (event: DragEvent, row: DataGridTableStageBodyRow, rowOffset: number) => void;
88
+ handleRowIndexDrop: (event: DragEvent, row: DataGridTableStageBodyRow, rowOffset: number) => void;
89
+ clearRowIndexDragState: () => void;
90
+ columnIndexByKey: (columnKey: string) => number;
91
+ builtInCellClasses: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => Record<string, boolean>;
92
+ cellStateClasses: (row: DataGridTableStageBodyRow, rowOffset: number, columnIndex: number) => Record<string, boolean>;
93
+ resolveCellCustomClass: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => unknown;
94
+ columnStyle: (key: string) => CSSProperties;
95
+ bodyCellPresentationStyle: (column: DataGridTableStageBodyColumn) => CSSProperties;
96
+ bodyCellSelectionStyle: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn, rowOffset: number, columnIndex: number) => CSSProperties;
97
+ resolveCellCustomStyle: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => CSSProperties;
98
+ cellTabIndex: (rowOffset: number, columnIndex: number) => number;
99
+ cellAriaRole: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => string | undefined;
100
+ cellAriaChecked: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => "true" | "false" | "mixed" | undefined;
101
+ cellAriaPressed: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => "true" | "false" | "mixed" | undefined;
102
+ cellAriaLabel: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => string | undefined;
103
+ cellAriaDisabled: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => "true" | undefined;
104
+ handleCellMouseDown: (event: MouseEvent, row: DataGridTableStageBodyRow, rowOffset: number, columnIndex: number) => void;
105
+ handleBodyCellClick: (event: MouseEvent, row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => void;
106
+ handleCellMouseMove: (event: MouseEvent, rowOffset: number, columnIndex: number) => void;
107
+ clearRangeMoveHandleHover: () => void;
108
+ handleCellKeydown: (event: KeyboardEvent, row: DataGridTableStageBodyRow, rowOffset: number, columnIndex: number) => void;
109
+ startInlineEditIfAllowed: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn, rowOffset: number) => void;
110
+ handleFillHandleMouseDown: (event: MouseEvent) => void;
111
+ handleFillHandleDoubleClick: (event: MouseEvent) => void;
112
+ isSelectEditorCell: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => boolean;
113
+ resolveSelectEditorValue: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => string;
114
+ resolveSelectEditorOptions: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => readonly DataGridTableStageSelectEditorOption[];
115
+ resolveSelectEditorOptionsLoader: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => DataGridTableStageSelectEditorOptionsLoader | undefined;
116
+ handleSelectEditorCommit: (value: string, target?: "stay" | "next" | "previous") => void;
117
+ handleSelectEditorCancel: () => void;
118
+ handleSelectEditorOptionsResolved: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn, options: ReadonlyArray<DataGridFilterableComboboxOption>) => void;
119
+ isDateEditorCell: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => boolean;
120
+ resolveDateEditorInputType: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => "date" | "datetime-local";
121
+ handleDateEditorChange: (value: string, target?: "stay" | "next" | "previous") => void;
122
+ isTextEditorCell: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => boolean;
123
+ updateEditingCellValue: (value: string) => void;
124
+ handleEditorKeydown: (event: KeyboardEvent) => void;
125
+ handleTextEditorBlur: () => void;
126
+ shouldRenderCheckboxCell: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => boolean;
127
+ checkboxIndicatorClass: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => Record<string, boolean>;
128
+ checkboxIndicatorMarkClass: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => Record<string, boolean>;
129
+ readResolvedDisplayCell: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => string;
130
+ renderResolvedCellContent: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => VNodeChild;
131
+ handleCenterViewportScroll: (event: Event) => void;
132
+ handleBodyViewportWheel: (event: WheelEvent) => void;
133
+ handleViewportKeydown: (event: KeyboardEvent) => void;
134
+ handleLinkedViewportWheel: (event: WheelEvent) => void;
135
+ }
136
+ export declare function useDataGridStageRenderApis(options: UseDataGridStageRenderApisOptions): {
137
+ pinnedPaneRenderApi: import("vue").ComputedRef<DataGridTableStagePinnedPaneRenderApi>;
138
+ centerPaneRenderApi: import("vue").ComputedRef<DataGridTableStageCenterPaneRenderApi>;
139
+ paneRowStyle: (row: DataGridTableStageBodyRow, rowOffset: number, paneWidth: number) => CSSProperties;
140
+ spacerStyle: (width: number) => CSSProperties;
141
+ };
@@ -0,0 +1,140 @@
1
+ import { type CSSProperties, type Ref, type VNodeChild } from "vue";
2
+ import type { DataGridTableStageCenterPaneRenderApi, DataGridTableStagePinnedPaneRenderApi } from "./dataGridTableStageBody.types";
3
+ import type { DataGridTableStageBodyColumn, DataGridTableStageBodyRow, DataGridTableStageSelectEditorOption, DataGridTableStageSelectEditorOptionsLoader } from "./dataGridTableStageBody.types";
4
+ import type { DataGridFilterableComboboxOption } from "../overlays/dataGridFilterableCombobox";
5
+ import type { DataGridTableMode, DataGridTableStageEditingSection } from "./dataGridTableStage.types";
6
+ type RowRuntime = Readonly<Ref<{
7
+ rows: Readonly<Ref<{
8
+ rowStyle: (row: DataGridTableStageBodyRow, rowOffset: number) => CSSProperties;
9
+ }>>;
10
+ resolveAbsoluteRowIndex: (row: DataGridTableStageBodyRow, rowOffset: number) => number;
11
+ resolveViewportRowOffset: (row: DataGridTableStageBodyRow, rowOffset: number) => number;
12
+ rowStateClasses: (row: DataGridTableStageBodyRow, rowOffset: number) => Record<string, boolean>;
13
+ handleRowContainerClick: (row: DataGridTableStageBodyRow) => void;
14
+ setHoveredRow: (row: DataGridTableStageBodyRow, rowOffset: number) => void;
15
+ isFullRowSelectionSafe: (rowOffset: number) => boolean;
16
+ rowIndexColumnStyle: Readonly<Ref<CSSProperties>>;
17
+ rowIndexCellClasses: (row: DataGridTableStageBodyRow, rowOffset: number) => Record<string, boolean>;
18
+ rowIndexCellStyle: (row: DataGridTableStageBodyRow, rowOffset: number) => CSSProperties;
19
+ rowIndexTabIndex: (row: DataGridTableStageBodyRow) => number;
20
+ isRowIndexDraggable: (row: DataGridTableStageBodyRow) => boolean;
21
+ handleRowIndexClickSafe: (row: DataGridTableStageBodyRow, rowOffset: number, event: MouseEvent) => void;
22
+ handleRowIndexKeydownSafe: (event: KeyboardEvent, row: DataGridTableStageBodyRow, rowOffset: number) => void;
23
+ handleRowIndexDragStart: (event: DragEvent, row: DataGridTableStageBodyRow, rowOffset: number) => void;
24
+ handleRowIndexDragOver: (event: DragEvent, row: DataGridTableStageBodyRow, rowOffset: number) => void;
25
+ handleRowIndexDrop: (event: DragEvent, row: DataGridTableStageBodyRow, rowOffset: number) => void;
26
+ clearRowIndexDragState: () => void;
27
+ columnIndexByKey: (columnKey: string) => number;
28
+ }>>;
29
+ type CellRuntime = Readonly<Ref<{
30
+ visibleColumns: readonly DataGridTableStageBodyColumn[];
31
+ cells: {
32
+ isSelectionAnchorCell?: (rowOffset: number, columnIndex: number) => boolean;
33
+ isCellInFillPreview?: (rowOffset: number, columnIndex: number) => boolean;
34
+ isCellInPendingClipboardRange?: (rowOffset: number, columnIndex: number) => boolean;
35
+ isCellOnPendingClipboardEdge?: (rowOffset: number, columnIndex: number, edge: "top" | "right" | "bottom" | "left") => boolean;
36
+ isCellOnSelectionEdge?: (rowOffset: number, columnIndex: number, edge: "top" | "right" | "bottom" | "left") => boolean;
37
+ readCell: (row: DataGridTableStageBodyRow, columnKey: string) => string;
38
+ readDisplayCell: (row: DataGridTableStageBodyRow, columnKey: string) => string;
39
+ };
40
+ isCellEditableSafe: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => boolean;
41
+ isEditingCellSafe: (row: DataGridTableStageBodyRow, columnKey: string) => boolean;
42
+ isCellSelectedSafe: (rowOffset: number, columnIndex: number) => boolean;
43
+ isSelectionAnchorCellSafe: (rowOffset: number, columnIndex: number) => boolean;
44
+ shouldHighlightSelectedCellVisual: (rowOffset: number, columnIndex: number) => boolean;
45
+ isCellInFillPreviewSafe: (rowOffset: number, columnIndex: number) => boolean;
46
+ isCellInPendingClipboardRangeSafe: (rowOffset: number, columnIndex: number) => boolean;
47
+ isCellOnPendingClipboardEdgeSafe: (rowOffset: number, columnIndex: number, edge: "top" | "right" | "bottom" | "left") => boolean;
48
+ isCellOnSelectionEdgeSafe: (rowOffset: number, columnIndex: number, edge: "top" | "right" | "bottom" | "left") => boolean;
49
+ isFillHandleCellSafe: (rowOffset: number, columnIndex: number) => boolean;
50
+ isVisibleCellEditableByAbsoluteCoord: (rowIndex: number, columnIndex: number) => boolean;
51
+ builtInCellClasses: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => Record<string, boolean>;
52
+ cellStateClasses: (row: DataGridTableStageBodyRow, rowOffset: number, columnIndex: number) => Record<string, boolean>;
53
+ resolveCellCustomClass: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => unknown;
54
+ columnStyle: (key: string) => CSSProperties;
55
+ bodyCellPresentationStyle: (column: DataGridTableStageBodyColumn) => CSSProperties;
56
+ bodyCellSelectionStyle: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn, rowOffset: number, columnIndex: number) => CSSProperties;
57
+ resolveCellCustomStyle: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => CSSProperties;
58
+ cellTabIndex: (rowOffset: number, columnIndex: number) => number;
59
+ cellAriaRole: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => string | undefined;
60
+ cellAriaChecked: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => "true" | "false" | "mixed" | undefined;
61
+ cellAriaPressed: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => "true" | "false" | "mixed" | undefined;
62
+ cellAriaLabel: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => string | undefined;
63
+ cellAriaDisabled: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => "true" | undefined;
64
+ handleCellMouseDown: (event: MouseEvent, row: DataGridTableStageBodyRow, rowOffset: number, columnIndex: number) => void;
65
+ handleBodyCellClick: (event: MouseEvent, row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => void;
66
+ handleCellMouseMove: (event: MouseEvent, rowOffset: number, columnIndex: number) => void;
67
+ clearRangeMoveHandleHover: () => void;
68
+ handleCellKeydown: (event: KeyboardEvent, row: DataGridTableStageBodyRow, rowOffset: number, columnIndex: number) => void;
69
+ startInlineEditIfAllowed: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn, rowOffset: number) => void;
70
+ handleFillHandleMouseDown: (event: MouseEvent) => void;
71
+ handleFillHandleDoubleClick: (event: MouseEvent) => void;
72
+ shouldRenderCheckboxCell: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => boolean;
73
+ checkboxIndicatorClass: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => Record<string, boolean>;
74
+ checkboxIndicatorMarkClass: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => Record<string, boolean>;
75
+ }>>;
76
+ type EditorRuntime = Readonly<Ref<{
77
+ mode: DataGridTableMode;
78
+ rows: Readonly<Ref<{
79
+ rowClass: (row: DataGridTableStageBodyRow) => string;
80
+ rowStyle: (row: DataGridTableStageBodyRow, rowOffset: number) => CSSProperties;
81
+ isRowAutosizeProbe: (row: DataGridTableStageBodyRow, rowOffset: number) => boolean;
82
+ rowIndexLabel: (row: DataGridTableStageBodyRow, rowOffset: number) => string;
83
+ handleRowClick?: (row: DataGridTableStageBodyRow) => void;
84
+ isRowFocused?: (row: DataGridTableStageBodyRow) => boolean;
85
+ isRowCheckboxSelected?: (row: DataGridTableStageBodyRow) => boolean;
86
+ reorderRowsByIndex?: (payload: {
87
+ sourceRowId: string | number;
88
+ targetRowId: string | number;
89
+ placement: "before" | "after";
90
+ }) => boolean;
91
+ consumeRecentRowResizeInteraction?: () => boolean;
92
+ startRowResize: (event: MouseEvent, row: DataGridTableStageBodyRow, rowOffset: number) => void;
93
+ autosizeRow: (event: MouseEvent, row: DataGridTableStageBodyRow, rowOffset: number) => void;
94
+ showRowIndex?: boolean;
95
+ stripedRows?: boolean;
96
+ rowHover?: boolean;
97
+ }>>;
98
+ cells: Readonly<Ref<{
99
+ readCell: (row: DataGridTableStageBodyRow, columnKey: string) => string;
100
+ readDisplayCell: (row: DataGridTableStageBodyRow, columnKey: string) => string;
101
+ }>>;
102
+ editing: Readonly<Ref<DataGridTableStageEditingSection<Record<string, unknown>>>>;
103
+ startInlineEditIfAllowed: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn, rowOffset: number) => void;
104
+ resolveCellEditorMode: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => "none" | "text" | "select" | "date" | "datetime";
105
+ resolveSelectEditorOptions: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => readonly DataGridTableStageSelectEditorOption[];
106
+ resolveSelectEditorOptionsLoader: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => DataGridTableStageSelectEditorOptionsLoader | undefined;
107
+ handleSelectEditorOptionsResolved: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn, options: ReadonlyArray<DataGridFilterableComboboxOption>) => void;
108
+ readResolvedDisplayCell: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => string;
109
+ renderResolvedCellContent: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => VNodeChild;
110
+ resolveSelectEditorValue: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => string;
111
+ isSelectEditorCell: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => boolean;
112
+ isDateEditorCell: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => boolean;
113
+ resolveDateEditorInputType: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => "date" | "datetime-local";
114
+ isTextEditorCell: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => boolean;
115
+ handleSelectEditorCommit: (value: string, target?: "stay" | "next" | "previous") => void;
116
+ handleSelectEditorCancel: () => void;
117
+ handleDateEditorChange: (value: string, target?: "stay" | "next" | "previous") => void;
118
+ handleTextEditorBlur: () => void;
119
+ updateEditingCellValue: (value: string) => void;
120
+ handleEditorKeydown: (event: KeyboardEvent) => void;
121
+ }>>;
122
+ type ViewportRuntime = Readonly<Ref<{
123
+ handleCenterViewportScroll: (event: Event) => void;
124
+ handleBodyViewportWheel: (event: WheelEvent) => void;
125
+ handleViewportKeydown: (event: KeyboardEvent) => void;
126
+ handleLinkedViewportWheel: (event: WheelEvent) => void;
127
+ }>>;
128
+ export interface UseDataGridStageRenderApisOptions {
129
+ rowRuntime: RowRuntime;
130
+ cellRuntime: CellRuntime;
131
+ editorRuntime: EditorRuntime;
132
+ viewportRuntime: ViewportRuntime;
133
+ }
134
+ export declare function useDataGridStageRenderApis(options: UseDataGridStageRenderApisOptions): {
135
+ pinnedPaneRenderApi: import("vue").ComputedRef<DataGridTableStagePinnedPaneRenderApi>;
136
+ centerPaneRenderApi: import("vue").ComputedRef<DataGridTableStageCenterPaneRenderApi>;
137
+ paneRowStyle: (row: DataGridTableStageBodyRow, rowOffset: number, paneWidth: number) => CSSProperties;
138
+ spacerStyle: (width: number) => CSSProperties;
139
+ };
140
+ export {};
@@ -0,0 +1,36 @@
1
+ import { type CSSProperties, type Ref } from "vue";
2
+ import type { DataGridOverlayRange } from "@affino/datagrid-vue";
3
+ import type { DataGridTableStageBodyColumn, DataGridTableStageBodyRow } from "./dataGridTableStageBody.types";
4
+ import type { DataGridTableStageLayoutSection, DataGridTableStageRowsSection } from "./dataGridTableStage.types";
5
+ export interface UseDataGridStageRowIndexOptions {
6
+ rows: Readonly<Ref<DataGridTableStageRowsSection<Record<string, unknown>>>>;
7
+ layout: Readonly<Ref<DataGridTableStageLayoutSection>>;
8
+ viewportRowStart: Readonly<Ref<number>>;
9
+ selectionRange: Readonly<Ref<DataGridOverlayRange | null>>;
10
+ visibleColumns: Readonly<Ref<readonly DataGridTableStageBodyColumn[]>>;
11
+ isHoveredRow: (row: DataGridTableStageBodyRow, rowOffset: number) => boolean;
12
+ isStripedRow: (row: DataGridTableStageBodyRow, rowOffset: number) => boolean;
13
+ resolveAbsoluteRowIndex: (row: DataGridTableStageBodyRow, rowOffset: number) => number;
14
+ resolveInlineRowStateFill: (row: DataGridTableStageBodyRow, rowOffset: number, options?: {
15
+ fullBleed?: boolean;
16
+ }) => CSSProperties | null;
17
+ isDataGridPlaceholderSurfaceRow: (row: DataGridTableStageBodyRow) => boolean;
18
+ }
19
+ export interface UseDataGridStageRowIndexResult {
20
+ showRowIndex: Readonly<Ref<boolean>>;
21
+ indexColumnWidthPx: Readonly<Ref<number>>;
22
+ resolvedRowIndexColumnStyle: Readonly<Ref<CSSProperties>>;
23
+ rowIndexCellClasses: (row: DataGridTableStageBodyRow, rowOffset: number) => Record<string, boolean>;
24
+ rowIndexCellStyle: (row: DataGridTableStageBodyRow, rowOffset: number) => CSSProperties;
25
+ rowIndexTabIndex: (row: DataGridTableStageBodyRow) => number;
26
+ isFullRowSelectionSafe: (rowOffset: number, row?: DataGridTableStageBodyRow) => boolean;
27
+ isRowIndexDraggable: (row: DataGridTableStageBodyRow) => boolean;
28
+ handleRowClickSafe: (row: DataGridTableStageBodyRow) => void;
29
+ handleRowIndexClickSafe: (row: DataGridTableStageBodyRow, rowOffset: number, event: MouseEvent) => void;
30
+ handleRowIndexKeydownSafe: (event: KeyboardEvent, row: DataGridTableStageBodyRow, rowOffset: number) => void;
31
+ handleRowIndexDragStart: (event: DragEvent, row: DataGridTableStageBodyRow, rowOffset: number) => void;
32
+ handleRowIndexDragOver: (event: DragEvent, row: DataGridTableStageBodyRow, rowOffset: number) => void;
33
+ handleRowIndexDrop: (event: DragEvent, row: DataGridTableStageBodyRow, rowOffset: number) => void;
34
+ clearRowIndexDragState: () => void;
35
+ }
36
+ export declare function useDataGridStageRowIndex(options: UseDataGridStageRowIndexOptions): UseDataGridStageRowIndexResult;
@@ -0,0 +1,75 @@
1
+ import { type CSSProperties, type Ref } from "vue";
2
+ import type { DataGridTableStageBodyColumn, DataGridTableStageBodyRow } from "./dataGridTableStageBody.types";
3
+ export interface UseDataGridStageRowStateOptions {
4
+ rows: Readonly<Ref<{
5
+ rowHover?: boolean;
6
+ stripedRows?: boolean;
7
+ isRowFocused?: (row: DataGridTableStageBodyRow) => boolean;
8
+ isRowCheckboxSelected?: (row: DataGridTableStageBodyRow) => boolean;
9
+ isRowInPendingClipboardCut?: (row: DataGridTableStageBodyRow) => boolean;
10
+ toggleGroupRow: (row: DataGridTableStageBodyRow) => void;
11
+ }>>;
12
+ selection: Readonly<Ref<{
13
+ selectionAnchorCell?: {
14
+ rowIndex: number;
15
+ columnIndex: number;
16
+ } | null;
17
+ fillActionAnchorCell?: {
18
+ rowIndex: number;
19
+ columnIndex: number;
20
+ } | null;
21
+ isFillHandleCell?: (rowOffset: number, columnIndex: number) => boolean;
22
+ }>>;
23
+ selectionRange: Readonly<Ref<{
24
+ startRow: number;
25
+ endRow: number;
26
+ startColumn: number;
27
+ endColumn: number;
28
+ } | null>>;
29
+ selectionRanges: Readonly<Ref<readonly {
30
+ startRow: number;
31
+ endRow: number;
32
+ startColumn: number;
33
+ endColumn: number;
34
+ }[]>>;
35
+ displayRows: Readonly<Ref<readonly DataGridTableStageBodyRow[]>>;
36
+ visibleColumns: Readonly<Ref<readonly DataGridTableStageBodyColumn[]>>;
37
+ viewportRowStart: Readonly<Ref<number>>;
38
+ isHoveredRow: (row: DataGridTableStageBodyRow, rowOffset: number) => boolean;
39
+ isStripedRow: (row: DataGridTableStageBodyRow, rowOffset: number) => boolean;
40
+ resolveAbsoluteRowIndex: (row: DataGridTableStageBodyRow, rowOffset: number) => number;
41
+ isCellSelectedSafe: (rowOffset: number, columnIndex: number) => boolean;
42
+ isEditingCellSafe: (row: DataGridTableStageBodyRow, columnKey: string) => boolean;
43
+ isCellEditableSafe: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => boolean;
44
+ resolveCellEditorMode: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn) => "none" | "text" | "select" | "date" | "datetime";
45
+ startInlineEditIfAllowed: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn, rowOffset: number) => void;
46
+ handleCellClick: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => void;
47
+ hasExplicitGroupCellRenderer: Readonly<Ref<boolean>>;
48
+ cells: Readonly<Ref<{
49
+ isSelectionAnchorCell?: (rowOffset: number, columnIndex: number) => boolean;
50
+ isCellInFillPreview?: (rowOffset: number, columnIndex: number) => boolean;
51
+ isCellInPendingClipboardRange?: (rowOffset: number, columnIndex: number) => boolean;
52
+ isCellOnPendingClipboardEdge?: (rowOffset: number, columnIndex: number, edge: "top" | "right" | "bottom" | "left") => boolean;
53
+ isCellOnSelectionEdge?: (rowOffset: number, columnIndex: number, edge: "top" | "right" | "bottom" | "left") => boolean;
54
+ }>>;
55
+ }
56
+ export interface UseDataGridStageRowStateResult {
57
+ rowStateClasses: (row: DataGridTableStageBodyRow, rowOffset: number) => Record<string, boolean>;
58
+ resolveInlineRowStateFill: (row: DataGridTableStageBodyRow, rowOffset: number, options?: {
59
+ fullBleed?: boolean;
60
+ }) => CSSProperties | null;
61
+ bodyCellSelectionStyle: (row: DataGridTableStageBodyRow, column: DataGridTableStageBodyColumn, rowOffset: number, columnIndex: number) => CSSProperties;
62
+ handleBodyCellClick: (event: MouseEvent, row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => void;
63
+ isVisualSelectionAnchorCell: (rowOffset: number, columnIndex: number) => boolean;
64
+ shouldHighlightSelectedCellVisual: (rowOffset: number, columnIndex: number) => boolean;
65
+ isSelectionAnchorCellSafe: (rowOffset: number, columnIndex: number) => boolean;
66
+ isCellInFillPreviewSafe: (rowOffset: number, columnIndex: number) => boolean;
67
+ isCellInPendingClipboardRangeSafe: (rowOffset: number, columnIndex: number) => boolean;
68
+ isCellOnPendingClipboardEdgeSafe: (rowOffset: number, columnIndex: number, edge: "top" | "right" | "bottom" | "left") => boolean;
69
+ isCellOnSelectionEdgeSafe: (rowOffset: number, columnIndex: number, edge: "top" | "right" | "bottom" | "left") => boolean;
70
+ isFillHandleCellSafe: (rowOffset: number, columnIndex: number) => boolean;
71
+ isVisibleCellEditableByAbsoluteCoord: (rowIndex: number, columnIndex: number) => boolean;
72
+ isCellEditableSafe: (row: DataGridTableStageBodyRow, rowOffset: number, column: DataGridTableStageBodyColumn, columnIndex: number) => boolean;
73
+ isEditingCellSafe: (row: DataGridTableStageBodyRow, columnKey: string) => boolean;
74
+ }
75
+ export declare function useDataGridStageRowState(options: UseDataGridStageRowStateOptions): UseDataGridStageRowStateResult;
@@ -0,0 +1,37 @@
1
+ import { type ComponentPublicInstance, type Ref } from "vue";
2
+ import type { DataGridTableStageViewportSection } from "./dataGridTableStage.types";
3
+ export interface UseDataGridStageViewportRuntimeSyncers {
4
+ syncBodyViewportMetrics: () => void;
5
+ syncPinnedBottomViewportMetrics: () => void;
6
+ syncPinnedBottomViewportScrollLeft: () => void;
7
+ scheduleGridChromeRedraw: (mode?: "full" | "center-scroll") => void;
8
+ flushGridChromeRedraw: (mode?: "full" | "center-scroll") => void;
9
+ connectGridChromeResizeObserver: () => void;
10
+ disconnectGridChromeResizeObserver: () => void;
11
+ }
12
+ export interface UseDataGridStageViewportRuntimeOptions {
13
+ stageRootEl: Readonly<Ref<HTMLElement | null>>;
14
+ viewport: Readonly<Ref<DataGridTableStageViewportSection>>;
15
+ gridChromeSyncers: Readonly<Ref<UseDataGridStageViewportRuntimeSyncers>>;
16
+ leftPaneContentRef: Readonly<Ref<HTMLElement | null>>;
17
+ rightPaneContentRef: Readonly<Ref<HTMLElement | null>>;
18
+ }
19
+ export interface UseDataGridStageViewportRuntimeResult {
20
+ bodyViewportEl: Ref<HTMLElement | null>;
21
+ bottomViewportEl: Ref<HTMLElement | null>;
22
+ bodyViewportScrollTop: Ref<number>;
23
+ bodyViewportScrollLeft: Ref<number>;
24
+ bodyViewportClientWidth: Ref<number>;
25
+ bodyViewportClientHeight: Ref<number>;
26
+ pinnedBottomViewportClientHeight: Ref<number>;
27
+ bodyViewportTopOffset: Ref<number>;
28
+ headerShellHeight: Ref<number>;
29
+ headerViewportClientWidth: Ref<number>;
30
+ captureBodyViewportRef: (value: Element | ComponentPublicInstance | null) => void;
31
+ capturePinnedBottomViewportRef: (value: Element | ComponentPublicInstance | null) => void;
32
+ handleCenterViewportScroll: (event: Event) => void;
33
+ handlePinnedBottomViewportScroll: (event: Event) => void;
34
+ handleLinkedViewportWheel: (event: WheelEvent) => void;
35
+ handleBodyViewportWheel: (event: WheelEvent) => void;
36
+ }
37
+ export declare function useDataGridStageViewportRuntime(options: UseDataGridStageViewportRuntimeOptions): UseDataGridStageViewportRuntimeResult;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@affino/datagrid-vue-app",
3
- "version": "0.1.53",
3
+ "version": "0.1.56",
4
4
  "description": "Declarative Vue DataGrid component for Affino",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -45,10 +45,10 @@
45
45
  "dependencies": {
46
46
  "@affino/menu-vue": "^2.1.1",
47
47
  "@affino/popover-vue": "^1.1.0",
48
+ "@affino/datagrid-theme": "0.2.3",
48
49
  "@affino/datagrid-chrome": "0.1.1",
49
- "@affino/datagrid-gantt": "0.1.2",
50
- "@affino/datagrid-vue": "0.3.38",
51
- "@affino/datagrid-theme": "0.2.2"
50
+ "@affino/datagrid-vue": "0.3.40",
51
+ "@affino/datagrid-gantt": "0.1.2"
52
52
  },
53
53
  "peerDependencies": {
54
54
  "vue": "^3.3.0"