react-open-source-grid 1.4.9 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/components/AccessibilityDemo.d.ts +8 -0
- package/dist/assets/components/ApiReferencePage.d.ts +2 -0
- package/dist/assets/components/BenchmarkDemo.d.ts +2 -0
- package/dist/assets/components/CellRenderersDemo.d.ts +16 -0
- package/dist/assets/components/CodeBlock.d.ts +10 -0
- package/dist/assets/components/ColumnFiltersDemo.d.ts +5 -0
- package/dist/assets/components/CompleteApiReferencePage.d.ts +2 -0
- package/dist/assets/components/ContextMenuDemo.d.ts +12 -0
- package/dist/assets/components/DataGrid/ARCHITECTURE.md.d.ts +288 -0
- package/dist/assets/components/DataGrid/AdvancedFilterBuilder.d.ts +12 -0
- package/dist/assets/components/DataGrid/CellRenderers.d.ts +64 -0
- package/dist/assets/components/DataGrid/ColumnChooser.d.ts +12 -0
- package/dist/assets/components/DataGrid/ColumnFilters.d.ts +16 -0
- package/dist/assets/components/DataGrid/ContextMenu.d.ts +10 -0
- package/dist/assets/components/DataGrid/DataGrid.d.ts +22 -0
- package/dist/assets/components/DataGrid/DensityToggle.d.ts +23 -0
- package/dist/assets/components/DataGrid/DragHandle.d.ts +7 -0
- package/dist/assets/components/DataGrid/DraggableRow.d.ts +14 -0
- package/dist/assets/components/DataGrid/ExportMenu.d.ts +12 -0
- package/dist/assets/components/DataGrid/FacetedSearch.d.ts +29 -0
- package/dist/assets/components/DataGrid/FilteredSearchBar.d.ts +36 -0
- package/dist/assets/components/DataGrid/FocusTrap.d.ts +12 -0
- package/dist/assets/components/DataGrid/GridApiDemo.d.ts +6 -0
- package/dist/assets/components/DataGrid/GridBody.d.ts +42 -0
- package/dist/assets/components/DataGrid/GridFooter.d.ts +18 -0
- package/dist/assets/components/DataGrid/GridHeader.d.ts +18 -0
- package/dist/assets/components/DataGrid/GridPagination.d.ts +10 -0
- package/dist/assets/components/DataGrid/GroupByPanel.d.ts +9 -0
- package/dist/assets/components/DataGrid/GroupRow.d.ts +31 -0
- package/dist/assets/components/DataGrid/InfiniteScrollDataGrid.d.ts +39 -0
- package/dist/assets/components/DataGrid/LayoutPresetsManager.d.ts +11 -0
- package/dist/assets/components/DataGrid/MarketDataEngine.d.ts +165 -0
- package/dist/assets/components/DataGrid/MarketDataGrid.d.ts +33 -0
- package/dist/assets/components/DataGrid/MarketDataGridUtils.d.ts +13 -0
- package/dist/assets/components/DataGrid/ScreenReaderAnnouncer.d.ts +8 -0
- package/dist/assets/components/DataGrid/ServerSideDataSource.d.ts +136 -0
- package/dist/assets/components/DataGrid/ThemeSelector.d.ts +12 -0
- package/dist/assets/components/DataGrid/Tooltip.d.ts +15 -0
- package/dist/assets/components/DataGrid/TreeRow.d.ts +31 -0
- package/dist/assets/components/DataGrid/VirtualScroller.d.ts +35 -0
- package/dist/assets/components/DataGrid/WebSocketMockFeed.d.ts +121 -0
- package/dist/assets/components/DataGrid/aggregationUtils.d.ts +25 -0
- package/dist/assets/components/DataGrid/contextMenuUtils.d.ts +36 -0
- package/dist/assets/components/DataGrid/demos/TooltipDemo.d.ts +1 -0
- package/dist/assets/components/DataGrid/densityModes.d.ts +42 -0
- package/dist/assets/components/DataGrid/dragRowUtils.d.ts +98 -0
- package/dist/assets/components/DataGrid/exportUtils.d.ts +30 -0
- package/dist/assets/components/DataGrid/filterUtils.d.ts +17 -0
- package/dist/assets/components/DataGrid/gridApi.d.ts +142 -0
- package/dist/assets/components/DataGrid/gridApi.types.d.ts +348 -0
- package/dist/assets/components/DataGrid/gridReducer.d.ts +4 -0
- package/dist/assets/components/DataGrid/groupingUtils.d.ts +17 -0
- package/dist/assets/components/DataGrid/index.d.ts +41 -0
- package/dist/assets/components/DataGrid/layoutPersistence.d.ts +95 -0
- package/dist/assets/components/DataGrid/themes.d.ts +113 -0
- package/dist/assets/components/DataGrid/treeDataUtils.d.ts +97 -0
- package/dist/assets/components/DataGrid/types.d.ts +536 -0
- package/dist/assets/components/DataGrid/useContextMenu.d.ts +31 -0
- package/dist/assets/components/DataGrid/useDensityMode.d.ts +36 -0
- package/dist/assets/components/DataGrid/useFocusTrap.d.ts +14 -0
- package/dist/assets/components/DataGrid/useMarketData.d.ts +57 -0
- package/dist/assets/components/DataGrid/useScreenReaderAnnouncements.d.ts +23 -0
- package/dist/assets/components/DataGrid/useTooltip.d.ts +21 -0
- package/dist/assets/components/DemoGridPage.d.ts +2 -0
- package/dist/assets/components/DensityModeDemo.d.ts +12 -0
- package/dist/assets/components/FacetedSearchDemo.d.ts +8 -0
- package/dist/assets/components/FeatureGallery.d.ts +2 -0
- package/dist/assets/components/FilteredSearchDemo.d.ts +7 -0
- package/dist/assets/components/GridApiDemoPage.d.ts +2 -0
- package/dist/assets/components/HomePage.d.ts +1 -0
- package/dist/assets/components/InfiniteScrollDemo.d.ts +13 -0
- package/dist/assets/components/LayoutPersistenceDemo.d.ts +2 -0
- package/dist/assets/components/LiveMarketDemo.d.ts +18 -0
- package/dist/assets/components/MarketDataExamples.d.ts +42 -0
- package/dist/assets/components/RowDraggingDemo.d.ts +3 -0
- package/dist/assets/components/RowPinningDemo.d.ts +12 -0
- package/dist/assets/components/ThemesDemo.d.ts +17 -0
- package/dist/assets/components/TooltipDemo.d.ts +1 -0
- package/dist/assets/components/TreeDataDemo.d.ts +3 -0
- package/dist/assets/components/VirtualScrollDemo.d.ts +13 -0
- package/dist/assets/{index-BCK5Ko4P.js → index-bQ7aqGuU.js} +2 -2
- package/dist/assets/index.js +1 -1
- package/dist/assets/{layoutPersistence-BHB0W18y.js → layoutPersistence-B2lMGbE7.js} +1 -1
- package/dist/index.html +1 -1
- package/package.json +14 -4
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grid API Types
|
|
3
|
+
* AG Grid-inspired API surface for programmatic grid control
|
|
4
|
+
*/
|
|
5
|
+
import type { Column, Row, FilterConfig, SortConfig, LayoutPreset } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* Column key - can be field name or column index
|
|
8
|
+
*/
|
|
9
|
+
export type ColKey = string | number;
|
|
10
|
+
/**
|
|
11
|
+
* Row node representing a single row in the grid with metadata
|
|
12
|
+
*/
|
|
13
|
+
export interface RowNode<T = Row> {
|
|
14
|
+
/** Unique row ID */
|
|
15
|
+
id: string | number;
|
|
16
|
+
/** The actual row data */
|
|
17
|
+
data: T;
|
|
18
|
+
/** Row index in the current display order (after filter/sort) */
|
|
19
|
+
rowIndex: number;
|
|
20
|
+
/** Whether this row is currently selected */
|
|
21
|
+
selected: boolean;
|
|
22
|
+
/** For grouped rows */
|
|
23
|
+
group?: boolean;
|
|
24
|
+
/** For tree rows */
|
|
25
|
+
level?: number;
|
|
26
|
+
/** Parent node for tree/group */
|
|
27
|
+
parent?: RowNode<T> | null;
|
|
28
|
+
/** Child nodes for tree/group */
|
|
29
|
+
childrenAfterGroup?: RowNode<T>[];
|
|
30
|
+
/** Whether group/tree node is expanded */
|
|
31
|
+
expanded?: boolean;
|
|
32
|
+
/** Set selection state for this row */
|
|
33
|
+
setSelected(selected: boolean, clearOther?: boolean): void;
|
|
34
|
+
/** Set expanded state (for groups/tree) */
|
|
35
|
+
setExpanded?(expanded: boolean): void;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Row model providing access to grid data
|
|
39
|
+
*/
|
|
40
|
+
export interface RowModel {
|
|
41
|
+
/** Total number of rows (before filter) */
|
|
42
|
+
getRowCount(): number;
|
|
43
|
+
/** Get row node at specific index (after filter/sort) */
|
|
44
|
+
getRow(index: number): RowNode | null;
|
|
45
|
+
/** Iterate through all rows */
|
|
46
|
+
forEachNode(callback: (node: RowNode, index: number) => void): void;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Column state for persistence
|
|
50
|
+
*/
|
|
51
|
+
export interface ColumnState {
|
|
52
|
+
colId: string;
|
|
53
|
+
width?: number;
|
|
54
|
+
hide?: boolean;
|
|
55
|
+
pinned?: 'left' | 'right' | null;
|
|
56
|
+
sort?: 'asc' | 'desc' | null;
|
|
57
|
+
sortIndex?: number;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Parameters for refreshing cells
|
|
61
|
+
*/
|
|
62
|
+
export interface RefreshCellsParams {
|
|
63
|
+
/** Specific row nodes to refresh */
|
|
64
|
+
rowNodes?: RowNode[];
|
|
65
|
+
/** Specific columns to refresh */
|
|
66
|
+
columns?: ColKey[];
|
|
67
|
+
/** Force refresh even if data hasn't changed */
|
|
68
|
+
force?: boolean;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Parameters for redrawing rows
|
|
72
|
+
*/
|
|
73
|
+
export interface RedrawRowsParams {
|
|
74
|
+
/** Specific row nodes to redraw */
|
|
75
|
+
rowNodes?: RowNode[];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* CSV export parameters
|
|
79
|
+
*/
|
|
80
|
+
export interface CsvExportParams {
|
|
81
|
+
/** Filename for the export (without extension) */
|
|
82
|
+
fileName?: string;
|
|
83
|
+
/** Column keys to include (default: all visible) */
|
|
84
|
+
columnKeys?: ColKey[];
|
|
85
|
+
/** Skip column headers */
|
|
86
|
+
skipHeader?: boolean;
|
|
87
|
+
/** Skip column group headers */
|
|
88
|
+
skipColumnGroupHeaders?: boolean;
|
|
89
|
+
/** Skip pinned top rows */
|
|
90
|
+
skipPinnedTop?: boolean;
|
|
91
|
+
/** Skip pinned bottom rows */
|
|
92
|
+
skipPinnedBottom?: boolean;
|
|
93
|
+
/** Only export selected rows */
|
|
94
|
+
onlySelected?: boolean;
|
|
95
|
+
/** Only export filtered rows */
|
|
96
|
+
onlyFiltered?: boolean;
|
|
97
|
+
/** Custom column separator (default: ',') */
|
|
98
|
+
columnSeparator?: string;
|
|
99
|
+
/** Suppress quotes around values */
|
|
100
|
+
suppressQuotes?: boolean;
|
|
101
|
+
/** Custom value processor */
|
|
102
|
+
processCellCallback?: (params: {
|
|
103
|
+
value: unknown;
|
|
104
|
+
column: Column;
|
|
105
|
+
node: RowNode;
|
|
106
|
+
}) => string;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Excel export parameters
|
|
110
|
+
*/
|
|
111
|
+
export interface ExcelExportParams extends CsvExportParams {
|
|
112
|
+
/** Sheet name */
|
|
113
|
+
sheetName?: string;
|
|
114
|
+
/** Author metadata */
|
|
115
|
+
author?: string;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Transaction for updating row data
|
|
119
|
+
*/
|
|
120
|
+
export interface RowDataTransaction<T = Row> {
|
|
121
|
+
/** Rows to add */
|
|
122
|
+
add?: T[];
|
|
123
|
+
/** Rows to update (matched by ID) */
|
|
124
|
+
update?: T[];
|
|
125
|
+
/** Rows to remove (matched by ID) */
|
|
126
|
+
remove?: T[];
|
|
127
|
+
/** Index to add rows at */
|
|
128
|
+
addIndex?: number;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Result of a transaction
|
|
132
|
+
*/
|
|
133
|
+
export interface RowNodeTransaction<T = Row> {
|
|
134
|
+
add: RowNode<T>[];
|
|
135
|
+
remove: RowNode<T>[];
|
|
136
|
+
update: RowNode<T>[];
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Cell range for clipboard operations
|
|
140
|
+
*/
|
|
141
|
+
export interface CellRange {
|
|
142
|
+
startRow: RowNode;
|
|
143
|
+
endRow: RowNode;
|
|
144
|
+
columns: Column[];
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Parameters for starting cell editing
|
|
148
|
+
*/
|
|
149
|
+
export interface StartEditingCellParams {
|
|
150
|
+
rowIndex: number;
|
|
151
|
+
colKey: ColKey;
|
|
152
|
+
/** Keyboard event that triggered editing */
|
|
153
|
+
key?: string;
|
|
154
|
+
/** Character to populate cell with */
|
|
155
|
+
charPress?: string;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Main Grid API Interface
|
|
159
|
+
* Provides programmatic access to grid functionality
|
|
160
|
+
*/
|
|
161
|
+
export interface GridApi {
|
|
162
|
+
/** Replace all row data */
|
|
163
|
+
setRowData(rows: Row[]): void;
|
|
164
|
+
/** Apply a transaction to add/remove/update rows */
|
|
165
|
+
applyTransaction(transaction: RowDataTransaction): RowNodeTransaction;
|
|
166
|
+
/** Apply transaction asynchronously (for better performance with large datasets) */
|
|
167
|
+
applyTransactionAsync(transaction: RowDataTransaction): Promise<RowNodeTransaction>;
|
|
168
|
+
/** Get the row model */
|
|
169
|
+
getModel(): RowModel;
|
|
170
|
+
/** Get number of displayed rows (after filter/sort) */
|
|
171
|
+
getDisplayedRowCount(): number;
|
|
172
|
+
/** Get row node at specific display index */
|
|
173
|
+
getDisplayedRowAtIndex(index: number): RowNode | null;
|
|
174
|
+
/** Iterate through all row nodes */
|
|
175
|
+
forEachNode(callback: (node: RowNode, index: number) => void): void;
|
|
176
|
+
/** Iterate through nodes after filter */
|
|
177
|
+
forEachNodeAfterFilter(callback: (node: RowNode, index: number) => void): void;
|
|
178
|
+
/** Iterate through nodes after filter and sort */
|
|
179
|
+
forEachNodeAfterFilterAndSort(callback: (node: RowNode, index: number) => void): void;
|
|
180
|
+
/** Get first displayed row index */
|
|
181
|
+
getFirstDisplayedRow(): number;
|
|
182
|
+
/** Get last displayed row index */
|
|
183
|
+
getLastDisplayedRow(): number;
|
|
184
|
+
/** Get current column definitions */
|
|
185
|
+
getColumnDefs(): Column[];
|
|
186
|
+
/** Replace column definitions */
|
|
187
|
+
setColumnDefs(colDefs: Column[]): void;
|
|
188
|
+
/** Get all columns */
|
|
189
|
+
getAllColumns(): Column[];
|
|
190
|
+
/** Get displayed columns in center (not pinned) */
|
|
191
|
+
getDisplayedCenterColumns(): Column[];
|
|
192
|
+
/** Get displayed left pinned columns */
|
|
193
|
+
getDisplayedLeftColumns(): Column[];
|
|
194
|
+
/** Get displayed right pinned columns */
|
|
195
|
+
getDisplayedRightColumns(): Column[];
|
|
196
|
+
/** Show or hide a column */
|
|
197
|
+
setColumnVisible(key: ColKey, visible: boolean): void;
|
|
198
|
+
/** Show or hide multiple columns */
|
|
199
|
+
setColumnsVisible(keys: ColKey[], visible: boolean): void;
|
|
200
|
+
/** Pin or unpin a column */
|
|
201
|
+
setColumnPinned(key: ColKey, pinned: 'left' | 'right' | null): void;
|
|
202
|
+
/** Auto-size specific columns to fit content */
|
|
203
|
+
autoSizeColumns(keys?: ColKey[]): void;
|
|
204
|
+
/** Auto-size all columns to fit content */
|
|
205
|
+
autoSizeAllColumns(): void;
|
|
206
|
+
/** Move column to new position */
|
|
207
|
+
moveColumn(key: ColKey, toIndex: number): void;
|
|
208
|
+
/** Move columns to new positions */
|
|
209
|
+
moveColumns(keys: ColKey[], toIndex: number): void;
|
|
210
|
+
/** Get current column state */
|
|
211
|
+
getColumnState(): ColumnState[];
|
|
212
|
+
/** Apply column state (restore from saved state) */
|
|
213
|
+
applyColumnState(state: ColumnState[]): void;
|
|
214
|
+
/** Reset column state to initial */
|
|
215
|
+
resetColumnState(): void;
|
|
216
|
+
/** Get column by key */
|
|
217
|
+
getColumn(key: ColKey): Column | null;
|
|
218
|
+
/** Check if any filter is currently active */
|
|
219
|
+
isAnyFilterPresent(): boolean;
|
|
220
|
+
/** Get current filter model */
|
|
221
|
+
getFilterModel(): FilterConfig;
|
|
222
|
+
/** Set filter model */
|
|
223
|
+
setFilterModel(model: FilterConfig): void;
|
|
224
|
+
/** Trigger filter changed event */
|
|
225
|
+
onFilterChanged(): void;
|
|
226
|
+
/** Destroy filter for specific column */
|
|
227
|
+
destroyFilter(colKey: ColKey): void;
|
|
228
|
+
/** Get filter instance for a column */
|
|
229
|
+
getFilterInstance(colKey: ColKey): unknown;
|
|
230
|
+
/** Clear all filters */
|
|
231
|
+
clearAllFilters(): void;
|
|
232
|
+
/** Get current sort model */
|
|
233
|
+
getSortModel(): SortConfig[];
|
|
234
|
+
/** Set sort model */
|
|
235
|
+
setSortModel(model: SortConfig[]): void;
|
|
236
|
+
/** Trigger sort changed event */
|
|
237
|
+
onSortChanged(): void;
|
|
238
|
+
/** Clear all sorting */
|
|
239
|
+
clearAllSorting(): void;
|
|
240
|
+
/** Get selected row nodes */
|
|
241
|
+
getSelectedNodes(): RowNode[];
|
|
242
|
+
/** Get selected row data */
|
|
243
|
+
getSelectedRows(): Row[];
|
|
244
|
+
/** Select all rows */
|
|
245
|
+
selectAll(): void;
|
|
246
|
+
/** Deselect all rows */
|
|
247
|
+
deselectAll(): void;
|
|
248
|
+
/** Select all filtered rows */
|
|
249
|
+
selectAllFiltered(): void;
|
|
250
|
+
/** Deselect all filtered rows */
|
|
251
|
+
deselectAllFiltered(): void;
|
|
252
|
+
/** Get number of selected rows */
|
|
253
|
+
getSelectedRowCount(): number;
|
|
254
|
+
/** Ensure row index is visible in viewport */
|
|
255
|
+
ensureIndexVisible(index: number, position?: 'top' | 'middle' | 'bottom'): void;
|
|
256
|
+
/** Ensure row node is visible in viewport */
|
|
257
|
+
ensureNodeVisible(node: RowNode, position?: 'top' | 'middle' | 'bottom'): void;
|
|
258
|
+
/** Set focused cell */
|
|
259
|
+
setFocusedCell(rowIndex: number, colKey: ColKey): void;
|
|
260
|
+
/** Clear focused cell */
|
|
261
|
+
clearFocusedCell(): void;
|
|
262
|
+
/** Get currently focused cell */
|
|
263
|
+
getFocusedCell(): {
|
|
264
|
+
rowIndex: number;
|
|
265
|
+
column: Column;
|
|
266
|
+
} | null;
|
|
267
|
+
/** Start editing a cell */
|
|
268
|
+
startEditingCell(params: StartEditingCellParams): void;
|
|
269
|
+
/** Stop editing (save or cancel) */
|
|
270
|
+
stopEditing(cancel?: boolean): void;
|
|
271
|
+
/** Get cells currently being edited */
|
|
272
|
+
getEditingCells(): Array<{
|
|
273
|
+
rowIndex: number;
|
|
274
|
+
column: Column;
|
|
275
|
+
}>;
|
|
276
|
+
/** Re-render specific cells */
|
|
277
|
+
refreshCells(params?: RefreshCellsParams): void;
|
|
278
|
+
/** Re-render column headers */
|
|
279
|
+
refreshHeader(): void;
|
|
280
|
+
/** Refresh tool panel */
|
|
281
|
+
refreshToolPanel(): void;
|
|
282
|
+
/** Redraw rows (full re-render) */
|
|
283
|
+
redrawRows(params?: RedrawRowsParams): void;
|
|
284
|
+
/** Resize columns to fit grid width */
|
|
285
|
+
sizeColumnsToFit(): void;
|
|
286
|
+
/** Force layout recalculation */
|
|
287
|
+
doLayout(): void;
|
|
288
|
+
/** Export data as CSV file */
|
|
289
|
+
exportDataAsCsv(params?: CsvExportParams): void;
|
|
290
|
+
/** Get data as CSV string */
|
|
291
|
+
getDataAsCsv(params?: CsvExportParams): string;
|
|
292
|
+
/** Export data as Excel file */
|
|
293
|
+
exportDataAsExcel(params?: ExcelExportParams): void;
|
|
294
|
+
/** Copy selected rows to clipboard */
|
|
295
|
+
copySelectedRowsToClipboard(): void;
|
|
296
|
+
/** Copy selected range to clipboard */
|
|
297
|
+
copySelectedRangeToClipboard(): void;
|
|
298
|
+
/** Show loading overlay */
|
|
299
|
+
showLoadingOverlay(): void;
|
|
300
|
+
/** Show no rows overlay */
|
|
301
|
+
showNoRowsOverlay(): void;
|
|
302
|
+
/** Hide all overlays */
|
|
303
|
+
hideOverlay(): void;
|
|
304
|
+
/** Get current page */
|
|
305
|
+
paginationGetCurrentPage(): number;
|
|
306
|
+
/** Go to specific page */
|
|
307
|
+
paginationGoToPage(page: number): void;
|
|
308
|
+
/** Go to next page */
|
|
309
|
+
paginationGoToNextPage(): void;
|
|
310
|
+
/** Go to previous page */
|
|
311
|
+
paginationGoToPreviousPage(): void;
|
|
312
|
+
/** Get total number of pages */
|
|
313
|
+
paginationGetTotalPages(): number;
|
|
314
|
+
/** Get page size */
|
|
315
|
+
paginationGetPageSize(): number;
|
|
316
|
+
/** Set page size */
|
|
317
|
+
paginationSetPageSize(size: number): void;
|
|
318
|
+
/** Set columns to group by */
|
|
319
|
+
setRowGroupColumns(colKeys: ColKey[]): void;
|
|
320
|
+
/** Add column to grouping */
|
|
321
|
+
addRowGroupColumn(colKey: ColKey): void;
|
|
322
|
+
/** Remove column from grouping */
|
|
323
|
+
removeRowGroupColumn(colKey: ColKey): void;
|
|
324
|
+
/** Get columns used for grouping */
|
|
325
|
+
getRowGroupColumns(): Column[];
|
|
326
|
+
/** Expand all groups/tree nodes */
|
|
327
|
+
expandAll(): void;
|
|
328
|
+
/** Collapse all groups/tree nodes */
|
|
329
|
+
collapseAll(): void;
|
|
330
|
+
/** Expand specific node */
|
|
331
|
+
onGroupExpandedOrCollapsed(node?: RowNode): void;
|
|
332
|
+
/** Save current layout with name */
|
|
333
|
+
saveLayout(name: string): Promise<void>;
|
|
334
|
+
/** Load layout by name */
|
|
335
|
+
loadLayout(name: string): Promise<void>;
|
|
336
|
+
/** Get current layout state */
|
|
337
|
+
getLayoutState(): LayoutPreset['layout'];
|
|
338
|
+
/** Apply layout state */
|
|
339
|
+
applyLayoutState(layout: LayoutPreset['layout']): void;
|
|
340
|
+
/** Destroy grid and clean up resources */
|
|
341
|
+
destroy(): void;
|
|
342
|
+
/** Check if grid has been destroyed */
|
|
343
|
+
isDestroyed(): boolean;
|
|
344
|
+
/** Add event listener */
|
|
345
|
+
addEventListener(eventType: string, listener: (event: unknown) => void): void;
|
|
346
|
+
/** Remove event listener */
|
|
347
|
+
removeEventListener(eventType: string, listener: (event: unknown) => void): void;
|
|
348
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { GridState, GridAction, Column } from './types';
|
|
2
|
+
export type { GridState, GridAction };
|
|
3
|
+
export declare const createInitialState: (columns: Column[], pageSize?: number) => GridState;
|
|
4
|
+
export declare const gridReducer: (state: GridState, action: GridAction) => GridState;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Row, GroupedRow, AggregateFunction, ExpandedGroups } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Compute aggregate value for a group of rows
|
|
4
|
+
*/
|
|
5
|
+
export declare const computeAggregate: (rows: Row[], field: string, func: AggregateFunction) => number;
|
|
6
|
+
/**
|
|
7
|
+
* Group rows by specified fields recursively
|
|
8
|
+
*/
|
|
9
|
+
export declare const groupRows: (rows: Row[], groupByFields: string[], expandedGroups: ExpandedGroups, level?: number) => (Row | GroupedRow)[];
|
|
10
|
+
/**
|
|
11
|
+
* Flatten grouped rows for rendering
|
|
12
|
+
*/
|
|
13
|
+
export declare const flattenGroupedRows: (groupedRows: (Row | GroupedRow)[]) => (Row | GroupedRow)[];
|
|
14
|
+
/**
|
|
15
|
+
* Check if a row is a grouped row
|
|
16
|
+
*/
|
|
17
|
+
export declare const isGroupedRow: (row: Row | GroupedRow) => row is GroupedRow;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export { DataGrid } from './DataGrid';
|
|
2
|
+
export { VirtualScroller } from './VirtualScroller';
|
|
3
|
+
export type { GridApi, RowNode, RowModel, ColKey, ColumnState, RefreshCellsParams, RedrawRowsParams, CsvExportParams, ExcelExportParams, RowDataTransaction, RowNodeTransaction, CellRange, StartEditingCellParams, } from './gridApi.types';
|
|
4
|
+
export { GridApiImpl } from './gridApi';
|
|
5
|
+
export { ColumnChooser } from './ColumnChooser';
|
|
6
|
+
export { ExportMenu } from './ExportMenu';
|
|
7
|
+
export { ColumnFilters } from './ColumnFilters';
|
|
8
|
+
export { AdvancedFilterBuilder } from './AdvancedFilterBuilder';
|
|
9
|
+
export { FacetedSearch } from './FacetedSearch';
|
|
10
|
+
export type { FacetConfig, FacetedSearchProps } from './FacetedSearch';
|
|
11
|
+
export { FilteredSearchBar } from './FilteredSearchBar';
|
|
12
|
+
export type { SearchToken, FilterOption, FilteredSearchBarProps } from './FilteredSearchBar';
|
|
13
|
+
export { LayoutPresetsManager } from './LayoutPresetsManager';
|
|
14
|
+
export { InfiniteScrollDataGrid, ThemedInfiniteScrollDataGrid } from './InfiniteScrollDataGrid';
|
|
15
|
+
export { ServerSideDataSource, createMockServerDataSource } from './ServerSideDataSource';
|
|
16
|
+
export { ThemeSelector } from './ThemeSelector';
|
|
17
|
+
export { getTheme, getThemeNames, generateThemeCSS, quartzTheme, alpineTheme, materialTheme, darkTheme, themes } from './themes';
|
|
18
|
+
export type { ThemeName, GridTheme } from './themes';
|
|
19
|
+
export { DensityToggle } from './DensityToggle';
|
|
20
|
+
export { useDensityMode } from './useDensityMode';
|
|
21
|
+
export type { UseDensityModeOptions, UseDensityModeReturn } from './useDensityMode';
|
|
22
|
+
export { getDensityConfig, getDensityModes, getDensityLabel, generateDensityCSS, saveDensityMode, loadDensityMode, densityConfigs } from './densityModes';
|
|
23
|
+
export type { DensityMode, DensityConfig } from './densityModes';
|
|
24
|
+
export type { Column, Row, DataGridProps, GroupedRow, AggregateFunction, AggregateConfig, FooterConfig, VirtualScrollConfig, FilterType, FilterValue, FilterCondition, AdvancedFilterValue, FilterConfig, LayoutPreset, StorageStrategy, StorageAdapter, ServerConfig, UserProfileConfig, PersistenceConfig, TreeNode, TreeConfig, ExpandedNodes, RowPinConfig, ContextMenuItem, ContextMenuConfig, ContextMenuEvent, TooltipConfig, TooltipContent, TooltipPlacement } from './types';
|
|
25
|
+
export type { ServerSideDataSourceConfig, ServerSideRequest, ServerSideResponse } from './ServerSideDataSource';
|
|
26
|
+
export type { InfiniteScrollDataGridProps } from './InfiniteScrollDataGrid';
|
|
27
|
+
export { handleExport, exportToCSV, exportToXLSX, generateFilename } from './exportUtils';
|
|
28
|
+
export type { ExportFormat, ExportScope, ExcelStyling, ExportOptions } from './exportUtils';
|
|
29
|
+
export { LayoutPersistenceManager, LocalStorageAdapter, ServerAdapter, UserProfileAdapter, getStorageAdapter, generatePresetId, createPreset } from './layoutPersistence';
|
|
30
|
+
export { buildTreeFromFlat, flattenTree, toggleNodeExpansion, expandAllNodes, collapseAllNodes, getDescendantIds, getNodePath, getTreeDepth, countTreeNodes, filterTree, isTreeNode } from './treeDataUtils';
|
|
31
|
+
export { StatusChip, ProgressBar, IconCell, ImageCell, ButtonCell, BadgeCell, PriorityIndicator, Rating, CurrencyCell, } from './CellRenderers';
|
|
32
|
+
export { GridApiDemo } from './GridApiDemo';
|
|
33
|
+
export { MarketDataGrid } from './MarketDataGrid';
|
|
34
|
+
export type { MarketDataGridProps } from './MarketDataGrid';
|
|
35
|
+
export { MarketDataEngine, createMarketDataEngine } from './MarketDataEngine';
|
|
36
|
+
export type { CellUpdate as MarketCellUpdate, FlashAnimation as MarketFlashAnimation, MarketDataRow, MarketDataEngineConfig, RowUpdate } from './MarketDataEngine';
|
|
37
|
+
export { useMarketData } from './useMarketData';
|
|
38
|
+
export type { WebSocketConfig, MarketDataSubscription, ConnectionState, UseMarketDataOptions, UseMarketDataReturn } from './useMarketData';
|
|
39
|
+
export { WebSocketMockFeed, createMockFeed, createMockWebSocket } from './WebSocketMockFeed';
|
|
40
|
+
export type { MockMarketData, MockFeedConfig, MockWebSocket } from './WebSocketMockFeed';
|
|
41
|
+
export type { MarketDataConfig } from './types';
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { LayoutPreset, StorageAdapter, ServerConfig, UserProfileConfig, PersistenceConfig } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* LocalStorage Adapter
|
|
4
|
+
* Stores layout presets in browser's localStorage
|
|
5
|
+
*/
|
|
6
|
+
export declare class LocalStorageAdapter implements StorageAdapter {
|
|
7
|
+
save(key: string, preset: LayoutPreset): Promise<void>;
|
|
8
|
+
load(key: string, presetId?: string): Promise<LayoutPreset | LayoutPreset[] | null>;
|
|
9
|
+
delete(key: string, presetId: string): Promise<void>;
|
|
10
|
+
list(key: string): Promise<LayoutPreset[]>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Server Adapter
|
|
14
|
+
* Stores layout presets on a remote server via REST API
|
|
15
|
+
*/
|
|
16
|
+
export declare class ServerAdapter implements StorageAdapter {
|
|
17
|
+
private config;
|
|
18
|
+
constructor(config: ServerConfig);
|
|
19
|
+
save(key: string, preset: LayoutPreset): Promise<void>;
|
|
20
|
+
load(key: string, presetId?: string): Promise<LayoutPreset | LayoutPreset[] | null>;
|
|
21
|
+
delete(key: string, presetId: string): Promise<void>;
|
|
22
|
+
list(key: string): Promise<LayoutPreset[]>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* User Profile Adapter
|
|
26
|
+
* Stores layout presets associated with a specific user
|
|
27
|
+
* Uses localStorage with user-specific keys by default, but can use custom adapter
|
|
28
|
+
*/
|
|
29
|
+
export declare class UserProfileAdapter implements StorageAdapter {
|
|
30
|
+
private config;
|
|
31
|
+
private baseAdapter;
|
|
32
|
+
constructor(config: UserProfileConfig);
|
|
33
|
+
private getUserKey;
|
|
34
|
+
save(key: string, preset: LayoutPreset): Promise<void>;
|
|
35
|
+
load(key: string, presetId?: string): Promise<LayoutPreset | LayoutPreset[] | null>;
|
|
36
|
+
delete(key: string, presetId: string): Promise<void>;
|
|
37
|
+
list(key: string): Promise<LayoutPreset[]>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Get storage adapter based on configuration
|
|
41
|
+
*/
|
|
42
|
+
export declare function getStorageAdapter(config: PersistenceConfig): StorageAdapter;
|
|
43
|
+
/**
|
|
44
|
+
* Generate a unique ID for a preset
|
|
45
|
+
*/
|
|
46
|
+
export declare function generatePresetId(): string;
|
|
47
|
+
/**
|
|
48
|
+
* Create a new layout preset from current grid state
|
|
49
|
+
*/
|
|
50
|
+
export declare function createPreset(name: string, layout: LayoutPreset['layout'], description?: string, id?: string): LayoutPreset;
|
|
51
|
+
/**
|
|
52
|
+
* Layout Persistence Manager
|
|
53
|
+
* Main API for saving, loading, and managing layout presets
|
|
54
|
+
*/
|
|
55
|
+
export declare class LayoutPersistenceManager {
|
|
56
|
+
private adapter;
|
|
57
|
+
private storageKey;
|
|
58
|
+
constructor(config: PersistenceConfig);
|
|
59
|
+
/**
|
|
60
|
+
* Save a layout preset
|
|
61
|
+
*/
|
|
62
|
+
savePreset(preset: LayoutPreset): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Load a specific preset by ID
|
|
65
|
+
*/
|
|
66
|
+
loadPreset(presetId: string): Promise<LayoutPreset | null>;
|
|
67
|
+
/**
|
|
68
|
+
* Load the most recently updated preset
|
|
69
|
+
*/
|
|
70
|
+
loadLastPreset(): Promise<LayoutPreset | null>;
|
|
71
|
+
/**
|
|
72
|
+
* Delete a preset
|
|
73
|
+
*/
|
|
74
|
+
deletePreset(presetId: string): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* List all presets
|
|
77
|
+
*/
|
|
78
|
+
listPresets(): Promise<LayoutPreset[]>;
|
|
79
|
+
/**
|
|
80
|
+
* Check if a preset exists
|
|
81
|
+
*/
|
|
82
|
+
hasPreset(presetId: string): Promise<boolean>;
|
|
83
|
+
/**
|
|
84
|
+
* Save current layout as auto-save (with special ID)
|
|
85
|
+
*/
|
|
86
|
+
autoSave(layout: LayoutPreset['layout']): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Load auto-saved layout
|
|
89
|
+
*/
|
|
90
|
+
loadAutoSave(): Promise<LayoutPreset | null>;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Debounce helper for auto-save functionality
|
|
94
|
+
*/
|
|
95
|
+
export declare function debounce<T extends (...args: any[]) => any>(func: T, delay: number): (...args: Parameters<T>) => void;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DataGrid Theme System
|
|
3
|
+
* Provides multiple pre-built themes: Quartz, Alpine, Material, Dark
|
|
4
|
+
*/
|
|
5
|
+
export type ThemeName = 'quartz' | 'alpine' | 'material' | 'dark' | 'nord' | 'dracula' | 'solarized-light' | 'solarized-dark' | 'monokai' | 'one-dark';
|
|
6
|
+
export interface GridTheme {
|
|
7
|
+
name: ThemeName;
|
|
8
|
+
displayName: string;
|
|
9
|
+
colors: {
|
|
10
|
+
background: string;
|
|
11
|
+
backgroundAlt: string;
|
|
12
|
+
headerBackground: string;
|
|
13
|
+
footerBackground: string;
|
|
14
|
+
border: string;
|
|
15
|
+
borderLight: string;
|
|
16
|
+
text: string;
|
|
17
|
+
textSecondary: string;
|
|
18
|
+
textInverse: string;
|
|
19
|
+
headerText: string;
|
|
20
|
+
hover: string;
|
|
21
|
+
active: string;
|
|
22
|
+
selected: string;
|
|
23
|
+
primary: string;
|
|
24
|
+
primaryHover: string;
|
|
25
|
+
primaryLight: string;
|
|
26
|
+
primaryDark: string;
|
|
27
|
+
primaryBackground: string;
|
|
28
|
+
textMuted: string;
|
|
29
|
+
borderHover: string;
|
|
30
|
+
success: string;
|
|
31
|
+
warning: string;
|
|
32
|
+
error: string;
|
|
33
|
+
info: string;
|
|
34
|
+
};
|
|
35
|
+
spacing: {
|
|
36
|
+
cellPadding: string;
|
|
37
|
+
headerPadding: string;
|
|
38
|
+
rowHeight: string;
|
|
39
|
+
};
|
|
40
|
+
typography: {
|
|
41
|
+
fontFamily: string;
|
|
42
|
+
fontSize: string;
|
|
43
|
+
fontSizeSmall: string;
|
|
44
|
+
fontWeight: string;
|
|
45
|
+
headerFontWeight: string;
|
|
46
|
+
};
|
|
47
|
+
borders: {
|
|
48
|
+
width: string;
|
|
49
|
+
radius: string;
|
|
50
|
+
style: string;
|
|
51
|
+
};
|
|
52
|
+
shadows: {
|
|
53
|
+
light: string;
|
|
54
|
+
medium: string;
|
|
55
|
+
heavy: string;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Quartz Theme - Modern white with clean aesthetics
|
|
60
|
+
*/
|
|
61
|
+
export declare const quartzTheme: GridTheme;
|
|
62
|
+
/**
|
|
63
|
+
* Alpine Theme - Classic business with professional look
|
|
64
|
+
*/
|
|
65
|
+
export declare const alpineTheme: GridTheme;
|
|
66
|
+
/**
|
|
67
|
+
* Material Theme - Material Design inspired
|
|
68
|
+
*/
|
|
69
|
+
export declare const materialTheme: GridTheme;
|
|
70
|
+
/**
|
|
71
|
+
* Dark Theme - Dark mode for reduced eye strain
|
|
72
|
+
*/
|
|
73
|
+
export declare const darkTheme: GridTheme;
|
|
74
|
+
/**
|
|
75
|
+
* Nord Theme - Cool, arctic-inspired colors
|
|
76
|
+
*/
|
|
77
|
+
export declare const nordTheme: GridTheme;
|
|
78
|
+
/**
|
|
79
|
+
* Dracula Theme - Popular purple-tinted dark theme
|
|
80
|
+
*/
|
|
81
|
+
export declare const draculaTheme: GridTheme;
|
|
82
|
+
/**
|
|
83
|
+
* Solarized Light Theme - Precision colors for readability
|
|
84
|
+
*/
|
|
85
|
+
export declare const solarizedLightTheme: GridTheme;
|
|
86
|
+
/**
|
|
87
|
+
* Solarized Dark Theme - Dark variant of Solarized
|
|
88
|
+
*/
|
|
89
|
+
export declare const solarizedDarkTheme: GridTheme;
|
|
90
|
+
/**
|
|
91
|
+
* Monokai Theme - Vibrant colors on dark background
|
|
92
|
+
*/
|
|
93
|
+
export declare const monokaiTheme: GridTheme;
|
|
94
|
+
/**
|
|
95
|
+
* One Dark Theme - Atom's iconic dark theme
|
|
96
|
+
*/
|
|
97
|
+
export declare const oneDarkTheme: GridTheme;
|
|
98
|
+
/**
|
|
99
|
+
* Theme registry - all available themes
|
|
100
|
+
*/
|
|
101
|
+
export declare const themes: Record<ThemeName, GridTheme>;
|
|
102
|
+
/**
|
|
103
|
+
* Get theme by name
|
|
104
|
+
*/
|
|
105
|
+
export declare function getTheme(themeName: ThemeName): GridTheme;
|
|
106
|
+
/**
|
|
107
|
+
* Get all available theme names
|
|
108
|
+
*/
|
|
109
|
+
export declare function getThemeNames(): ThemeName[];
|
|
110
|
+
/**
|
|
111
|
+
* Generate CSS variables from theme
|
|
112
|
+
*/
|
|
113
|
+
export declare function generateThemeCSS(theme: GridTheme): Record<string, string>;
|