@jielga/tmdatagrid 2.0.0-beta.4 → 2.0.0-beta.7
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/index.d.ts +339 -152
- package/dist/index.js +2602 -2450
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/skills/appearance/SKILL.md +1 -1
- package/skills/cell-selection/SKILL.md +1 -1
- package/skills/columns/SKILL.md +44 -2
- package/skills/data/SKILL.md +14 -10
- package/skills/editing/SKILL.md +140 -68
- package/skills/editing/references/common-mistakes.md +98 -8
- package/skills/editing/references/editing-api.md +40 -30
- package/skills/editing/references/editors-and-validation.md +65 -14
- package/skills/filtering/SKILL.md +1 -1
- package/skills/getting-started/SKILL.md +3 -3
- package/skills/grouping/SKILL.md +5 -3
- package/skills/options/SKILL.md +2 -2
- package/skills/rows/SKILL.md +7 -3
- package/skills/server-side/SKILL.md +1 -1
- package/skills/testing/SKILL.md +1 -1
- package/src/tmdatagrid/components/TMDataGrid.tsx +2 -2
- package/src/tmdatagrid/components/TMDataGridCellEditor.tsx +33 -34
- package/src/tmdatagrid/components/TMDataGridDraftActions.tsx +296 -0
- package/src/tmdatagrid/components/TMDataGridEditColumn.tsx +40 -33
- package/src/tmdatagrid/components/TMDataGridEntryRows.tsx +7 -7
- package/src/tmdatagrid/components/TMDataGridTable.tsx +27 -5
- package/src/tmdatagrid/components/TMDataGridToolbar.module.css +4 -0
- package/src/tmdatagrid/components/TMDataGridToolbar.tsx +8 -10
- package/src/tmdatagrid/components/editors/TMDataGridNumberEditor.tsx +34 -4
- package/src/tmdatagrid/components/editors/editorShared.ts +1 -29
- package/src/tmdatagrid/core/capabilities.ts +14 -6
- package/src/tmdatagrid/core/editEngine.ts +472 -96
- package/src/tmdatagrid/core/labels.ts +3 -3
- package/src/tmdatagrid/core/summary.ts +10 -2
- package/src/tmdatagrid/index.ts +9 -7
- package/src/tmdatagrid/useTMDataGrid.tsx +107 -47
- package/src/tmdatagrid/components/TMDataGridEditActions.tsx +0 -233
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Cell, Column, ColumnPinningState, ExpandedState, Header, Row, RowData, RowSelectionState, Table, TableFeatures, TableOptions, TableState, aggregationFns } from "@tanstack/react-table";
|
|
2
2
|
import { CSSProperties, ComponentType, MouseEvent, MutableRefObject, ReactNode } from "react";
|
|
3
|
-
import { MantineSize, MenuProps } from "@mantine/core";
|
|
4
3
|
import { Store } from "@tanstack/store";
|
|
4
|
+
import { MantineSize, MenuProps } from "@mantine/core";
|
|
5
5
|
import { AnyFieldApi, AnyFormApi, StandardSchemaV1 } from "@tanstack/react-form";
|
|
6
6
|
import { RankingInfo } from "@tanstack/match-sorter-utils";
|
|
7
7
|
//#region .types-tmp/components/TMDataGridColumnsPanel.d.ts
|
|
@@ -12,96 +12,6 @@ import { RankingInfo } from "@tanstack/match-sorter-utils";
|
|
|
12
12
|
*/
|
|
13
13
|
declare function TMDataGridColumnsPanel(): import("react").JSX.Element;
|
|
14
14
|
//#endregion
|
|
15
|
-
//#region .types-tmp/components/TMDataGridEditActions.d.ts
|
|
16
|
-
/** What the edit chrome is showing. */
|
|
17
|
-
type TMDataGridEditActionsState = {
|
|
18
|
-
/**
|
|
19
|
-
* Rows in the draft store, which is what Save sends: committed edits,
|
|
20
|
-
* committed entry rows and deletion marks.
|
|
21
|
-
*/
|
|
22
|
-
draftCount: number;
|
|
23
|
-
/**
|
|
24
|
-
* Rows still open - edited or entered but not committed, so not part of
|
|
25
|
-
* the save. They stay open across a save.
|
|
26
|
-
*/
|
|
27
|
-
openCount: number;
|
|
28
|
-
/**
|
|
29
|
-
* @deprecated Was "everything uncommitted", which Save no longer sends.
|
|
30
|
-
* Reads as `draftCount + openCount`; use whichever you meant.
|
|
31
|
-
*/
|
|
32
|
-
pendingCount: number;
|
|
33
|
-
/** Whether a submit is in flight. */
|
|
34
|
-
isSubmitting: boolean;
|
|
35
|
-
};
|
|
36
|
-
/** What the edit chrome can do. */
|
|
37
|
-
type TMDataGridEditActionsActions = {
|
|
38
|
-
/** Saves the draft store. Open rows are left alone. */
|
|
39
|
-
save: () => Promise<boolean>;
|
|
40
|
-
/** Submits every open row, committing the ones that validate. */
|
|
41
|
-
commitAll: () => Promise<boolean>;
|
|
42
|
-
/** Drops everything - open form state and the draft store alike. */
|
|
43
|
-
discard: () => void;
|
|
44
|
-
};
|
|
45
|
-
/** The pre-bound pieces of the built-in edit chrome. */
|
|
46
|
-
type TMDataGridEditActionsControls = {
|
|
47
|
-
/** Save, with the draft count, disabled while the draft store is empty. */
|
|
48
|
-
Save: () => ReactNode;
|
|
49
|
-
/** Discard, disabled while nothing is pending. */
|
|
50
|
-
Discard: () => ReactNode;
|
|
51
|
-
/** The "N rows still being edited" note, or nothing while there are none. */
|
|
52
|
-
OpenRowsNote: () => ReactNode;
|
|
53
|
-
};
|
|
54
|
-
/** What {@link TMDataGridEditActionsProps.renderActions} is handed. */
|
|
55
|
-
type TMDataGridEditActionsSlotArgs = {
|
|
56
|
-
state: TMDataGridEditActionsState;
|
|
57
|
-
actions: TMDataGridEditActionsActions;
|
|
58
|
-
Controls: TMDataGridEditActionsControls;
|
|
59
|
-
};
|
|
60
|
-
type TMDataGridEditActionsProps = {
|
|
61
|
-
/**
|
|
62
|
-
* Replaces the built-in Save/Discard pair, and is handed the pieces of it.
|
|
63
|
-
*
|
|
64
|
-
* ```tsx
|
|
65
|
-
* <TMDataGrid.EditActions
|
|
66
|
-
* renderActions={({ state, Controls }) => (
|
|
67
|
-
* <Group>
|
|
68
|
-
* {state.draftCount > 0 && <Badge>{state.draftCount}</Badge>}
|
|
69
|
-
* <Controls.OpenRowsNote />
|
|
70
|
-
* <Controls.Save />
|
|
71
|
-
* <Controls.Discard />
|
|
72
|
-
* </Group>
|
|
73
|
-
* )}
|
|
74
|
-
* />
|
|
75
|
-
* ```
|
|
76
|
-
*/
|
|
77
|
-
renderActions?: (args: TMDataGridEditActionsSlotArgs) => ReactNode;
|
|
78
|
-
};
|
|
79
|
-
/**
|
|
80
|
-
* Draft mode's toolbar chrome: Save with the draft-store count, Discard, and
|
|
81
|
-
* a note counting rows still open. Save sends the draft store and leaves open
|
|
82
|
-
* rows alone, so it greys out while nothing is committed however much is
|
|
83
|
-
* being typed - the note is what makes those rows visible. Works under any
|
|
84
|
-
* `editing.mode` and renders nothing while editing is off.
|
|
85
|
-
*
|
|
86
|
-
* ```tsx
|
|
87
|
-
* <TMDataGrid.Toolbar>
|
|
88
|
-
* <TMDataGrid.SummaryCount />
|
|
89
|
-
* <TMDataGrid.Spacer />
|
|
90
|
-
* <TMDataGrid.EditActions />
|
|
91
|
-
* </TMDataGrid.Toolbar>
|
|
92
|
-
* ```
|
|
93
|
-
*/
|
|
94
|
-
declare function TMDataGridEditActions({ renderActions }?: TMDataGridEditActionsProps): string | number | bigint | boolean | import("react").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | null | undefined;
|
|
95
|
-
//#endregion
|
|
96
|
-
//#region .types-tmp/components/TMDataGridFilterPanel.d.ts
|
|
97
|
-
/**
|
|
98
|
-
* The MUI-style filter surface: one row per active column filter, each row a
|
|
99
|
-
* column / operator / value triple. It only ever reads and writes the table's
|
|
100
|
-
* `columnFilters` state, so a `manualFiltering` grid gets the same panel for
|
|
101
|
-
* free - the state is forwarded to the server instead of a row model.
|
|
102
|
-
*/
|
|
103
|
-
declare function TMDataGridFilterPanel(): import("react").JSX.Element | null;
|
|
104
|
-
//#endregion
|
|
105
15
|
//#region .types-tmp/core/sizes.d.ts
|
|
106
16
|
type TMDataGridSize = MantineSize;
|
|
107
17
|
declare const DEFAULT_TMDATAGRID_SIZE: TMDataGridSize;
|
|
@@ -277,10 +187,21 @@ declare function tmDataGridFilterFn<TFeatures extends TableFeatures, TData exten
|
|
|
277
187
|
//#endregion
|
|
278
188
|
//#region .types-tmp/core/editEngine.d.ts
|
|
279
189
|
/**
|
|
280
|
-
*
|
|
281
|
-
* engine.
|
|
190
|
+
* What counts as a commit - one axis, each mode a thin policy over the same
|
|
191
|
+
* engine. Where a commit *goes* is the other axis, `editing.draft`: out to
|
|
192
|
+
* the consumer, or into the draft store. See `editing` on
|
|
193
|
+
* `UseTMDataGridOptions`.
|
|
194
|
+
*
|
|
195
|
+
* | Mode | Enter | Tab | Focus leaves | Escape |
|
|
196
|
+
* | ---- | ----- | --- | ------------ | ------ |
|
|
197
|
+
* | `"cell"` | commits | commits, caret moves on | commits | cancels |
|
|
198
|
+
* | `"cellConfirm"` | commits | keeps the draft, caret moves on | keeps the draft | cancels |
|
|
199
|
+
* | `"row"` | commits the row | the browser's, along the row | nothing | cancels the row |
|
|
200
|
+
*
|
|
201
|
+
* An entry row is row-shaped in every mode - every editable cell open at
|
|
202
|
+
* once, the browser's Tab between them, and an explicit ✓.
|
|
282
203
|
*/
|
|
283
|
-
type TMDataGridEditMode = "cell" | "cellConfirm" | "row"
|
|
204
|
+
type TMDataGridEditMode = "cell" | "cellConfirm" | "row";
|
|
284
205
|
/**
|
|
285
206
|
* One editing row's live form. TanStack Form's `FormApi`, not a wrapper: the
|
|
286
207
|
* engine is a form library, and everything mid-edit - values, dirty state,
|
|
@@ -333,6 +254,40 @@ type TMDataGridRowValidators = {
|
|
|
333
254
|
onSubmitAsync?: TMDataGridValidator;
|
|
334
255
|
onSubmitAsyncDebounceMs?: number;
|
|
335
256
|
};
|
|
257
|
+
/** What `editing.tableValidators` is handed for one commit. */
|
|
258
|
+
type TMDataGridTableValidateArgs<TData extends RowData = TMDataGridRowData> = {
|
|
259
|
+
/** The committing row, as drafted. */
|
|
260
|
+
value: TData;
|
|
261
|
+
/** Its id - `addRow`'s temp id for an entry row. */
|
|
262
|
+
rowId: string;
|
|
263
|
+
/** Whether the row is an entry row, not yet in `data`. */
|
|
264
|
+
isNew: boolean;
|
|
265
|
+
/**
|
|
266
|
+
* The collection as it would stand if this commit landed: every data row
|
|
267
|
+
* overlaid with its draft where one is held (this row's `value` included),
|
|
268
|
+
* entry rows appended, deletion-marked rows removed. Unfiltered - a rule
|
|
269
|
+
* sees the whole collection whatever the view shows.
|
|
270
|
+
*/
|
|
271
|
+
rows: ReadonlyArray<{
|
|
272
|
+
rowId: string;
|
|
273
|
+
value: TData;
|
|
274
|
+
}>;
|
|
275
|
+
};
|
|
276
|
+
/**
|
|
277
|
+
* `editing.tableValidators` - rules that need the other rows: no duplicate
|
|
278
|
+
* keys, no overlapping ranges, allocations summing to a total. Run at every
|
|
279
|
+
* commit, after the row's own validators, and again per parked row during
|
|
280
|
+
* `saveDrafts` - so a draft invalidated by a later edit blocks the save.
|
|
281
|
+
*
|
|
282
|
+
* Return nothing to pass, a message, or Form's `{ form, fields }` shape;
|
|
283
|
+
* pathed issues land on the committing row's cells, pathless ones on the row.
|
|
284
|
+
* `onSubmit` runs first, and its failure stands without `onSubmitAsync`
|
|
285
|
+
* running.
|
|
286
|
+
*/
|
|
287
|
+
type TMDataGridTableValidators<TData extends RowData = TMDataGridRowData> = {
|
|
288
|
+
onSubmit?: (args: TMDataGridTableValidateArgs<TData>) => unknown;
|
|
289
|
+
onSubmitAsync?: (args: TMDataGridTableValidateArgs<TData>) => unknown | Promise<unknown>;
|
|
290
|
+
};
|
|
336
291
|
/** One field's before/after across a commit. */
|
|
337
292
|
type TMDataGridEditChange = {
|
|
338
293
|
/** Column the field maps back to, for consumers thinking in columns. */
|
|
@@ -357,8 +312,20 @@ type TMDataGridEditCommitArgs<TData extends RowData> = {
|
|
|
357
312
|
type TMDataGridEditRowProjection = {
|
|
358
313
|
/** Field names whose value differs from the original. */
|
|
359
314
|
dirtyFields: ReadonlyArray<string>;
|
|
360
|
-
/** Field names carrying a validation error. */
|
|
315
|
+
/** Field names carrying a validation error, live or from a failed commit. */
|
|
361
316
|
errorFields: ReadonlyArray<string>;
|
|
317
|
+
/**
|
|
318
|
+
* Those errors as text: what each cell editor is showing, plus what the
|
|
319
|
+
* row's last failed commit found. The second half is the reason this
|
|
320
|
+
* exists - Form clears a field's errors when its editor unmounts, so a row
|
|
321
|
+
* left invalid would go back to looking like an ordinary edited row. Such
|
|
322
|
+
* a message is dropped as soon as its field's value moves: the fix is what
|
|
323
|
+
* clears the mark.
|
|
324
|
+
*/
|
|
325
|
+
errorMessages: ReadonlyArray<{
|
|
326
|
+
field: string;
|
|
327
|
+
message: string;
|
|
328
|
+
}>;
|
|
362
329
|
/** A row-level error - a pathless `.refine()`, or a rejected commit. */
|
|
363
330
|
hasRowError: boolean;
|
|
364
331
|
isSubmitting: boolean;
|
|
@@ -398,22 +365,21 @@ type TMDataGridEditState = {
|
|
|
398
365
|
* values stay in the row's form, this records which side of the line the
|
|
399
366
|
* row is on. `begin` on one of these takes it back out, into form state.
|
|
400
367
|
*
|
|
401
|
-
* Only draft
|
|
402
|
-
* consumer and
|
|
368
|
+
* Only `editing.draft` parks. Without it a commit goes straight to the
|
|
369
|
+
* consumer and the form is dropped, so this stays empty.
|
|
403
370
|
*/
|
|
404
371
|
committedRowIds: ReadonlyArray<string>;
|
|
405
372
|
/**
|
|
406
373
|
* Rows being created, not yet in `data`. `committed` is the draft store's
|
|
407
374
|
* add slice: the entry row passed its submit and renders as a value row
|
|
408
|
-
* until `begin` re-opens it.
|
|
409
|
-
*
|
|
410
|
-
* `true`.
|
|
375
|
+
* until `begin` re-opens it. Without `editing.draft` a commit adds through
|
|
376
|
+
* `onRowAdd` and the entry is dropped, so it never turns `true`.
|
|
411
377
|
*/
|
|
412
378
|
newRows: ReadonlyArray<{
|
|
413
379
|
tempId: string;
|
|
414
380
|
committed: boolean;
|
|
415
381
|
}>;
|
|
416
|
-
/** The draft store's delete slice: rows marked deleted
|
|
382
|
+
/** The draft store's delete slice: rows marked deleted, awaiting the save. */
|
|
417
383
|
deletedRowIds: ReadonlyArray<string>;
|
|
418
384
|
};
|
|
419
385
|
type ErasedRow = Row<TMDataGridFeatures, TMDataGridRowData>;
|
|
@@ -523,7 +489,7 @@ type TMDataGridColumnEditOptions = {
|
|
|
523
489
|
*/
|
|
524
490
|
mapValue?: TMDataGridEditValueMap;
|
|
525
491
|
};
|
|
526
|
-
/** A new row being committed - `onRowAdd`, and `
|
|
492
|
+
/** A new row being committed - `onRowAdd`, and `saveDrafts`'s `created`. */
|
|
527
493
|
type TMDataGridRowAddArgs<TData extends RowData> = {
|
|
528
494
|
/** The engine's placeholder id; the real id is the consumer's to mint. */
|
|
529
495
|
tempId: string;
|
|
@@ -639,6 +605,13 @@ type TMDataGridEditApi<TData extends RowData = TMDataGridRowData> = {
|
|
|
639
605
|
canEditCell: (row: ErasedRow, column: ErasedColumn) => boolean;
|
|
640
606
|
/** Whether the row takes edits at all - the edit lane's pencil gate. */
|
|
641
607
|
canEditRow: (row: ErasedRow) => boolean;
|
|
608
|
+
/**
|
|
609
|
+
* Whether the column takes edits at all, with no row in hand: it maps to a
|
|
610
|
+
* field, `editing.columns` lists it if that option is set, and
|
|
611
|
+
* `meta.edit.enabled` is not `false`. A per-row `enabled` predicate is the
|
|
612
|
+
* row's half of the question - `canEditCell` asks both.
|
|
613
|
+
*/
|
|
614
|
+
isColumnEditable: (column: ErasedColumn) => boolean;
|
|
642
615
|
/**
|
|
643
616
|
* Opens an editor. In row mode the whole row opens either way and `columnId`
|
|
644
617
|
* only says which cell takes the caret; `null` (the lane's pencil) leaves it
|
|
@@ -665,10 +638,10 @@ type TMDataGridEditApi<TData extends RowData = TMDataGridRowData> = {
|
|
|
665
638
|
cancelAll: () => void;
|
|
666
639
|
/**
|
|
667
640
|
* Submits every open row, as if each had been OK'd: a row that validates
|
|
668
|
-
* commits (into the draft store
|
|
669
|
-
*
|
|
670
|
-
* `true` when every row committed.
|
|
671
|
-
*
|
|
641
|
+
* commits (into the draft store with `editing.draft` on, straight to the
|
|
642
|
+
* consumer without it), a row that fails stays open with its errors.
|
|
643
|
+
* `true` when every row committed. Under `editing.draft` it sends nothing
|
|
644
|
+
* to the consumer by itself - that is `saveDrafts`.
|
|
672
645
|
*/
|
|
673
646
|
commitAll: () => Promise<boolean>;
|
|
674
647
|
/**
|
|
@@ -687,13 +660,38 @@ type TMDataGridEditApi<TData extends RowData = TMDataGridRowData> = {
|
|
|
687
660
|
submitAll: () => Promise<boolean>;
|
|
688
661
|
/** Writes the type's empty value into a cell and commits it - Delete. */
|
|
689
662
|
clearCell: (rowId: string, columnId: string) => Promise<boolean>;
|
|
663
|
+
/**
|
|
664
|
+
* Writes one cell and commits the row - a typed edit without the typing,
|
|
665
|
+
* for toolbar actions and bulk fills. Under `editing.draft` the row parks
|
|
666
|
+
* in the draft store exactly as a hand-made edit does, so it carries the
|
|
667
|
+
* same change markers and the same per-row revert.
|
|
668
|
+
*
|
|
669
|
+
* The row need not be mounted; a row inside a collapsed group takes the
|
|
670
|
+
* write. Resolves `false` when the cell takes no edit - no such row or
|
|
671
|
+
* column, `editing.columns` excludes it, `meta.edit.enabled` is off, or the
|
|
672
|
+
* row is not editable - and when validation refuses the value, which leaves
|
|
673
|
+
* the row open carrying its errors.
|
|
674
|
+
*
|
|
675
|
+
* `value` is the stored value: no editor runs, so `meta.edit.mapValue`
|
|
676
|
+
* does not either. `meta.edit.validate` does.
|
|
677
|
+
*/
|
|
678
|
+
setCellValue: (rowId: string, columnId: string, value: unknown) => Promise<boolean>;
|
|
679
|
+
/**
|
|
680
|
+
* {@link setCellValue} for several cells of one row, in a single commit -
|
|
681
|
+
* one consumer call and one draft entry rather than one per column. Keys
|
|
682
|
+
* are column ids.
|
|
683
|
+
*
|
|
684
|
+
* All or nothing: if any named cell takes no edit, nothing is written and
|
|
685
|
+
* this resolves `false`.
|
|
686
|
+
*/
|
|
687
|
+
setRowValues: (rowId: string, values: Record<string, unknown>) => Promise<boolean>;
|
|
690
688
|
/**
|
|
691
689
|
* Opens a new entry row (the sticky block under the header) seeded from
|
|
692
690
|
* `newRowDefaults`. `values` overrides that seed key by key, so
|
|
693
691
|
* `addRow()` opens a blank row and `addRow({ status: "draft" })` opens one
|
|
694
692
|
* that starts filled in. Returns its temporary id - a form with no backing
|
|
695
|
-
* row yet. Committing it calls `onRowAdd
|
|
696
|
-
*
|
|
693
|
+
* row yet. Committing it calls `onRowAdd`, or parks it for `saveDrafts`
|
|
694
|
+
* under `editing.draft`.
|
|
697
695
|
*/
|
|
698
696
|
addRow: (values?: Partial<TData>) => string;
|
|
699
697
|
/**
|
|
@@ -702,17 +700,17 @@ type TMDataGridEditApi<TData extends RowData = TMDataGridRowData> = {
|
|
|
702
700
|
* `newRowDefaults` exactly as `addRow` does.
|
|
703
701
|
*
|
|
704
702
|
* `commit: true` submits each row as it lands, which is what an import
|
|
705
|
-
* wants: rows that validate commit (parked in the draft store under
|
|
706
|
-
*
|
|
703
|
+
* wants: rows that validate commit (parked in the draft store under
|
|
704
|
+
* `editing.draft`, added through `onRowAdd` without it - once per row),
|
|
707
705
|
* and rows that fail stay open in the entry block carrying their errors,
|
|
708
706
|
* for the user to fix. The result says which went which way.
|
|
709
707
|
*/
|
|
710
708
|
addRows: (rows: ReadonlyArray<Partial<TData>>, options?: TMDataGridAddRowsOptions) => Promise<TMDataGridAddRowsResult>;
|
|
711
709
|
/**
|
|
712
|
-
* Deletes a row: `onRowDelete` straight away under
|
|
713
|
-
*
|
|
714
|
-
*
|
|
715
|
-
*
|
|
710
|
+
* Deletes a row: `onRowDelete` straight away, or under `editing.draft` a
|
|
711
|
+
* toggle of the id in `deletedRowIds` - the row renders struck through
|
|
712
|
+
* until `saveDrafts` reports it. On an uncommitted entry row it just
|
|
713
|
+
* discards the entry.
|
|
716
714
|
*/
|
|
717
715
|
deleteRow: (rowId: string) => void;
|
|
718
716
|
/** Whether delete chrome makes sense - the lane's trash gate. */
|
|
@@ -821,12 +819,12 @@ type TMDataGridLabels = {
|
|
|
821
819
|
cancelRowEdit: string;
|
|
822
820
|
/** Save tooltip when field errors block the row, with no row message. */
|
|
823
821
|
editRowErrors: string;
|
|
824
|
-
/** `
|
|
822
|
+
/** `DraftActions`' Save, with the count of rows in the draft store. */
|
|
825
823
|
saveAllEdits: (rows: number) => string;
|
|
826
|
-
/** `
|
|
824
|
+
/** `DraftActions`' Discard. */
|
|
827
825
|
discardAllEdits: string;
|
|
828
826
|
/**
|
|
829
|
-
* `
|
|
827
|
+
* `DraftActions`' note about rows still open - edited but not committed, so
|
|
830
828
|
* not part of the save. Shown only while there are any.
|
|
831
829
|
*/
|
|
832
830
|
editRowsStillOpen: (rows: number) => string;
|
|
@@ -1128,13 +1126,20 @@ type TMDataGridFeatureFlags = {
|
|
|
1128
1126
|
grouping: boolean;
|
|
1129
1127
|
/** Whether cells can be edited at all - the `editing` option was set. */
|
|
1130
1128
|
editing: boolean;
|
|
1131
|
-
/**
|
|
1129
|
+
/** What counts as a commit, or `null` while editing is off. */
|
|
1132
1130
|
editMode: TMDataGridEditMode | null;
|
|
1133
1131
|
/**
|
|
1134
|
-
*
|
|
1135
|
-
*
|
|
1136
|
-
*
|
|
1137
|
-
|
|
1132
|
+
* Where a commit goes - `editing.draft`. On, commits park in the grid's
|
|
1133
|
+
* draft store and leave through `edit.saveDrafts()`; off, each one reaches
|
|
1134
|
+
* the consumer as it happens.
|
|
1135
|
+
*/
|
|
1136
|
+
editDraft: boolean;
|
|
1137
|
+
/**
|
|
1138
|
+
* Whether a parked entry row stays pinned in the sticky entry block until
|
|
1139
|
+
* the draft store is saved - `editing.newRowsSticky`, which needs
|
|
1140
|
+
* `editing.draft`. Off by default: a parked row joins the scrolling flow
|
|
1141
|
+
* instead, so entering many rows cannot fill the viewport with sticky
|
|
1142
|
+
* chrome.
|
|
1138
1143
|
*/
|
|
1139
1144
|
editNewRowsSticky: boolean;
|
|
1140
1145
|
/** The generated row-number gutter - `enableRowNumbers`. Off by default. */
|
|
@@ -1731,6 +1736,27 @@ type TMDataGridEditingCallbacks<TData extends RowData> = {
|
|
|
1731
1736
|
* Pathed issues land on the matching columns; pathless ones on the row.
|
|
1732
1737
|
*/
|
|
1733
1738
|
rowValidators?: TMDataGridRowValidators;
|
|
1739
|
+
/**
|
|
1740
|
+
* Rules that need the other rows - no duplicate keys, no overlapping
|
|
1741
|
+
* ranges, allocations summing to a total. Handed the committing row and
|
|
1742
|
+
* `rows`, the collection as it would stand if the commit landed: every
|
|
1743
|
+
* draft overlaid, entry rows appended, deletion-marked rows removed.
|
|
1744
|
+
*
|
|
1745
|
+
* ```tsx
|
|
1746
|
+
* tableValidators: {
|
|
1747
|
+
* onSubmit: ({ value, rowId, rows }) =>
|
|
1748
|
+
* rows.some((r) => r.rowId !== rowId && r.value.code === value.code)
|
|
1749
|
+
* ? { fields: { code: "Duplicate code" } }
|
|
1750
|
+
* : undefined,
|
|
1751
|
+
* }
|
|
1752
|
+
* ```
|
|
1753
|
+
*
|
|
1754
|
+
* Runs at every commit, after the row's own validators, and again per
|
|
1755
|
+
* parked row during `saveDrafts` - a draft another edit has invalidated
|
|
1756
|
+
* blocks the save. Pathed issues land on the committing row's cells,
|
|
1757
|
+
* pathless ones on the row.
|
|
1758
|
+
*/
|
|
1759
|
+
tableValidators?: TMDataGridTableValidators<TData>;
|
|
1734
1760
|
/** Rows the pencil skips - `false` keeps a row read-only in every mode. */
|
|
1735
1761
|
isRowEditable?: (row: Row<TMDataGridFeatures, TData>) => boolean;
|
|
1736
1762
|
/**
|
|
@@ -1751,35 +1777,43 @@ type TMDataGridEditingCallbacks<TData extends RowData> = {
|
|
|
1751
1777
|
*/
|
|
1752
1778
|
newRowDefaults?: TData | (() => TData);
|
|
1753
1779
|
/**
|
|
1754
|
-
* Called when an entry row commits: `Enter` or the lane's
|
|
1755
|
-
*
|
|
1756
|
-
*
|
|
1780
|
+
* Called when an entry row commits: `Enter` or the lane's ✓, or
|
|
1781
|
+
* `saveDrafts` under `editing.draft`. Create the record and let it arrive
|
|
1782
|
+
* back through `data`; the engine's `tempId` never leaves the grid.
|
|
1757
1783
|
*/
|
|
1758
1784
|
onRowAdd?: (args: TMDataGridRowAddArgs<TData>) => void | Promise<void>;
|
|
1759
1785
|
/**
|
|
1760
|
-
* Called by `edit.deleteRow`
|
|
1761
|
-
*
|
|
1762
|
-
*
|
|
1763
|
-
*
|
|
1786
|
+
* Called by `edit.deleteRow` - confirmation, if any, belongs in here. Under
|
|
1787
|
+
* `editing.draft` deletions accumulate in `edit.state.deletedRowIds`
|
|
1788
|
+
* instead and are reported by `saveDrafts`. Setting this also puts the
|
|
1789
|
+
* trash can in the edit lane.
|
|
1764
1790
|
*/
|
|
1765
1791
|
onRowDelete?: (args: TMDataGridRowDeleteArgs<TData>) => void | Promise<void>;
|
|
1766
1792
|
};
|
|
1767
1793
|
/**
|
|
1768
1794
|
* The `editing` option: one object that turns editing on and holds
|
|
1769
|
-
* everything about it.
|
|
1770
|
-
*
|
|
1795
|
+
* everything about it. Two axes, and they are independent: `mode` picks what
|
|
1796
|
+
* counts as a commit, `draft` picks where that commit goes.
|
|
1797
|
+
*
|
|
1798
|
+
* | Mode | Commit | Cancel | Controls |
|
|
1799
|
+
* | ---- | ------ | ------ | -------- |
|
|
1800
|
+
* | `"cell"` | Enter, Tab, blur - Sheets | Escape | none |
|
|
1801
|
+
* | `"cellConfirm"` | ✓ or Enter; Tab and blur keep the draft | ✕ or Escape | ✓ / ✕ beside the input |
|
|
1802
|
+
* | `"row"` | Save in the edit lane, or Enter | Cancel, or Escape | generated edit lane |
|
|
1803
|
+
*
|
|
1804
|
+
* | `draft` | Where a commit goes |
|
|
1805
|
+
* | ------- | ------------------- |
|
|
1806
|
+
* | `false` (default) | Out as it happens - `onCommit`, `onRowAdd`, `onRowDelete` |
|
|
1807
|
+
* | `true` | Into the grid's draft store; `edit.saveDrafts()` sends the lot |
|
|
1771
1808
|
*
|
|
1772
|
-
*
|
|
1773
|
-
*
|
|
1774
|
-
*
|
|
1775
|
-
* | `"cellConfirm"` | ✓ or Enter only; blur keeps the draft | ✕ or Escape |
|
|
1776
|
-
* | `"row"` | Save in the edit lane, or Ctrl+Enter | Cancel, or Escape |
|
|
1777
|
-
* | `"draft"` | `edit.commit(rowId)` into the draft store, `edit.saveDrafts()` out | `edit.cancelAll()` |
|
|
1809
|
+
* So `{ mode: "row", draft: true }` is "edit a row, the lane's ✓ parks it,
|
|
1810
|
+
* the toolbar's Save sends every parked row at once", and
|
|
1811
|
+
* `{ mode: "cell", draft: true }` is the same store filled cell by cell.
|
|
1778
1812
|
*
|
|
1779
1813
|
* Setting `editing` makes `getRowId` required - drafts are keyed by row id,
|
|
1780
1814
|
* and the index fallback would name a different record after any sort - and
|
|
1781
|
-
* `onSaveDrafts` exists only under `
|
|
1782
|
-
* store to save.
|
|
1815
|
+
* `onSaveDrafts` exists only under `draft: true`, the one configuration with
|
|
1816
|
+
* a draft store to save.
|
|
1783
1817
|
*
|
|
1784
1818
|
* The object may be written inline: the callbacks are read through a ref
|
|
1785
1819
|
* every render, so its identity does not matter.
|
|
@@ -1790,10 +1824,34 @@ type TMDataGridEditingCallbacks<TData extends RowData> = {
|
|
|
1790
1824
|
* built-in editor, and `enabled`, `field`, `editor`, `validate` and `mapValue`
|
|
1791
1825
|
* override the rest.
|
|
1792
1826
|
*/
|
|
1793
|
-
type TMDataGridEditingOptions<TData extends RowData> = TMDataGridEditingCallbacks<TData> &
|
|
1794
|
-
|
|
1827
|
+
type TMDataGridEditingOptions<TData extends RowData> = TMDataGridEditingCallbacks<TData> & {
|
|
1828
|
+
/** What counts as a commit. See the table above. */
|
|
1829
|
+
mode: TMDataGridEditMode;
|
|
1795
1830
|
/**
|
|
1796
|
-
*
|
|
1831
|
+
* The column ids that take edits, by id. Unset - the default - every
|
|
1832
|
+
* column mapping to a data path is editable, which is what a grid whose
|
|
1833
|
+
* columns are mostly the record itself wants.
|
|
1834
|
+
*
|
|
1835
|
+
* Set it for the other shape: a grid of reference data with one or two
|
|
1836
|
+
* columns the user maintains, where naming those is shorter and harder to
|
|
1837
|
+
* get wrong than switching every other column off one by one.
|
|
1838
|
+
*
|
|
1839
|
+
* This gates before `meta.edit`, never past it: a column left out takes no
|
|
1840
|
+
* edits whatever its own meta says, and a column listed here still answers
|
|
1841
|
+
* to its `meta.edit.enabled`.
|
|
1842
|
+
*/
|
|
1843
|
+
columns?: ReadonlyArray<string>;
|
|
1844
|
+
} & ({
|
|
1845
|
+
/**
|
|
1846
|
+
* Commits park in the grid's draft store instead of reaching the
|
|
1847
|
+
* consumer, and leave together through `edit.saveDrafts()`. The
|
|
1848
|
+
* edit lane gains the change markers and the per-row revert, the
|
|
1849
|
+
* trash marks a row for deletion rather than deleting it, and
|
|
1850
|
+
* `TMDataGrid.DraftActions` gets something to save.
|
|
1851
|
+
*/
|
|
1852
|
+
draft: true;
|
|
1853
|
+
/**
|
|
1854
|
+
* The bulk save: called once by `edit.saveDrafts()` with the
|
|
1797
1855
|
* whole draft store - committed edits, added rows and deletion
|
|
1798
1856
|
* marks - so a server can apply it as one transaction. Without it,
|
|
1799
1857
|
* `saveDrafts` falls back to the per-row
|
|
@@ -1811,20 +1869,21 @@ type TMDataGridEditingOptions<TData extends RowData> = TMDataGridEditingCallback
|
|
|
1811
1869
|
*/
|
|
1812
1870
|
onCommitDrafts?: (args: TMDataGridSaveDraftsArgs<TData>) => void | TMDataGridSaveDraftsResult | Promise<void | TMDataGridSaveDraftsResult>;
|
|
1813
1871
|
/**
|
|
1814
|
-
* Keep
|
|
1815
|
-
* the draft store is saved. Off by default: a
|
|
1816
|
-
*
|
|
1817
|
-
*
|
|
1818
|
-
*
|
|
1872
|
+
* Keep parked entry rows pinned in the sticky entry block until
|
|
1873
|
+
* the draft store is saved. Off by default: a parked row joins the
|
|
1874
|
+
* scrolling flow above the body rows instead - the block a row is
|
|
1875
|
+
* *typed* into is always sticky, but parked rows scroll, so
|
|
1876
|
+
* entering many cannot fill the viewport with sticky chrome.
|
|
1819
1877
|
*/
|
|
1820
1878
|
newRowsSticky?: boolean;
|
|
1821
1879
|
} | {
|
|
1822
|
-
|
|
1823
|
-
|
|
1880
|
+
/** Every commit reaches the consumer as it happens. The default. */
|
|
1881
|
+
draft?: false;
|
|
1882
|
+
/** Only `draft: true` has a store to save - see the other branch. */
|
|
1824
1883
|
onSaveDrafts?: never;
|
|
1825
1884
|
/** @deprecated See {@link onSaveDrafts}. */
|
|
1826
1885
|
onCommitDrafts?: never;
|
|
1827
|
-
/**
|
|
1886
|
+
/** Parked entry rows exist only under `draft: true` - see there. */
|
|
1828
1887
|
newRowsSticky?: never;
|
|
1829
1888
|
});
|
|
1830
1889
|
type UseTMDataGridOptions<TData extends RowData> = Omit<TableOptions<TMDataGridFeatures, TData>, "features"> & ({
|
|
@@ -2091,6 +2150,130 @@ declare function useTMDataGrid<TData extends RowData>({ persist, labels: labelsO
|
|
|
2091
2150
|
*/
|
|
2092
2151
|
declare function openColumnFilter<TData extends RowData>(api: TMDataGridApi<TData>, columnId: string): void;
|
|
2093
2152
|
//#endregion
|
|
2153
|
+
//#region .types-tmp/components/TMDataGridDraftActions.d.ts
|
|
2154
|
+
/** What the edit chrome is showing. */
|
|
2155
|
+
type TMDataGridDraftActionsState = {
|
|
2156
|
+
/**
|
|
2157
|
+
* Rows in the draft store, which is what Save sends: committed edits,
|
|
2158
|
+
* committed entry rows and deletion marks.
|
|
2159
|
+
*/
|
|
2160
|
+
draftCount: number;
|
|
2161
|
+
/**
|
|
2162
|
+
* Rows still open - edited or entered but not committed, so not part of
|
|
2163
|
+
* the save. They stay open across a save.
|
|
2164
|
+
*/
|
|
2165
|
+
openCount: number;
|
|
2166
|
+
/**
|
|
2167
|
+
* The ids behind {@link openCount}, in the order the grid opened them - a
|
|
2168
|
+
* sort, a filter or a page never moves this list. An entered row appears as
|
|
2169
|
+
* its `tempId`.
|
|
2170
|
+
*
|
|
2171
|
+
* Narrower than `edit.state.openRowIds`, which is every row holding a form,
|
|
2172
|
+
* the parked ones included. And note the ordering:
|
|
2173
|
+
* {@link TMDataGridDraftActionsActions.scrollToFirstOpenRow} takes "first"
|
|
2174
|
+
* in display order, so it need not be `openRowIds[0]`.
|
|
2175
|
+
*/
|
|
2176
|
+
openRowIds: ReadonlyArray<string>;
|
|
2177
|
+
/**
|
|
2178
|
+
* @deprecated Was "everything uncommitted", which Save no longer sends.
|
|
2179
|
+
* Reads as `draftCount + openCount`; use whichever you meant.
|
|
2180
|
+
*/
|
|
2181
|
+
pendingCount: number;
|
|
2182
|
+
/** Whether a submit is in flight. */
|
|
2183
|
+
isSubmitting: boolean;
|
|
2184
|
+
};
|
|
2185
|
+
/** What the edit chrome can do. */
|
|
2186
|
+
type TMDataGridDraftActionsActions = {
|
|
2187
|
+
/** Saves the draft store. Open rows are left alone. */
|
|
2188
|
+
save: () => Promise<boolean>;
|
|
2189
|
+
/** Submits every open row, committing the ones that validate. */
|
|
2190
|
+
commitAll: () => Promise<boolean>;
|
|
2191
|
+
/** Drops everything - open form state and the draft store alike. */
|
|
2192
|
+
discard: () => void;
|
|
2193
|
+
/**
|
|
2194
|
+
* `grid.scrollToRow`, so a control in here can take the user to a row
|
|
2195
|
+
* without the grid being threaded down to it.
|
|
2196
|
+
*/
|
|
2197
|
+
scrollToRow: (args: TMDataGridScrollToRowArgs) => boolean;
|
|
2198
|
+
/**
|
|
2199
|
+
* Scrolls to the first row still open, taking "first" in display order: the
|
|
2200
|
+
* topmost open row under the current sort, filter and page. That need not
|
|
2201
|
+
* be {@link TMDataGridDraftActionsState.openRowIds}`[0]`, which is the
|
|
2202
|
+
* order the grid opened them in.
|
|
2203
|
+
*
|
|
2204
|
+
* Answers whether an open row could be reached. `false` when nothing is
|
|
2205
|
+
* open, and when every open row is filtered out, on another page or
|
|
2206
|
+
* collapsed inside a group. An open entry row answers `true` without
|
|
2207
|
+
* scrolling - it is sticky under the header, so it is on screen already -
|
|
2208
|
+
* and so does an open row pinned to an edge. The scroll goes through
|
|
2209
|
+
* `scrollToRow`, so before `TMDataGrid.Table` has mounted there is nothing
|
|
2210
|
+
* to scroll and the answer is `false`.
|
|
2211
|
+
*/
|
|
2212
|
+
scrollToFirstOpenRow: (align?: TMDataGridScrollAlign) => boolean;
|
|
2213
|
+
};
|
|
2214
|
+
/** The pre-bound pieces of the built-in edit chrome. */
|
|
2215
|
+
type TMDataGridDraftActionsControls = {
|
|
2216
|
+
/** Save, with the draft count, disabled while the draft store is empty. */
|
|
2217
|
+
Save: () => ReactNode;
|
|
2218
|
+
/** Discard, disabled while nothing is pending. */
|
|
2219
|
+
Discard: () => ReactNode;
|
|
2220
|
+
/** The "N rows still being edited" note, or nothing while there are none. */
|
|
2221
|
+
OpenRowsNote: () => ReactNode;
|
|
2222
|
+
};
|
|
2223
|
+
/** What {@link TMDataGridDraftActionsProps.renderActions} is handed. */
|
|
2224
|
+
type TMDataGridDraftActionsSlotArgs = {
|
|
2225
|
+
state: TMDataGridDraftActionsState;
|
|
2226
|
+
actions: TMDataGridDraftActionsActions;
|
|
2227
|
+
Controls: TMDataGridDraftActionsControls;
|
|
2228
|
+
};
|
|
2229
|
+
type TMDataGridDraftActionsProps = {
|
|
2230
|
+
/**
|
|
2231
|
+
* Replaces the built-in Save/Discard pair, and is handed the pieces of it.
|
|
2232
|
+
*
|
|
2233
|
+
* ```tsx
|
|
2234
|
+
* <TMDataGrid.DraftActions
|
|
2235
|
+
* renderActions={({ state, Controls }) => (
|
|
2236
|
+
* <Group>
|
|
2237
|
+
* {state.draftCount > 0 && <Badge>{state.draftCount}</Badge>}
|
|
2238
|
+
* <Controls.OpenRowsNote />
|
|
2239
|
+
* <Controls.Save />
|
|
2240
|
+
* <Controls.Discard />
|
|
2241
|
+
* </Group>
|
|
2242
|
+
* )}
|
|
2243
|
+
* />
|
|
2244
|
+
* ```
|
|
2245
|
+
*/
|
|
2246
|
+
renderActions?: (args: TMDataGridDraftActionsSlotArgs) => ReactNode;
|
|
2247
|
+
};
|
|
2248
|
+
/**
|
|
2249
|
+
* The draft store's toolbar chrome: Save with the store's count, Discard, and
|
|
2250
|
+
* a note counting the rows still open. Save sends the store and leaves open
|
|
2251
|
+
* rows alone, so it greys out while nothing is parked however much is being
|
|
2252
|
+
* typed - the note is what makes those rows visible.
|
|
2253
|
+
*
|
|
2254
|
+
* Works under any `editing.mode`. The toolbar is declarative: the grid does
|
|
2255
|
+
* not decide for you, so include this only when the grid runs a draft store -
|
|
2256
|
+
* without `editing.draft` there is nothing to save and Save stays disabled.
|
|
2257
|
+
*
|
|
2258
|
+
* ```tsx
|
|
2259
|
+
* <TMDataGrid.Toolbar>
|
|
2260
|
+
* <TMDataGrid.SummaryCount />
|
|
2261
|
+
* <TMDataGrid.Spacer />
|
|
2262
|
+
* <TMDataGrid.DraftActions />
|
|
2263
|
+
* </TMDataGrid.Toolbar>
|
|
2264
|
+
* ```
|
|
2265
|
+
*/
|
|
2266
|
+
declare function TMDataGridDraftActions({ renderActions }?: TMDataGridDraftActionsProps): string | number | bigint | boolean | import("react").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | null | undefined;
|
|
2267
|
+
//#endregion
|
|
2268
|
+
//#region .types-tmp/components/TMDataGridFilterPanel.d.ts
|
|
2269
|
+
/**
|
|
2270
|
+
* The MUI-style filter surface: one row per active column filter, each row a
|
|
2271
|
+
* column / operator / value triple. It only ever reads and writes the table's
|
|
2272
|
+
* `columnFilters` state, so a `manualFiltering` grid gets the same panel for
|
|
2273
|
+
* free - the state is forwarded to the server instead of a row model.
|
|
2274
|
+
*/
|
|
2275
|
+
declare function TMDataGridFilterPanel(): import("react").JSX.Element | null;
|
|
2276
|
+
//#endregion
|
|
2094
2277
|
//#region .types-tmp/components/TMDataGridFilterPills.d.ts
|
|
2095
2278
|
type TMDataGridFilterPillsProps<TData extends RowData> = {
|
|
2096
2279
|
/** The object returned by `useTMDataGrid`. */
|
|
@@ -2760,7 +2943,7 @@ declare const TMDataGrid: typeof TMDataGridRoot & {
|
|
|
2760
2943
|
SummaryCount: typeof TMDataGridSummaryCount;
|
|
2761
2944
|
LoadingIndicator: typeof TMDataGridLoadingIndicator;
|
|
2762
2945
|
Search: typeof TMDataGridSearch;
|
|
2763
|
-
|
|
2946
|
+
DraftActions: typeof TMDataGridDraftActions;
|
|
2764
2947
|
ColumnsButton: typeof TMDataGridColumnsButton;
|
|
2765
2948
|
FilterButton: typeof TMDataGridFilterButton;
|
|
2766
2949
|
Table: typeof TMDataGridTable$1;
|
|
@@ -2999,6 +3182,10 @@ type TMDataGridAggregationName = keyof typeof aggregationFns;
|
|
|
2999
3182
|
* Filtered rather than paginated rows, so the total covers everything the
|
|
3000
3183
|
* filters left (all pages), and follows the filters as they change. Reuses
|
|
3001
3184
|
* TanStack's registered aggregation functions; `fn` defaults to `"sum"`.
|
|
3185
|
+
*
|
|
3186
|
+
* Every data row counts once. Grouping builds its group rows from this model
|
|
3187
|
+
* rather than into it, so a grouped grid totals its records, not its records
|
|
3188
|
+
* plus their subtotals; a tree counts parents and children alike.
|
|
3002
3189
|
*/
|
|
3003
3190
|
declare function aggregateColumn<TData extends RowData>({ table, columnId, fn }: {
|
|
3004
3191
|
table: TMDataGridTable<TData>;
|
|
@@ -3243,4 +3430,4 @@ declare function getSelectableRowIds<TData extends RowData>(row: Row<TMDataGridF
|
|
|
3243
3430
|
*/
|
|
3244
3431
|
declare function resolveRowSelectionClick<TData extends RowData>({ rows, rowId, anchorRowId, modifiers, selection, canReplaceSelection }: ResolveRowSelectionClickArgs<TData>): ResolvedRowSelection;
|
|
3245
3432
|
//#endregion
|
|
3246
|
-
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 TMDataGridAddRowsOptions, type TMDataGridAddRowsResult, 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
|
|
3433
|
+
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 TMDataGridAddRowsOptions, type TMDataGridAddRowsResult, 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, TMDataGridDraftActions, type TMDataGridDraftActionsActions, type TMDataGridDraftActionsControls, type TMDataGridDraftActionsProps, type TMDataGridDraftActionsSlotArgs, type TMDataGridDraftActionsState, type TMDataGridDropSide, 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 TMDataGridSaveDraftsArgs, type TMDataGridSaveDraftsResult, type TMDataGridSaveOutcomes, type TMDataGridScrollAlign, type TMDataGridScrollToRowArgs, TMDataGridSearch, type TMDataGridSearchProps, TMDataGridSelectEditor, type TMDataGridSelectionMode, type TMDataGridSettingsSlice, type TMDataGridSize, type TMDataGridStorageMode, TMDataGridStringEditor, type TMDataGridTable, type TMDataGridTableMeta, type TMDataGridTableProps, type TMDataGridTableValidateArgs, type TMDataGridTableValidators, 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 };
|