@deephaven/grid 0.7.3-beta.4 → 0.8.2-beta.0

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.
Files changed (147) hide show
  1. package/dist/CellInputField.d.ts +4 -4
  2. package/dist/CellInputField.d.ts.map +1 -1
  3. package/dist/CellInputField.js +10 -11
  4. package/dist/CellInputField.js.map +1 -1
  5. package/dist/EditableGridModel.d.ts +70 -0
  6. package/dist/EditableGridModel.d.ts.map +1 -0
  7. package/dist/EditableGridModel.js +13 -0
  8. package/dist/EditableGridModel.js.map +1 -0
  9. package/dist/EventHandlerResult.d.ts +17 -0
  10. package/dist/EventHandlerResult.d.ts.map +1 -0
  11. package/dist/EventHandlerResult.js +2 -0
  12. package/dist/EventHandlerResult.js.map +1 -0
  13. package/dist/ExpandableGridModel.d.ts +34 -0
  14. package/dist/ExpandableGridModel.d.ts.map +1 -0
  15. package/dist/ExpandableGridModel.js +7 -0
  16. package/dist/ExpandableGridModel.js.map +1 -0
  17. package/dist/Grid.d.ts +283 -234
  18. package/dist/Grid.d.ts.map +1 -1
  19. package/dist/Grid.js +397 -165
  20. package/dist/Grid.js.map +1 -1
  21. package/dist/GridColorUtils.d.ts +22 -12
  22. package/dist/GridColorUtils.d.ts.map +1 -1
  23. package/dist/GridColorUtils.js +26 -21
  24. package/dist/GridColorUtils.js.map +1 -1
  25. package/dist/GridMetricCalculator.d.ts.map +1 -1
  26. package/dist/GridMetricCalculator.js +8 -4
  27. package/dist/GridMetricCalculator.js.map +1 -1
  28. package/dist/GridModel.d.ts +54 -60
  29. package/dist/GridModel.d.ts.map +1 -1
  30. package/dist/GridModel.js +54 -122
  31. package/dist/GridModel.js.map +1 -1
  32. package/dist/GridMouseHandler.d.ts +23 -24
  33. package/dist/GridMouseHandler.d.ts.map +1 -1
  34. package/dist/GridMouseHandler.js +8 -14
  35. package/dist/GridMouseHandler.js.map +1 -1
  36. package/dist/GridRange.d.ts +2 -2
  37. package/dist/GridRange.d.ts.map +1 -1
  38. package/dist/GridRange.js +1 -1
  39. package/dist/GridRange.js.map +1 -1
  40. package/dist/GridRenderer.d.ts +117 -69
  41. package/dist/GridRenderer.d.ts.map +1 -1
  42. package/dist/GridRenderer.js +183 -168
  43. package/dist/GridRenderer.js.map +1 -1
  44. package/dist/GridUtils.d.ts +4 -4
  45. package/dist/GridUtils.js +4 -4
  46. package/dist/GridUtils.js.map +1 -1
  47. package/dist/KeyHandler.d.ts +10 -7
  48. package/dist/KeyHandler.d.ts.map +1 -1
  49. package/dist/KeyHandler.js +6 -5
  50. package/dist/KeyHandler.js.map +1 -1
  51. package/dist/MockGridData.d.ts +1 -1
  52. package/dist/MockGridData.d.ts.map +1 -1
  53. package/dist/MockGridData.js.map +1 -1
  54. package/dist/MockGridModel.d.ts +39 -12
  55. package/dist/MockGridModel.d.ts.map +1 -1
  56. package/dist/MockGridModel.js +43 -10
  57. package/dist/MockGridModel.js.map +1 -1
  58. package/dist/MockTreeGridModel.d.ts +37 -22
  59. package/dist/MockTreeGridModel.d.ts.map +1 -1
  60. package/dist/MockTreeGridModel.js +38 -20
  61. package/dist/MockTreeGridModel.js.map +1 -1
  62. package/dist/errors/AssertionError.d.ts +5 -0
  63. package/dist/errors/AssertionError.d.ts.map +1 -0
  64. package/dist/errors/AssertionError.js +12 -0
  65. package/dist/errors/AssertionError.js.map +1 -0
  66. package/dist/errors/PasteError.d.ts +1 -1
  67. package/dist/errors/PasteError.d.ts.map +1 -1
  68. package/dist/errors/PasteError.js +1 -2
  69. package/dist/errors/PasteError.js.map +1 -1
  70. package/dist/errors/assertIsDefined.d.ts +3 -0
  71. package/dist/errors/assertIsDefined.d.ts.map +1 -0
  72. package/dist/errors/assertIsDefined.js +8 -0
  73. package/dist/errors/assertIsDefined.js.map +1 -0
  74. package/dist/errors/index.d.ts +2 -0
  75. package/dist/errors/index.d.ts.map +1 -1
  76. package/dist/errors/index.js +2 -1
  77. package/dist/errors/index.js.map +1 -1
  78. package/dist/index.d.ts +1 -0
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +1 -0
  81. package/dist/index.js.map +1 -1
  82. package/dist/key-handlers/EditKeyHandler.d.ts +3 -2
  83. package/dist/key-handlers/EditKeyHandler.d.ts.map +1 -1
  84. package/dist/key-handlers/EditKeyHandler.js +10 -9
  85. package/dist/key-handlers/EditKeyHandler.js.map +1 -1
  86. package/dist/key-handlers/PasteKeyHandler.d.ts +3 -5
  87. package/dist/key-handlers/PasteKeyHandler.d.ts.map +1 -1
  88. package/dist/key-handlers/PasteKeyHandler.js +3 -3
  89. package/dist/key-handlers/PasteKeyHandler.js.map +1 -1
  90. package/dist/key-handlers/SelectionKeyHandler.d.ts +5 -5
  91. package/dist/key-handlers/SelectionKeyHandler.d.ts.map +1 -1
  92. package/dist/key-handlers/SelectionKeyHandler.js +16 -15
  93. package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
  94. package/dist/key-handlers/TreeKeyHandler.d.ts +2 -2
  95. package/dist/key-handlers/TreeKeyHandler.d.ts.map +1 -1
  96. package/dist/key-handlers/TreeKeyHandler.js +14 -12
  97. package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
  98. package/dist/memoizeClear.d.ts +13 -3
  99. package/dist/memoizeClear.d.ts.map +1 -1
  100. package/dist/memoizeClear.js +7 -7
  101. package/dist/memoizeClear.js.map +1 -1
  102. package/dist/mouse-handlers/EditMouseHandler.d.ts +3 -4
  103. package/dist/mouse-handlers/EditMouseHandler.d.ts.map +1 -1
  104. package/dist/mouse-handlers/EditMouseHandler.js +3 -2
  105. package/dist/mouse-handlers/EditMouseHandler.js.map +1 -1
  106. package/dist/mouse-handlers/GridColumnMoveMouseHandler.d.ts +12 -5
  107. package/dist/mouse-handlers/GridColumnMoveMouseHandler.d.ts.map +1 -1
  108. package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +13 -10
  109. package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
  110. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.d.ts +24 -3
  111. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.d.ts.map +1 -1
  112. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js +2 -1
  113. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
  114. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.d.ts +16 -6
  115. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.d.ts.map +1 -1
  116. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +41 -37
  117. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
  118. package/dist/mouse-handlers/GridRowMoveMouseHandler.d.ts +10 -3
  119. package/dist/mouse-handlers/GridRowMoveMouseHandler.d.ts.map +1 -1
  120. package/dist/mouse-handlers/GridRowMoveMouseHandler.js +14 -11
  121. package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
  122. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.d.ts +24 -3
  123. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.d.ts.map +1 -1
  124. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js +4 -3
  125. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
  126. package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts +8 -3
  127. package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts.map +1 -1
  128. package/dist/mouse-handlers/GridRowTreeMouseHandler.js +12 -7
  129. package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
  130. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.d.ts +9 -3
  131. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.d.ts.map +1 -1
  132. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js +2 -1
  133. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js.map +1 -1
  134. package/dist/mouse-handlers/GridSelectionMouseHandler.d.ts +15 -9
  135. package/dist/mouse-handlers/GridSelectionMouseHandler.d.ts.map +1 -1
  136. package/dist/mouse-handlers/GridSelectionMouseHandler.js +26 -16
  137. package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
  138. package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts +46 -28
  139. package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts.map +1 -1
  140. package/dist/mouse-handlers/GridSeparatorMouseHandler.js +57 -74
  141. package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
  142. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.d.ts +16 -6
  143. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.d.ts.map +1 -1
  144. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +41 -37
  145. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
  146. package/dist/tsconfig.tsbuildinfo +1 -1
  147. package/package.json +3 -3
