@rowsncolumns/grid 9.0.4 → 13.2.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/LICENSE.md +100 -0
  2. package/Readme.md +53 -59
  3. package/dist/cjs/Cell.d.ts +35 -0
  4. package/dist/cjs/Cell.d.ts.map +1 -0
  5. package/dist/cjs/Cell.js +29 -0
  6. package/dist/{CellOverlay.d.ts → cjs/CellOverlay.d.ts} +5 -5
  7. package/dist/cjs/CellOverlay.d.ts.map +1 -0
  8. package/dist/cjs/CellOverlay.js +126 -0
  9. package/dist/cjs/Context.d.ts +8 -0
  10. package/dist/cjs/Context.d.ts.map +1 -0
  11. package/dist/cjs/Context.js +13 -0
  12. package/dist/{FillHandle.d.ts → cjs/FillHandle.d.ts} +2 -1
  13. package/dist/cjs/FillHandle.d.ts.map +1 -0
  14. package/dist/cjs/FillHandle.js +26 -0
  15. package/dist/cjs/Grid.d.ts +558 -0
  16. package/dist/cjs/Grid.d.ts.map +1 -0
  17. package/dist/cjs/Grid.js +2446 -0
  18. package/dist/{GridLine.d.ts → cjs/GridLine.d.ts} +2 -1
  19. package/dist/cjs/GridLine.d.ts.map +1 -0
  20. package/dist/cjs/GridLine.js +10 -0
  21. package/dist/cjs/Image.d.ts +11 -0
  22. package/dist/cjs/Image.d.ts.map +1 -0
  23. package/dist/cjs/Image.js +57 -0
  24. package/dist/cjs/MemoizedGrid.d.ts +49 -0
  25. package/dist/cjs/MemoizedGrid.d.ts.map +1 -0
  26. package/dist/cjs/MemoizedGrid.js +105 -0
  27. package/dist/cjs/Selection.d.ts +5 -0
  28. package/dist/cjs/Selection.d.ts.map +1 -0
  29. package/dist/cjs/Selection.js +10 -0
  30. package/dist/{helpers.d.ts → cjs/helpers.d.ts} +59 -39
  31. package/dist/cjs/helpers.d.ts.map +1 -0
  32. package/dist/cjs/helpers.js +1409 -0
  33. package/dist/{hooks → cjs/hooks}/useCopyPaste.d.ts +3 -2
  34. package/dist/cjs/hooks/useCopyPaste.d.ts.map +1 -0
  35. package/dist/cjs/hooks/useCopyPaste.js +230 -0
  36. package/dist/{hooks → cjs/hooks}/useEditable.d.ts +21 -8
  37. package/dist/cjs/hooks/useEditable.d.ts.map +1 -0
  38. package/dist/cjs/hooks/useEditable.js +491 -0
  39. package/dist/{hooks → cjs/hooks}/useFilter.d.ts +3 -2
  40. package/dist/cjs/hooks/useFilter.d.ts.map +1 -0
  41. package/dist/cjs/hooks/useFilter.js +97 -0
  42. package/dist/{hooks → cjs/hooks}/useImage.d.ts +1 -0
  43. package/dist/cjs/hooks/useImage.d.ts.map +1 -0
  44. package/dist/cjs/hooks/useImage.js +80 -0
  45. package/dist/{hooks → cjs/hooks}/usePagination.d.ts +3 -2
  46. package/dist/cjs/hooks/usePagination.d.ts.map +1 -0
  47. package/dist/cjs/hooks/usePagination.js +53 -0
  48. package/dist/{hooks → cjs/hooks}/useSizer.d.ts +28 -29
  49. package/dist/cjs/hooks/useSizer.d.ts.map +1 -0
  50. package/dist/cjs/hooks/useSizer.js +176 -0
  51. package/dist/{hooks → cjs/hooks}/useTooltip.d.ts +2 -1
  52. package/dist/cjs/hooks/useTooltip.d.ts.map +1 -0
  53. package/dist/cjs/hooks/useTooltip.js +82 -0
  54. package/dist/{hooks → cjs/hooks}/useUndo.d.ts +2 -1
  55. package/dist/cjs/hooks/useUndo.d.ts.map +1 -0
  56. package/dist/cjs/hooks/useUndo.js +87 -0
  57. package/dist/cjs/index.d.ts +19 -0
  58. package/dist/cjs/index.d.ts.map +1 -0
  59. package/dist/cjs/index.js +29 -0
  60. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  61. package/dist/{types.d.ts → cjs/types.d.ts} +8 -3
  62. package/dist/cjs/types.d.ts.map +1 -0
  63. package/dist/{types.js → cjs/types.js} +7 -8
  64. package/dist/cjs/utils.d.ts +9 -0
  65. package/dist/cjs/utils.d.ts.map +1 -0
  66. package/dist/cjs/utils.js +58 -0
  67. package/dist/cjs/vitest.config.d.ts +3 -0
  68. package/dist/cjs/vitest.config.d.ts.map +1 -0
  69. package/dist/cjs/vitest.config.js +24 -0
  70. package/dist/esm/Cell.d.ts +35 -0
  71. package/dist/esm/Cell.d.ts.map +1 -0
  72. package/dist/esm/Cell.js +24 -0
  73. package/dist/esm/CellOverlay.d.ts +21 -0
  74. package/dist/esm/CellOverlay.d.ts.map +1 -0
  75. package/dist/esm/CellOverlay.js +120 -0
  76. package/dist/esm/Context.d.ts +8 -0
  77. package/dist/esm/Context.d.ts.map +1 -0
  78. package/dist/esm/Context.js +9 -0
  79. package/dist/esm/FillHandle.d.ts +8 -0
  80. package/dist/esm/FillHandle.d.ts.map +1 -0
  81. package/dist/{FillHandle.js → esm/FillHandle.js} +5 -11
  82. package/dist/esm/Grid.d.ts +558 -0
  83. package/dist/esm/Grid.d.ts.map +1 -0
  84. package/dist/esm/Grid.js +2451 -0
  85. package/dist/esm/GridLine.d.ts +5 -0
  86. package/dist/esm/GridLine.d.ts.map +1 -0
  87. package/dist/esm/GridLine.js +7 -0
  88. package/dist/esm/Image.d.ts +11 -0
  89. package/dist/esm/Image.d.ts.map +1 -0
  90. package/dist/esm/Image.js +53 -0
  91. package/dist/esm/MemoizedGrid.d.ts +49 -0
  92. package/dist/esm/MemoizedGrid.d.ts.map +1 -0
  93. package/dist/esm/MemoizedGrid.js +98 -0
  94. package/dist/esm/Selection.d.ts +5 -0
  95. package/dist/esm/Selection.d.ts.map +1 -0
  96. package/dist/esm/Selection.js +7 -0
  97. package/dist/esm/helpers.d.ts +281 -0
  98. package/dist/esm/helpers.d.ts.map +1 -0
  99. package/dist/esm/helpers.js +1260 -0
  100. package/dist/esm/hooks/useCopyPaste.d.ts +53 -0
  101. package/dist/esm/hooks/useCopyPaste.d.ts.map +1 -0
  102. package/dist/{hooks → esm/hooks}/useCopyPaste.js +40 -46
  103. package/dist/esm/hooks/useEditable.d.ts +253 -0
  104. package/dist/esm/hooks/useEditable.d.ts.map +1 -0
  105. package/dist/esm/hooks/useEditable.js +482 -0
  106. package/dist/esm/hooks/useFilter.d.ts +69 -0
  107. package/dist/esm/hooks/useFilter.d.ts.map +1 -0
  108. package/dist/{hooks → esm/hooks}/useFilter.js +22 -42
  109. package/dist/esm/hooks/useImage.d.ts +13 -0
  110. package/dist/esm/hooks/useImage.d.ts.map +1 -0
  111. package/dist/esm/hooks/useImage.js +76 -0
  112. package/dist/esm/hooks/usePagination.d.ts +69 -0
  113. package/dist/esm/hooks/usePagination.d.ts.map +1 -0
  114. package/dist/esm/hooks/usePagination.js +47 -0
  115. package/dist/esm/hooks/useSizer.d.ts +114 -0
  116. package/dist/esm/hooks/useSizer.d.ts.map +1 -0
  117. package/dist/esm/hooks/useSizer.js +176 -0
  118. package/dist/esm/hooks/useTooltip.d.ts +43 -0
  119. package/dist/esm/hooks/useTooltip.d.ts.map +1 -0
  120. package/dist/esm/hooks/useTooltip.js +80 -0
  121. package/dist/esm/hooks/useUndo.d.ts +36 -0
  122. package/dist/esm/hooks/useUndo.d.ts.map +1 -0
  123. package/dist/{hooks → esm/hooks}/useUndo.js +16 -25
  124. package/dist/esm/index.d.ts +19 -0
  125. package/dist/esm/index.d.ts.map +1 -0
  126. package/dist/esm/index.js +17 -0
  127. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  128. package/dist/esm/types.d.ts +70 -0
  129. package/dist/esm/types.d.ts.map +1 -0
  130. package/dist/esm/types.js +68 -0
  131. package/dist/esm/utils.d.ts +9 -0
  132. package/dist/esm/utils.d.ts.map +1 -0
  133. package/dist/esm/utils.js +104 -0
  134. package/dist/esm/vitest.config.d.ts +3 -0
  135. package/dist/esm/vitest.config.d.ts.map +1 -0
  136. package/dist/esm/vitest.config.js +22 -0
  137. package/package.json +28 -29
  138. package/dist/Cell.d.ts +0 -23
  139. package/dist/Cell.js +0 -55
  140. package/dist/Cell.js.map +0 -1
  141. package/dist/CellOverlay.js +0 -116
  142. package/dist/CellOverlay.js.map +0 -1
  143. package/dist/FillHandle.js.map +0 -1
  144. package/dist/Grid.d.ts +0 -385
  145. package/dist/Grid.js +0 -1684
  146. package/dist/Grid.js.map +0 -1
  147. package/dist/GridLine.js +0 -13
  148. package/dist/GridLine.js.map +0 -1
  149. package/dist/Image.d.ts +0 -8
  150. package/dist/Image.js +0 -50
  151. package/dist/Image.js.map +0 -1
  152. package/dist/Selection.d.ts +0 -4
  153. package/dist/Selection.js +0 -9
  154. package/dist/Selection.js.map +0 -1
  155. package/dist/helpers.js +0 -1033
  156. package/dist/helpers.js.map +0 -1
  157. package/dist/hooks/useCopyPaste.js.map +0 -1
  158. package/dist/hooks/useEditable.js +0 -477
  159. package/dist/hooks/useEditable.js.map +0 -1
  160. package/dist/hooks/useFilter.js.map +0 -1
  161. package/dist/hooks/useImage.js +0 -42
  162. package/dist/hooks/useImage.js.map +0 -1
  163. package/dist/hooks/usePagination.js +0 -73
  164. package/dist/hooks/usePagination.js.map +0 -1
  165. package/dist/hooks/useSelection.d.ts +0 -175
  166. package/dist/hooks/useSelection.js +0 -982
  167. package/dist/hooks/useSelection.js.map +0 -1
  168. package/dist/hooks/useSizer.js +0 -150
  169. package/dist/hooks/useSizer.js.map +0 -1
  170. package/dist/hooks/useTooltip.js +0 -106
  171. package/dist/hooks/useTooltip.js.map +0 -1
  172. package/dist/hooks/useTouch.d.ts +0 -21
  173. package/dist/hooks/useTouch.js +0 -73
  174. package/dist/hooks/useTouch.js.map +0 -1
  175. package/dist/hooks/useUndo.js.map +0 -1
  176. package/dist/index.d.ts +0 -25
  177. package/dist/index.js +0 -61
  178. package/dist/index.js.map +0 -1
  179. package/dist/types.js.map +0 -1
  180. package/dist/utils.d.ts +0 -8
  181. package/dist/utils.js +0 -153
  182. package/dist/utils.js.map +0 -1
  183. package/src/Cell.tsx +0 -100
  184. package/src/CellOverlay.tsx +0 -191
  185. package/src/FillHandle.tsx +0 -37
  186. package/src/Grid.tsx +0 -2677
  187. package/src/GridLine.tsx +0 -23
  188. package/src/Image.tsx +0 -43
  189. package/src/Selection.tsx +0 -9
  190. package/src/helpers.ts +0 -1455
  191. package/src/hooks/useCopyPaste.ts +0 -265
  192. package/src/hooks/useEditable.tsx +0 -945
  193. package/src/hooks/useFilter.tsx +0 -233
  194. package/src/hooks/useImage.ts +0 -57
  195. package/src/hooks/usePagination.tsx +0 -153
  196. package/src/hooks/useSelection.ts +0 -1440
  197. package/src/hooks/useSizer.ts +0 -312
  198. package/src/hooks/useTooltip.tsx +0 -172
  199. package/src/hooks/useTouch.ts +0 -116
  200. package/src/hooks/useUndo.ts +0 -134
  201. package/src/index.tsx +0 -46
  202. package/src/tests/Grid.spec.tsx +0 -47
  203. package/src/tests/helpers.test.ts +0 -292
  204. package/src/tests/usePagination.test.ts +0 -28
  205. package/src/tests/useSelection.test.ts +0 -27
  206. package/src/tests/useUndo.test.ts +0 -73
  207. package/src/types.ts +0 -69
  208. package/src/utils.tsx +0 -287
