@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.
- package/dist/chunks/DataGridGanttStageEntry-CXAJI829.js +10951 -0
- package/dist/chunks/{useDataGridAppRowModel-IZGtp43V.js → useDataGridAppRowModel-BNf-auAJ.js} +1519 -1563
- package/dist/gantt.js +1 -1
- package/dist/index.js +3 -3
- package/dist/internal.js +2 -2
- package/dist/perf/dataGridPerfTrace.d.ts +27 -0
- package/dist/stage/dataGridStageOverlayGeometry.d.ts +89 -0
- package/dist/stage/dataGridTableStageHelpers.d.ts +10 -0
- package/dist/stage/useDataGridPerfTrace.d.ts +9 -0
- package/dist/stage/useDataGridStageCellRendering.d.ts +38 -0
- package/dist/stage/useDataGridStageCellState.d.ts +31 -0
- package/dist/stage/useDataGridStageChromeCanvas.d.ts +41 -0
- package/dist/stage/useDataGridStageChromeModel.d.ts +73 -0
- package/dist/stage/useDataGridStageFillAction.d.ts +51 -0
- package/dist/stage/useDataGridStageFocusRuntime.d.ts +33 -0
- package/dist/stage/useDataGridStageOverlays.d.ts +70 -0
- package/dist/stage/useDataGridStagePanes.d.ts +76 -0
- package/dist/stage/useDataGridStagePanes.grouped.d.ts +86 -0
- package/dist/stage/useDataGridStagePointerInteractions.d.ts +30 -0
- package/dist/stage/useDataGridStageRenderApis.d.ts +141 -0
- package/dist/stage/useDataGridStageRenderApis.grouped.d.ts +140 -0
- package/dist/stage/useDataGridStageRowIndex.d.ts +36 -0
- package/dist/stage/useDataGridStageRowState.d.ts +75 -0
- package/dist/stage/useDataGridStageViewportRuntime.d.ts +37 -0
- package/package.json +4 -4
- package/dist/chunks/DataGridGanttStageEntry-BrCpep-f.js +0 -10128
|
@@ -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.
|
|
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-
|
|
50
|
-
"@affino/datagrid-
|
|
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"
|