package/dist/Grid.d.ts CHANGED
@@ -1,4 +1,64 @@
1
- export default Grid;
1
+ import React, { PureComponent, ReactNode } from 'react';
2
+ import GridMetricCalculator, { GridMetricState } from './GridMetricCalculator';
3
+ import GridModel from './GridModel';
4
+ import GridMouseHandler, { GridMouseEvent, GridMouseHandlerFunctionName } from './GridMouseHandler';
5
+ import { GridTheme as GridThemeType } from './GridTheme';
6
+ import GridRange, { GridRangeIndex, SELECTION_DIRECTION } from './GridRange';
7
+ import GridRenderer, { EditingCell, EditingCellTextSelectionRange } from './GridRenderer';
8
+ import { GridPoint } from './GridUtils';
9
+ import './Grid.scss';
10
+ import KeyHandler, { GridKeyboardEvent } from './KeyHandler';
11
+ import GridMetrics, { Coordinate, ModelIndex, MoveOperation, VisibleIndex } from './GridMetrics';
12
+ export declare type GridProps = typeof Grid.defaultProps & {
13
+ canvasOptions?: CanvasRenderingContext2DSettings;
14
+ isStickyBottom?: boolean;
15
+ isStickyRight?: boolean;
16
+ metricCalculator?: GridMetricCalculator;
17
+ model: GridModel;
18
+ keyHandlers?: KeyHandler[];
19
+ mouseHandlers?: GridMouseHandler[];
20
+ movedColumns?: MoveOperation[];
21
+ movedRows?: MoveOperation[];
22
+ onError?: (e: Error) => void;
23
+ onSelectionChanged?: (ranges: GridRange[]) => void;
24
+ onMovedColumnsChanged?: (movedColumns: MoveOperation[]) => void;
25
+ onMovedRowsChanged?: (movedRows: MoveOperation[]) => void;
26
+ onMoveColumnComplete?: (movedColumns: MoveOperation[]) => void;
27
+ onMoveRowComplete?: (movedRows: MoveOperation[]) => void;
28
+ onViewChanged?: (metrics: GridMetrics) => void;
29
+ renderer?: GridRenderer;
30
+ stateOverride?: Record<string, unknown>;
31
+ theme?: GridThemeType;
32
+ };
33
+ export declare type GridState = {
34
+ top: VisibleIndex;
35
+ left: VisibleIndex;
36
+ topOffset: number;
37
+ leftOffset: number;
38
+ draggingColumn: VisibleIndex | null;
39
+ draggingRow: VisibleIndex | null;
40
+ draggingColumnOffset: number | null;
41
+ draggingRowOffset: number | null;
42
+ draggingColumnSeparator: VisibleIndex | null;
43
+ draggingRowSeparator: VisibleIndex | null;
44
+ isDraggingHorizontalScrollBar: boolean;
45
+ isDraggingVerticalScrollBar: boolean;
46
+ isDragging: boolean;
47
+ mouseX: number | null;
48
+ mouseY: number | null;
49
+ movedColumns: MoveOperation[];
50
+ movedRows: MoveOperation[];
51
+ cursorRow: VisibleIndex | null;
52
+ cursorColumn: VisibleIndex | null;
53
+ selectionStartRow: VisibleIndex | null;
54
+ selectionStartColumn: VisibleIndex | null;
55
+ selectionEndRow: VisibleIndex | null;
56
+ selectionEndColumn: VisibleIndex | null;
57
+ selectedRanges: GridRange[];
58
+ lastSelectedRanges: GridRange[];
59
+ cursor: string | null;
60
+ editingCell: EditingCell | null;
61
+ };
2
62
  /**
3
63
  * High performance, extendible, themeable grid component.
4
64
  * Architectured to be fast and handle billions of rows/columns by default.
@@ -13,131 +73,123 @@ export default Grid;
13
73
  * Add an onViewChanged callback to page in/out data as user moves around the grid
14
74
  * Can also add onClick and onContextMenu handlers to add custom functionality and menus.
15
75
  */
