@jielga/tmdatagrid 2.0.0-beta.0 → 2.0.0-beta.2
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 +32 -34
- package/dist/index.d.ts +164 -102
- package/dist/index.js +2060 -1705
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/skills/appearance/SKILL.md +37 -34
- package/skills/cell-selection/SKILL.md +19 -19
- package/skills/columns/SKILL.md +9 -9
- package/skills/data/SKILL.md +53 -53
- package/skills/editing/SKILL.md +152 -311
- package/skills/editing/references/common-mistakes.md +177 -0
- package/skills/editing/references/editing-api.md +56 -28
- package/skills/editing/references/editors-and-validation.md +26 -19
- package/skills/filtering/SKILL.md +51 -50
- package/skills/getting-started/SKILL.md +10 -10
- package/skills/grouping/SKILL.md +41 -43
- package/skills/options/SKILL.md +4 -4
- package/skills/rows/SKILL.md +59 -59
- package/skills/rows/references/rows-api.md +7 -7
- package/skills/server-side/SKILL.md +1 -1
- package/skills/testing/SKILL.md +11 -10
- package/src/tmdatagrid/components/TMDataGrid.module.css +13 -1
- package/src/tmdatagrid/components/TMDataGridCellEditor.tsx +20 -8
- package/src/tmdatagrid/components/TMDataGridColumnsPanel.tsx +29 -18
- package/src/tmdatagrid/components/TMDataGridDetailsColumn.tsx +5 -8
- package/src/tmdatagrid/components/TMDataGridEditActions.tsx +2 -2
- package/src/tmdatagrid/components/TMDataGridEditColumn.tsx +246 -86
- package/src/tmdatagrid/components/TMDataGridEntryRows.tsx +176 -77
- package/src/tmdatagrid/components/TMDataGridHeaderCell.tsx +11 -6
- package/src/tmdatagrid/components/TMDataGridSelectColumn.tsx +9 -5
- package/src/tmdatagrid/components/TMDataGridTable.module.css +47 -3
- package/src/tmdatagrid/components/TMDataGridTable.tsx +101 -40
- package/src/tmdatagrid/components/editors/TMDataGridNumberEditor.tsx +1 -1
- package/src/tmdatagrid/components/icons.ts +1 -0
- package/src/tmdatagrid/core/autosize.ts +30 -6
- package/src/tmdatagrid/core/capabilities.ts +15 -5
- package/src/tmdatagrid/core/cellExport.ts +6 -7
- package/src/tmdatagrid/core/cellNavigation.ts +2 -2
- package/src/tmdatagrid/core/cellRange.ts +6 -6
- package/src/tmdatagrid/core/columnOrdering.ts +30 -1
- package/src/tmdatagrid/core/columnUtils.ts +14 -0
- package/src/tmdatagrid/core/draftCellContext.ts +68 -0
- package/src/tmdatagrid/core/editEngine.ts +111 -37
- package/src/tmdatagrid/core/filterOperators.ts +6 -6
- package/src/tmdatagrid/core/labels.ts +13 -1
- package/src/tmdatagrid/core/labelsSv.ts +4 -0
- package/src/tmdatagrid/core/matchHighlight.ts +3 -3
- package/src/tmdatagrid/core/persistence.ts +3 -3
- package/src/tmdatagrid/core/rowSelection.ts +3 -3
- package/src/tmdatagrid/index.ts +3 -1
- package/src/tmdatagrid/useTMDataGrid.tsx +141 -99
package/dist/index.d.ts
CHANGED
|
@@ -59,9 +59,9 @@ type TMDataGridEditActionsProps = {
|
|
|
59
59
|
renderActions?: (args: TMDataGridEditActionsSlotArgs) => ReactNode;
|
|
60
60
|
};
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
62
|
+
* Draft mode's toolbar chrome: Save with the dirty-row count, and Discard.
|
|
63
63
|
* Both read the edit store, so they grey out while nothing is dirty and the
|
|
64
|
-
* Save spins while a submit is in flight. Works under any `
|
|
64
|
+
* Save spins while a submit is in flight. Works under any `editing.mode` - a
|
|
65
65
|
* cellConfirm grid accumulating drafts can offer the same pair - and renders
|
|
66
66
|
* nothing while editing is off.
|
|
67
67
|
*
|
|
@@ -204,9 +204,9 @@ declare function optionsToComboboxData(options: ReadonlyArray<TMDataGridOption>)
|
|
|
204
204
|
* The value shape stored in `columnFilters` for every TMDataGrid column.
|
|
205
205
|
*
|
|
206
206
|
* TanStack resolves `filterFn` statically per column, so the operator travels
|
|
207
|
-
* inside the filter *value* instead. That keeps the
|
|
208
|
-
* serialisable JSON
|
|
209
|
-
* `
|
|
207
|
+
* inside the filter *value* instead. That keeps the filter model plain,
|
|
208
|
+
* serialisable JSON, so a server-side `manualFiltering` table can forward
|
|
209
|
+
* `columnFilters` to the API unchanged.
|
|
210
210
|
*
|
|
211
211
|
* `value` is a string array under `isAnyOf` / `isNoneOf` (the set the cell is
|
|
212
212
|
* tested against), a `[min, max]` pair under `between` (an empty string means
|
|
@@ -262,7 +262,7 @@ declare function tmDataGridFilterFn<TFeatures extends TableFeatures, TData exten
|
|
|
262
262
|
* How commits happen - one axis, each mode a thin policy over the same
|
|
263
263
|
* engine. See `editMode` on `UseTMDataGridOptions`.
|
|
264
264
|
*/
|
|
265
|
-
type TMDataGridEditMode = "cell" | "cellConfirm" | "row" | "
|
|
265
|
+
type TMDataGridEditMode = "cell" | "cellConfirm" | "row" | "draft";
|
|
266
266
|
/**
|
|
267
267
|
* One editing row's live form. TanStack Form's `FormApi`, not a wrapper: the
|
|
268
268
|
* engine is a form library, and everything mid-edit - values, dirty state,
|
|
@@ -344,6 +344,12 @@ type TMDataGridEditRowProjection = {
|
|
|
344
344
|
/** A row-level error - a pathless `.refine()`, or a rejected commit. */
|
|
345
345
|
hasRowError: boolean;
|
|
346
346
|
isSubmitting: boolean;
|
|
347
|
+
/**
|
|
348
|
+
* The row as drafted - the form's `state.values`. Reference-stable while no
|
|
349
|
+
* value changes, so a cell may subscribe to it and repaint only when its
|
|
350
|
+
* row's draft actually moves.
|
|
351
|
+
*/
|
|
352
|
+
values: TMDataGridRowData;
|
|
347
353
|
};
|
|
348
354
|
/**
|
|
349
355
|
* The grid-facing index of everything mid-edit. A projection synced from the
|
|
@@ -363,15 +369,21 @@ type TMDataGridEditState = {
|
|
|
363
369
|
} | null;
|
|
364
370
|
/**
|
|
365
371
|
* Rows with a live form. In cell mode at most one; in row, cellConfirm and
|
|
366
|
-
*
|
|
372
|
+
* draft, as many as the user opened - which rows are editing.
|
|
367
373
|
*/
|
|
368
374
|
openRowIds: ReadonlyArray<string>;
|
|
369
375
|
rows: Record<string, TMDataGridEditRowProjection>;
|
|
370
|
-
/**
|
|
376
|
+
/**
|
|
377
|
+
* Rows being created, not yet in `data`. `confirmed` is draft mode's
|
|
378
|
+
* "entered, awaiting Save all": the entry row renders as a value row until
|
|
379
|
+
* `begin` re-opens it. Under the immediate modes a confirm commits through
|
|
380
|
+
* `onRowAdd` and the entry is dropped, so there it never turns `true`.
|
|
381
|
+
*/
|
|
371
382
|
newRows: ReadonlyArray<{
|
|
372
383
|
tempId: string;
|
|
384
|
+
confirmed: boolean;
|
|
373
385
|
}>;
|
|
374
|
-
/**
|
|
386
|
+
/** Rows marked deleted under draft mode. */
|
|
375
387
|
deletedRowIds: ReadonlyArray<string>;
|
|
376
388
|
};
|
|
377
389
|
type ErasedRow = Row<TMDataGridFeatures, TMDataGridRowData>;
|
|
@@ -492,24 +504,24 @@ type TMDataGridRowDeleteArgs<TData extends RowData> = {
|
|
|
492
504
|
rowId: string;
|
|
493
505
|
row: Row<TMDataGridFeatures, TData>;
|
|
494
506
|
};
|
|
495
|
-
/** What `submitAll` hands `
|
|
496
|
-
type
|
|
507
|
+
/** What `submitAll` hands `onEditCommitDrafts` - everything pending at once. */
|
|
508
|
+
type TMDataGridEditCommitDraftsArgs<TData extends RowData> = {
|
|
497
509
|
/** Every valid dirty existing row. */
|
|
498
510
|
rows: Array<TMDataGridEditCommitArgs<TData>>;
|
|
499
511
|
/** Every valid new row from the entry block. */
|
|
500
512
|
added: Array<TMDataGridRowAddArgs<TData>>;
|
|
501
|
-
/** Ids marked deleted while the
|
|
513
|
+
/** Ids marked deleted while the drafts accumulated. */
|
|
502
514
|
deleted: Array<string>;
|
|
503
515
|
};
|
|
504
516
|
/**
|
|
505
517
|
* The data path a column edits, or `null` for a column that has none.
|
|
506
518
|
*
|
|
507
519
|
* `accessorKey` is the true path and Form addresses fields by dot-path, so
|
|
508
|
-
* nested rows
|
|
509
|
-
* `values.address.city`. A column built on `accessorFn` has no path and is
|
|
510
|
-
*
|
|
511
|
-
*
|
|
512
|
-
*
|
|
520
|
+
* nested rows need no extra handling: `accessorKey: "address.city"` edits
|
|
521
|
+
* `values.address.city`. A column built on `accessorFn` has no path and is not
|
|
522
|
+
* editable unless `meta.edit.field` names one. TanStack's default column id
|
|
523
|
+
* turns dots into underscores, which is why this starts from `accessorKey` and
|
|
524
|
+
* never from `id`.
|
|
513
525
|
*/
|
|
514
526
|
declare function getEditFieldName(column: {
|
|
515
527
|
columnDef: {
|
|
@@ -567,7 +579,7 @@ type TMDataGridEditApi = {
|
|
|
567
579
|
deactivate: () => void;
|
|
568
580
|
/** Drops every draft. */
|
|
569
581
|
cancelAll: () => void;
|
|
570
|
-
/** Commits every open row -
|
|
582
|
+
/** Commits every open row - draft mode's save. `true` when all landed. */
|
|
571
583
|
submitAll: () => Promise<boolean>;
|
|
572
584
|
/** Writes the type's empty value into a cell and commits it - Delete. */
|
|
573
585
|
clearCell: (rowId: string, columnId: string) => Promise<boolean>;
|
|
@@ -575,12 +587,12 @@ type TMDataGridEditApi = {
|
|
|
575
587
|
* Opens a new entry row (the sticky block under the header) seeded from
|
|
576
588
|
* `newRowDefaults`. Returns its temporary id - a form with no backing row
|
|
577
589
|
* yet. Committing it calls `onRowAdd` (immediate modes) or joins
|
|
578
|
-
* `submitAll`'s `added` (
|
|
590
|
+
* `submitAll`'s `added` (draft).
|
|
579
591
|
*/
|
|
580
592
|
addRow: () => string;
|
|
581
593
|
/**
|
|
582
594
|
* Deletes a row: `onRowDelete` straight away under the immediate modes;
|
|
583
|
-
* under
|
|
595
|
+
* under draft it toggles the id in `deletedRowIds` - the row renders
|
|
584
596
|
* struck through until `submitAll` reports it. On an uncommitted entry
|
|
585
597
|
* row it just discards the entry.
|
|
586
598
|
*/
|
|
@@ -701,8 +713,16 @@ type TMDataGridLabels = {
|
|
|
701
713
|
discardNewRow: string;
|
|
702
714
|
/** The lane's trash can. */
|
|
703
715
|
deleteRow: string;
|
|
704
|
-
/** The lane's undo on a row marked deleted (
|
|
716
|
+
/** The lane's undo on a row marked deleted (draft). */
|
|
705
717
|
restoreRow: string;
|
|
718
|
+
/** The lane's undo on a row with a dirty draft (draft) - drops it. */
|
|
719
|
+
revertRow: string;
|
|
720
|
+
/** The lane's state icon on a confirmed entry row (draft). */
|
|
721
|
+
rowStateNew: string;
|
|
722
|
+
/** The lane's state icon on a row with a dirty draft (draft). */
|
|
723
|
+
rowStateEdited: string;
|
|
724
|
+
/** The lane's state icon on a row marked deleted (draft). */
|
|
725
|
+
rowStateDeleted: string;
|
|
706
726
|
cellCount: (count: number) => string;
|
|
707
727
|
copy: string;
|
|
708
728
|
exportCsv: string;
|
|
@@ -819,11 +839,11 @@ type GridState = TableState<TMDataGridFeatures>;
|
|
|
819
839
|
/**
|
|
820
840
|
* Persistence deliberately does not use Mantine's `useLocalStorage`.
|
|
821
841
|
*
|
|
822
|
-
* That hook
|
|
823
|
-
* table already
|
|
842
|
+
* That hook holds a piece of state and returns `[value, setValue]`. Here the
|
|
843
|
+
* table already holds the state and storage only mirrors it, so routing writes
|
|
824
844
|
* through the hook would keep a second copy and trigger a React state update on
|
|
825
845
|
* every change, including every pointer move during a column resize. Its
|
|
826
|
-
* defaults also
|
|
846
|
+
* defaults also conflict with this use: `getInitialValueInEffect: true` delivers
|
|
827
847
|
* the stored value after mount, while `initialState` is only read on the first
|
|
828
848
|
* render, and `sync: true` would let two open tabs overwrite each other's
|
|
829
849
|
* column layout.
|
|
@@ -983,10 +1003,17 @@ type TMDataGridFeatureFlags = {
|
|
|
983
1003
|
* its own grouping can still say `enableGrouping: true` to override.
|
|
984
1004
|
*/
|
|
985
1005
|
grouping: boolean;
|
|
986
|
-
/** Whether cells can be edited at all - `
|
|
1006
|
+
/** Whether cells can be edited at all - the `editing` option was set. */
|
|
987
1007
|
editing: boolean;
|
|
988
1008
|
/** The commit policy, or `null` while editing is off. */
|
|
989
1009
|
editMode: TMDataGridEditMode | null;
|
|
1010
|
+
/**
|
|
1011
|
+
* Whether a confirmed entry row stays pinned in the sticky entry block
|
|
1012
|
+
* until Save all - `editing.newRowsSticky`, draft mode only. Off by
|
|
1013
|
+
* default: a confirmed row joins the scrolling flow instead, so entering
|
|
1014
|
+
* many rows cannot fill the viewport with sticky chrome.
|
|
1015
|
+
*/
|
|
1016
|
+
editNewRowsSticky: boolean;
|
|
990
1017
|
/** The generated row-number gutter - `enableRowNumbers`. Off by default. */
|
|
991
1018
|
rowNumbers: boolean;
|
|
992
1019
|
/**
|
|
@@ -1003,7 +1030,7 @@ type TMDataGridFeatureFlags = {
|
|
|
1003
1030
|
*/
|
|
1004
1031
|
matchHighlighting: boolean;
|
|
1005
1032
|
};
|
|
1006
|
-
declare function readFeatureFlags<TData extends RowData>(options: Pick<UseTMDataGridOptions<TData>, "enableSorting" | "enableColumnFilters" | "enableGlobalFilter" | "enableHiding" | "enableColumnPinning" | "enableColumnResizing" | "enableColumnOrdering" | "enableRowSelection" | "enableMultiRowSelection" | "selectionMode" | "showSelectedBackground" | "cellSelection" | "enablePagination" | "manualPagination" | "enableGrouping" | "
|
|
1033
|
+
declare function readFeatureFlags<TData extends RowData>(options: Pick<UseTMDataGridOptions<TData>, "enableSorting" | "enableColumnFilters" | "enableGlobalFilter" | "enableHiding" | "enableColumnPinning" | "enableColumnResizing" | "enableColumnOrdering" | "enableRowSelection" | "enableMultiRowSelection" | "selectionMode" | "showSelectedBackground" | "cellSelection" | "enablePagination" | "manualPagination" | "enableGrouping" | "editing" | "enableRowNumbers" | "enableRowPinning" | "enableMatchHighlighting">): TMDataGridFeatureFlags;
|
|
1007
1034
|
/**
|
|
1008
1035
|
* What one column's header may offer.
|
|
1009
1036
|
*
|
|
@@ -1049,8 +1076,8 @@ declare function getGridCapabilities(table: TMDataGridTable<TMDataGridRowData>,
|
|
|
1049
1076
|
* Ids, because every other thing the grid does moves cells around: sorting
|
|
1050
1077
|
* reorders rows, filtering removes them, dragging a header reorders columns. A
|
|
1051
1078
|
* coordinate pair would silently come to mean a different cell after any of
|
|
1052
|
-
* them, while a pair of ids either still resolves or does not resolve at all
|
|
1053
|
-
* and "does not resolve"
|
|
1079
|
+
* them, while a pair of ids either still resolves or does not resolve at all,
|
|
1080
|
+
* and the grid handles "does not resolve" explicitly.
|
|
1054
1081
|
*
|
|
1055
1082
|
* Indices are what navigation is actually computed in, so they are resolved
|
|
1056
1083
|
* from the ids on each keystroke and turned straight back. See resolveCellMove.
|
|
@@ -1129,11 +1156,11 @@ type ResolveRangeBoundsArgs = {
|
|
|
1129
1156
|
* Turns a range into the rectangle to paint and copy, or `null` when either
|
|
1130
1157
|
* corner no longer exists.
|
|
1131
1158
|
*
|
|
1132
|
-
* A corner goes missing whenever a filter drops its row or a column is hidden
|
|
1133
|
-
*
|
|
1134
|
-
*
|
|
1135
|
-
*
|
|
1136
|
-
*
|
|
1159
|
+
* A corner goes missing whenever a filter drops its row or a column is hidden.
|
|
1160
|
+
* There is then no rectangle, rather than a guessed replacement corner that
|
|
1161
|
+
* would copy cells the user never selected. The range itself is left alone:
|
|
1162
|
+
* clearing it here would discard a selection that returns as soon as the filter
|
|
1163
|
+
* is cleared.
|
|
1137
1164
|
*/
|
|
1138
1165
|
declare function resolveRangeBounds({ range, rowIndexOf, columnIndexOf }: ResolveRangeBoundsArgs): TMDataGridRangeBounds | null;
|
|
1139
1166
|
/** Whether a cell is inside the rectangle. */
|
|
@@ -1141,7 +1168,7 @@ declare function isWithinBounds(bounds: TMDataGridRangeBounds | null, rowIndex:
|
|
|
1141
1168
|
/** How many cells the rectangle covers. `0` for no range at all. */
|
|
1142
1169
|
declare function boundsCellCount(bounds: TMDataGridRangeBounds | null): number;
|
|
1143
1170
|
/**
|
|
1144
|
-
* Which edges of the rectangle a cell
|
|
1171
|
+
* Which edges of the rectangle a cell lies on, for the outline.
|
|
1145
1172
|
*
|
|
1146
1173
|
* The border is drawn per cell rather than as one box over the top, because the
|
|
1147
1174
|
* body is a scrolling CSS grid with sticky columns in it: an overlay would have
|
|
@@ -1157,14 +1184,14 @@ declare function boundsEdges(bounds: TMDataGridRangeBounds | null, rowIndex: num
|
|
|
1157
1184
|
//#endregion
|
|
1158
1185
|
//#region .types-tmp/useTMDataGrid.d.ts
|
|
1159
1186
|
/**
|
|
1160
|
-
* Per-column configuration the
|
|
1187
|
+
* Per-column configuration the grid's own components read.
|
|
1161
1188
|
*
|
|
1162
|
-
*
|
|
1189
|
+
* The filter and edit stages each get a namespace, `filter` and `edit`,
|
|
1163
1190
|
* mirroring the feature's runtime API. What the column *is* stays flat:
|
|
1164
1191
|
* `label`, `type`, `options`, `align`, `flex`, `autoSize`, `enableOrdering`.
|
|
1165
|
-
* `type` and `options`
|
|
1166
|
-
*
|
|
1167
|
-
*
|
|
1192
|
+
* `type` and `options` are read by both stages, so one declaration of each
|
|
1193
|
+
* feeds the filter panel and the cell editor, which is why they sit outside
|
|
1194
|
+
* both namespaces.
|
|
1168
1195
|
*/
|
|
1169
1196
|
type TMDataGridColumnMeta = {
|
|
1170
1197
|
/** Name shown in menus and the column manager. Falls back to a string header. */
|
|
@@ -1515,7 +1542,7 @@ type TMDataGridApi<TData extends RowData> = {
|
|
|
1515
1542
|
* The edit engine - open forms, dirty/error projections, and the verbs
|
|
1516
1543
|
* (`begin`, `commit`, `cancel`, `submitAll`). `edit.getForm(rowId)` hands
|
|
1517
1544
|
* out the same TanStack Form the inline editors write through, so a drawer
|
|
1518
|
-
* or detail panel can share a row's draft. Inert until `
|
|
1545
|
+
* or detail panel can share a row's draft. Inert until `editing` is set.
|
|
1519
1546
|
*/
|
|
1520
1547
|
edit: TMDataGridEditApi;
|
|
1521
1548
|
/** Table-level feature switches, re-read from options on every render. */
|
|
@@ -1558,19 +1585,13 @@ type TMDataGridApi<TData extends RowData> = {
|
|
|
1558
1585
|
*/
|
|
1559
1586
|
scrollToRow: (args: TMDataGridScrollToRowArgs) => boolean;
|
|
1560
1587
|
/**
|
|
1561
|
-
* @internal Wiring for `TMDataGrid.Table`, which
|
|
1562
|
-
* fills this in. Not part of the
|
|
1588
|
+
* @internal Wiring for `TMDataGrid.Table`, which holds the virtualizer and
|
|
1589
|
+
* fills this in. Not part of the public API.
|
|
1563
1590
|
*/
|
|
1564
1591
|
scrollerRef: MutableRefObject<TMDataGridScroller>;
|
|
1565
1592
|
};
|
|
1566
|
-
/** The editing
|
|
1593
|
+
/** The editing members every mode shares. See {@link TMDataGridEditingOptions}. */
|
|
1567
1594
|
type TMDataGridEditingCallbacks<TData extends RowData> = {
|
|
1568
|
-
/**
|
|
1569
|
-
* `getRowId` stops being optional once editing is on: the forms are keyed
|
|
1570
|
-
* by row id and live outside the DOM, and the index fallback points at a
|
|
1571
|
-
* different record after any sort.
|
|
1572
|
-
*/
|
|
1573
|
-
getRowId: NonNullable<TableOptions<TMDataGridFeatures, TData>["getRowId"]>;
|
|
1574
1595
|
/**
|
|
1575
1596
|
* Form-level validators for the whole editing row - where cross-field
|
|
1576
1597
|
* rules live. TanStack Form's own vocabulary, Standard Schema included:
|
|
@@ -1596,10 +1617,10 @@ type TMDataGridEditingCallbacks<TData extends RowData> = {
|
|
|
1596
1617
|
* draft visible with a busy marker - and a rejection keeps the form open
|
|
1597
1618
|
* with the error on the row.
|
|
1598
1619
|
*
|
|
1599
|
-
* `changes` is the per-field diff (one entry in cell mode) for
|
|
1600
|
-
*
|
|
1620
|
+
* `changes` is the per-field diff (one entry in cell mode), for a PATCH.
|
|
1621
|
+
* `value` is the entire edited row, for saving a record.
|
|
1601
1622
|
*/
|
|
1602
|
-
|
|
1623
|
+
onCommit?: (args: TMDataGridEditCommitArgs<TData>) => void | Promise<void>;
|
|
1603
1624
|
/**
|
|
1604
1625
|
* Seed values for `edit.addRow()` - the entry row's starting point. A
|
|
1605
1626
|
* function is called per added row (fresh timestamps, empty arrays).
|
|
@@ -1607,34 +1628,37 @@ type TMDataGridEditingCallbacks<TData extends RowData> = {
|
|
|
1607
1628
|
newRowDefaults?: TData | (() => TData);
|
|
1608
1629
|
/**
|
|
1609
1630
|
* Called when an entry row commits: `Enter` or the lane's ✓ under the
|
|
1610
|
-
* immediate modes, `submitAll` under
|
|
1631
|
+
* immediate modes, `submitAll` under draft. Create the record and let it
|
|
1611
1632
|
* arrive back through `data`; the engine's `tempId` never leaves the grid.
|
|
1612
1633
|
*/
|
|
1613
1634
|
onRowAdd?: (args: TMDataGridRowAddArgs<TData>) => void | Promise<void>;
|
|
1614
1635
|
/**
|
|
1615
1636
|
* Called by `edit.deleteRow` under the immediate modes - confirmation, if
|
|
1616
|
-
* any, belongs in here. Under
|
|
1637
|
+
* any, belongs in here. Under draft, deletions accumulate in
|
|
1617
1638
|
* `edit.state.deletedRowIds` instead and are reported by `submitAll`.
|
|
1618
1639
|
* Setting this also puts the trash can in the edit lane.
|
|
1619
1640
|
*/
|
|
1620
1641
|
onRowDelete?: (args: TMDataGridRowDeleteArgs<TData>) => void | Promise<void>;
|
|
1621
1642
|
};
|
|
1622
1643
|
/**
|
|
1623
|
-
* The editing
|
|
1624
|
-
*
|
|
1625
|
-
*
|
|
1626
|
-
* required; and `onEditCommitBatch` exists only under `"batch"` - the one
|
|
1627
|
-
* mode whose `submitAll` calls it.
|
|
1628
|
-
*
|
|
1629
|
-
* `editMode` itself turns cell editing on and picks how commits happen. Off
|
|
1630
|
-
* by default.
|
|
1644
|
+
* The `editing` option: one object that turns editing on and holds
|
|
1645
|
+
* everything about it. `mode` picks what counts as a commit and which
|
|
1646
|
+
* controls trigger it; the other members act within that mode.
|
|
1631
1647
|
*
|
|
1632
1648
|
* | Mode | Commit | Cancel |
|
|
1633
1649
|
* | ---- | ------ | ------ |
|
|
1634
1650
|
* | `"cell"` | Enter, Tab, blur - Sheets | Escape |
|
|
1635
1651
|
* | `"cellConfirm"` | ✓ or Enter only; blur keeps the draft | ✕ or Escape |
|
|
1636
1652
|
* | `"row"` | Save in the edit lane, or Ctrl+Enter | Cancel, or Escape |
|
|
1637
|
-
* | `"
|
|
1653
|
+
* | `"draft"` | `edit.submitAll()` | `edit.cancelAll()` |
|
|
1654
|
+
*
|
|
1655
|
+
* Setting `editing` makes `getRowId` required - drafts are keyed by row id,
|
|
1656
|
+
* and the index fallback would name a different record after any sort - and
|
|
1657
|
+
* `onCommitDrafts` exists only under `mode: "draft"`, the one mode whose
|
|
1658
|
+
* `submitAll` calls it.
|
|
1659
|
+
*
|
|
1660
|
+
* The object may be written inline: the callbacks are read through a ref
|
|
1661
|
+
* every render, so its identity does not matter.
|
|
1638
1662
|
*
|
|
1639
1663
|
* One TanStack Form per editing row; drafts survive scrolling because the
|
|
1640
1664
|
* forms live outside the DOM, keyed by row id. Which columns edit, and with
|
|
@@ -1642,30 +1666,42 @@ type TMDataGridEditingCallbacks<TData extends RowData> = {
|
|
|
1642
1666
|
* built-in editor, and `enabled`, `field`, `editor`, `validate` and `mapValue`
|
|
1643
1667
|
* override the rest.
|
|
1644
1668
|
*/
|
|
1645
|
-
type TMDataGridEditingOptions<TData extends RowData> =
|
|
1646
|
-
|
|
1669
|
+
type TMDataGridEditingOptions<TData extends RowData> = TMDataGridEditingCallbacks<TData> & ({
|
|
1670
|
+
mode: "draft";
|
|
1647
1671
|
/**
|
|
1648
|
-
*
|
|
1672
|
+
* Draft mode's save, called once by `edit.submitAll()` with every
|
|
1649
1673
|
* valid dirty row. Without it, `submitAll` falls back to the per-row
|
|
1650
|
-
* {@link TMDataGridEditingCallbacks.
|
|
1674
|
+
* {@link TMDataGridEditingCallbacks.onCommit} loop. Rows failing
|
|
1651
1675
|
* validation stay open either way; a rejection keeps every draft.
|
|
1652
1676
|
*/
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1677
|
+
onCommitDrafts?: (args: TMDataGridEditCommitDraftsArgs<TData>) => void | Promise<void>;
|
|
1678
|
+
/**
|
|
1679
|
+
* Keep confirmed entry rows pinned in the sticky entry block until
|
|
1680
|
+
* Save all. Off by default: a confirmed row joins the scrolling
|
|
1681
|
+
* flow above the body rows instead - the block a row is *typed*
|
|
1682
|
+
* into is always sticky, but entered rows scroll, so entering many
|
|
1683
|
+
* cannot fill the viewport with sticky chrome.
|
|
1684
|
+
*/
|
|
1685
|
+
newRowsSticky?: boolean;
|
|
1686
|
+
} | {
|
|
1687
|
+
mode: Exclude<TMDataGridEditMode, "draft">;
|
|
1688
|
+
/** Only `"draft"`'s `submitAll` ever calls it - see the other branch. */
|
|
1689
|
+
onCommitDrafts?: never;
|
|
1690
|
+
/** Confirmed entry rows exist only under `"draft"` - see there. */
|
|
1691
|
+
newRowsSticky?: never;
|
|
1692
|
+
});
|
|
1693
|
+
type UseTMDataGridOptions<TData extends RowData> = Omit<TableOptions<TMDataGridFeatures, TData>, "features"> & ({
|
|
1694
|
+
editing?: undefined;
|
|
1695
|
+
} | {
|
|
1696
|
+
/** Turns editing on. See {@link TMDataGridEditingOptions}. */
|
|
1697
|
+
editing: TMDataGridEditingOptions<TData>;
|
|
1698
|
+
/**
|
|
1699
|
+
* Required once `editing` is set: the forms are keyed by row id and
|
|
1700
|
+
* live outside the DOM, and the index fallback points at a different
|
|
1701
|
+
* record after any sort.
|
|
1702
|
+
*/
|
|
1703
|
+
getRowId: NonNullable<TableOptions<TMDataGridFeatures, TData>["getRowId"]>;
|
|
1704
|
+
}) & {
|
|
1669
1705
|
/**
|
|
1670
1706
|
* Restore and persist table state across mounts. Two keys, because the two
|
|
1671
1707
|
* kinds of state have different lifetimes - see {@link TMDataGridPersistence}.
|
|
@@ -1885,9 +1921,9 @@ type UseTMDataGridOptions<TData extends RowData> = Omit<TableOptions<TMDataGridF
|
|
|
1885
1921
|
* Defaults to 160.
|
|
1886
1922
|
*
|
|
1887
1923
|
* An estimate, not a height: every mounted row is measured, so the real one
|
|
1888
|
-
* takes over as soon as the panel is on screen. It keeps the scrollbar
|
|
1889
|
-
* for panels that open off screen
|
|
1890
|
-
*
|
|
1924
|
+
* takes over as soon as the panel is on screen. It keeps the scrollbar
|
|
1925
|
+
* accurate for panels that open off screen, such as restored `expanded`
|
|
1926
|
+
* state. An approximate value is enough.
|
|
1891
1927
|
*/
|
|
1892
1928
|
renderDetailsEstHeight?: number;
|
|
1893
1929
|
/**
|
|
@@ -1911,7 +1947,7 @@ type UseTMDataGridOptions<TData extends RowData> = Omit<TableOptions<TMDataGridF
|
|
|
1911
1947
|
* flag on, so `<TMDataGrid.Footer />` renders its pager without further
|
|
1912
1948
|
* options.
|
|
1913
1949
|
*/
|
|
1914
|
-
declare function useTMDataGrid<TData extends RowData>({ persist, labels: labelsOverride, enableColumnOrdering, enablePagination, enableRowNumbers, selectionMode, showSelectedBackground, defaultHighlightedRowId, onHighlightedRowChange, cellSelection, onFocusedCellChange,
|
|
1950
|
+
declare function useTMDataGrid<TData extends RowData>({ persist, labels: labelsOverride, enableColumnOrdering, enablePagination, enableRowNumbers, selectionMode, showSelectedBackground, defaultHighlightedRowId, onHighlightedRowChange, cellSelection, onFocusedCellChange, editing, renderDetails, renderDetailsEstHeight, overscan, ...options }: UseTMDataGridOptions<TData>): TMDataGridApi<TData>;
|
|
1915
1951
|
/**
|
|
1916
1952
|
* Opens the filter panel for a column, seeding an empty filter row when the
|
|
1917
1953
|
* column has none yet - mirrors "Filter" in the column header menu.
|
|
@@ -2213,9 +2249,9 @@ declare function toClipboardText(matrix: TMDataGridCellMatrix): string;
|
|
|
2213
2249
|
* | UTF-8 BOM | without it Excel reads the file as ANSI, and å ä ö arrive broken |
|
|
2214
2250
|
* | CRLF line endings | what Excel writes, and what its importer is happiest with |
|
|
2215
2251
|
*
|
|
2216
|
-
* The `sep=` line is Excel's alone; other readers show it as a first row.
|
|
2217
|
-
*
|
|
2218
|
-
*
|
|
2252
|
+
* The `sep=` line is Excel's alone; other readers show it as a first row. This
|
|
2253
|
+
* export targets Excel, so opening correctly there takes priority over strict
|
|
2254
|
+
* CSV.
|
|
2219
2255
|
*/
|
|
2220
2256
|
declare function toExcelCsv(matrix: TMDataGridCellMatrix, { separator }: {
|
|
2221
2257
|
separator: string;
|
|
@@ -2226,7 +2262,7 @@ declare function toExcelCsv(matrix: TMDataGridCellMatrix, { separator }: {
|
|
|
2226
2262
|
* The async clipboard API only resolves for a document that has the focus and a
|
|
2227
2263
|
* user gesture behind it - both true when this runs off Ctrl+C or a menu item.
|
|
2228
2264
|
* It is still allowed to reject (a permissions policy, a page that lost focus
|
|
2229
|
-
* mid-copy), so the result is a boolean
|
|
2265
|
+
* mid-copy), so the result is a boolean the caller can act on.
|
|
2230
2266
|
*/
|
|
2231
2267
|
declare function writeClipboardText(text: string): Promise<boolean>;
|
|
2232
2268
|
/**
|
|
@@ -2473,9 +2509,9 @@ type TMDataGridTableProps<TData extends RowData> = {
|
|
|
2473
2509
|
*/
|
|
2474
2510
|
reachEndThreshold?: number;
|
|
2475
2511
|
/**
|
|
2476
|
-
* Accessible name for the grid
|
|
2477
|
-
*
|
|
2478
|
-
*
|
|
2512
|
+
* Accessible name for the grid: what a screen reader announces on entry, and
|
|
2513
|
+
* what `getByRole("grid", { name })` matches. Set it on any page holding more
|
|
2514
|
+
* than one grid; without it they are all announced as "grid".
|
|
2479
2515
|
*/
|
|
2480
2516
|
"aria-label"?: string;
|
|
2481
2517
|
/** As {@link "aria-label"}, pointing at an element that already names it. */
|
|
@@ -2483,9 +2519,9 @@ type TMDataGridTableProps<TData extends RowData> = {
|
|
|
2483
2519
|
};
|
|
2484
2520
|
/**
|
|
2485
2521
|
* The scrollable grid surface. Always virtualized: only the rows inside the
|
|
2486
|
-
* viewport (plus overscan) are mounted
|
|
2487
|
-
* no-pagination mode
|
|
2488
|
-
* `enablePagination
|
|
2522
|
+
* viewport (plus overscan) are mounted, which is what makes the default
|
|
2523
|
+
* no-pagination mode work at any row count. Pagination is opt in through
|
|
2524
|
+
* `enablePagination`, or implied by `manualPagination`.
|
|
2489
2525
|
*/
|
|
2490
2526
|
declare function TMDataGridTable$1<TData extends RowData = TMDataGridRowData>({ onRowClick, onCellClick, onCellDoubleClick, onCellContextMenu, rowClassName, rowStyle, striped, onScrollToTop, onScrollToBottom, onScrollToLeft, onScrollToRight, renderEmptyState, renderRowContextMenu, renderColumnMenuItems, rowContextMenuProps, cellExport, onReachEnd, reachEndThreshold, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy }: TMDataGridTableProps<TData>): import("react").JSX.Element;
|
|
2491
2527
|
//#endregion
|
|
@@ -2775,6 +2811,16 @@ declare function isColumnEditableForRow(column: ColumnLike, row: Row<TMDataGridF
|
|
|
2775
2811
|
* chevron, and wants the padding.
|
|
2776
2812
|
*/
|
|
2777
2813
|
declare function isControlColumn(columnId: string): boolean;
|
|
2814
|
+
/**
|
|
2815
|
+
* Whether the grid generated this column rather than the consumer declaring it
|
|
2816
|
+
* - the four control lanes plus the tree column.
|
|
2817
|
+
*
|
|
2818
|
+
* These hold the grid's own chrome, and they keep the edges of the row: the
|
|
2819
|
+
* generated left lanes before every consumer column, the edit lane after all of
|
|
2820
|
+
* them. `isControlColumn` answers a narrower question about layout, and leaves
|
|
2821
|
+
* the tree column out because it is padded like a data column.
|
|
2822
|
+
*/
|
|
2823
|
+
declare function isGeneratedColumn(columnId: string): boolean;
|
|
2778
2824
|
/**
|
|
2779
2825
|
* Whether a column may be moved. Ordering is the one column feature TanStack
|
|
2780
2826
|
* has no column option for, so the switch lives in `meta.enableOrdering`.
|
|
@@ -2829,7 +2875,9 @@ declare function aggregateColumn<TData extends RowData>({ table, columnId, fn }:
|
|
|
2829
2875
|
*
|
|
2830
2876
|
* Mounted cells only: under virtualization the unmounted rows do not exist to
|
|
2831
2877
|
* be measured, so this reads the visible window plus overscan - the same
|
|
2832
|
-
* trade AG Grid's autosize makes by default.
|
|
2878
|
+
* trade AG Grid's autosize makes by default. With no rows mounted at all the
|
|
2879
|
+
* header is the only thing left to measure, which is a width that fits the
|
|
2880
|
+
* title and nothing else - see `hasMountedCells`.
|
|
2833
2881
|
*/
|
|
2834
2882
|
declare function measureColumnContentWidth({ container, columnId }: {
|
|
2835
2883
|
/** The grid's scroll container - anything enclosing the column's cells. */
|
|
@@ -2928,6 +2976,20 @@ type MoveColumnArgs = {
|
|
|
2928
2976
|
* updates that array as well.
|
|
2929
2977
|
*/
|
|
2930
2978
|
declare function moveColumn({ table, columnId, targetId, side }: MoveColumnArgs): void;
|
|
2979
|
+
/**
|
|
2980
|
+
* Puts the generated lanes back on the outside of both pinned lanes: the ones
|
|
2981
|
+
* on the left before every consumer column, the edit lane after all of them.
|
|
2982
|
+
*
|
|
2983
|
+
* `column.pin("right")` appends, so pinning a column right would otherwise drop
|
|
2984
|
+
* it outside the edit lane, so the row's Save and Delete would no longer be
|
|
2985
|
+
* last in the row. Pinning left appends too, which is already correct there,
|
|
2986
|
+
* but the same pass keeps both lanes in place whatever a consumer writes into
|
|
2987
|
+
* `columnPinning` directly.
|
|
2988
|
+
*
|
|
2989
|
+
* Relative order is preserved inside each part, so a user's own arrangement of
|
|
2990
|
+
* the pinned columns survives.
|
|
2991
|
+
*/
|
|
2992
|
+
declare function keepGeneratedColumnsOutermost(pinning: ColumnPinningState): ColumnPinningState;
|
|
2931
2993
|
type ColumnStepArgs = {
|
|
2932
2994
|
table: GridTable;
|
|
2933
2995
|
columnId: string;
|
|
@@ -2998,9 +3060,9 @@ type ResolveRowSelectionClickArgs<TData extends RowData> = {
|
|
|
2998
3060
|
/**
|
|
2999
3061
|
* Whether this gesture is allowed to clear rows it did not touch.
|
|
3000
3062
|
*
|
|
3001
|
-
* `true` for a bare row click,
|
|
3002
|
-
*
|
|
3003
|
-
*
|
|
3063
|
+
* `true` for a bare row click, which replaces the selection. `false` for a
|
|
3064
|
+
* checkbox, which is only ever additive: ticking one box does not clear the
|
|
3065
|
+
* others, and shift-clicking one adds the range rather than replacing it.
|
|
3004
3066
|
*/
|
|
3005
3067
|
canReplaceSelection: boolean;
|
|
3006
3068
|
};
|
|
@@ -3044,4 +3106,4 @@ declare function getSelectableRowIds<TData extends RowData>(row: Row<TMDataGridF
|
|
|
3044
3106
|
*/
|
|
3045
3107
|
declare function resolveRowSelectionClick<TData extends RowData>({ rows, rowId, anchorRowId, modifiers, selection, canReplaceSelection }: ResolveRowSelectionClickArgs<TData>): ResolvedRowSelection;
|
|
3046
3108
|
//#endregion
|
|
3047
|
-
export { type BuildCellMatrixArgs, type ColumnStepArgs, DATA_STATE_SLICES, DEFAULT_CELL_EXPORT_OPTIONS, DEFAULT_TMDATAGRID_SIZE, DETAILS_COLUMN_ID, DgAutocompleteFilter, DgDateRangeFilter, DgRangeSliderFilter, DgTriStateFilter, EDIT_COLUMN_ID, FILTER_OPERATOR_LABELS, GROUP_COLUMN_ID, type MoveColumnArgs, PERSIST_PAYLOAD_VERSION, ROW_NUMBER_COLUMN_ID, type ResolveCellMoveArgs, type ResolveRangeBoundsArgs, type ResolveRowSelectionClickArgs, type ResolvedRowSelection, SELECT_COLUMN_ID, SETTINGS_STATE_SLICES, SIZE_CONTROL_SIZE, SIZE_ROW_HEIGHT, TMDATAGRID_LABELS_EN, TMDATAGRID_LABELS_SV, TMDataGrid, type TMDataGridAggregationName, type TMDataGridApi, TMDataGridBooleanEditor, type TMDataGridCapabilities, type TMDataGridCellCoords, type TMDataGridCellEventArgs, type TMDataGridCellExportOptions, type TMDataGridCellMatrix, type TMDataGridCellNav, type TMDataGridCellPosition, type TMDataGridCellRange, type TMDataGridCellSelectionMode, type TMDataGridColumnCapabilities, type TMDataGridColumnEditOptions, type TMDataGridColumnFilterOptions, type TMDataGridColumnLayout, type TMDataGridColumnMenuItemsArgs, type TMDataGridColumnMenuItemsRenderer, type TMDataGridColumnMeta, type TMDataGridColumnRegion, type TMDataGridColumnType, type TMDataGridContextValue, type TMDataGridDataSlice, TMDataGridDateEditor, type TMDataGridDetailsArgs, type TMDataGridDetailsRenderer, type TMDataGridDropSide, TMDataGridEditActions, type TMDataGridEditActionsActions, type TMDataGridEditActionsControls, type TMDataGridEditActionsProps, type TMDataGridEditActionsSlotArgs, type TMDataGridEditActionsState, type TMDataGridEditApi, type TMDataGridEditChange, type TMDataGridEditCommitArgs, type
|
|
3109
|
+
export { type BuildCellMatrixArgs, type ColumnStepArgs, DATA_STATE_SLICES, DEFAULT_CELL_EXPORT_OPTIONS, DEFAULT_TMDATAGRID_SIZE, DETAILS_COLUMN_ID, DgAutocompleteFilter, DgDateRangeFilter, DgRangeSliderFilter, DgTriStateFilter, EDIT_COLUMN_ID, FILTER_OPERATOR_LABELS, GROUP_COLUMN_ID, type MoveColumnArgs, PERSIST_PAYLOAD_VERSION, ROW_NUMBER_COLUMN_ID, type ResolveCellMoveArgs, type ResolveRangeBoundsArgs, type ResolveRowSelectionClickArgs, type ResolvedRowSelection, SELECT_COLUMN_ID, SETTINGS_STATE_SLICES, SIZE_CONTROL_SIZE, SIZE_ROW_HEIGHT, TMDATAGRID_LABELS_EN, TMDATAGRID_LABELS_SV, TMDataGrid, type TMDataGridAggregationName, type TMDataGridApi, TMDataGridBooleanEditor, type TMDataGridCapabilities, type TMDataGridCellCoords, type TMDataGridCellEventArgs, type TMDataGridCellExportOptions, type TMDataGridCellMatrix, type TMDataGridCellNav, type TMDataGridCellPosition, type TMDataGridCellRange, type TMDataGridCellSelectionMode, type TMDataGridColumnCapabilities, type TMDataGridColumnEditOptions, type TMDataGridColumnFilterOptions, type TMDataGridColumnLayout, type TMDataGridColumnMenuItemsArgs, type TMDataGridColumnMenuItemsRenderer, type TMDataGridColumnMeta, type TMDataGridColumnRegion, type TMDataGridColumnType, type TMDataGridContextValue, type TMDataGridDataSlice, TMDataGridDateEditor, type TMDataGridDetailsArgs, type TMDataGridDetailsRenderer, type TMDataGridDropSide, TMDataGridEditActions, type TMDataGridEditActionsActions, type TMDataGridEditActionsControls, type TMDataGridEditActionsProps, type TMDataGridEditActionsSlotArgs, type TMDataGridEditActionsState, type TMDataGridEditApi, type TMDataGridEditChange, type TMDataGridEditCommitArgs, type TMDataGridEditCommitDraftsArgs, type TMDataGridEditField, type TMDataGridEditMode, type TMDataGridEditRowProjection, type TMDataGridEditState, type TMDataGridEditValueMap, type TMDataGridEditValueMapArgs, type TMDataGridEditingOptions, type TMDataGridEditorArgs, type TMDataGridEditorComponent, type TMDataGridExpandAllArgs, type TMDataGridExpandTarget, type TMDataGridFeatureFlags, type TMDataGridFeatures, type TMDataGridFieldValidate, type TMDataGridFilterControlArgs, type TMDataGridFilterControlComponent, type TMDataGridFilterOperator, TMDataGridFilterPills, type TMDataGridFilterPillsProps, type TMDataGridFilterValue, TMDataGridFilterValueInput, type TMDataGridFooterProps, type TMDataGridLabels, type TMDataGridLabelsOverride, TMDataGridMultiSelectEditor, TMDataGridNumberEditor, type TMDataGridOption, type TMDataGridOptionsArgs, type TMDataGridOptionsSource, type TMDataGridPaginationActions, type TMDataGridPaginationApi, type TMDataGridPaginationControls, type TMDataGridPaginationSlotArgs, type TMDataGridPaginationState, type TMDataGridPersistKey, type TMDataGridPersistence, type TMDataGridProps, type TMDataGridQuickSearchMode, type TMDataGridRangeBounds, type TMDataGridRowAddArgs, type TMDataGridRowClickModifiers, type TMDataGridRowContextMenuArgs, type TMDataGridRowContextMenuRenderer, type TMDataGridRowData, type TMDataGridRowDeleteArgs, type TMDataGridRowEditForm, type TMDataGridRowStyle, type TMDataGridRowValidators, type TMDataGridScrollAlign, type TMDataGridScrollToRowArgs, TMDataGridSearch, type TMDataGridSearchProps, TMDataGridSelectEditor, type TMDataGridSelectionMode, type TMDataGridSettingsSlice, type TMDataGridSize, type TMDataGridStorageMode, TMDataGridStringEditor, type TMDataGridTable, type TMDataGridTableMeta, type TMDataGridTableProps, type TMDataGridUiActions, type TMDataGridUiState, type TMDataGridUiStore, type UseTMDataGridOptions, aggregateColumn, areAllRowsExpanded, autosizeColumn, boundsCellCount, boundsEdges, buildCellMatrix, buildGridCellMatrix, clearedValueForType, createTMDataGridColumnHelper, downloadTextFile, emptyValueForOperator, exportGridToCsv, formatExportValue, formatFilterLabel, formatGroupValue, fuzzyGlobalFilterFn, getColumnCapabilities, getColumnDefaultOperator, getColumnFilterControl, getColumnLabel, getColumnRegion, getColumnType, getDefaultOperator, getDisplayedRows, getEditFieldName, getGridCapabilities, getGroupDataRows, getOperatorsForType, getSelectableRowIds, getStepTargetColumn, getTMDataGridPaginationApi, isColumnEditableForRow, isColumnReorderable, isControlColumn, isFilterActive, isGeneratedColumn, isPagingActive, isSameCell, isWithinBounds, keepGeneratedColumnsOutermost, measureColumnContentWidth, mergeLabels, moveColumn, moveColumnByStep, normalizeFieldValidate, openColumnFilter, operatorNeedsValue, operatorTakesArrayValue, operatorTakesRangeValue, optionsToComboboxData, readFeatureFlags, resolveCellMove, resolveColumnOptions, resolveExpandAll, resolveRangeBounds, resolveRowSelectionClick, tmDataGridFeatures, toClipboardText, toExcelCsv, useCellControlTabIndex, useTMDataGrid, useTMDataGridContext, writeClipboardText };
|