@jielga/tmdatagrid 2.0.0-beta.2 → 2.0.0-beta.21
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 +5 -212
- package/dist/index.d.ts +1664 -632
- package/dist/index.js +5226 -3223
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/docs/anatomy.md +102 -0
- package/docs/cell-selection.md +154 -0
- package/docs/column-layout.md +204 -0
- package/docs/columns.md +262 -0
- package/docs/components.md +304 -0
- package/docs/editing.md +603 -0
- package/docs/editors.md +250 -0
- package/docs/export.md +326 -0
- package/docs/filtering.md +358 -0
- package/docs/getting-started.md +123 -0
- package/docs/grouping.md +165 -0
- package/docs/loading-and-empty.md +92 -0
- package/docs/localization.md +79 -0
- package/docs/menu.md +143 -0
- package/docs/pagination.md +144 -0
- package/docs/persistence.md +111 -0
- package/docs/portfolio-rebalancer.md +94 -0
- package/docs/query-builder.md +175 -0
- package/docs/quick-search.md +83 -0
- package/docs/row-details.md +113 -0
- package/docs/row-interaction.md +148 -0
- package/docs/row-pinning.md +132 -0
- package/docs/row-selection.md +134 -0
- package/docs/row-styling.md +133 -0
- package/docs/scrolling.md +111 -0
- package/docs/server-query.md +246 -0
- package/docs/server-side.md +206 -0
- package/docs/sorting.md +101 -0
- package/docs/styling.md +126 -0
- package/docs/summary-row.md +76 -0
- package/docs/testing.md +309 -0
- package/docs/toolbar.md +161 -0
- package/docs/use-tm-data-grid.md +361 -0
- package/package.json +21 -45
- package/skills/appearance/SKILL.md +70 -17
- package/skills/cell-selection/SKILL.md +70 -76
- package/skills/columns/SKILL.md +131 -32
- package/skills/data/SKILL.md +100 -23
- package/skills/editing/SKILL.md +217 -96
- package/skills/editing/references/common-mistakes.md +111 -24
- package/skills/editing/references/editing-api.md +63 -39
- package/skills/editing/references/editors-and-validation.md +77 -19
- package/skills/filtering/SKILL.md +148 -40
- package/skills/getting-started/SKILL.md +18 -16
- package/skills/grouping/SKILL.md +32 -15
- package/skills/options/SKILL.md +39 -9
- package/skills/rows/SKILL.md +22 -18
- package/skills/server-side/SKILL.md +170 -17
- package/skills/testing/SKILL.md +10 -7
- package/src/{tmdatagrid/TMDataGridContext.ts → TMDataGridContext.ts} +7 -19
- package/src/{tmdatagrid/components → components}/TMDataGrid.module.css +7 -1
- package/src/{tmdatagrid/components → components}/TMDataGrid.tsx +39 -23
- package/src/{tmdatagrid/components → components}/TMDataGridCellEditor.tsx +106 -38
- package/src/{tmdatagrid/components → components}/TMDataGridColumnsPanel.module.css +5 -1
- package/src/{tmdatagrid/components → components}/TMDataGridColumnsPanel.tsx +47 -55
- package/src/{tmdatagrid/components → components}/TMDataGridDetailsColumn.tsx +4 -4
- package/src/components/TMDataGridDraftActions.tsx +307 -0
- package/src/{tmdatagrid/components → components}/TMDataGridEditColumn.tsx +58 -50
- package/src/{tmdatagrid/components → components}/TMDataGridEntryRows.tsx +150 -115
- package/src/components/TMDataGridExportPicker.module.css +77 -0
- package/src/components/TMDataGridExportPicker.tsx +234 -0
- package/src/components/TMDataGridFilterPanel.module.css +54 -0
- package/src/components/TMDataGridFilterPanel.tsx +348 -0
- package/src/{tmdatagrid/components → components}/TMDataGridFilterPills.tsx +7 -5
- package/src/components/TMDataGridFilterSurface.module.css +54 -0
- package/src/components/TMDataGridFilterSurface.tsx +167 -0
- package/src/{tmdatagrid/components → components}/TMDataGridFooter.tsx +53 -13
- package/src/{tmdatagrid/components → components}/TMDataGridGroupColumn.tsx +4 -3
- package/src/{tmdatagrid/components → components}/TMDataGridHeaderCell.module.css +10 -0
- package/src/{tmdatagrid/components → components}/TMDataGridHeaderCell.tsx +100 -28
- package/src/components/TMDataGridHeaderFilterRow.module.css +51 -0
- package/src/components/TMDataGridHeaderFilterRow.tsx +301 -0
- package/src/components/TMDataGridMenu.tsx +354 -0
- package/src/{tmdatagrid/components → components}/TMDataGridSelectColumn.tsx +12 -7
- package/src/{tmdatagrid/components → components}/TMDataGridTable.module.css +90 -67
- package/src/{tmdatagrid/components → components}/TMDataGridTable.tsx +678 -156
- package/src/components/TMDataGridToolbar.module.css +21 -0
- package/src/components/TMDataGridToolbar.tsx +181 -0
- package/src/{tmdatagrid/components → components}/editors/TMDataGridBooleanEditor.tsx +3 -3
- package/src/{tmdatagrid/components → components}/editors/TMDataGridDateEditor.tsx +3 -3
- package/src/{tmdatagrid/components → components}/editors/TMDataGridMultiSelectEditor.tsx +3 -3
- package/src/components/editors/TMDataGridNumberEditor.tsx +70 -0
- package/src/{tmdatagrid/components → components}/editors/TMDataGridSelectEditor.tsx +3 -3
- package/src/{tmdatagrid/components → components}/editors/TMDataGridStringEditor.tsx +3 -3
- package/src/{tmdatagrid/components → components}/editors/editorShared.ts +17 -31
- package/src/{tmdatagrid/components → components}/filters/DgAutocompleteFilter.tsx +5 -4
- package/src/{tmdatagrid/components → components}/filters/DgDateRangeFilter.tsx +22 -5
- package/src/{tmdatagrid/components → components}/filters/DgRangeSliderFilter.tsx +5 -1
- package/src/{tmdatagrid/components → components}/filters/DgTriStateFilter.tsx +5 -1
- package/src/{tmdatagrid/components → components}/filters/TMDataGridFilterValueInput.tsx +44 -28
- package/src/components/filters/controlLayout.ts +32 -0
- package/src/components/filters/filterControlFor.ts +65 -0
- package/src/{tmdatagrid/components → components}/icons.ts +1 -0
- package/src/{tmdatagrid/components → components}/sticky.module.css +44 -0
- package/src/components/useHideableColumns.ts +52 -0
- package/src/{tmdatagrid/core → core}/autosize.ts +5 -2
- package/src/{tmdatagrid/core → core}/capabilities.ts +14 -6
- package/src/{tmdatagrid/core → core}/columnOptions.ts +46 -0
- package/src/{tmdatagrid/core → core}/columnOrdering.ts +33 -14
- package/src/{tmdatagrid/core → core}/columnUtils.ts +44 -5
- package/src/core/controlledState.ts +179 -0
- package/src/core/controlledStateSync.ts +108 -0
- package/src/core/deletedRows.ts +34 -0
- package/src/core/dom.ts +74 -0
- package/src/core/editEngine.ts +2476 -0
- package/src/{tmdatagrid/core → core}/editorFocus.ts +8 -4
- package/src/core/export.ts +843 -0
- package/src/{tmdatagrid/core → core}/filterControls.ts +38 -1
- package/src/{tmdatagrid/core → core}/filterOperators.ts +64 -1
- package/src/core/filterSurface.ts +99 -0
- package/src/{tmdatagrid/core → core}/labels.ts +66 -8
- package/src/{tmdatagrid/core → core}/labelsSv.ts +26 -3
- package/src/core/pageReset.ts +120 -0
- package/src/{tmdatagrid/core → core}/persistence.ts +22 -5
- package/src/core/resizePreview.ts +141 -0
- package/src/core/summary.ts +59 -0
- package/src/core/useSettledTableState.ts +36 -0
- package/src/{tmdatagrid/index.ts → index.ts} +75 -12
- package/src/{tmdatagrid/useTMDataGrid.tsx → useTMDataGrid.tsx} +734 -135
- package/src/useTMDataGridExport.ts +78 -0
- package/src/tmdatagrid/components/TMDataGridEditActions.tsx +0 -162
- package/src/tmdatagrid/components/TMDataGridFilterPanel.module.css +0 -35
- package/src/tmdatagrid/components/TMDataGridFilterPanel.tsx +0 -354
- package/src/tmdatagrid/components/TMDataGridToolbar.module.css +0 -12
- package/src/tmdatagrid/components/TMDataGridToolbar.tsx +0 -162
- package/src/tmdatagrid/components/editors/TMDataGridNumberEditor.tsx +0 -40
- package/src/tmdatagrid/core/cellExport.ts +0 -320
- package/src/tmdatagrid/core/editEngine.ts +0 -1006
- package/src/tmdatagrid/core/summary.ts +0 -35
- /package/src/{tmdatagrid/components → components}/TMDataGridDetailsColumn.module.css +0 -0
- /package/src/{tmdatagrid/components → components}/TMDataGridFilterPills.module.css +0 -0
- /package/src/{tmdatagrid/components → components}/TMDataGridFooter.module.css +0 -0
- /package/src/{tmdatagrid/components → components}/TMDataGridGroupColumn.module.css +0 -0
- /package/src/{tmdatagrid/components → components}/TMDataGridRowNumberColumn.tsx +0 -0
- /package/src/{tmdatagrid/components → components}/TMDataGridSearch.tsx +0 -0
- /package/src/{tmdatagrid/core → core}/cellNavigation.ts +0 -0
- /package/src/{tmdatagrid/core → core}/cellRange.ts +0 -0
- /package/src/{tmdatagrid/core → core}/draftCellContext.ts +0 -0
- /package/src/{tmdatagrid/core → core}/expanding.ts +0 -0
- /package/src/{tmdatagrid/core → core}/grouping.ts +0 -0
- /package/src/{tmdatagrid/core → core}/matchHighlight.ts +0 -0
- /package/src/{tmdatagrid/core → core}/quickSearch.ts +0 -0
- /package/src/{tmdatagrid/core → core}/rowPinning.ts +0 -0
- /package/src/{tmdatagrid/core → core}/rowSelection.ts +0 -0
- /package/src/{tmdatagrid/core → core}/sizes.ts +0 -0
package/skills/data/SKILL.md
CHANGED
|
@@ -6,21 +6,26 @@ description: >
|
|
|
6
6
|
enablePagination, manualPagination), the Footer's renderPagination slot over {
|
|
7
7
|
state, actions, Controls }, getTMDataGridPaginationApi, isPagingActive versus
|
|
8
8
|
canPaginate, always-on virtualization with overscan and meta.rowHeight,
|
|
9
|
-
scrollToRow
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
scrollToRow, the edge callbacks onScrollToBottom / onScrollToRight and why
|
|
10
|
+
onReachEnd is better for loading more, the header and pinned-lane depth
|
|
11
|
+
shadows, and the four empty states in precedence order with meta.loading,
|
|
12
|
+
renderEmptyState, hasActiveFilters, TMDataGrid.LoadingIndicator and
|
|
13
|
+
TMDataGrid.SummaryCount, and export: TMDataGrid.Menu.Export and
|
|
14
|
+
Menu.ExportSelected, useTMDataGridExport, exportGrid, exportOptions, the
|
|
15
|
+
csvExcel / csv / tsv / json formats, meta.exportValue and meta.enableExport.
|
|
16
|
+
Load when adding a pager, tuning scrolling, scrolling to a row, deciding what
|
|
17
|
+
an empty grid should say, or exporting rows to Excel or CSV.
|
|
15
18
|
metadata:
|
|
16
19
|
type: core
|
|
17
20
|
library: '@jielga/tmdatagrid'
|
|
18
|
-
library_version: '2.0.0-beta.
|
|
21
|
+
library_version: '2.0.0-beta.21'
|
|
19
22
|
sources:
|
|
20
|
-
- 'Jielga/TMDataGrid:
|
|
21
|
-
- 'Jielga/TMDataGrid:
|
|
22
|
-
- 'Jielga/TMDataGrid:
|
|
23
|
-
- 'Jielga/TMDataGrid:
|
|
23
|
+
- 'Jielga/TMDataGrid:packages/tmdatagrid/docs/pagination.md'
|
|
24
|
+
- 'Jielga/TMDataGrid:packages/tmdatagrid/docs/scrolling.md'
|
|
25
|
+
- 'Jielga/TMDataGrid:packages/tmdatagrid/docs/loading-and-empty.md'
|
|
26
|
+
- 'Jielga/TMDataGrid:packages/tmdatagrid/docs/export.md'
|
|
27
|
+
- 'Jielga/TMDataGrid:packages/tmdatagrid/src/components/TMDataGridFooter.tsx'
|
|
28
|
+
- 'Jielga/TMDataGrid:packages/tmdatagrid/src/core/export.ts'
|
|
24
29
|
---
|
|
25
30
|
|
|
26
31
|
# TMDataGrid - Pagination, scrolling and empty states
|
|
@@ -77,7 +82,10 @@ pieces, already wired.
|
|
|
77
82
|
`Controls.PageSize`, `Controls.Range` and `Controls.Pager` are what the default
|
|
78
83
|
footer renders, in that order, so a custom layout can keep the parts it wants
|
|
79
84
|
instead of rebuilding them. They behave exactly as before, including greying out
|
|
80
|
-
under a suspended pager.
|
|
85
|
+
under a suspended pager. `Controls.PageNumber` - the "Page 3 of 200" label a
|
|
86
|
+
server-paged grid usually shows in place of a row range - is a fourth control,
|
|
87
|
+
not in the default footer; put it in through the slot rather than writing it by
|
|
88
|
+
hand.
|
|
81
89
|
|
|
82
90
|
`state` carries `pageIndex`, `pageSize`, `pageCount`, `rowCount`,
|
|
83
91
|
`canPreviousPage`, `canNextPage`, `from`, `to` and `isPagingActive`. `actions`
|
|
@@ -118,8 +126,13 @@ grid.scrollToRow({ rowId: "42", align: "center" });
|
|
|
118
126
|
|
|
119
127
|
`scrollToRow` exists because the target row may not be mounted, and
|
|
120
128
|
`element.scrollIntoView()` cannot find an element that is not rendered. `align`
|
|
121
|
-
is `"start"`, `"center"`, `"end"` or `"auto"`.
|
|
122
|
-
|
|
129
|
+
is `"start"`, `"center"`, `"end"` or `"auto"`. It answers whether the row could
|
|
130
|
+
be reached: `false` when it is filtered out, on another page or an id matching
|
|
131
|
+
no row, and a pinned row answers `true` without scrolling.
|
|
132
|
+
|
|
133
|
+
The hook reaches the virtualizer through `scrollerRef`, which
|
|
134
|
+
`TMDataGrid.Table` fills in. That is internal wiring, not an API - spread the
|
|
135
|
+
whole grid object onto `<TMDataGrid>` or nothing scrolls.
|
|
123
136
|
|
|
124
137
|
`TMDataGrid.Table` reports arrivals at each edge - `onScrollToTop`,
|
|
125
138
|
`onScrollToBottom`, `onScrollToLeft`, `onScrollToRight` - firing **once** on
|
|
@@ -173,6 +186,71 @@ server-driven grid refetching with rows still on screen keeps showing them.
|
|
|
173
186
|
total, where the total is `meta.totalRowCount` when provided and the pre-filtered
|
|
174
187
|
count otherwise.
|
|
175
188
|
|
|
189
|
+
## Export
|
|
190
|
+
|
|
191
|
+
Every filtered and sorted row across every page, or the selected rows, as a
|
|
192
|
+
file. The built-in entry points are menu items; a button of your own uses the
|
|
193
|
+
hook.
|
|
194
|
+
|
|
195
|
+
```tsx
|
|
196
|
+
const grid = useTMDataGrid({
|
|
197
|
+
data,
|
|
198
|
+
columns,
|
|
199
|
+
exportOptions: { format: csvFormat(), fileName: "employees" },
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
<TMDataGrid.Menu>
|
|
203
|
+
<TMDataGrid.Menu.Export />
|
|
204
|
+
<TMDataGrid.Menu.ExportSelected />
|
|
205
|
+
</TMDataGrid.Menu>
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
```tsx
|
|
209
|
+
function ExportButton() {
|
|
210
|
+
const { exportAll, exportSelected, selectedCount, canExportSelected } =
|
|
211
|
+
useTMDataGridExport();
|
|
212
|
+
return <Button onClick={() => void exportAll()}>Export</Button>;
|
|
213
|
+
}
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
What is written: the data columns in render order (never the generated lanes,
|
|
217
|
+
never a column with `meta.enableExport: false`), every row after filtering and
|
|
218
|
+
sorting (a grouped grid writes the records under every group, never the group
|
|
219
|
+
rows), and each cell's **value** rather than what it renders -
|
|
220
|
+
`meta.exportValue: ({ value, row, column }) => unknown` substitutes one.
|
|
221
|
+
`columns` on `exportOptions`, the items and the functions is `"visible"` (the
|
|
222
|
+
default), `"all"` (hidden columns too) or a list of ids; `columns="custom"` on
|
|
223
|
+
a menu item opens a picker instead - every exportable column, the visible ones
|
|
224
|
+
ticked, Export and Cancel - driven by `ui.state.exportPicker` and
|
|
225
|
+
`ui.actions.openExportPicker`. `TMDataGrid.Menu.ExportSelected` counts and
|
|
226
|
+
writes the ticked rows of the current view, in grid order; it renders nothing
|
|
227
|
+
when row selection is off.
|
|
228
|
+
|
|
229
|
+
Formats, each a `TMDataGridExportFormat` from a factory:
|
|
230
|
+
|
|
231
|
+
| Factory | Writes |
|
|
232
|
+
| --- | --- |
|
|
233
|
+
| `csvExcelFormat()` (default) | BOM, `sep=;` line, CRLF, `;` fields, `,` decimal - opens straight into columns in Excel. `separator`, `decimalComma` for another locale. |
|
|
234
|
+
| `csvFormat()` | RFC 4180: `,` fields, `.` decimal, BOM, no `sep=` line - for Google Sheets, Numbers and tooling. |
|
|
235
|
+
| `tsvFormat()` | Tab-separated, the clipboard shape as a file. |
|
|
236
|
+
| `jsonFormat()` | One object per row keyed by column label, numbers as numbers, dates as ISO strings. |
|
|
237
|
+
| `xlsxFormat()` | Excel workbook, from the separate `@jielga/tmdatagrid-xlsx` package. |
|
|
238
|
+
|
|
239
|
+
The text formats guard against formula injection by default: a value starting
|
|
240
|
+
with `=`, `+`, `-` or `@` that is not a number is prefixed with `'`.
|
|
241
|
+
`escapeFormulas: false` on the format turns that off.
|
|
242
|
+
|
|
243
|
+
`exportGrid({ table, rows: "all" | "selected" | rows, options })` is the same
|
|
244
|
+
export for code outside a component; `buildExportData` is the step before the
|
|
245
|
+
file. A format of your own is `{ id, extension, mimeType, write(data, { includeHeaders }) }`
|
|
246
|
+
returning a string, a `Blob`, or a promise of either.
|
|
247
|
+
|
|
248
|
+
Deprecated for one beta: `exportGridToCsv`, the `cellExport` Table prop,
|
|
249
|
+
`TMDataGridCellExportOptions`, `buildCellMatrix` / `buildGridCellMatrix`,
|
|
250
|
+
`toExcelCsv`, `downloadTextFile`, `labels.exportCsv`.
|
|
251
|
+
|
|
252
|
+
Source: `packages/tmdatagrid/docs/export.md`.
|
|
253
|
+
|
|
176
254
|
## Common mistakes
|
|
177
255
|
|
|
178
256
|
### CRITICAL Turning pagination on to make a large grid fast
|
|
@@ -181,7 +259,7 @@ Virtualization is already unconditional, so paging a 200 000-row grid changes
|
|
|
181
259
|
nothing about rendering cost. It only changes how users navigate. Enable it when
|
|
182
260
|
they should move page by page, not for performance.
|
|
183
261
|
|
|
184
|
-
Source: `
|
|
262
|
+
Source: `packages/tmdatagrid/docs/pagination.md`, `packages/tmdatagrid/docs/scrolling.md`.
|
|
185
263
|
|
|
186
264
|
### CRITICAL A variable row height
|
|
187
265
|
|
|
@@ -202,7 +280,7 @@ Correct:
|
|
|
202
280
|
useTMDataGrid({ data, columns, meta: { rowHeight: 64 } });
|
|
203
281
|
```
|
|
204
282
|
|
|
205
|
-
Source: `
|
|
283
|
+
Source: `packages/tmdatagrid/docs/scrolling.md` (Row height).
|
|
206
284
|
|
|
207
285
|
### HIGH `scrollIntoView` on a row that is not mounted
|
|
208
286
|
|
|
@@ -218,7 +296,7 @@ grid.scrollToRow({ rowId: "4000", align: "center" });
|
|
|
218
296
|
`scrollToRow` returns `false` when the row is not in the current view (filtered
|
|
219
297
|
out, on another page, or an id matching no row) and nothing scrolled.
|
|
220
298
|
|
|
221
|
-
Source: `
|
|
299
|
+
Source: `packages/tmdatagrid/docs/scrolling.md` (Scrolling to a row).
|
|
222
300
|
|
|
223
301
|
### HIGH Loading more rows from `onScrollToBottom`
|
|
224
302
|
|
|
@@ -226,7 +304,7 @@ It fires at the very bottom, so the user waits at the end of the list for the
|
|
|
226
304
|
fetch. `onReachEnd` fires a number of rows earlier and latches per row count, so
|
|
227
305
|
a pending fetch is not requested twice.
|
|
228
306
|
|
|
229
|
-
Source: `
|
|
307
|
+
Source: `packages/tmdatagrid/docs/scrolling.md` (Edge callbacks).
|
|
230
308
|
|
|
231
309
|
### HIGH `SummaryCount` reporting the page under manual pagination
|
|
232
310
|
|
|
@@ -245,7 +323,7 @@ useTMDataGrid({
|
|
|
245
323
|
});
|
|
246
324
|
```
|
|
247
325
|
|
|
248
|
-
Source: `
|
|
326
|
+
Source: `packages/tmdatagrid/docs/loading-and-empty.md` (Counting what is there).
|
|
249
327
|
|
|
250
328
|
### MEDIUM Rendering an empty message while data is loading
|
|
251
329
|
|
|
@@ -259,7 +337,7 @@ Correct:
|
|
|
259
337
|
useTMDataGrid({ data, columns, meta: { loading: isFetching } });
|
|
260
338
|
```
|
|
261
339
|
|
|
262
|
-
Source: `
|
|
340
|
+
Source: `packages/tmdatagrid/docs/loading-and-empty.md` (What wins).
|
|
263
341
|
|
|
264
342
|
### MEDIUM Trusting the pager while grouped
|
|
265
343
|
|
|
@@ -267,7 +345,7 @@ Source: `src/docs/loading-and-empty.md` (What wins).
|
|
|
267
345
|
grid is rendering the whole tree. A custom pager must read
|
|
268
346
|
`isPagingActive(table, features)` rather than the page count.
|
|
269
347
|
|
|
270
|
-
Source: `
|
|
348
|
+
Source: `packages/tmdatagrid/docs/pagination.md` (Grouping suspends it).
|
|
271
349
|
|
|
272
350
|
## Reference
|
|
273
351
|
|
|
@@ -278,7 +356,7 @@ Source: `src/docs/pagination.md` (Grouping suspends it).
|
|
|
278
356
|
| `rowCount` | Table option | `number` | – | The true total, required under `manualPagination`. |
|
|
279
357
|
| `initialState.pagination` | Table option | `{ pageIndex, pageSize }` | `{ 0, 25 }` | Where paging starts. A `data` slice, so it persists. |
|
|
280
358
|
| `onPaginationChange` | Table option | `OnChangeFn` | – | Controls the pagination state. |
|
|
281
|
-
| `TMDataGrid.Footer` | Component | `pageSizeOptions`, `
|
|
359
|
+
| `TMDataGrid.Footer` | Component | `pageSizeOptions`, `renderPagination`, Mantine `BoxProps` | `[10, 25, 50, 100]` | The footer bar. Renders nothing when paging is off. Style props set on the bar. |
|
|
282
360
|
| `Footer` `renderPagination` | Slot | `({ state, actions, Controls }) => ReactNode` | Built-in pager | Replaces the pager, and hands over its pieces. |
|
|
283
361
|
| `getTMDataGridPaginationApi` | Export | `(table) => { state, actions }` | – | The pager API, outside the Footer. |
|
|
284
362
|
| `TMDataGridPaginationState` · `TMDataGridPaginationActions` · `TMDataGridPaginationControls` | Exports | types | – | The three parts of the slot argument. |
|
|
@@ -286,7 +364,6 @@ Source: `src/docs/pagination.md` (Grouping suspends it).
|
|
|
286
364
|
| `overscan` | Option | `number` | `6` | Rows kept mounted beyond each edge of the viewport. |
|
|
287
365
|
| `meta.rowHeight` | Option | `number` | From `size` | Row height in pixels. The virtualizer needs a number. |
|
|
288
366
|
| `scrollToRow` | Hook return | `({ rowId, align? }) => boolean` | `align: "auto"` | Scrolls a row into view, mounted or not. |
|
|
289
|
-
| `scrollerRef` | Hook return | `RefObject<HTMLDivElement>` | – | The scroll container. |
|
|
290
367
|
| `onScrollToTop` · `onScrollToBottom` · `onScrollToLeft` · `onScrollToRight` | Table props | `() => void` | – | Fire once on arriving at that edge. |
|
|
291
368
|
| `TMDataGridScrollAlign` | Export | `"start" \| "center" \| "end" \| "auto"` | – | The `align` argument. |
|
|
292
369
|
| `meta.loading` | Option | `boolean` | `false` | A fetch is in flight. Takes precedence over every empty message. |
|