16
- declare class Grid extends React.PureComponent<any, any, any> {
76
+ declare class Grid extends PureComponent<GridProps, GridState> {
77
+ static defaultProps: {
78
+ canvasOptions: CanvasRenderingContext2DSettings;
79
+ isStickyBottom: boolean;
80
+ isStickyRight: boolean;
81
+ keyHandlers: KeyHandler[];
82
+ mouseHandlers: GridMouseHandler[];
83
+ movedColumns: MoveOperation[];
84
+ movedRows: MoveOperation[];
85
+ onError: () => void;
86
+ onSelectionChanged: () => void;
87
+ onMovedColumnsChanged: () => void;
88
+ onMoveColumnComplete: () => void;
89
+ onMovedRowsChanged: () => void;
90
+ onMoveRowComplete: () => void;
91
+ onViewChanged: () => void;
92
+ stateOverride: Record<string, unknown>;
93
+ theme: GridThemeType;
94
+ };
17
95
  static pixelsPerLine: number;
18
96
  static dragTimeout: number;
19
97
  static getTheme: (this: any, userTheme: any) => any;
20
- static getScale(context: any): number;
21
- static getCursorClassName(cursor: any): string | null;
22
- constructor(props: any);
23
- handleClick(event: any): void;
24
- handleContextMenu(event: any): void;
25
- handleEditCellCancel(): void;
26
- handleEditCellChange(value: any): void;
27
- handleEditCellCommit(value: any, { direction, fillRange }?: {
28
- direction?: import("./GridRange").SELECTION_DIRECTION | undefined;
29
- fillRange?: boolean | undefined;
30
- }): void;
31
- handleDoubleClick(event: any): void;
32
- handleKeyDown(e: any): void;
33
- handleMouseDown(event: any): void;
34
- handleMouseDrag(event: any): void;
35
- handleMouseMove(event: any): void;
36
- handleMouseLeave(event: any): void;
37
- handleMouseUp(event: any): void;
38
- handleResize(): void;
39
- handleWheel(e: any): void;
40
- renderer: any;
41
- metricCalculator: any;
98
+ /**
99
+ * On some devices there may be different scaling required for high DPI. Get the scale required for the canvas.
100
+ * @param context The canvas context
101
+ * @returns The scale to use
102
+ */
103
+ static getScale(context: CanvasRenderingContext2D): number;
104
+ /**
105
+ * Get the class name from the cursor provided
106
+ * @param cursor The grid cursor to use
107
+ * @returns Class name with the grid-cursor prefix or null if no cursor provided
108
+ */
109
+ static getCursorClassName(cursor: string | null): string | null;
110
+ renderer: GridRenderer;
111
+ metricCalculator: GridMetricCalculator;
42
112
  canvas: HTMLCanvasElement | null;
43
- canvasContext: RenderingContext | null;
44
- animationFrame: any;
45
- prevMetrics: any;
46
- metrics: any;
113
+ canvasContext: CanvasRenderingContext2D | null;
114
+ animationFrame: number | null;
115
+ prevMetrics: GridMetrics | null;
116
+ metrics: GridMetrics | null;
47
117
  isStuckToBottom: boolean;
48
118
  isStuckToRight: boolean;
49
119
  documentCursor: string | null;
50
- dragTimer: NodeJS.Timeout | null;
51
- keyHandlers: (SelectionKeyHandler | TreeKeyHandler | EditKeyHandler | PasteKeyHandler)[];
52
- mouseHandlers: (EditMouseHandler | GridSelectionMouseHandler | GridColumnMoveMouseHandler | GridColumnSeparatorMouseHandler | GridHorizontalScrollBarMouseHandler | GridRowMoveMouseHandler | GridRowSeparatorMouseHandler | GridRowTreeMouseHandler | GridScrollBarCornerMouseHandler | GridVerticalScrollBarMouseHandler)[];
53
- getTheme(): any;
54
- getGridPointFromEvent(event: any): import("./GridUtils").GridPoint;
55
- getGridPointFromXY(x: any, y: any): import("./GridUtils").GridPoint;
56
- getMetricState(state?: {
57
- top: number;
58
- left: number;
59
- topOffset: number;
60
- leftOffset: number;
61
- draggingColumn: null;
62
- draggingRow: null;
63
- draggingColumnOffset: null;
64
- draggingRowOffset: null;
65
- draggingColumnSeparator: null;
66
- draggingRowSeparator: null;
67
- isDraggingHorizontalScrollBar: boolean;
68
- isDraggingVerticalScrollBar: boolean;
69
- isDragging: boolean;
70
- mouseX: null;
71
- mouseY: null;
72
- movedColumns: any;
73
- movedRows: any;
74
- cursorRow: null;
75
- cursorColumn: null;
76
- selectionStartRow: null;
77
- selectionStartColumn: null;
78
- selectionEndRow: null;
79
- selectionEndColumn: null;
80
- selectedRanges: never[];
81
- lastSelectedRanges: never[];
82
- cursor: null;
83
- editingCell: null;
84
- }): any;
85
- getCachedKeyHandlers: (this: any, keyHandlers: any) => any[];
86
- getKeyHandlers(): any[];
87
- getCachedMouseHandlers: (this: any, mouseHandlers: any) => any[];
88
- getMouseHandlers(): any[];
89
- getModelColumn(columnIndex: any): any;
90
- getModelRow(rowIndex: any): any;
91
- toggleRowExpanded(row: any): void;
92
- /** Allows the selected range to be set programatically */
93
- setSelectedRanges(gridRanges: any): void;
120
+ dragTimer: ReturnType<typeof setTimeout> | null;
121
+ keyHandlers: KeyHandler[];
122
+ mouseHandlers: GridMouseHandler[];
123
+ constructor(props: GridProps);
124
+ componentDidMount(): void;
125
+ componentDidUpdate(prevProps: GridProps, prevState: GridState): void;
126
+ componentWillUnmount(): void;
127
+ getTheme(): GridThemeType;
128
+ getGridPointFromEvent(event: GridMouseEvent): GridPoint;
129
+ getGridPointFromXY(x: Coordinate, y: Coordinate): GridPoint;
130
+ getMetricState(state?: Readonly<GridState>): GridMetricState;
131
+ getCachedKeyHandlers: (keyHandlers: KeyHandler[]) => KeyHandler[];
132
+ getKeyHandlers(): KeyHandler[];
133
+ getCachedMouseHandlers: (mouseHandlers: GridMouseHandler[]) => GridMouseHandler[];
134
+ getMouseHandlers(): GridMouseHandler[];
135
+ /**
136
+ * Translate from the provided visible index to the model index
137
+ * @param columnIndex The column index to get the model for
138
+ * @returns The model index
139
+ */
140
+ getModelColumn(columnIndex: VisibleIndex): ModelIndex;
141
+ /**
142
+ * Translate from the provided visible index to the model index
143
+ * @param rowIndex The row index to get the model for
144
+ * @returns The model index
145
+ */
146
+ getModelRow(rowIndex: VisibleIndex): ModelIndex;
147
+ /**
148
+ * Toggle a row between expanded and collapsed states
149
+ * @param row The row to toggle expansion for
150
+ */
151
+ toggleRowExpanded(row: VisibleIndex): void;
152
+ /**
153
+ * Allows the selected ranges to be set programatically
154
+ * Will update the cursor and selection start/end based on the new ranges
155
+ * @param gridRanges The new selected ranges to set
156
+ */
157
+ setSelectedRanges(gridRanges: GridRange[]): void;
94
158
  initContext(): void;
95
159
  requestUpdateCanvas(): void;
96
- updateCanvas(metrics?: any): void;
160
+ updateCanvas(metrics?: GridMetrics): void;
97
161
  updateCanvasScale(): void;
98
- updateMetrics(state?: {
99
- top: number;
100
- left: number;
101
- topOffset: number;
102
- leftOffset: number;
103
- draggingColumn: null;
104
- draggingRow: null;
105
- draggingColumnOffset: null;
106
- draggingRowOffset: null;
107
- draggingColumnSeparator: null;
108
- draggingRowSeparator: null;
109
- isDraggingHorizontalScrollBar: boolean;
110
- isDraggingVerticalScrollBar: boolean;
111
- isDragging: boolean;
112
- mouseX: null;
113
- mouseY: null;
114
- movedColumns: any;
115
- movedRows: any;
116
- cursorRow: null;
117
- cursorColumn: null;
118
- selectionStartRow: null;
119
- selectionStartColumn: null;
120
- selectionEndRow: null;
121
- selectionEndColumn: null;
122
- selectedRanges: never[];
123
- lastSelectedRanges: never[];
124
- cursor: null;
125
- editingCell: null;
126
- }): any;
127
- checkSelectionChange(prevState: any): void;
162
+ updateMetrics(state?: Readonly<GridState>): GridMetrics;
163
+ /**
164
+ * Check if the selection state has changed, and call the onSelectionChanged callback if they have
165
+ * @param prevState The previous grid state
166
+ */
167
+ checkSelectionChange(prevState: GridState): void;
168
+ /**
169
+ * Validate the current selection, and reset if it is invalid
170
+ * @returns True if the selection is valid, false if the selection was invalid and has been reset
171
+ */
128
172
  validateSelection(): boolean;
173
+ /**
174
+ * Clears all selected ranges
175
+ */
129
176
  clearSelectedRanges(): void;
130
177
  /** Clears all but the last selected range */
131
178
  trimSelectedRanges(): void;
132
- beginSelection(column: any, row: any): void;
179
+ /**
180
+ * Begin a selection operation at the provided location
181
+ * @param column Column where the selection is beginning
182
+ * @param row Row where the selection is beginning
183
+ */
184
+ beginSelection(column: GridRangeIndex, row: GridRangeIndex): void;
133
185
  /**
134
186
  * Moves the selection to the cell specified
135
- * @param {number} column The column index to move the cursor to
136
- * @param {number} row The row index to move the cursor to
137
- * @param {boolean} extendSelection Whether to extend the current selection (eg. holding Shift)
138
- * @param {boolean} maximizePreviousRange When true, maximize/add to the previous range only, ignoring where the selection was started.
187
+ * @param column The column index to move the cursor to
188
+ * @param row The row index to move the cursor to
189
+ * @param extendSelection Whether to extend the current selection (eg. holding Shift)
190
+ * @param maximizePreviousRange When true, maximize/add to the previous range only, ignoring where the selection was started.
139
191
  */
140
- moveSelection(column: number, row: number, extendSelection?: boolean, maximizePreviousRange?: boolean): void;
192
+ moveSelection(column: GridRangeIndex, row: GridRangeIndex, extendSelection?: boolean, maximizePreviousRange?: boolean): void;
141
193
  /**
142
194
  * Commits the last selected range to the selected ranges.
143
195
  * First checks if the last range is completely contained within another range, and if it
@@ -145,166 +197,163 @@ declare class Grid extends React.PureComponent<any, any, any> {
145
197
  * Then it consolidates all the selected ranges, reducing them.
146
198
  */
147
199
  commitSelection(): void;
200
+ /**
201
+ * Set the selection to the entire grid
202
+ */
148
203
  selectAll(): void;
149
- moveCursor(deltaColumn: any, deltaRow: any, extendSelection: any): void;
204
+ /**
205
+ * Move the cursor in relation to the current cursor position
206
+ * @param deltaColumn Number of columns to move the cursor
207
+ * @param deltaRow Number of rows to move the cursor
208
+ * @param extendSelection True if the current selection should be extended, false to start a new selection
209
+ */
210
+ moveCursor(deltaColumn: number, deltaRow: number, extendSelection: boolean): void;
150
211
  /**
151
212
  * Move the cursor in the provided selection direction
152
- * @param {string} direction The direction to move the cursor in
213
+ * @param direction The direction to move the cursor in
153
214
  */
154
- moveCursorInDirection(direction?: string): void;
215
+ moveCursorInDirection(direction?: SELECTION_DIRECTION): void;
155
216
  /**
156
217
  * Move a cursor to the specified position in the grid.
157
- * @param {number|null} column The column index to move the cursor to
158
- * @param {number|null} row The row index to move the cursor to
159
- * @param {boolean} extendSelection Whether to extend the current selection (eg. holding Shift)
160
- * @param {boolean} keepCursorInView Whether to move the viewport so that the cursor is in view
161
- * @param {boolean} maximizePreviousRange With this and `extendSelection` true, it will maximize/add to the previous range only, ignoring where the selection was started
218
+ * @param column The column index to move the cursor to
219
+ * @param row The row index to move the cursor to
220
+ * @param extendSelection Whether to extend the current selection (eg. holding Shift)
221
+ * @param keepCursorInView Whether to move the viewport so that the cursor is in view
222
+ * @param maximizePreviousRange With this and `extendSelection` true, it will maximize/add to the previous range only, ignoring where the selection was started
162
223
  */
163
- moveCursorToPosition(column: number | null, row: number | null, extendSelection?: boolean, keepCursorInView?: boolean, maximizePreviousRange?: boolean): void;
224
+ moveCursorToPosition(column: GridRangeIndex, row: GridRangeIndex, extendSelection?: boolean, keepCursorInView?: boolean, maximizePreviousRange?: boolean): void;
164
225
  /**
165
226
  * Moves the view to make the specified cell visible
166
227
  *
167
- * @param {number|null} column The column index to bring into view
168
- * @param {number|null} row The row index to bring into view
228
+ * @param column The column index to bring into view
229
+ * @param row The row index to bring into view
169
230
  */
170
- moveViewToCell(column: number | null, row: number | null): void;
231
+ moveViewToCell(column: GridRangeIndex, row: GridRangeIndex): void;
171
232
  /**
172
233
  * Checks the `top` and `left` properties that are set and updates the isStuckToBottom/Right properties
173
234
  * Should be called when user interaction occurs
174
- * @param {object} viewState New state properties to set.
175
- * @param {boolean} forceUpdate Whether to force an update.
235
+ * @param viewState New state properties to set.
236
+ * @param forceUpdate Whether to force an update.
176
237
  */
177
- setViewState(viewState: object, forceUpdate?: boolean): void;
238
+ setViewState(viewState: Partial<GridState>, forceUpdate?: boolean): void;
178
239
  /**
179
240
  * Start editing the data at the given index
180
241
  *
181
- * @param {number} column The visible column index to start editing
182
- * @param {number} row The visible row index to start editing
183
- * @param {boolean} isQuickEdit If this is a quick edit (the arrow keys can commit)
184
- * @param {number[]|null} selectionRange The tuple [start,end] text selection range of the value to select when editing
185
- * @param {string?} value The value to start with in the edit field. Leave undefined to use the current value.
242
+ * @param column The visible column index to start editing
243
+ * @param row The visible row index to start editing
244
+ * @param isQuickEdit If this is a quick edit (the arrow keys can commit)
245
+ * @param selectionRange The tuple [start,end] text selection range of the value to select when editing
246
+ * @param value The value to start with in the edit field. Leave undefined to use the current value.
186
247
  */
187
- startEditing(column: number, row: number, isQuickEdit?: boolean, selectionRange?: number[] | null, value?: string | null): void;
188
- isValidForCell(column: any, row: any, value: any): any;
248
+ startEditing(column: VisibleIndex, row: VisibleIndex, isQuickEdit?: boolean, selectionRange?: EditingCellTextSelectionRange, value?: string): void;
249
+ /**
250
+ * Check if a value is valid for a specific cell
251
+ * @param column Column index of the cell to check
252
+ * @param row Row index of the cell to check
253
+ * @param value Value to check
254
+ * @returns True if the value is valid for the provided cell, false otherwise
255
+ */
256
+ isValidForCell(column: VisibleIndex, row: VisibleIndex, value: string): boolean;
189
257
  /**
190
258
  * Paste a value with the current selection
191
259
  * It first needs to validate that the pasted table is valid for the given selection.
192
260
  * Also may update selection if single cells are selected and a table is pasted.
193
- * @param {string[][] | string} value Table or a string that is being pasted
261
+ * @param value Table or a string that is being pasted
194
262
  */
195
263
  pasteValue(value: string[][] | string): Promise<void>;
196
- setValueForCell(column: any, row: any, value: any): void;
197
- setValueForRanges(ranges: any, value: any): void;
198
- isSelected(row: any, column: any): boolean;
199
- addDocumentCursor(cursor?: any): void;
264
+ /**
265
+ * Set a value to a specific cell. If the value is not valid for that cell, do not set it
266
+ * @param column Column index to set the value for
267
+ * @param row Row index to set the value for
268
+ * @param value Value to set at that cell
269
+ * @returns true If the value was valid and attempted to be set, false is it was not valid
270
+ */
271
+ setValueForCell(column: VisibleIndex, row: VisibleIndex, value: string): boolean;
272
+ /**
273
+ * Set a value on all the ranges provided
274
+ * @param ranges Ranges to set
275
+ * @param value The value to set on all the ranges
276
+ */
277
+ setValueForRanges(ranges: GridRange[], value: string): void;
278
+ /**
279
+ * Check if a given cell is within the current selection
280
+ * @param row Row to check
281
+ * @param column Column to check
282
+ * @returns True if the cell is in the current selection, false otherwise
283
+ */
284
+ isSelected(row: VisibleIndex, column: VisibleIndex): boolean;
285
+ addDocumentCursor(cursor?: string | null): void;
200
286
  removeDocumentCursor(): void;
201
- startDragTimer(event: any): void;
287
+ startDragTimer(event: React.MouseEvent): void;
202
288
  stopDragTimer(): void;
203
289
  /**
290
+ * Draw the grid with the metrics provided
204
291
  * When scrolling you've have to re-draw the whole canvas. As a consequence, all these drawing methods
205
292
  * must be very quick.
293
+ * @param metrics Metrics to use for rendering the grid
294
+ */
295
+ drawCanvas(metrics?: GridMetrics): void;
296
+ /**
297
+ * Set focus to this grid element
206
298
  */
207
- drawCanvas(metrics?: any): void;
208
299
  focus(): void;
300
+ /**
301
+ * Check if this grid is currently focused
302
+ * @returns True if the active element is this grid
303
+ */
209
304
  isFocused(): boolean;
305
+ /**
306
+ * Handle a mouse click event. Pass the event to the registered mouse handlers until one handles it.
307
+ * Focuses the grid after the click.
308
+ * @param event The mouse event
309
+ */
310
+ handleClick(event: React.MouseEvent): void;
311
+ /**
312
+ * Handle a mouse context menu event. Pass the event to the registered mouse handlers until one handles it.
313
+ * @param event The mouse event triggering the context menu
314
+ */
315
+ handleContextMenu(event: React.MouseEvent): void;
316
+ /**
317
+ * Handle a key down event from the keyboard. Pass the event to the registered keyboard handlers until one handles it.
318
+ * @param event Keyboard event
319
+ */
320
+ handleKeyDown(event: GridKeyboardEvent): void;
210
321
  /**
211
322
  * Notify all of the mouse handlers for this grid of a mouse event.
212
- * @param {String} functionName The name of the function in the mouse handler to call
213
- * @param {MouseEvent} event The mouse event to notify
214
- * @param {Boolean} updateCoordinates Whether to update the mouse coordinates
215
- * @param {Boolean} addCursorToDocument Whether to add a cursor overlay or not (for dragging)
323
+ * @param functionName The name of the function in the mouse handler to call
324
+ * @param event The mouse event to notify
325
+ * @param updateCoordinates Whether to update the mouse coordinates
326
+ * @param addCursorToDocument Whether to add a cursor overlay or not (for dragging)
216
327
  */
217
- notifyMouseHandlers(functionName: string, event: MouseEvent, updateCoordinates?: boolean, addCursorToDocument?: boolean): void;
218
- renderInputField(): JSX.Element | null;
219
- }
220
- declare namespace Grid {
221
- namespace propTypes {
222
- const canvasOptions: PropTypes.Requireable<PropTypes.InferProps<{}>>;
223
- const isStickyBottom: PropTypes.Requireable<boolean>;
224
- const isStickyRight: PropTypes.Requireable<boolean>;
225
- const metricCalculator: PropTypes.Requireable<GridMetricCalculator>;
226
- const model: PropTypes.Validator<GridModel>;
227
- const keyHandlers: PropTypes.Requireable<(KeyHandler | null | undefined)[]>;
228
- const mouseHandlers: PropTypes.Requireable<(GridMouseHandler | null | undefined)[]>;
229
- const movedColumns: PropTypes.Requireable<(PropTypes.InferProps<{
230
- from: PropTypes.Validator<number>;
231
- to: PropTypes.Validator<number>;
232
- }> | null | undefined)[]>;
233
- const movedRows: PropTypes.Requireable<(PropTypes.InferProps<{
234
- from: PropTypes.Validator<number>;
235
- to: PropTypes.Validator<number>;
236
- }> | null | undefined)[]>;
237
- const onError: PropTypes.Requireable<(...args: any[]) => any>;
238
- const onSelectionChanged: PropTypes.Requireable<(...args: any[]) => any>;
239
- const onMovedColumnsChanged: PropTypes.Requireable<(...args: any[]) => any>;
240
- const onMoveColumnComplete: PropTypes.Requireable<(...args: any[]) => any>;
241
- const onViewChanged: PropTypes.Requireable<(...args: any[]) => any>;
242
- const renderer: PropTypes.Requireable<GridRenderer>;
243
- const stateOverride: PropTypes.Requireable<PropTypes.InferProps<{}>>;
244
- const theme: PropTypes.Requireable<PropTypes.InferProps<{
245
- autoSelectColumn: PropTypes.Requireable<boolean>;
246
- autoSelectRow: PropTypes.Requireable<boolean>;
247
- }>>;
248
- }
249
- namespace defaultProps {
250
- export namespace canvasOptions_1 {
251
- const alpha: boolean;
252
- }
253
- export { canvasOptions_1 as canvasOptions };
254
- const isStickyBottom_1: boolean;
255
- export { isStickyBottom_1 as isStickyBottom };
256
- const isStickyRight_1: boolean;
257
- export { isStickyRight_1 as isStickyRight };
258
- const metricCalculator_1: null;
259
- export { metricCalculator_1 as metricCalculator };
260
- const keyHandlers_1: never[];
261
- export { keyHandlers_1 as keyHandlers };
262
- const mouseHandlers_1: never[];
263
- export { mouseHandlers_1 as mouseHandlers };
264
- const movedColumns_1: never[];
265
- export { movedColumns_1 as movedColumns };
266
- const movedRows_1: never[];
267
- export { movedRows_1 as movedRows };
268
- export function onError_1(): void;
269
- export { onError_1 as onError };
270
- export function onSelectionChanged_1(): void;
271
- export { onSelectionChanged_1 as onSelectionChanged };
272
- export function onMovedColumnsChanged_1(): void;
273
- export { onMovedColumnsChanged_1 as onMovedColumnsChanged };
274
- export function onMoveColumnComplete_1(): void;
275
- export { onMoveColumnComplete_1 as onMoveColumnComplete };
276
- export function onViewChanged_1(): void;
277
- export { onViewChanged_1 as onViewChanged };
278
- const renderer_1: null;
279
- export { renderer_1 as renderer };
280
- const stateOverride_1: {};
281
- export { stateOverride_1 as stateOverride };
282
- export namespace theme_1 {
283
- const autoSelectColumn: boolean;
284
- const autoSelectRow: boolean;
285
- }
286
- export { theme_1 as theme };
287
- }
328
+ notifyMouseHandlers(functionName: GridMouseHandlerFunctionName, event: GridMouseEvent, updateCoordinates?: boolean, addCursorToDocument?: boolean): void;
329
+ handleMouseDown(event: React.MouseEvent): void;
330
+ handleDoubleClick(event: React.MouseEvent): void;
331
+ handleMouseMove(event: React.MouseEvent): void;
332
+ handleMouseLeave(event: React.MouseEvent): void;
333
+ handleMouseDrag(event: MouseEvent): void;
334
+ handleMouseUp(event: MouseEvent): void;
335
+ handleResize(): void;
336
+ handleWheel(event: WheelEvent): void;
337
+ /**
338
+ * Handle cancelling the cell edit action
339
+ */
340
+ handleEditCellCancel(): void;
341
+ /**
342
+ * Handle a change in the value in an editing cell
343
+ * @param value New value set
344
+ */
345
+ handleEditCellChange(value: string): void;
346
+ /**
347
+ * Commit an edit for the currently editing cell
348
+ * @param value Value that was committed
349
+ * @param options Options for committing
350
+ */
351
+ handleEditCellCommit(value: string, { direction, fillRange, }?: {
352
+ direction?: SELECTION_DIRECTION | null;
353
+ fillRange?: boolean;
354
+ }): void;
355
+ renderInputField(): ReactNode;
356
+ render(): ReactNode;
288
357
  }
289
- import React from "react";
290
- import { SelectionKeyHandler } from "./key-handlers";
291
- import { TreeKeyHandler } from "./key-handlers";
292
- import { EditKeyHandler } from "./key-handlers";
293
- import { PasteKeyHandler } from "./key-handlers";
294
- import { EditMouseHandler } from "./mouse-handlers";
295
- import { GridSelectionMouseHandler } from "./mouse-handlers";
296
- import { GridColumnMoveMouseHandler } from "./mouse-handlers";
297
- import { GridColumnSeparatorMouseHandler } from "./mouse-handlers";
298
- import { GridHorizontalScrollBarMouseHandler } from "./mouse-handlers";
299
- import { GridRowMoveMouseHandler } from "./mouse-handlers";
300
- import { GridRowSeparatorMouseHandler } from "./mouse-handlers";
301
- import { GridRowTreeMouseHandler } from "./mouse-handlers";
302
- import { GridScrollBarCornerMouseHandler } from "./mouse-handlers";
303
- import { GridVerticalScrollBarMouseHandler } from "./mouse-handlers";
304
- import PropTypes from "prop-types";
305
- import GridMetricCalculator from "./GridMetricCalculator";
306
- import GridModel from "./GridModel";
307
- import KeyHandler from "./KeyHandler";
308
- import GridMouseHandler from "./GridMouseHandler";
309
- import GridRenderer from "./GridRenderer";
358
+ export default Grid;
310
359
  //# sourceMappingURL=Grid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Grid.d.ts","sourceRoot":"","sources":["../src/Grid.jsx"],"names":[],"mappings":";AAoCA;;;;;;;;;;;;;GAaG;AACH;IAGE,6BAA+B;IAE/B,2BAA0B;IAE1B,oDAAyE;IAEzE,sCAUC;IAED,sDAEC;IAED,wBAsHC;IA29BD,8BAcC;IAED,oCAYC;IA0QD,6BAGC;IAED,uCAIC;IAED;;;aA2BC;IAxOD,oCAKC;IA3ED,4BAWC;IA8CD,kCAWC;IAsBD,kCAUC;IAvBD,kCAEC;IAED,mCAOC;IAcD,gCAaC;IAED,qBAWC;IAED,0BAoIC;IAj2CC,cAA8C;IAC9C,sBAAsE;IAEtE,iCAAkB;IAClB,uCAAyB;IACzB,oBAA0B;IAE1B,iBAAuB;IACvB,aAAmB;IAEnB,yBAA4B;IAC5B,wBAA2B;IAM3B,8BAA0B;IAE1B,iCAAqB;IAGrB,yFAKC;IACD,8TAWC;IAgMH,gBAGC;IAED,mEAKC;IAED,oEAEC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAiCC;IAED,6DAEE;IAEF,wBAGC;IAED,iEAEE;IAEF,0BAGC;IAED,sCAEC;IAED,gCAEC;IAED,kCAiBC;IAED,0DAA0D;IAC1D,yCA6BC;IAED,oBAKC;IAED,4BAUC;IAED,kCAOC;IAED,0BAaC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAQC;IAED,2CAQC;IAED,6BAiBC;IAED,4BAGC;IAED,6CAA6C;IAC7C,2BAOC;IAED,4CASC;IAED;;;;;;OAMG;IACH,sBALW,MAAM,OACN,MAAM,oBACN,OAAO,0BACP,OAAO,QAmFjB;IAED;;;;;OAKG;IACH,wBAkEC;IAED,kBASC;IAED,wEAoBC;IAED;;;OAGG;IACH,kCAFW,MAAM,QA6ChB;IAED;;;;;;;OAOG;IACH,6BANW,MAAM,GAAC,IAAI,OACX,MAAM,GAAC,IAAI,oBACX,OAAO,qBACP,OAAO,0BACP,OAAO,QAkBjB;IAED;;;;;OAKG;IACH,uBAHW,MAAM,GAAC,IAAI,OACX,MAAM,GAAC,IAAI,QAkCrB;IAED;;;;;OAKG;IACH,wBAHW,MAAM,gBACN,OAAO,QAiBjB;IAED;;;;;;;;OAQG;IACH,qBANW,MAAM,OACN,MAAM,gBACN,OAAO,mBACP,MAAM,EAAE,GAAC,IAAI,UACb,MAAM,eAyBhB;IAED,uDAMC;IAED;;;;;OAKG;IACH,kBAFW,MAAM,EAAE,EAAE,GAAG,MAAM,iBAwF7B;IAED,yDAQC;IAED,iDAUC;IAED,2CAkBC;IAED,sCAMC;IAED,6BAMC;IAED,iCAQC;IAED,sBAKC;IAED;;;OAGG;IACH,gCA0DC;IAED,cAEC;IAED,qBAEC;IA6CD;;;;;;OAMG;IACH,iDAJW,UAAU,oEAuCpB;IAyPD,uCA4DC;CA2BF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4CU,kCAAQ;;QACG,6CAAQ;;QACL,gDAAQ;;QACT,+CAAQ;;QACf,wCAAQ"}
1
+ {"version":3,"file":"Grid.d.ts","sourceRoot":"","sources":["../src/Grid.tsx"],"names":[],"mappings":"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"}