@@ -0,0 +1,558 @@
1
+ import type Konva from "konva";
2
+ import type { LineCap, ShapeConfig } from "konva/lib/Shape";
3
+ import type { StageConfig } from "konva/lib/Stage";
4
+ import type { Key, ReactNode } from "react";
5
+ import React from "react";
6
+ import { Align } from "./helpers";
7
+ import { Direction, RowRange } from "./types";
8
+ export type GridProps<T extends AreaStyle = AreaStyle> = {
9
+ /**
10
+ * Width of the grid
11
+ */
12
+ width?: number;
13
+ /**
14
+ * Height of the grid
15
+ */
16
+ height?: number;
17
+ /**
18
+ * No of columns in the grid
19
+ */
20
+ columnCount: number;
21
+ /**
22
+ * No of rows in the grid
23
+ */
24
+ rowCount: number;
25
+ /**
26
+ * Should return height of a row at an index
27
+ */
28
+ rowHeight?: ItemSizer;
29
+ /**
30
+ * Should return width of a column at an index
31
+ */
32
+ columnWidth?: ItemSizer;
33
+ /**
34
+ * Footer height
35
+ */
36
+ footerHeight?: number;
37
+ /**
38
+ * Footer component
39
+ */
40
+ footerComponent?: React.ElementType | React.ReactElement;
41
+ /**
42
+ * Size of the scrollbar. Default is 13
43
+ */
44
+ scrollbarSize?: number;
45
+ /**
46
+ * Extend scroll area by scrollbar size
47
+ */
48
+ extendScrollSize?: boolean;
49
+ /**
50
+ * Scroll to item offset
51
+ */
52
+ scrollToCellOffset?: number;
53
+ /**
54
+ * Helps in lazy grid width calculation
55
+ */
56
+ estimatedColumnWidth?: number;
57
+ /**
58
+ * Helps in lazy grid height calculation
59
+ */
60
+ estimatedRowHeight?: number;
61
+ /**
62
+ * Autofocus the grid
63
+ */
64
+ autoFocus?: boolean;
65
+ /**
66
+ * Show row and column headers
67
+ */
68
+ showHeaders?: boolean;
69
+ /**
70
+ * Called when user scrolls the grid
71
+ */
72
+ onScroll?: ({ scrollLeft, scrollTop }: ScrollCoords) => void;
73
+ /**
74
+ * Called immediately on scroll
75
+ */
76
+ onImmediateScroll?: ({ scrollLeft, scrollTop }: ScrollCoords) => void;
77
+ /**
78
+ * Show scrollbars on the left and right of the grid
79
+ */
80
+ showScrollbar?: boolean;
81
+ /**
82
+ * Currently active cell
83
+ */
84
+ activeCell?: CellInterface | null;
85
+ /**
86
+ * Background of selection
87
+ */
88
+ selectionBackgroundColor?: string;
89
+ /**
90
+ * Border color of selected area
91
+ */
92
+ selectionBorderColor?: string;
93
+ /**
94
+ * Stroke width of the selection
95
+ */
96
+ selectionStrokeWidth?: number;
97
+ /**
98
+ * Active Cell Stroke width
99
+ */
100
+ activeCellStrokeWidth?: number;
101
+ /**
102
+ * Array of selected cell areas
103
+ */
104
+ selections?: SelectionArea<T>[];
105
+ /**
106
+ * Fill selection
107
+ */
108
+ fillSelection?: SelectionArea<T> | null;
109
+ /**
110
+ * Array of merged cells
111
+ */
112
+ mergedCells?: GridRange[] | null;
113
+ /**
114
+ * Number of frozen rows
115
+ */
116
+ frozenRows?: number;
117
+ /**
118
+ * Number of frozen columns
119
+ */
120
+ frozenColumns?: number;
121
+ /**
122
+ * Snap to row and column when scrolling
123
+ */
124
+ snap?: boolean;
125
+ /**
126
+ * Show shadow as you scroll for frozen rows
127
+ */
128
+ showFrozenRowShadow?: boolean | null;
129
+ /**
130
+ * Show shadow as you scroll for frozen columns
131
+ */
132
+ showFrozenColumnShadow?: boolean | null;
133
+ /**
134
+ * Shadow settings
135
+ */
136
+ shadowSettings?: ShapeConfig;
137
+ /**
138
+ * Shadow thickness
139
+ */
140
+ frozenShadowThickness?: number;
141
+ /**
142
+ * Scroll throttle wait timeout
143
+ */
144
+ scrollThrottleTimeout?: number;
145
+ /**
146
+ * Cell styles for border
147
+ */
148
+ borderStyles?: T[];
149
+ /**
150
+ * Cell renderer. Must be a Konva Component eg: Group, Rect etc
151
+ */
152
+ itemRenderer?: (props: RendererProps) => ReactNode;
153
+ /**
154
+ * Header renderer: Specific to spreadsheets
155
+ */
156
+ headerRenderer?: (props: RendererProps) => ReactNode;
157
+ /**
158
+ * Render custom overlays like stroke on top of cell
159
+ */
160
+ overlayRenderer?: (props: RendererProps) => ReactNode;
161
+ /**
162
+ * Separate background renderer
163
+ */
164
+ backgroundRenderer?: (props: RendererProps) => ReactNode;
165
+ /**
166
+ * Allow users to customize selected cells design
167
+ */
168
+ selectionRenderer?: (props: SelectionProps<T>) => ReactNode;
169
+ /**
170
+ * Bind to fill handle
171
+ */
172
+ onFillHandleMouseDown?: (e: React.MouseEvent<HTMLDivElement>) => void;
173
+ /**
174
+ * Double-click fill handle to auto-fill based on adjacent column data
175
+ */
176
+ onFillHandleDoubleClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
177
+ /**
178
+ * Fired when scroll viewport changes
179
+ */
180
+ onViewPortChange?: (view: ViewPortProps) => void;
181
+ /**
182
+ * Fired when grid dimensions change
183
+ */
184
+ onDimensionsChange?: (gridDimensions: GridDimensions) => void;
185
+ /**
186
+ * Called right before a row is being rendered.
187
+ * Will be called for frozen cells and merged cells
188
+ */
189
+ onBeforeRenderRow?: (rowIndex: number) => void;
190
+ /**
191
+ * After scroll to cell
192
+ */
193
+ onAfterScrollToCell?: (scrollLeft: number | undefined, scrollTop: number | undefined) => void;
194
+ /**
195
+ * Custom grid overlays
196
+ */
197
+ children?: ReactNode;
198
+ /**
199
+ * Grid children
200
+ */
201
+ gridChildren?: (props: GridChildrenProps) => ReactNode;
202
+ /**
203
+ * Allows users to Wrap stage children in Top level Context
204
+ */
205
+ wrapper?: (children: ReactNode) => ReactNode;
206
+ /**
207
+ * Props that can be injected to Konva stage
208
+ */
209
+ stageProps?: Omit<StageConfig, "container">;
210
+ /**
211
+ * Show fillhandle
212
+ */
213
+ showFillHandle?: boolean;
214
+ /**
215
+ * Dinemsion of the fill handle
216
+ */
217
+ fillHandleSize?: number;
218
+ /**
219
+ * Overscan row and columns
220
+ */
221
+ overscanCount?: number;
222
+ /**
223
+ * Border color of fill handle
224
+ */
225
+ fillhandleBorderColor?: string;
226
+ /**
227
+ * Background color of fill handle
228
+ */
229
+ fillHandleBackgroundColor?: string;
230
+ /**
231
+ * Show grid lines.
232
+ * Useful for spreadsheets
233
+ */
234
+ showGridLines?: boolean | null;
235
+ /**
236
+ * Customize grid line color
237
+ */
238
+ gridLineColor?: string;
239
+ /**
240
+ * Width of the grid line
241
+ */
242
+ gridLineWidth?: number;
243
+ /**
244
+ * Gridline component
245
+ */
246
+ gridLineRenderer?: (props: ShapeConfig) => ReactNode;
247
+ /**
248
+ * Draw overlay for each cell.
249
+ * Can be used to apply stroke or draw on top of a cell
250
+ */
251
+ enableCellOverlay?: boolean;
252
+ enableCellBackground?: boolean;
253
+ /**
254
+ * Check if its hidden row
255
+ */
256
+ isHiddenRow?: (rowIndex: number) => boolean;
257
+ /**
258
+ * Visible row ranges for efficient iteration.
259
+ * When provided, Grid will iterate only over these ranges
260
+ * instead of checking isHiddenRow for each row.
261
+ * This is a performance optimization for large filtered datasets.
262
+ */
263
+ visibleRowRanges?: RowRange[];
264
+ /**
265
+ * Check if its a hidden column. Skip rendering hidden
266
+ */
267
+ isHiddenColumn?: (columnIndex: number) => boolean;
268
+ /**
269
+ * Is Hidden cell
270
+ */
271
+ isHiddenCell?: (rowIndex: number, columnIndex: number) => boolean;
272
+ /**
273
+ * Is Hidden cell overlay
274
+ */
275
+ isHiddenOverlay?: (rowIndex: number, columnIndex: number) => boolean;
276
+ /**
277
+ * Is Hidden cell overlay
278
+ */
279
+ isHiddenBackground?: (rowIndex: number, columnIndex: number) => boolean;
280
+ /**
281
+ * Scale
282
+ */
283
+ scale?: number;
284
+ /**
285
+ * Enable draging active cell and selections
286
+ */
287
+ enableSelectionDrag?: boolean;
288
+ /**
289
+ * Is user currently dragging a selection
290
+ */
291
+ isDraggingSelection?: boolean;
292
+ /**
293
+ * Touch device
294
+ */
295
+ isTouchDevice?: boolean;
296
+ /**
297
+ * Body components
298
+ */
299
+ overlay?: React.JSX.Element | null;
300
+ /**
301
+ * Fill handle component
302
+ */
303
+ FillHandle?: React.ElementType;
304
+ /**
305
+ * Prevent browser default scrolling
306
+ */
307
+ preventBrowserDefaultScroll?: boolean;
308
+ /**
309
+ * Callback to calculate overflow buffer dynamically based on scroll position.
310
+ * This is called during the render loop to ensure virtualization is correct without extra renders.
311
+ */
312
+ getOverflowBuffer?: (scrollLeft: number) => number;
313
+ /**
314
+ * Callback to get frozen column cells that overflow into the body area.
315
+ * Called during render to determine which frozen cells should also be rendered in the body.
316
+ * Returns a Set of cellIds (rowIndex,columnIndex format) for cells that overflow.
317
+ */
318
+ getFrozenColumnOverflowCells?: (frozenColumnWidth: number, frozenColumns: number) => Set<string>;
319
+ } & Omit<React.HTMLAttributes<HTMLDivElement>, "onScroll">;
320
+ export type RefAttribute = {
321
+ ref?: React.Ref<GridRef>;
322
+ };
323
+ export type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
324
+ export type SelectionType = "fill" | "activeCell" | "selection" | "border" | "table" | "collaborator" | "copy" | "flash" | "mark" | "suggestion" | "quickedit" | "pivotTable" | (string & {});
325
+ export type SelectionProps<T extends AreaStyle = AreaStyle> = Style & Omit<T, "range" | "strokeStyle"> & Omit<React.HTMLAttributes<HTMLDivElement>, "draggable" | "style"> & {
326
+ onFillHandleMouseDown?: (e: React.MouseEvent<HTMLDivElement>) => void;
327
+ isDragging?: boolean;
328
+ inProgress?: boolean;
329
+ activeCell?: CellInterface;
330
+ selection?: SelectionArea<T>;
331
+ index: number | string;
332
+ draggable?: boolean;
333
+ range?: GridRange;
334
+ borderCoverWidth?: number;
335
+ /**
336
+ * Set on frozen-pane copies of a border style: the title (e.g. a
337
+ * collaborator name chip) must not extend past the area's right edge,
338
+ * where the frozen pane's overflow clip would hide it.
339
+ */
340
+ keepTitleWithinBounds?: boolean;
341
+ /**
342
+ * Set on frozen-row pane copies of a border style: a title that is
343
+ * placed below the area (the first visible row, where there is no room
344
+ * above it) must not extend past the area's bottom edge, where the
345
+ * frozen pane's overflow clip would cut it in half.
346
+ */
347
+ keepTitleWithinVerticalBounds?: boolean;
348
+ /**
349
+ * Set on scrollable-pane copies whose range starts on the pane's first
350
+ * visible row (the row just below the frozen boundary): a title drawn
351
+ * above the area would sit entirely past the boundary, where the pane's
352
+ * overflow clip hides it, so it must be drawn below the area instead.
353
+ */
354
+ flipTitleToBottom?: boolean;
355
+ x?: number;
356
+ y?: number;
357
+ width?: number;
358
+ height?: number;
359
+ };
360
+ export type ScrollCoords = {
361
+ scrollTop: number;
362
+ scrollLeft: number;
363
+ };
364
+ export type OptionalScrollCoords = {
365
+ scrollTop?: number;
366
+ scrollLeft?: number;
367
+ };
368
+ export interface GridChildrenProps extends ScrollCoords {
369
+ containerHeight: number;
370
+ containerWidth: number;
371
+ frozenColumnWidth: number;
372
+ frozenRowHeight: number;
373
+ }
374
+ export interface ScrollState extends ScrollCoords {
375
+ isScrolling: boolean;
376
+ verticalScrollDirection: Direction;
377
+ horizontalScrollDirection: Direction;
378
+ }
379
+ export type CellPosition = {
380
+ x: number;
381
+ y: number;
382
+ width: number;
383
+ height: number;
384
+ };
385
+ export interface RendererProps extends CellInterface, CellPosition, Style {
386
+ x: number;
387
+ y: number;
388
+ width: number;
389
+ height: number;
390
+ key: Key;
391
+ isMergedCell?: boolean;
392
+ }
393
+ export type ItemSizer = (index: number) => number;
394
+ export type SelectionArea<T extends AreaStyle = AreaStyle> = T & {
395
+ range: GridRange;
396
+ inProgress?: boolean;
397
+ /**
398
+ * When user drags the fill handle
399
+ */
400
+ isFilling?: boolean;
401
+ };
402
+ export type GridRange = {
403
+ startRowIndex: number;
404
+ endRowIndex: number;
405
+ startColumnIndex: number;
406
+ endColumnIndex: number;
407
+ };
408
+ export type { RowRange };
409
+ export type CellInterface = {
410
+ rowIndex: number;
411
+ columnIndex: number;
412
+ };
413
+ export type OptionalCellInterface = {
414
+ rowIndex?: number;
415
+ columnIndex?: number;
416
+ };
417
+ export type ViewPortProps = {
418
+ rowStartIndex: number;
419
+ rowStopIndex: number;
420
+ columnStartIndex: number;
421
+ columnStopIndex: number;
422
+ visibleRowStartIndex: number;
423
+ visibleRowStopIndex: number;
424
+ visibleColumnStartIndex: number;
425
+ visibleColumnStopIndex: number;
426
+ };
427
+ export type GridDimensions = {
428
+ containerWidth: number;
429
+ containerHeight: number;
430
+ estimatedTotalWidth: number;
431
+ estimatedTotalHeight: number;
432
+ };
433
+ export type InstanceInterface = {
434
+ columnMetadataMap: CellMetaDataMap;
435
+ rowMetadataMap: CellMetaDataMap;
436
+ lastMeasuredColumnIndex: number;
437
+ lastMeasuredRowIndex: number;
438
+ estimatedRowHeight: number;
439
+ estimatedColumnWidth: number;
440
+ };
441
+ export type CellMetaDataMap = Map<number, CellMetaData>;
442
+ export type CellMetaData = {
443
+ offset: number;
444
+ size: number;
445
+ };
446
+ export interface SnapRowProps {
447
+ deltaY: number;
448
+ }
449
+ export interface SnapColumnProps {
450
+ deltaX: number;
451
+ }
452
+ export interface PosXY {
453
+ x?: number;
454
+ y?: number;
455
+ }
456
+ export interface PosXYRequired {
457
+ x: number;
458
+ y: number;
459
+ }
460
+ export type GridRef = {
461
+ scrollTo: (scrollPosition: ScrollCoords, immediate?: boolean) => void;
462
+ scrollBy: (pos: PosXY) => void;
463
+ stage: Konva.Stage | null;
464
+ rowHeaderStage: Konva.Stage | null;
465
+ columnHeaderStage: Konva.Stage | null;
466
+ container: HTMLDivElement | null;
467
+ resetAfterIndices: (coords: OptionalCellInterface, shouldForceUpdate?: boolean) => void;
468
+ /**
469
+ * Get current scroll position of the grid
470
+ * @returns
471
+ */
472
+ getScrollPosition: () => ScrollCoords;
473
+ isMergedCell: (coords: CellInterface) => boolean;
474
+ getCellBounds: (coords: CellInterface, spanMerges?: boolean) => GridRange;
475
+ getCellCoordsFromOffset: (x: number, y: number, includeFrozen?: boolean) => CellInterface | undefined;
476
+ /**
477
+ * Get position and dimension of a cell
478
+ */
479
+ getCellOffsetFromCoords: (coords: CellInterface, readonly?: boolean) => CellPosition | undefined;
480
+ getActualCellCoords: (coords: CellInterface) => CellInterface;
481
+ scrollToCell: (coords: OptionalCellInterface, align?: Align) => void;
482
+ focus: () => void;
483
+ resizeColumn: (index: number, dimension: number) => void;
484
+ resizeRow: (index: number, dimension: number) => void;
485
+ getViewPort: () => ViewPortProps;
486
+ getRelativePositionFromOffset: (x: number, y: number) => PosXYRequired | undefined;
487
+ getAbsolutePositionFromOffset: (x: number, y: number) => PosXYRequired;
488
+ scrollToTop: () => void;
489
+ scrollToBottom: () => void;
490
+ getDimensions: () => {
491
+ containerWidth: number;
492
+ containerHeight: number;
493
+ estimatedTotalWidth: number;
494
+ estimatedTotalHeight: number;
495
+ };
496
+ getRowOffset: (index: number) => number;
497
+ getColumnOffset: (index: number) => number;
498
+ redrawGrid(): void;
499
+ clearCache(): void;
500
+ };
501
+ export type MergedCellMap = Map<string, GridRange>;
502
+ export type AreaStyle = AreaMeta & {
503
+ range: GridRange;
504
+ style?: Style;
505
+ isDragging?: boolean;
506
+ type?: SelectionType;
507
+ index?: string | number;
508
+ /**
509
+ * Only for flash type
510
+ */
511
+ duration?: number;
512
+ /**
513
+ * Metadata for borders
514
+ */
515
+ metadata?: Record<string, any>;
516
+ };
517
+ export type AreaMeta = {
518
+ title?: string;
519
+ draggable?: boolean;
520
+ };
521
+ export type Style = {
522
+ stroke?: string;
523
+ strokeLeftColor?: string;
524
+ strokeTopColor?: string;
525
+ strokeRightColor?: string;
526
+ strokeBottomColor?: string;
527
+ strokeDiagonalUpColor?: string;
528
+ strokeDiagonalDownColor?: string;
529
+ strokeWidth?: number;
530
+ strokeTopWidth?: number;
531
+ strokeRightWidth?: number;
532
+ strokeBottomWidth?: number;
533
+ strokeLeftWidth?: number;
534
+ strokeDiagonalUpWidth?: number;
535
+ strokeDiagonalDownWidth?: number;
536
+ strokeStyle?: "dashed" | "solid" | "dotted";
537
+ strokeDash?: number[];
538
+ strokeTopDash?: number[];
539
+ strokeRightDash?: number[];
540
+ strokeBottomDash?: number[];
541
+ strokeLeftDash?: number[];
542
+ strokeDiagonalUpDash?: number[];
543
+ strokeDiagonalDownDash?: number[];
544
+ lineCap?: LineCap;
545
+ offset?: number;
546
+ fill?: string;
547
+ fillOpacity?: number;
548
+ };
549
+ export declare const RESET_SCROLL_EVENTS_DEBOUNCE_INTERVAL = 150;
550
+ /**
551
+ * Grid component using React Konva
552
+ * @param props
553
+ *
554
+ * TODO: Fix bug with snapping, since onWheel is a global handler, rowCount, columnCount becomes state
555
+ */
556
+ declare const Grid: React.FunctionComponent<GridProps & RefAttribute>;
557
+ export default Grid;
558
+ //# sourceMappingURL=Grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grid.d.ts","sourceRoot":"","sources":["../../Grid.tsx"],"names":[],"mappings":"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"}