@are-visual/virtual-table 0.7.0 → 0.8.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.
package/README.md CHANGED
@@ -137,6 +137,168 @@ function App() {
137
137
 
138
138
  > 关于 `getOffsetTop` 的默认实现是否会造成额外重排/性能影响,还有待验证。若你实在担心,可以设置 getOffsetTop 以覆盖默认实现。
139
139
 
140
+ #### useTableInstance
141
+
142
+ 一个提供编程式操作 VirtualTable 的 hook。
143
+
144
+ > 版本要求:>=v0.8.0
145
+
146
+ ##### scrollToRow 滚动到指定行
147
+
148
+ ```tsx
149
+ const instance = useTableInstance()
150
+
151
+ const onScroll = () => {
152
+ // 通过索引值,滚动到第 10 行
153
+ instance.scrollToRow(10)
154
+ }
155
+
156
+ <VirtualTable instance={instance} />
157
+ ```
158
+
159
+ > 注意:由于是虚拟列表,行高是不确定的,若 `estimatedRowHeight` 不准确,scrollToRow 则无法准确滚动到对应的行。
160
+
161
+ ##### scrollToColumn 滚动到指定列
162
+
163
+ ```tsx
164
+ const instance = useTableInstance()
165
+
166
+ const onScroll = () => {
167
+ // 通过 key,滚动到指定列
168
+ instance.scrollToColumn('columnKey')
169
+ }
170
+
171
+ <VirtualTable instance={instance} />
172
+ ```
173
+
174
+ > 注意:由于是虚拟列表,列宽是不确定的,若 `estimatedColumnWidth` 不准确,scrollToColumn 则无法准确滚动到对应的列。
175
+
176
+ ##### scrollTo 手动滚动
177
+
178
+ ```tsx
179
+ const instance = useTableInstance()
180
+
181
+ const onScroll = () => {
182
+ // 使用像素值进行滚动,背后其实是对原生 DOM 节点的 scrollTo 进行的封装
183
+ instance.scrollTo({ top: 0, left: 0 })
184
+ }
185
+
186
+ <VirtualTable instance={instance} />
187
+ ```
188
+
189
+ ##### getScrollValueByRowIndex
190
+
191
+ ```tsx
192
+ const instance = useTableInstance()
193
+
194
+ const onScroll = () => {
195
+ // 通过索引值,滚动到第 10 行所对应的数值
196
+ console.log(instance.getScrollValueByRowIndex(10))
197
+ }
198
+ ```
199
+
200
+ ##### getScrollValueByColumnKey
201
+
202
+ ```tsx
203
+ const instance = useTableInstance()
204
+
205
+ const onScroll = () => {
206
+ // 通过 key,获取滚动到指定列所对应的数值
207
+ console.log(instance.getScrollValueByColumnKey('columnKey'))
208
+ }
209
+ ```
210
+
211
+ ##### getDOM
212
+
213
+ 有些时候,你不得不获取 DOM 节点来进行一些操作。
214
+
215
+ ```tsx
216
+ const instance = useTableInstance()
217
+
218
+ const doSomething = () => {
219
+ const { root, headerWrapper, bodyWrapper, bodyRoot, body } = instance.getDOM()
220
+ }
221
+
222
+ <VirtualTable instance={instance} />
223
+ ```
224
+
225
+ ##### getCurrentProps
226
+
227
+ 有些时候,你可能不太方便获取到传递给 VirtualTable 的 props,那么你可以通过 `instance.getCurrentProps` 获取。
228
+
229
+ ```tsx
230
+ const instance = useTableInstance()
231
+
232
+ const doSomething = () => {
233
+ console.log(instance.getCurrentProps().stickyHeader)
234
+ }
235
+
236
+ <VirtualTable stickyHeader={120} instance={instance} />
237
+ ```
238
+
239
+ ##### getRowVirtualizeState 获取行虚拟化用到的数据
240
+
241
+ ```tsx
242
+ const { startIndex, endIndex, overscan, estimateSize } = instance.getRowVirtualizeState()
243
+ ```
244
+
245
+ ##### getRowHeightMap 获取所有的行高信息
246
+
247
+ ```ts
248
+ const heightMap = instance.getRowHeightMap()
249
+
250
+ heightMap.get(rowKey)
251
+ ```
252
+
253
+ ##### getColumnByKey 通过 columnKey 获取 column 定义
254
+
255
+ ```ts
256
+ const column = instance.getColumnByKey(columnKey)
257
+ ```
258
+
259
+ ##### getColumnByIndex 通过索引获取 column 定义
260
+
261
+ ```ts
262
+ const column = instance.getColumnByIndex(index)
263
+ ```
264
+
265
+ ##### getColumnKeyByIndex 通过索引获取 columnKey
266
+
267
+ ```ts
268
+ const columnKey = instance.getColumnKeyByIndex(index)
269
+ ```
270
+
271
+ ##### getColumnWidths 获取所有的列宽
272
+
273
+ 所有的列宽通过 columnKey 进行记录(无序)。
274
+
275
+ ```ts
276
+ const widths = instance.getColumnWidths()
277
+ widths.get(columnKey)
278
+ ```
279
+
280
+ ##### getColumnWidthByKey 通过 columnKey 获取列宽
281
+
282
+ ```ts
283
+ const width = instance.getColumnWidthByKey(columnKey)
284
+ ```
285
+
286
+ ##### getColumns 获取 middleware 处理过的 columns
287
+
288
+ ```ts
289
+ const pipelineColumns = instance.getColumns()
290
+ ```
291
+
292
+ ##### getDataSource 获取 middleware 处理过的 dataSource
293
+
294
+ ```ts
295
+ const pipelineDataSource = instance.getDataSource()
296
+ ```
297
+
298
+ 通过以上的函数,你可以很方便的获取一些 VirtualTable 内部的数据,但是这些函数不能在 render 阶段中直接调用,否则会抛出 `has not been implemented yet` 错误。因为这些函数都在 VirtualTable 内部渲染阶段初始化,它们初始化完成后便能使用。建议在事件处理函数中调用。
299
+
300
+ 你也许会发现有些函数能够在渲染阶段直接使用,但是并不能保证在未来的版本中均是如此。
301
+
140
302
  #### 插件
141
303
 
142
304
  `@are-visual/virtual-table` 提供一个 `useTablePipeline` hook 用于组合各种插件,为 Table 增加各式各样的功能。
@@ -251,6 +413,7 @@ const mergedPipeline = useTablePipeline({
251
413
  | bodyRef | tbody 元素 | RefObject\<HTMLTableSectionElement\> | |
252
414
  | getScroller | 获取滚动容器 | () => ScrollElement \| undefined | |
253
415
  | getOffsetTop | 计算顶部偏移量 | () => number | |
416
+ | instance | 与 useTableInstance 一致 | TableInstance | >=0.8.0 |
254
417
 
255
418
  ##### 插件返回值定义
256
419
 
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as react from 'react';
2
- import { Key, ReactNode, HTMLAttributes, TdHTMLAttributes, DetailedHTMLProps, RefObject, ReactElement, CSSProperties, Ref, RefAttributes } from 'react';
2
+ import { DetailedHTMLProps, HTMLAttributes, Key, ReactElement, CSSProperties, Ref, RefAttributes, ReactNode, TdHTMLAttributes, RefObject } from 'react';
3
3
 
4
4
  type ScrollElement = HTMLElement | Window;
5
5
  declare function getScrollParent(el: Element, root?: ScrollElement | null | undefined): ScrollElement;
@@ -10,6 +10,92 @@ declare function getScrollElement(el: unknown): Element;
10
10
  declare function getScrollTop(node: ScrollElement): number;
11
11
  declare function getRelativeOffsetTop(el: HTMLElement, ancestor: HTMLElement): number;
12
12
 
13
+ type NativeProps$1 = DetailedHTMLProps<HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>;
14
+ interface OnRefCallbackArgs<T> {
15
+ node: HTMLTableRowElement | null;
16
+ rowKey: Key;
17
+ rowIndex: number;
18
+ rowData: T;
19
+ }
20
+ interface RowProps<T> extends Omit<NativeProps$1, 'children'> {
21
+ rowIndex: number;
22
+ rowKey: Key;
23
+ rowData: T;
24
+ columns: InnerColumnDescriptor<T>;
25
+ onRow?: OnRowType<T>;
26
+ renderRow?: MiddlewareRenderRow;
27
+ renderCell?: MiddlewareRenderCell;
28
+ onRefCallback?: (args: OnRefCallbackArgs<T>) => void;
29
+ }
30
+ declare const _default$3: <T>(props: RowProps<T>) => ReactElement;
31
+
32
+ interface TableBodyProps<T> extends Omit<NecessaryProps<T>, 'columns'>, Pick<RowProps<T>, 'onRow' | 'renderRow' | 'renderCell'> {
33
+ className?: string;
34
+ style?: CSSProperties;
35
+ columns: InnerColumnDescriptor<T>;
36
+ bodyWrapperRef?: Ref<HTMLDivElement>;
37
+ bodyRootRef?: Ref<HTMLTableElement>;
38
+ bodyRef?: Ref<HTMLTableSectionElement>;
39
+ instance: TableInstance;
40
+ overscan: number;
41
+ estimateSize: number;
42
+ getOffsetTop: () => number;
43
+ getScroller: () => ScrollElement | undefined;
44
+ rowClassName?: (record: T, index: number) => string;
45
+ renderBodyWrapper?: MiddlewareRenderBodyWrapper;
46
+ renderBodyRoot?: MiddlewareRenderBodyRoot;
47
+ renderBody?: MiddlewareRenderBody;
48
+ renderBodyContent?: MiddlewareRenderBodyContent;
49
+ }
50
+
51
+ interface Hook<T> {
52
+ priority: number;
53
+ hook: Middleware<T>;
54
+ }
55
+ declare class TablePipeline<T> {
56
+ constructor();
57
+ hooks: Hook<T>[];
58
+ setHooks(value: Hook<T>[]): void;
59
+ use(options: MiddlewareContext<T>): MiddlewareResult<T>;
60
+ static defaultPipeline: TablePipeline<unknown>;
61
+ }
62
+
63
+ interface UseTablePipelineOptions<T = any> {
64
+ pipeline?: TablePipeline<T>;
65
+ use?: (Middleware<T> | Hook<T>)[];
66
+ }
67
+
68
+ declare function useTablePipeline<T = any>(options: UseTablePipelineOptions<T>): TablePipeline<T>;
69
+
70
+ interface VirtualTableCoreProps<T> extends NecessaryProps<T>, Pick<TableBodyProps<T>, 'rowClassName' | 'onRow'> {
71
+ bodyRootRef?: Ref<HTMLTableElement>;
72
+ instance?: TableInstance;
73
+ className?: string;
74
+ style?: CSSProperties;
75
+ tableBodyClassName?: string;
76
+ tableBodyStyle?: CSSProperties;
77
+ /** 开启表头 sticky,设置为 true 则默认 top 为 0,为 number 则是偏移量 */
78
+ stickyHeader?: number | boolean;
79
+ /** 预计每列宽度,需要横向虚拟化时,设置它 */
80
+ estimatedColumnWidth?: number;
81
+ /** 预计每行高度 @default 46 */
82
+ estimatedRowHeight?: number;
83
+ /** 在头和尾额外渲染多少行 @default 5 */
84
+ overscanRows?: number;
85
+ /** 横向虚拟化时,在头和尾额外渲染多少列 @default 3 */
86
+ overscanColumns?: number;
87
+ /** 开启表头虚拟滚动 @default true */
88
+ virtualHeader?: boolean;
89
+ /**
90
+ * 缺失宽度设置时的默认值(与虚拟化无关)
91
+ * @default 100
92
+ */
93
+ defaultColumnWidth?: number;
94
+ pipeline?: TablePipeline<T>;
95
+ getOffsetTop?: () => number;
96
+ }
97
+ declare const _default$2: <T>(props: VirtualTableCoreProps<T> & RefAttributes<HTMLDivElement>) => ReactElement;
98
+
13
99
  type FixedType = 'left' | 'right';
14
100
  declare function isValidFixedLeft(fixed: unknown): fixed is "left";
15
101
  declare function isValidFixedRight(fixed: unknown): fixed is "right";
@@ -56,6 +142,48 @@ interface InnerColumnDescriptor<T> {
56
142
  descriptor: ColumnDescriptor<T>[];
57
143
  columns: ColumnType<T>[];
58
144
  }
145
+ interface TableInstance<T = any> {
146
+ getCurrentProps: () => Readonly<VirtualTableCoreProps<T>>;
147
+ /** 获取所有 middleware 处理过的 columns */
148
+ getColumns: () => ColumnType<T>[];
149
+ /** 获取所有 middleware 处理过的 dataSource */
150
+ getDataSource: () => T[];
151
+ getDOM: () => {
152
+ root: HTMLDivElement | null;
153
+ headerWrapper: HTMLDivElement | null;
154
+ bodyWrapper: HTMLDivElement | null;
155
+ bodyRoot: HTMLTableElement | null;
156
+ body: HTMLTableSectionElement | null;
157
+ };
158
+ /** 获取行虚拟化用到的数据 */
159
+ getRowVirtualizeState: () => {
160
+ startIndex: number;
161
+ endIndex: number;
162
+ overscan: number;
163
+ estimateSize: number;
164
+ };
165
+ /** 获取所有的行高信息。Map<rowKey, Map<key, number>> */
166
+ getRowHeightMap: () => Map<Key, Map<Key, number>>;
167
+ /** 通过索引值,获取指定行所对应的滚动数值 */
168
+ getScrollValueByRowIndex: (index: number) => number;
169
+ /** 通过 columnKey,获取指定列所对应的滚动数值 */
170
+ getScrollValueByColumnKey: (columnKey: Key) => number;
171
+ /** 通过索引值,滚动到指定行 */
172
+ scrollToRow: (index: number) => void;
173
+ /** 通过 columnKey,滚动到指定列 */
174
+ scrollToColumn: (columnKey: Key) => void;
175
+ scrollTo: (options: ScrollToOptions) => void;
176
+ /** 通过 columnKey 获取 column 定义 */
177
+ getColumnByKey: (columnKey: Key) => ColumnType<T> | undefined;
178
+ /** 通过索引获取 column 定义 */
179
+ getColumnByIndex: (index: number) => ColumnType<T> | undefined;
180
+ /** 通过索引获取 columnKey */
181
+ getColumnKeyByIndex: (index: number) => Key | undefined;
182
+ /** 获取所有的列宽 */
183
+ getColumnWidths: () => Map<Key, number>;
184
+ /** 通过 columnKey 获取列宽 */
185
+ getColumnWidthByKey: (columnKey: Key) => number | undefined;
186
+ }
59
187
 
60
188
  interface NecessaryProps<T> {
61
189
  dataSource: T[];
@@ -75,6 +203,7 @@ interface MiddlewareContext<T> extends Readonly<NecessaryProps<T>> {
75
203
  readonly bodyRef: RefObject<HTMLTableSectionElement>;
76
204
  readonly getScroller: () => ScrollElement | undefined;
77
205
  readonly getOffsetTop: () => number;
206
+ readonly instance: TableInstance;
78
207
  [key: string]: unknown;
79
208
  }
80
209
  interface MiddlewareResult<T> extends MiddlewareContext<T>, MiddlewareRenders {
@@ -86,6 +215,7 @@ type Middleware<T> = (context: MiddlewareContext<T>) => MiddlewareResult<T>;
86
215
  interface RenderOptions<T = any> {
87
216
  column: ColumnType<T>;
88
217
  columnWidths: Map<Key, number>;
218
+ rowKey: Key;
89
219
  rowIndex: number;
90
220
  startRowIndex: number;
91
221
  columns: ColumnType<T>[];
@@ -106,7 +236,7 @@ type MiddlewareRenderBodyWrapper<T = any> = (children: ReactNode, options: Prett
106
236
  type MiddlewareRenderBodyRoot<T = any> = (children: ReactNode, options: Prettify<Pick<RenderOptions<T>, 'columns' | 'columnDescriptor' | 'startRowIndex'>>) => ReactNode;
107
237
  type MiddlewareRenderBody<T = any> = (children: ReactNode, options: Prettify<Pick<RenderOptions<T>, 'columns' | 'columnDescriptor' | 'startRowIndex'>>) => ReactNode;
108
238
  type MiddlewareRenderBodyContent<T = any> = (children: ReactNode, options: Prettify<Pick<RenderOptions<T>, 'columns' | 'columnDescriptor' | 'startRowIndex'>>) => ReactNode;
109
- type MiddlewareRenderRow<T = any> = (children: ReactNode, options: Prettify<Pick<RenderOptions<T>, 'columns' | 'columnDescriptor' | 'rowIndex' | 'rowData'>>) => ReactNode;
239
+ type MiddlewareRenderRow<T = any> = (children: ReactNode, options: Prettify<Pick<RenderOptions<T>, 'columns' | 'columnDescriptor' | 'rowKey' | 'rowIndex' | 'rowData'>>) => ReactNode;
110
240
  type MiddlewareRenderCell<T = any> = (children: ReactNode, options: Prettify<Pick<RenderOptions<T>, 'column'>>) => ReactNode;
111
241
  type MergedMiddlewareRender<T = any> = MiddlewareRender<T> | MiddlewareRenderRoot<T> | MiddlewareRenderContent<T> | MiddlewareRenderHeaderWrapper<T> | MiddlewareRenderHeaderRoot<T> | MiddlewareRenderHeader<T> | MiddlewareRenderHeaderRow<T> | MiddlewareRenderHeaderCell<T> | MiddlewareRenderBodyWrapper<T> | MiddlewareRenderBodyRoot<T> | MiddlewareRenderBody<T> | MiddlewareRenderBodyContent<T> | MiddlewareRenderRow<T> | MiddlewareRenderCell<T>;
112
242
  interface MiddlewareRenders {
@@ -179,20 +309,20 @@ interface MiddlewareRenders {
179
309
  renderCell?: MiddlewareRenderCell;
180
310
  }
181
311
 
182
- type NativeProps$1 = DetailedHTMLProps<HTMLAttributes<HTMLTableCellElement>, HTMLTableCellElement>;
183
- interface CellProps<T> extends Omit<NativeProps$1, 'children'> {
312
+ type NativeProps = DetailedHTMLProps<HTMLAttributes<HTMLTableCellElement>, HTMLTableCellElement>;
313
+ interface CellProps<T> extends Omit<NativeProps, 'children'> {
184
314
  column: ColumnType<T>;
185
315
  rowIndex: number;
186
316
  rowData: T;
187
317
  renderCell?: MiddlewareRenderCell;
188
318
  }
189
- declare const _default$3: <T>(props: CellProps<T>) => ReactElement;
319
+ declare const _default$1: <T>(props: CellProps<T>) => ReactElement;
190
320
 
191
321
  interface ColgroupProps {
192
322
  columns: ColumnDescriptor[];
193
323
  onColumnSizesMeasure?: (columnSizes: Map<Key, number>) => void;
194
324
  }
195
- declare const _default$2: react.NamedExoticComponent<ColgroupProps>;
325
+ declare const _default: react.NamedExoticComponent<ColgroupProps>;
196
326
 
197
327
  interface TableColumnsContextType {
198
328
  widthList: Map<Key, number>;
@@ -221,11 +351,11 @@ declare function useHorizontalScrollContext(): HorizontalScrollContextState;
221
351
  interface TableRowManagerContextType {
222
352
  getRowHeightList: () => number[];
223
353
  /**
224
- * @param index rowIndex
354
+ * @param rowKey
225
355
  * @param key 唯一的 key,用于去重
226
356
  * @param height 行高
227
357
  */
228
- updateRowHeight: (index: number, key: Key, height: number) => void;
358
+ setRowHeightByRowKey: (rowKey: Key, key: Key, height: number) => void;
229
359
  }
230
360
  declare function useTableRowManager(): TableRowManagerContextType;
231
361
 
@@ -239,6 +369,8 @@ interface StickyContextState {
239
369
  }
240
370
  declare function useTableSticky(): StickyContextState;
241
371
 
372
+ declare const NormalRowHeightKey = "NormalRow";
373
+
242
374
  /**
243
375
  * 缓存数据(浅比较,如果是数组则对第一层进行浅比较)
244
376
  */
@@ -246,87 +378,13 @@ declare function useShallowMemo<T>(pickData: () => T): T;
246
378
 
247
379
  declare function useStableFn<T extends Function>(callback: T): T;
248
380
 
381
+ declare function useTableInstance(instance?: TableInstance): TableInstance<any>;
382
+
249
383
  /**
250
384
  * 创建中间件,内部会浅比较 options,只有 options 改变才会返回新的函数。
251
385
  */
252
386
  declare function createMiddleware<T, Args extends any[]>(hook: (ctx: MiddlewareContext<T>, ...args: Args) => MiddlewareResult<T>): (...args: Args) => Middleware<T>;
253
387
 
254
- interface Hook<T> {
255
- priority: number;
256
- hook: Middleware<T>;
257
- }
258
- declare class TablePipeline<T> {
259
- constructor();
260
- hooks: Hook<T>[];
261
- setHooks(value: Hook<T>[]): void;
262
- use(options: MiddlewareContext<T>): MiddlewareResult<T>;
263
- static defaultPipeline: TablePipeline<unknown>;
264
- }
265
-
266
- interface UseTablePipelineOptions<T = any> {
267
- pipeline?: TablePipeline<T>;
268
- use?: (Middleware<T> | Hook<T>)[];
269
- }
270
-
271
- declare function useTablePipeline<T = any>(options: UseTablePipelineOptions<T>): TablePipeline<T>;
272
-
273
- type NativeProps = DetailedHTMLProps<HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>;
274
- interface RowProps<T> extends Omit<NativeProps, 'children'> {
275
- rowIndex: number;
276
- rowData: T;
277
- columns: InnerColumnDescriptor<T>;
278
- onRow?: OnRowType<T>;
279
- renderRow?: MiddlewareRenderRow;
280
- renderCell?: MiddlewareRenderCell;
281
- }
282
- declare const _default$1: <T>(props: RowProps<T>) => ReactElement;
283
-
284
- interface TableBodyProps<T> extends Omit<NecessaryProps<T>, 'columns'>, Pick<RowProps<T>, 'onRow' | 'renderRow' | 'renderCell'> {
285
- className?: string;
286
- style?: CSSProperties;
287
- columns: InnerColumnDescriptor<T>;
288
- bodyWrapperRef?: Ref<HTMLDivElement>;
289
- bodyRootRef?: Ref<HTMLTableElement>;
290
- bodyRef?: Ref<HTMLTableSectionElement>;
291
- overscan: number;
292
- estimateSize: number;
293
- getOffsetTop: () => number;
294
- getScroller: () => ScrollElement | undefined;
295
- rowClassName?: (record: T, index: number) => string;
296
- renderBodyWrapper?: MiddlewareRenderBodyWrapper;
297
- renderBodyRoot?: MiddlewareRenderBodyRoot;
298
- renderBody?: MiddlewareRenderBody;
299
- renderBodyContent?: MiddlewareRenderBodyContent;
300
- }
301
-
302
- interface VirtualTableCoreProps<T> extends NecessaryProps<T>, Pick<TableBodyProps<T>, 'rowClassName' | 'onRow'> {
303
- bodyRootRef?: Ref<HTMLTableElement>;
304
- className?: string;
305
- style?: CSSProperties;
306
- tableBodyClassName?: string;
307
- tableBodyStyle?: CSSProperties;
308
- /** 开启表头 sticky,设置为 true 则默认 top 为 0,为 number 则是偏移量 */
309
- stickyHeader?: number | boolean;
310
- /** 预计每列宽度,需要横向虚拟化时,设置它 */
311
- estimatedColumnWidth?: number;
312
- /** 预计每行高度 @default 46 */
313
- estimatedRowHeight?: number;
314
- /** 在头和尾额外渲染多少行 @default 5 */
315
- overscanRows?: number;
316
- /** 横向虚拟化时,在头和尾额外渲染多少列 @default 3 */
317
- overscanColumns?: number;
318
- /** 开启表头虚拟滚动 @default true */
319
- virtualHeader?: boolean;
320
- /**
321
- * 缺失宽度设置时的默认值(与虚拟化无关)
322
- * @default 100
323
- */
324
- defaultColumnWidth?: number;
325
- pipeline?: TablePipeline<T>;
326
- getOffsetTop?: () => number;
327
- }
328
- declare const _default: <T>(props: VirtualTableCoreProps<T> & RefAttributes<HTMLDivElement>) => ReactElement;
329
-
330
388
  declare function getKey<T>(column: ColumnType<T>): Key;
331
389
  declare function getRowKey<T>(rowData: T, rowKey: NecessaryProps<T>['rowKey']): Key;
332
390
 
@@ -342,5 +400,5 @@ type PossibleRef<T> = Ref<T> | undefined;
342
400
  declare function mergeRefs<T>(...refs: PossibleRef<T>[]): (node: T | null) => void;
343
401
  declare function useMergedRef<T>(...refs: PossibleRef<T>[]): (node: T | null) => void;
344
402
 
345
- export { _default$2 as Colgroup, TablePipeline, _default as VirtualTable, _default$3 as VirtualTableCell, _default$1 as VirtualTableRow, createMiddleware, findLastIndex, getKey, getRelativeOffsetTop, getRowKey, getScrollElement, getScrollParent, getScrollTop, isDocument, isRoot, isValidFixed, isValidFixedLeft, isValidFixedRight, isWindow, mergeRefs, onResize, useColumnSizes, useContainerSize, useHorizontalScrollContext, useMergedRef, useShallowMemo, useStableFn, useTablePipeline, useTableRowManager, useTableSticky };
346
- export type { AlignType, AnyObject, ColumnDescriptor, ColumnExtra, ColumnType, ContainerSizeState, FixedType, HorizontalScrollContextState, MergedMiddlewareRender, Middleware, MiddlewareContext, MiddlewareRender, MiddlewareRenderBody, MiddlewareRenderBodyContent, MiddlewareRenderBodyRoot, MiddlewareRenderBodyWrapper, MiddlewareRenderCell, MiddlewareRenderContent, MiddlewareRenderHeader, MiddlewareRenderHeaderCell, MiddlewareRenderHeaderRoot, MiddlewareRenderHeaderRow, MiddlewareRenderHeaderWrapper, MiddlewareRenderRoot, MiddlewareRenderRow, MiddlewareRenders, MiddlewareResult, OnRowType, PipelineRender, PipelineRenderOptions, ScrollElement, StickyContextState, TableColumnsContextType, TableRowManagerContextType, UseTablePipelineOptions, CellProps as VirtualTableCellProps, VirtualTableCoreProps as VirtualTableProps, RowProps as VirtualTableRowProps };
403
+ export { _default as Colgroup, NormalRowHeightKey, TablePipeline, _default$2 as VirtualTable, _default$1 as VirtualTableCell, _default$3 as VirtualTableRow, createMiddleware, findLastIndex, getKey, getRelativeOffsetTop, getRowKey, getScrollElement, getScrollParent, getScrollTop, isDocument, isRoot, isValidFixed, isValidFixedLeft, isValidFixedRight, isWindow, mergeRefs, onResize, useColumnSizes, useContainerSize, useHorizontalScrollContext, useMergedRef, useShallowMemo, useStableFn, useTableInstance, useTablePipeline, useTableRowManager, useTableSticky };
404
+ export type { AlignType, AnyObject, ColumnDescriptor, ColumnExtra, ColumnType, ContainerSizeState, FixedType, HorizontalScrollContextState, MergedMiddlewareRender, Middleware, MiddlewareContext, MiddlewareRender, MiddlewareRenderBody, MiddlewareRenderBodyContent, MiddlewareRenderBodyRoot, MiddlewareRenderBodyWrapper, MiddlewareRenderCell, MiddlewareRenderContent, MiddlewareRenderHeader, MiddlewareRenderHeaderCell, MiddlewareRenderHeaderRoot, MiddlewareRenderHeaderRow, MiddlewareRenderHeaderWrapper, MiddlewareRenderRoot, MiddlewareRenderRow, MiddlewareRenders, MiddlewareResult, OnRowType, PipelineRender, PipelineRenderOptions, ScrollElement, StickyContextState, TableColumnsContextType, TableInstance, TableRowManagerContextType, UseTablePipelineOptions, CellProps as VirtualTableCellProps, VirtualTableCoreProps as VirtualTableProps, RowProps as VirtualTableRowProps };