@lensui/lens-table 0.1.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/LICENSE +21 -0
- package/README.md +668 -0
- package/dist/index.cjs +3693 -0
- package/dist/index.css +2074 -0
- package/dist/index.d.cts +387 -0
- package/dist/index.d.ts +387 -0
- package/dist/index.js +3662 -0
- package/package.json +72 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ReactNode, CSSProperties } from 'react';
|
|
3
|
+
|
|
4
|
+
type GridKey = string | number;
|
|
5
|
+
type SelectionMode = 'single' | 'multiple';
|
|
6
|
+
type SortDirection = 'asc' | 'desc';
|
|
7
|
+
/** Controlled sort state. Null means the grid should render without a sort mark. */
|
|
8
|
+
interface GridSortState {
|
|
9
|
+
columnKey: string;
|
|
10
|
+
direction: SortDirection;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* All built-in copy exposed by Table.
|
|
14
|
+
*
|
|
15
|
+
* Pass Table.locale as an object to replace only the strings you need. Function
|
|
16
|
+
* entries receive runtime values, such as the filtered text or delete row count.
|
|
17
|
+
*/
|
|
18
|
+
interface TableLabels {
|
|
19
|
+
choose: string;
|
|
20
|
+
selectDate: string;
|
|
21
|
+
collapseTimePicker: string;
|
|
22
|
+
expandTimePicker: string;
|
|
23
|
+
startTime: string;
|
|
24
|
+
endTime: string;
|
|
25
|
+
start: string;
|
|
26
|
+
end: string;
|
|
27
|
+
hour: string;
|
|
28
|
+
minute: string;
|
|
29
|
+
second: string;
|
|
30
|
+
confirm: string;
|
|
31
|
+
reset: string;
|
|
32
|
+
search: string;
|
|
33
|
+
filter: string;
|
|
34
|
+
filterWithValue: (value: string) => string;
|
|
35
|
+
sortAsc: string;
|
|
36
|
+
sortDesc: string;
|
|
37
|
+
sortBoth: string;
|
|
38
|
+
dragColumn: string;
|
|
39
|
+
previousYear: string;
|
|
40
|
+
nextYear: string;
|
|
41
|
+
previousMonth: string;
|
|
42
|
+
nextMonth: string;
|
|
43
|
+
previousPage: string;
|
|
44
|
+
nextPage: string;
|
|
45
|
+
empty: string;
|
|
46
|
+
annotation: string;
|
|
47
|
+
annotationMode: string;
|
|
48
|
+
annotationBackground: string;
|
|
49
|
+
annotationCorner: string;
|
|
50
|
+
annotationColor: (index: number) => string;
|
|
51
|
+
annotationContent: string;
|
|
52
|
+
annotationPlaceholder: string;
|
|
53
|
+
removeAnnotation: string;
|
|
54
|
+
selectRow: string;
|
|
55
|
+
deselectRow: string;
|
|
56
|
+
selectColumn: string;
|
|
57
|
+
deselectColumn: string;
|
|
58
|
+
copy: string;
|
|
59
|
+
copyContent: string;
|
|
60
|
+
copySuccess: string;
|
|
61
|
+
copyError: string;
|
|
62
|
+
clear: string;
|
|
63
|
+
clearContent: string;
|
|
64
|
+
undoChange: string;
|
|
65
|
+
undoConfirmTitle: string;
|
|
66
|
+
undoConfirmDescription: string;
|
|
67
|
+
clearConfirmTitle: string;
|
|
68
|
+
clearConfirmDescription: string;
|
|
69
|
+
edit: string;
|
|
70
|
+
insertAbove: string;
|
|
71
|
+
insertBelow: string;
|
|
72
|
+
insertAboveCount: string;
|
|
73
|
+
insertBelowCount: string;
|
|
74
|
+
rowUnit: string;
|
|
75
|
+
moveUp: string;
|
|
76
|
+
moveDown: string;
|
|
77
|
+
deleteRow: string;
|
|
78
|
+
deleteConfirmTitle: string;
|
|
79
|
+
deleteConfirmDescription: (count: number) => string;
|
|
80
|
+
cancel: string;
|
|
81
|
+
delete: string;
|
|
82
|
+
filterColumn: (title: string) => string;
|
|
83
|
+
initialLoading: string;
|
|
84
|
+
refreshing: string;
|
|
85
|
+
}
|
|
86
|
+
type TableLocaleCode = 'zh-CN' | 'en-US';
|
|
87
|
+
type TableLocaleConfig = TableLocaleCode | {
|
|
88
|
+
/** Base language used by built-in labels and date picker locale. */
|
|
89
|
+
language?: TableLocaleCode;
|
|
90
|
+
/** Project-level i18n overrides for grid copy. */
|
|
91
|
+
labels?: Partial<TableLabels>;
|
|
92
|
+
};
|
|
93
|
+
type TableVirtualizedConfig = boolean | {
|
|
94
|
+
/** Enable virtual rendering. */
|
|
95
|
+
enabled?: boolean;
|
|
96
|
+
/** Extra rows and columns rendered around the visible range. Defaults to 4. */
|
|
97
|
+
overscan?: number;
|
|
98
|
+
};
|
|
99
|
+
type TableTooltipConfig = boolean | {
|
|
100
|
+
/** Show header text tooltips. */
|
|
101
|
+
header?: boolean;
|
|
102
|
+
/** Show cell text tooltips. */
|
|
103
|
+
cell?: boolean;
|
|
104
|
+
};
|
|
105
|
+
type TableSummaryConfig = boolean | {
|
|
106
|
+
/** Where the summary row is displayed. */
|
|
107
|
+
position?: 'top' | 'bottom';
|
|
108
|
+
/** Whether to show internal vertical borders between summary cells and fixed column edges. Disabled when verticalBorderless is true. */
|
|
109
|
+
verticalBordered?: boolean;
|
|
110
|
+
/** Content displayed in summary cells without a value. Defaults to an empty string. */
|
|
111
|
+
emptyValue?: ReactNode;
|
|
112
|
+
};
|
|
113
|
+
interface TableHighlightConfig {
|
|
114
|
+
/** Highlight cells changed through the built-in editor. Pass a color string to customize the fill. Defaults to false. */
|
|
115
|
+
editedCells?: boolean | string;
|
|
116
|
+
/** Highlight rows inserted optimistically through the built-in insert action. Pass a color string to customize the fill. Defaults to false. */
|
|
117
|
+
insertedRows?: boolean | string;
|
|
118
|
+
}
|
|
119
|
+
interface TableCellSpan {
|
|
120
|
+
/** Row index in the current rows array. Prefer rowKey when row order can change. */
|
|
121
|
+
rowIndex?: number;
|
|
122
|
+
/** Stable row key. Takes precedence over rowIndex when provided. */
|
|
123
|
+
rowKey?: GridKey;
|
|
124
|
+
/** Anchor column key for the merged cell. */
|
|
125
|
+
columnKey: string;
|
|
126
|
+
/** Number of rows covered by the merged cell. Defaults to 1. */
|
|
127
|
+
rowSpan?: number;
|
|
128
|
+
/** Number of columns covered by the merged cell. Defaults to 1. */
|
|
129
|
+
colSpan?: number;
|
|
130
|
+
}
|
|
131
|
+
interface TableResolvedCellSpan {
|
|
132
|
+
rowIndex: number;
|
|
133
|
+
columnIndex: number;
|
|
134
|
+
rowSpan: number;
|
|
135
|
+
colSpan: number;
|
|
136
|
+
}
|
|
137
|
+
interface AxisSelectionConfig {
|
|
138
|
+
/** single uses radio-style selection, multiple uses checkbox-style selection. */
|
|
139
|
+
mode?: SelectionMode;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Column definition consumed by both the canvas renderer and DOM editor layer.
|
|
143
|
+
*
|
|
144
|
+
* The grid is data-agnostic: dataIndex points at a field on Row, while formatter
|
|
145
|
+
* and editor describe how that value is displayed and edited.
|
|
146
|
+
*/
|
|
147
|
+
interface GridColumn<Row> {
|
|
148
|
+
/** Stable column id used for selection, sorting, filtering, and callbacks. */
|
|
149
|
+
key: string;
|
|
150
|
+
/** Header label painted in the text layer. */
|
|
151
|
+
title: string;
|
|
152
|
+
/** Row field used as this column's cell value. Omit for utility columns. */
|
|
153
|
+
dataIndex?: keyof Row;
|
|
154
|
+
/** Preferred column width in pixels. Layout helpers enforce minimums. */
|
|
155
|
+
width?: number;
|
|
156
|
+
/** Pins the column to the left or right side while horizontal scrolling. */
|
|
157
|
+
fixed?: 'left' | 'right';
|
|
158
|
+
/** Text alignment for body cells and drag previews. */
|
|
159
|
+
align?: 'left' | 'center' | 'right';
|
|
160
|
+
/** Enables double-click / Enter editing when an editor or fallback input exists. */
|
|
161
|
+
editable?: boolean;
|
|
162
|
+
/** Built-in editor configuration for text, selectable, date, time, and range cells. */
|
|
163
|
+
editor?: {
|
|
164
|
+
type: 'text';
|
|
165
|
+
} | {
|
|
166
|
+
type: 'select';
|
|
167
|
+
options: Array<{
|
|
168
|
+
label: string;
|
|
169
|
+
value: string;
|
|
170
|
+
}>;
|
|
171
|
+
} | {
|
|
172
|
+
type: 'date' | 'time' | 'date-time' | 'year' | 'month' | 'date-range' | 'time-range' | 'date-time-range';
|
|
173
|
+
format?: string;
|
|
174
|
+
};
|
|
175
|
+
/** Shows sort affordances and allows header click sorting. Defaults to true for data columns. */
|
|
176
|
+
sortable?: boolean;
|
|
177
|
+
/** Shows the header filter/search affordance. Defaults to true for data columns. */
|
|
178
|
+
filterable?: boolean;
|
|
179
|
+
/** Custom display text. Receives the raw row value and overrides defaults. */
|
|
180
|
+
formatter?: (value: unknown, row: Row, rowIndex: number) => string;
|
|
181
|
+
/** Custom React content rendered in the cell DOM overlay. */
|
|
182
|
+
renderCell?: (value: unknown, row: Row, rowIndex: number) => ReactNode;
|
|
183
|
+
/** Show this column in the summary row. true sums numeric values; a function can return custom content. */
|
|
184
|
+
summary?: boolean | ((rows: Row[], column: GridColumn<Row>) => ReactNode);
|
|
185
|
+
/** Custom cell paint style. Supports text color and background color in canvas rendering. */
|
|
186
|
+
cellStyle?: (value: unknown, row: Row, rowIndex: number) => {
|
|
187
|
+
color?: string;
|
|
188
|
+
backgroundColor?: string;
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
/** Zero-based row/column coordinates inside the current row and column arrays. */
|
|
192
|
+
interface GridCellPosition {
|
|
193
|
+
rowIndex: number;
|
|
194
|
+
columnIndex: number;
|
|
195
|
+
}
|
|
196
|
+
/** Full cell identity, combining current coordinates with stable row/column keys. */
|
|
197
|
+
interface GridSelection extends GridCellPosition {
|
|
198
|
+
rowKey: GridKey;
|
|
199
|
+
columnKey: string;
|
|
200
|
+
}
|
|
201
|
+
/** Fired after a cell editor commits a value. */
|
|
202
|
+
interface CellChange<Row> extends GridSelection {
|
|
203
|
+
value: unknown;
|
|
204
|
+
previousValue: unknown;
|
|
205
|
+
row: Row;
|
|
206
|
+
}
|
|
207
|
+
/** Fired when the consumer wants to observe or extend a cell context menu. */
|
|
208
|
+
interface ContextMenuEvent<Row> extends GridSelection {
|
|
209
|
+
row: Row;
|
|
210
|
+
clientX: number;
|
|
211
|
+
clientY: number;
|
|
212
|
+
}
|
|
213
|
+
type HeaderContextMenuBuiltin = 'copy' | 'select-column';
|
|
214
|
+
type CellContextMenuBuiltin = 'edit' | 'copy' | 'undo' | 'clear' | 'annotation' | 'select-row' | 'select-column' | 'insert-above' | 'insert-below' | 'move-up' | 'move-down' | 'delete-row';
|
|
215
|
+
type RangeContextMenuBuiltin = 'copy' | 'annotation' | 'undo' | 'clear';
|
|
216
|
+
type ContextMenuSeparator = '|';
|
|
217
|
+
interface CustomContextMenuItem<Context> {
|
|
218
|
+
key: string;
|
|
219
|
+
label?: ReactNode;
|
|
220
|
+
icon?: ReactNode;
|
|
221
|
+
shortcut?: ReactNode;
|
|
222
|
+
disabled?: boolean | ((context: Context) => boolean);
|
|
223
|
+
danger?: boolean;
|
|
224
|
+
hidden?: boolean | ((context: Context) => boolean);
|
|
225
|
+
onClick?: (context: Context) => void;
|
|
226
|
+
childrens?: Array<CustomContextMenuItem<Context> | ContextMenuSeparator>;
|
|
227
|
+
render?: ReactNode | ((context: Context) => ReactNode);
|
|
228
|
+
}
|
|
229
|
+
type ContextMenuItem<Row, Builtin extends string, Context> = Builtin | ContextMenuSeparator | CustomContextMenuItem<Context>;
|
|
230
|
+
interface ContextMenuExcludeConfig<Builtin extends string> {
|
|
231
|
+
/** Start from the default menu for this area, then hide these built-in items. */
|
|
232
|
+
exclude?: Builtin[];
|
|
233
|
+
}
|
|
234
|
+
interface HeaderContextMenuContext<Row> {
|
|
235
|
+
column: GridColumn<Row>;
|
|
236
|
+
columnIndex: number;
|
|
237
|
+
}
|
|
238
|
+
interface CellContextMenuContext<Row> extends GridSelection {
|
|
239
|
+
row: Row;
|
|
240
|
+
column: GridColumn<Row>;
|
|
241
|
+
value: unknown;
|
|
242
|
+
}
|
|
243
|
+
interface RangeContextMenuContext<Row> {
|
|
244
|
+
cells: Array<CellContextMenuContext<Row>>;
|
|
245
|
+
}
|
|
246
|
+
type ContextMenuSection<Row, Builtin extends string, Context> = boolean | Array<ContextMenuItem<Row, Builtin, Context>> | ContextMenuExcludeConfig<Builtin>;
|
|
247
|
+
interface TableContextMenuConfig<Row> {
|
|
248
|
+
header?: ContextMenuSection<Row, HeaderContextMenuBuiltin, HeaderContextMenuContext<Row>>;
|
|
249
|
+
cell?: ContextMenuSection<Row, CellContextMenuBuiltin, CellContextMenuContext<Row>>;
|
|
250
|
+
range?: ContextMenuSection<Row, RangeContextMenuBuiltin, RangeContextMenuContext<Row>>;
|
|
251
|
+
}
|
|
252
|
+
type TableContextMenu<Row> = boolean | TableContextMenuConfig<Row>;
|
|
253
|
+
/** Payload for inserting one or more rows around a target row. */
|
|
254
|
+
interface InsertRowsEvent<Row> {
|
|
255
|
+
rowIndex: number;
|
|
256
|
+
row: Row;
|
|
257
|
+
position: 'before' | 'after';
|
|
258
|
+
count: number;
|
|
259
|
+
/** Rows created by the grid for the optimistic visible insert. Consumers can persist these directly. */
|
|
260
|
+
insertedRows?: Row[];
|
|
261
|
+
}
|
|
262
|
+
/** Payload for deleting the selected rows. */
|
|
263
|
+
interface DeleteRowsEvent<Row> {
|
|
264
|
+
rows: Array<{
|
|
265
|
+
rowIndex: number;
|
|
266
|
+
row: Row;
|
|
267
|
+
}>;
|
|
268
|
+
/** Current rendered viewport, including virtual overscan. Useful for fast optimistic updates before rebuilding large datasets. */
|
|
269
|
+
viewportRange?: ViewportRange;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Public props for Table.
|
|
273
|
+
*
|
|
274
|
+
* Rendering is canvas-first for performance, with DOM overlays for selectable
|
|
275
|
+
* text, editors, tooltips, menus, and controls that need native interaction.
|
|
276
|
+
*/
|
|
277
|
+
interface TableProps<Row extends object> {
|
|
278
|
+
columns: GridColumn<Row>[];
|
|
279
|
+
rows: Row[];
|
|
280
|
+
/** Stable row id. Defaults to the row's `id` field when omitted. */
|
|
281
|
+
rowKey?: keyof Row | ((row: Row, index: number) => GridKey);
|
|
282
|
+
width?: number | string;
|
|
283
|
+
/** Grid height. Defaults to 100%; falls back to 480px when the parent has no height. */
|
|
284
|
+
height?: number | string;
|
|
285
|
+
rowHeight?: number;
|
|
286
|
+
headerHeight?: number;
|
|
287
|
+
fixedHeader?: boolean;
|
|
288
|
+
locale?: TableLocaleConfig;
|
|
289
|
+
/** Hide vertical grid lines while keeping horizontal row separators. */
|
|
290
|
+
verticalBorderless?: boolean;
|
|
291
|
+
/** Paint alternating row backgrounds. Pass a color string to customize the stripe color. */
|
|
292
|
+
striped?: boolean | string;
|
|
293
|
+
/** Visual highlight feedback configuration. All entries default to false. */
|
|
294
|
+
highlight?: TableHighlightConfig;
|
|
295
|
+
/** Merged body cell configuration. Utility columns are ignored and horizontal spans are limited to the same fixed column region. */
|
|
296
|
+
cellSpans?: TableCellSpan[];
|
|
297
|
+
loading?: boolean;
|
|
298
|
+
/** Custom loading content. When provided, it is used for both initial loading and refresh loading. */
|
|
299
|
+
loadingContent?: ReactNode;
|
|
300
|
+
/** Enable virtual rendering, or configure it with an object. */
|
|
301
|
+
virtualized?: TableVirtualizedConfig;
|
|
302
|
+
/** Show text tooltips for headers and cells. Pass an object to control them separately. */
|
|
303
|
+
tooltip?: TableTooltipConfig;
|
|
304
|
+
/** Show and position the summary row for columns with summary configured. */
|
|
305
|
+
summary?: TableSummaryConfig;
|
|
306
|
+
/** Show an automatically generated row number column on the left. */
|
|
307
|
+
rowNumber?: boolean;
|
|
308
|
+
selectedCell?: GridSelection | null;
|
|
309
|
+
defaultSelectedCell?: GridSelection | null;
|
|
310
|
+
onSelectedCellChange?: (selection: GridSelection | null) => void;
|
|
311
|
+
/** Enable spreadsheet-style mouse drag selection across multiple body cells. Defaults to false. */
|
|
312
|
+
rangeSelection?: boolean;
|
|
313
|
+
rowSelection?: boolean | AxisSelectionConfig;
|
|
314
|
+
selectedRowKeys?: GridKey[];
|
|
315
|
+
defaultSelectedRowKeys?: GridKey[];
|
|
316
|
+
onSelectedRowKeysChange?: (keys: GridKey[], rows: Row[], indices: number[]) => void;
|
|
317
|
+
columnSelection?: boolean | AxisSelectionConfig;
|
|
318
|
+
selectedColumnKeys?: string[];
|
|
319
|
+
defaultSelectedColumnKeys?: string[];
|
|
320
|
+
onSelectedColumnKeysChange?: (keys: string[]) => void;
|
|
321
|
+
columnDraggable?: boolean;
|
|
322
|
+
columnResizable?: boolean;
|
|
323
|
+
onColumnOrderChange?: (sourceIndex: number, targetIndex: number) => void;
|
|
324
|
+
onColumnResize?: (columnKey: string, width: number) => void;
|
|
325
|
+
rowDraggable?: boolean;
|
|
326
|
+
onRowOrderChange?: (sourceIndex: number, targetIndex: number) => void;
|
|
327
|
+
onInsertRows?: (event: InsertRowsEvent<Row>) => void | Promise<void>;
|
|
328
|
+
onDeleteRows?: (event: DeleteRowsEvent<Row>) => void | Promise<void>;
|
|
329
|
+
sortState?: GridSortState | null;
|
|
330
|
+
onSortStateChange?: (state: GridSortState | null) => void;
|
|
331
|
+
filterValues?: Record<string, string>;
|
|
332
|
+
onFilterValuesChange?: (values: Record<string, string>) => void;
|
|
333
|
+
onCellChange?: (change: CellChange<Row>) => void | Promise<void>;
|
|
334
|
+
onCellContextMenu?: (event: ContextMenuEvent<Row>) => void;
|
|
335
|
+
/** true uses the built-in menu, false disables custom menus, object customizes menu content and order. */
|
|
336
|
+
contextMenu?: TableContextMenu<Row>;
|
|
337
|
+
emptyContent?: ReactNode;
|
|
338
|
+
className?: string;
|
|
339
|
+
style?: CSSProperties;
|
|
340
|
+
ariaLabel?: string;
|
|
341
|
+
}
|
|
342
|
+
interface ViewportRange {
|
|
343
|
+
rowStart: number;
|
|
344
|
+
rowEnd: number;
|
|
345
|
+
columnStart: number;
|
|
346
|
+
columnEnd: number;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
declare function Table<Row extends object>({ columns: sourceColumns, rows: sourceRows, rowKey, width, height, rowHeight, headerHeight, fixedHeader, locale, verticalBorderless, striped, highlight, cellSpans, loading, loadingContent, virtualized, tooltip, summary, rowNumber, selectedCell, defaultSelectedCell, onSelectedCellChange, rangeSelection, rowSelection, selectedRowKeys, defaultSelectedRowKeys, onSelectedRowKeysChange, columnSelection, selectedColumnKeys, defaultSelectedColumnKeys, onSelectedColumnKeysChange, columnDraggable, columnResizable, onColumnOrderChange, onColumnResize, rowDraggable, onRowOrderChange, onInsertRows, onDeleteRows, sortState, onSortStateChange, filterValues, onFilterValuesChange, onCellChange, onCellContextMenu, contextMenu: contextMenuConfig, emptyContent, className, style, ariaLabel, }: TableProps<Row>): react.JSX.Element;
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* Cached horizontal geometry for one column.
|
|
353
|
+
*
|
|
354
|
+
* `left` and `right` are measured in the full scrollable content coordinate
|
|
355
|
+
* space. Fixed columns are still stored in this coordinate space first, then
|
|
356
|
+
* translated to their pinned viewport position during rendering and hit tests.
|
|
357
|
+
*/
|
|
358
|
+
interface ColumnMetric {
|
|
359
|
+
left: number;
|
|
360
|
+
width: number;
|
|
361
|
+
right: number;
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Build cumulative column positions used by both canvas painting and DOM
|
|
365
|
+
* overlay placement.
|
|
366
|
+
*/
|
|
367
|
+
declare function buildColumnMetrics<Row>(columns: GridColumn<Row>[], columnDraggable?: boolean): ColumnMetric[];
|
|
368
|
+
/**
|
|
369
|
+
* Compute the row and column slice that should be painted for the current
|
|
370
|
+
* viewport.
|
|
371
|
+
*
|
|
372
|
+
* Overscan deliberately includes a small buffer around the visible rectangle so
|
|
373
|
+
* fast scrolling does not reveal blank canvas while React and the browser catch
|
|
374
|
+
* up to the next paint.
|
|
375
|
+
*/
|
|
376
|
+
declare function getViewportRange(scrollLeft: number, scrollTop: number, viewportWidth: number, viewportHeight: number, rowCount: number, rowHeight: number, metrics: ColumnMetric[], overscan: number): ViewportRange;
|
|
377
|
+
/**
|
|
378
|
+
* Convert a content-space x coordinate into a column index.
|
|
379
|
+
*
|
|
380
|
+
* The caller is responsible for translating fixed-column viewport coordinates
|
|
381
|
+
* back into content coordinates when needed.
|
|
382
|
+
*/
|
|
383
|
+
declare function hitTestColumn(metrics: ColumnMetric[], contentX: number): number;
|
|
384
|
+
|
|
385
|
+
type TableFilterValues = Record<string, string>;
|
|
386
|
+
|
|
387
|
+
export { type AxisSelectionConfig, type CellChange, type ContextMenuEvent, type DeleteRowsEvent, type GridCellPosition, type GridColumn, type GridKey, type GridSelection, type GridSortState, type InsertRowsEvent, type SelectionMode, type SortDirection, Table, type CellChange as TableCellChange, type GridCellPosition as TableCellPosition, type TableCellSpan, type GridColumn as TableColumn, type TableContextMenu, type TableContextMenuConfig, type ContextMenuEvent as TableContextMenuEvent, type DeleteRowsEvent as TableDeleteRowsEvent, type GridSelection as TableEditingCell, type TableFilterValues, type TableHighlightConfig, type InsertRowsEvent as TableInsertRowsEvent, type GridKey as TableKey, type TableLabels, type TableLocaleCode, type TableLocaleConfig, type TableProps, type TableResolvedCellSpan, type GridSortState as TableSorter, type TableSummaryConfig, type TableTooltipConfig, type ViewportRange as TableViewportRange, type TableVirtualizedConfig, Table as VelocityGrid, type TableCellSpan as VelocityGridCellSpan, type TableContextMenu as VelocityGridContextMenu, type TableContextMenuConfig as VelocityGridContextMenuConfig, type TableHighlightConfig as VelocityGridHighlightConfig, type TableLabels as VelocityGridLabels, type TableLocaleCode as VelocityGridLocaleCode, type TableLocaleConfig as VelocityGridLocaleConfig, type TableProps as VelocityGridProps, type TableResolvedCellSpan as VelocityGridResolvedCellSpan, type TableSummaryConfig as VelocityGridSummaryConfig, type TableTooltipConfig as VelocityGridTooltipConfig, type TableVirtualizedConfig as VelocityGridVirtualizedConfig, type ViewportRange, buildColumnMetrics, getViewportRange, hitTestColumn };
|