@cdx-ui/data-grid 0.3.11 → 0.3.13

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.
Files changed (96) hide show
  1. package/README.md +3 -1
  2. package/coverage.svg +1 -1
  3. package/lib/commonjs/DataGrid.js +490 -81
  4. package/lib/commonjs/DataGrid.js.map +1 -1
  5. package/lib/commonjs/DataGridFilterPanel.js +547 -0
  6. package/lib/commonjs/DataGridFilterPanel.js.map +1 -0
  7. package/lib/commonjs/adapter/columnTypes.js +256 -0
  8. package/lib/commonjs/adapter/columnTypes.js.map +1 -0
  9. package/lib/commonjs/adapter/columns.js +140 -4
  10. package/lib/commonjs/adapter/columns.js.map +1 -1
  11. package/lib/commonjs/adapter/filterOperators.js +422 -0
  12. package/lib/commonjs/adapter/filterOperators.js.map +1 -0
  13. package/lib/commonjs/adapter/pinning.js +105 -0
  14. package/lib/commonjs/adapter/pinning.js.map +1 -0
  15. package/lib/commonjs/adapter/selectColumn.js +11 -0
  16. package/lib/commonjs/adapter/selectColumn.js.map +1 -1
  17. package/lib/commonjs/adapter/treeData.js +195 -0
  18. package/lib/commonjs/adapter/treeData.js.map +1 -0
  19. package/lib/commonjs/index.js +26 -0
  20. package/lib/commonjs/index.js.map +1 -1
  21. package/lib/commonjs/numberCells.js +280 -0
  22. package/lib/commonjs/numberCells.js.map +1 -0
  23. package/lib/commonjs/styles.js +107 -1
  24. package/lib/commonjs/styles.js.map +1 -1
  25. package/lib/commonjs/types.js +39 -1
  26. package/lib/commonjs/types.js.map +1 -1
  27. package/lib/commonjs/useDataGridTable.js +234 -18
  28. package/lib/commonjs/useDataGridTable.js.map +1 -1
  29. package/lib/module/DataGrid.js +497 -88
  30. package/lib/module/DataGrid.js.map +1 -1
  31. package/lib/module/DataGridFilterPanel.js +540 -0
  32. package/lib/module/DataGridFilterPanel.js.map +1 -0
  33. package/lib/module/adapter/columnTypes.js +240 -0
  34. package/lib/module/adapter/columnTypes.js.map +1 -0
  35. package/lib/module/adapter/columns.js +137 -4
  36. package/lib/module/adapter/columns.js.map +1 -1
  37. package/lib/module/adapter/filterOperators.js +406 -0
  38. package/lib/module/adapter/filterOperators.js.map +1 -0
  39. package/lib/module/adapter/pinning.js +94 -0
  40. package/lib/module/adapter/pinning.js.map +1 -0
  41. package/lib/module/adapter/selectColumn.js +11 -1
  42. package/lib/module/adapter/selectColumn.js.map +1 -1
  43. package/lib/module/adapter/treeData.js +187 -0
  44. package/lib/module/adapter/treeData.js.map +1 -0
  45. package/lib/module/index.js +2 -0
  46. package/lib/module/index.js.map +1 -1
  47. package/lib/module/numberCells.js +275 -0
  48. package/lib/module/numberCells.js.map +1 -0
  49. package/lib/module/styles.js +106 -0
  50. package/lib/module/styles.js.map +1 -1
  51. package/lib/module/types.js +38 -0
  52. package/lib/module/types.js.map +1 -1
  53. package/lib/module/useDataGridTable.js +238 -22
  54. package/lib/module/useDataGridTable.js.map +1 -1
  55. package/lib/typescript/DataGrid.d.ts.map +1 -1
  56. package/lib/typescript/DataGridFilterPanel.d.ts +52 -0
  57. package/lib/typescript/DataGridFilterPanel.d.ts.map +1 -0
  58. package/lib/typescript/adapter/columnTypes.d.ts +32 -0
  59. package/lib/typescript/adapter/columnTypes.d.ts.map +1 -0
  60. package/lib/typescript/adapter/columns.d.ts +14 -5
  61. package/lib/typescript/adapter/columns.d.ts.map +1 -1
  62. package/lib/typescript/adapter/filterOperators.d.ts +43 -0
  63. package/lib/typescript/adapter/filterOperators.d.ts.map +1 -0
  64. package/lib/typescript/adapter/pinning.d.ts +26 -0
  65. package/lib/typescript/adapter/pinning.d.ts.map +1 -0
  66. package/lib/typescript/adapter/selectColumn.d.ts +8 -0
  67. package/lib/typescript/adapter/selectColumn.d.ts.map +1 -1
  68. package/lib/typescript/adapter/treeData.d.ts +36 -0
  69. package/lib/typescript/adapter/treeData.d.ts.map +1 -0
  70. package/lib/typescript/index.d.ts +4 -1
  71. package/lib/typescript/index.d.ts.map +1 -1
  72. package/lib/typescript/numberCells.d.ts +46 -0
  73. package/lib/typescript/numberCells.d.ts.map +1 -0
  74. package/lib/typescript/styles.d.ts +32 -0
  75. package/lib/typescript/styles.d.ts.map +1 -1
  76. package/lib/typescript/types.d.ts +154 -7
  77. package/lib/typescript/types.d.ts.map +1 -1
  78. package/lib/typescript/useDataGridTable.d.ts +40 -4
  79. package/lib/typescript/useDataGridTable.d.ts.map +1 -1
  80. package/package.json +5 -5
  81. package/src/DataGrid.tsx +745 -95
  82. package/src/DataGridFilterPanel.tsx +648 -0
  83. package/src/adapter/columnTypes.ts +327 -0
  84. package/src/adapter/columns.test.ts +75 -1
  85. package/src/adapter/columns.ts +192 -3
  86. package/src/adapter/filterOperators.test.ts +292 -0
  87. package/src/adapter/filterOperators.ts +524 -0
  88. package/src/adapter/pinning.ts +134 -0
  89. package/src/adapter/selectColumn.ts +12 -1
  90. package/src/adapter/treeData.ts +228 -0
  91. package/src/index.ts +19 -0
  92. package/src/numberCells.tsx +379 -0
  93. package/src/styles.ts +131 -0
  94. package/src/types.ts +190 -7
  95. package/src/useDataGridTable.test.ts +69 -0
  96. package/src/useDataGridTable.ts +338 -17
@@ -0,0 +1,43 @@
1
+ import type { GridColDef, GridColType, GridFilterItem, GridFilterOperator, GridValidRowModel } from '../types';
2
+ /** Operators a column of `type` accepts. An omitted `type` accepts the `string` operators. */
3
+ export declare function getGridFilterOperators(type?: GridColType): readonly GridFilterOperator[];
4
+ /** The operator a filter UI preselects for a column of `type`. Matches MUI. */
5
+ export declare function getDefaultFilterOperator(type?: GridColType): GridFilterOperator;
6
+ /** Short label for an operator, in the style of the MUI operator menu. */
7
+ export declare function getFilterOperatorLabel(operator: GridFilterOperator): string;
8
+ /** `isEmpty` and `isNotEmpty` ignore the item's `value`. */
9
+ export declare function filterOperatorNeedsValue(operator: GridFilterOperator): boolean;
10
+ /** True when a value-taking operator has nothing to compare against, so it filters nothing. */
11
+ export declare function isBlankFilterValue(value: unknown): boolean;
12
+ export interface OperatorFilterValue {
13
+ operator: GridFilterOperator;
14
+ value: unknown;
15
+ }
16
+ /** Several filter items on one column. Every item must match. */
17
+ export interface FilterValueGroup {
18
+ items: readonly unknown[];
19
+ }
20
+ export declare function isFilterValueGroup(filterValue: unknown): filterValue is FilterValueGroup;
21
+ export declare function isOperatorFilterValue(filterValue: unknown): filterValue is OperatorFilterValue;
22
+ /**
23
+ * Evaluates one operator filter against a cell. Operators the column's type does not accept,
24
+ * and operators whose operand is blank, filter nothing, as in MUI.
25
+ */
26
+ export declare function matchesOperatorFilter<R extends GridValidRowModel>(col: GridColDef<R>, cell: unknown, row: R, { operator, value }: OperatorFilterValue): boolean;
27
+ /** False for items that filter nothing: a value-taking operator without a value, or blank text. */
28
+ export declare function isActiveFilterItem(item: GridFilterItem): boolean;
29
+ export declare function rowMatchesFilterItem<R extends GridValidRowModel>(col: GridColDef<R>, row: R, item: GridFilterItem): boolean;
30
+ /**
31
+ * Reads a header-filter field. `isAnyOf` splits on commas. Number pieces that round-trip
32
+ * become numbers. A `singleSelect` label (`Open`) becomes its stored value (`open`).
33
+ */
34
+ export declare function headerFilterValueFromText<R extends GridValidRowModel>(col: GridColDef<R> | undefined, operator: GridFilterOperator, text: string): unknown;
35
+ /**
36
+ * Converts header-input text to the typed operand its column and operator expect. Text that
37
+ * would not survive a round trip back into the input (`'1.'`, `'1.50'`) stays text, so typing
38
+ * is never rewritten under the cursor.
39
+ */
40
+ export declare function coerceFilterInput<R extends GridValidRowModel>(col: GridColDef<R> | undefined, operator: GridFilterOperator, text: string): unknown;
41
+ /** The text a header filter input shows for an operand. */
42
+ export declare function filterValueToInputText(value: unknown): string;
43
+ //# sourceMappingURL=filterOperators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterOperators.d.ts","sourceRoot":"","sources":["../../../src/adapter/filterOperators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,kBAAkB,EAElB,iBAAiB,EAElB,MAAM,UAAU,CAAC;AA+ClB,8FAA8F;AAC9F,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,kBAAkB,EAAE,CAcxF;AAED,+EAA+E;AAC/E,wBAAgB,wBAAwB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,kBAAkB,CAE/E;AA0BD,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAE3E;AAED,4DAA4D;AAC5D,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAE9E;AAED,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQ1D;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;CAChB;AAUD,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;CAC3B;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,OAAO,GAAG,WAAW,IAAI,gBAAgB,CAOxF;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,OAAO,GAAG,WAAW,IAAI,mBAAmB,CAQ9F;AAkMD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,iBAAiB,EAC/D,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,CAAC,EACN,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,mBAAmB,GACvC,OAAO,CA0BT;AAED,mGAAmG;AACnG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAKhE;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,iBAAiB,EAC9D,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,cAAc,GACnB,OAAO,CAWT;AA2BD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,iBAAiB,EACnE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,EAC9B,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,EAAE,MAAM,GACX,OAAO,CAqBT;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,iBAAiB,EAC3D,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,EAC9B,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,EAAE,MAAM,GACX,OAAO,CAmBT;AAMD,2DAA2D;AAC3D,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAmB7D"}
@@ -0,0 +1,26 @@
1
+ import type { ViewStyle } from 'react-native';
2
+ import type { ColumnPinningState } from '@tanstack/react-table';
3
+ import { type GridColDef, type GridValidRowModel } from '../types';
4
+ export declare const DEFAULT_PINNED_COLUMN_WIDTH = 100;
5
+ export declare const SELECT_COLUMN_WIDTH = 56;
6
+ export declare const DETAIL_PANEL_TOGGLE_WIDTH = 48;
7
+ export type ColumnPinEdge = 'start' | 'end';
8
+ export declare function isColumnPinningActive(state: ColumnPinningState): boolean;
9
+ export declare function pinnedFieldSet(state: ColumnPinningState): Set<string>;
10
+ export declare function pinnedColumnPixelWidth<R extends GridValidRowModel>(columnId: string, col: GridColDef<R> | undefined): number;
11
+ export interface PinnedOffsetMaps {
12
+ start: ReadonlyMap<string, number>;
13
+ end: ReadonlyMap<string, number>;
14
+ startTotal: number;
15
+ endTotal: number;
16
+ }
17
+ export declare function buildPinnedOffsets<R extends GridValidRowModel>(state: ColumnPinningState, colByField: ReadonlyMap<string, GridColDef<R>>): PinnedOffsetMaps;
18
+ export declare function pinnedCellStyle(edge: ColumnPinEdge, offset: number, isHeader: boolean): ViewStyle;
19
+ /**
20
+ * Draws the pinned edge dividers on the scroll container itself so they reach its bottom when the
21
+ * rows are shorter than the viewport. A non-local background does not scroll with the content,
22
+ * matching sticky pinned cells, and its positioning area excludes scrollbars.
23
+ */
24
+ export declare function pinnedEdgeGuidesImage(offsets: Pick<PinnedOffsetMaps, 'startTotal' | 'endTotal'>, color: string, isRTL: boolean): string | undefined;
25
+ export declare function warnPinnedFlexColumns<R extends GridValidRowModel>(columns: readonly GridColDef<R>[], pinned: ReadonlySet<string>): void;
26
+ //# sourceMappingURL=pinning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pinning.d.ts","sourceRoot":"","sources":["../../../src/adapter/pinning.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACvB,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAC/C,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,KAAK,CAAC;AAE5C,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAExE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,GAAG,CAAC,MAAM,CAAC,CAErE;AAED,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,iBAAiB,EAChE,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,GAC7B,MAAM,CAQR;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,iBAAiB,EAC5D,KAAK,EAAE,kBAAkB,EACzB,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,GAC7C,gBAAgB,CAiBlB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,CAOjG;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,GAAG,UAAU,CAAC,EAC1D,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,GACb,MAAM,GAAG,SAAS,CA2BpB;AAID,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,iBAAiB,EAC/D,OAAO,EAAE,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,EACjC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GAC1B,IAAI,CAgBN"}
@@ -6,4 +6,12 @@ export declare function createSelectColumn(): {
6
6
  readonly enableGlobalFilter: false;
7
7
  readonly size: 48;
8
8
  };
9
+ export declare function createDetailPanelToggleColumn(): {
10
+ readonly id: "__detail_panel_toggle__";
11
+ readonly header: "__detail_panel_toggle__";
12
+ readonly enableSorting: false;
13
+ readonly enableColumnFilter: false;
14
+ readonly enableGlobalFilter: false;
15
+ readonly size: 48;
16
+ };
9
17
  //# sourceMappingURL=selectColumn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectColumn.d.ts","sourceRoot":"","sources":["../../../src/adapter/selectColumn.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB;;;;;;;EASjC"}
1
+ {"version":3,"file":"selectColumn.d.ts","sourceRoot":"","sources":["../../../src/adapter/selectColumn.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB;;;;;;;EASjC;AAED,wBAAgB,6BAA6B;;;;;;;EAS5C"}
@@ -0,0 +1,36 @@
1
+ export interface GridTreeIndex<R> {
2
+ roots: R[];
3
+ childrenOf: Map<R, R[]>;
4
+ rowOf: Map<string, R>;
5
+ parentKeyOf: Map<string, string>;
6
+ childKeysOf: Map<string, string[]>;
7
+ depthOf: Map<string, number>;
8
+ /** Deepest rows first, so a parent is visited after all of its descendants. */
9
+ keysDeepestFirst: string[];
10
+ }
11
+ export type GridTreeSelectionStatus = 'all' | 'some' | 'none';
12
+ /** The shape TanStack rows share; filtered and sorted rows carry their filtered `subRows`. */
13
+ export interface GridTreeRowLike {
14
+ id: string;
15
+ subRows: readonly GridTreeRowLike[];
16
+ }
17
+ export declare function buildTreeIndex<R>(rows: readonly R[], getTreeDataPath: (row: R) => readonly string[], keyOf: (row: R) => string): GridTreeIndex<R>;
18
+ /**
19
+ * With `propagateParents`, a parent is `all` exactly when every child is `all`, whatever the model
20
+ * says about the parent itself. Without it, a parent's own selection decides, and partly selected
21
+ * descendants show as `some`.
22
+ */
23
+ export declare function computeTreeSelection<R>(index: GridTreeIndex<R>, selected: ReadonlySet<string>, propagateParents: boolean): Map<string, GridTreeSelectionStatus>;
24
+ export declare function applyTreeSelection<R>(index: GridTreeIndex<R>, selected: ReadonlySet<string>, targets: readonly string[], value: boolean, propagateParents: boolean): Set<string>;
25
+ /**
26
+ * Rows a toggle writes (`targets`) and the rows whose state decides the toggle direction
27
+ * (`units`). With `descendants`, a row's filtered sub-rows are included; a row whose children were
28
+ * all filtered out takes its whole subtree, so a matching group can still be picked.
29
+ */
30
+ export declare function selectionScope<R>(rows: readonly GridTreeRowLike[], index: GridTreeIndex<R>, descendants: boolean): {
31
+ targets: string[];
32
+ units: string[];
33
+ };
34
+ /** Keeps every row that matches and every ancestor of a match. */
35
+ export declare function keepMatchesWithAncestors<R>(rows: readonly R[], index: GridTreeIndex<R>, keyOf: (row: R) => string, matches: (row: R) => boolean): R[];
36
+ //# sourceMappingURL=treeData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"treeData.d.ts","sourceRoot":"","sources":["../../../src/adapter/treeData.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACtB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,+EAA+E;IAC/E,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9D,8FAA8F;AAC9F,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;CACrC;AAMD,wBAAgB,cAAc,CAAC,CAAC,EAC9B,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,SAAS,MAAM,EAAE,EAC9C,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,GACxB,aAAa,CAAC,CAAC,CAAC,CAsElB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,EAC7B,gBAAgB,EAAE,OAAO,GACxB,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CA2BtC;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,EAC7B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,KAAK,EAAE,OAAO,EACd,gBAAgB,EAAE,OAAO,GACxB,GAAG,CAAC,MAAM,CAAC,CAuBb;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,IAAI,EAAE,SAAS,eAAe,EAAE,EAChC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,WAAW,EAAE,OAAO,GACnB;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CA2BxC;AAED,kEAAkE;AAClE,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,EACzB,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,GAC3B,CAAC,EAAE,CAeL"}
@@ -1,3 +1,6 @@
1
1
  export { DataGrid } from './DataGrid';
2
- export type { DataGridProps, GridAlignment, GridColDef, GridFeatureMode, GridFilterItem, GridFilterModel, GridPaginationModel, GridRenderCellParams, GridRowId, GridRowSelectionModel, GridRowsProp, GridSortDirection, GridSortItem, GridSortModel, GridValidRowModel, } from './types';
2
+ export { getDefaultFilterOperator, getGridFilterOperators } from './adapter/filterOperators';
3
+ export { gridDeltaNumberColDef, gridPolarityNumberColDef } from './numberCells';
4
+ export type { GridDeltaNumberColDefOptions, GridDeltaNumberSymbol, GridNumberCellDensity, GridPolarityNumberColDefOptions, } from './numberCells';
5
+ export type { DataGridProps, GridAlignment, GridBaseColDef, GridColDef, GridColType, GridColumnVisibilityModel, GridFeatureMode, GridFilterItem, GridFilterModel, GridFilterOperator, GridLogicOperator, GridPaginationModel, GridPinnedColumnFields, GridRenderCellParams, GridRowId, GridRowParams, GridRowSelectionModel, GridRowSelectionPropagation, GridRowsProp, GridSingleSelectColDef, GridSortDirection, GridSortItem, GridSortModel, GridTreeNodeParams, GridValidRowModel, GridValueOption, } from './types';
3
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACT,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAChF,YAAY,EACV,4BAA4B,EAC5B,qBAAqB,EACrB,qBAAqB,EACrB,+BAA+B,GAChC,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,aAAa,EACb,aAAa,EACb,cAAc,EACd,UAAU,EACV,WAAW,EACX,yBAAyB,EACzB,eAAe,EACf,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,2BAA2B,EAC3B,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type { GridBaseColDef, GridValidRowModel } from './types';
2
+ export type GridNumberCellDensity = 'default' | 'compact';
3
+ export type GridDeltaNumberSymbol = 'arrow' | 'trendline' | 'sign';
4
+ export interface GridPolarityNumberColDefOptions {
5
+ /**
6
+ * `default` uses body-md. `compact` uses body-sm.
7
+ * @default 'default'
8
+ */
9
+ density?: GridNumberCellDensity;
10
+ /**
11
+ * Formats the raw signed number. The cell turns a leading hyphen into −.
12
+ * Sorting uses the raw number. The header filter matches the number column's
13
+ * formatted value, not this string.
14
+ */
15
+ valueFormatter?: (value: number) => string;
16
+ }
17
+ export interface GridDeltaNumberColDefOptions {
18
+ /**
19
+ * Whether an increase is a favorable change. Color follows this together with
20
+ * the value's direction: an increase is success when this is true and danger
21
+ * when it is false; a decrease flips that. Zero stays primary either way.
22
+ * @default true
23
+ */
24
+ increaseIsGood?: boolean;
25
+ /**
26
+ * `arrow` uses drop arrows and leaves flat values blank. `trendline` uses
27
+ * trending icons, including a flat icon at zero. `sign` writes + or − in
28
+ * front of the value. Arrow and trendline hide the minus sign.
29
+ * @default 'arrow'
30
+ */
31
+ symbol?: GridDeltaNumberSymbol;
32
+ /**
33
+ * `default` uses body-md. `compact` uses body-sm.
34
+ * @default 'default'
35
+ */
36
+ density?: GridNumberCellDensity;
37
+ /**
38
+ * Formats the raw signed number. The cell applies the symbol's sign treatment
39
+ * on top of this string. Sorting uses the raw number. The header filter matches
40
+ * the number column's formatted value, not this string.
41
+ */
42
+ valueFormatter?: (value: number) => string;
43
+ }
44
+ export declare function gridPolarityNumberColDef<R extends GridValidRowModel>(options?: GridPolarityNumberColDefOptions): Pick<GridBaseColDef<R>, 'type' | 'align' | 'headerAlign' | 'renderCell' | 'valueFormatter'>;
45
+ export declare function gridDeltaNumberColDef<R extends GridValidRowModel>(options?: GridDeltaNumberColDefOptions): Pick<GridBaseColDef<R>, 'type' | 'align' | 'headerAlign' | 'renderCell' | 'valueFormatter'>;
46
+ //# sourceMappingURL=numberCells.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numberCells.d.ts","sourceRoot":"","sources":["../../src/numberCells.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAc,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAO7E,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC;AAEnE,MAAM,WAAW,+BAA+B;IAC9C;;;OAGG;IACH,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C;AAED,MAAM,WAAW,4BAA4B;IAC3C;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B;;;OAGG;IACH,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C;AAkRD,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,iBAAiB,EAClE,OAAO,GAAE,+BAAoC,GAC5C,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,YAAY,GAAG,gBAAgB,CAAC,CAa7F;AAED,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,iBAAiB,EAC/D,OAAO,GAAE,4BAAiC,GACzC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,YAAY,GAAG,gBAAgB,CAAC,CAsB7F"}
@@ -5,6 +5,17 @@ export declare const dataGridMainVariants: (props?: ({
5
5
  autoHeight?: boolean | null | undefined;
6
6
  overlay?: boolean | null | undefined;
7
7
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ /**
9
+ * Opaque sticky fill so pinned cells cover scrolled content.
10
+ * Body hover matches the row's 50% secondary tint, mixed over the primary surface
11
+ * so the cell stays opaque while content scrolls underneath.
12
+ */
13
+ export declare const dataGridPinnedSurfaceVariants: (props?: ({
14
+ header?: boolean | null | undefined;
15
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
16
+ export declare const dataGridPinnedEdgeVariants: (props?: ({
17
+ edge?: "start" | "end" | "none" | null | undefined;
18
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
19
  export declare const dataGridToolbarVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
9
20
  export declare const dataGridToolbarSearchVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
10
21
  export declare const dataGridToolbarActionsVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
@@ -26,9 +37,30 @@ export declare const dataGridTableVariants: (props?: import("class-variance-auth
26
37
  export declare const dataGridHeaderVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
27
38
  export declare const dataGridBodyVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
28
39
  export declare const dataGridFilterInputVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
40
+ export declare const dataGridFilterPanelVariants: (props?: ({
41
+ anchored?: boolean | null | undefined;
42
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
43
+ export declare const dataGridFilterPanelRowVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
44
+ export declare const dataGridFilterPanelLogicVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
45
+ export declare const dataGridFilterPanelFieldVariants: (props?: ({
46
+ size?: "operator" | "value" | "column" | null | undefined;
47
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
48
+ export declare const dataGridFilterPanelColumnVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
49
+ export declare const dataGridFilterPanelOperatorVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
50
+ export declare const dataGridFilterPanelValueVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
51
+ export declare const dataGridFilterPanelFooterVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
29
52
  export declare const dataGridHeadVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
30
53
  export declare const dataGridSelectHeadVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
31
54
  export declare const dataGridCellVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
55
+ export declare const dataGridDetailToggleCellVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
56
+ export declare const dataGridTreeCellInnerVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
57
+ export declare const dataGridTreeToggleSlotVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
58
+ export declare const dataGridTreeContentVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
59
+ export declare const dataGridDetailPanelCellVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
60
+ export declare const dataGridCellTextVariants: (props?: ({
61
+ align?: "start" | "center" | "end" | null | undefined;
62
+ fitToColumn?: boolean | null | undefined;
63
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
32
64
  export declare const dataGridSelectCellVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
33
65
  export declare const dataGridPaginationVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
34
66
  export declare const dataGridPaginationRangeVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB;;8EAahC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;8EAoBhC,CAAC;AAEF,eAAO,MAAM,uBAAuB,oFAEnC,CAAC;AAEF,eAAO,MAAM,6BAA6B,oFAAiC,CAAC;AAE5E,eAAO,MAAM,8BAA8B,oFAA6C,CAAC;AAEzF,eAAO,MAAM,sBAAsB,oFAElC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;8EAanC,CAAC;AAEF,eAAO,MAAM,4BAA4B,oFAExC,CAAC;AAIF,eAAO,MAAM,+BAA+B;;;8EAgB1C,CAAC;AAEH,eAAO,MAAM,2BAA2B,oFAAyD,CAAC;AAIlG,eAAO,MAAM,0BAA0B;;;8EAerC,CAAC;AAGH,eAAO,MAAM,qBAAqB,oFAKjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,oFAMjC,CAAC;AAEH,eAAO,MAAM,oBAAoB,oFAKhC,CAAC;AAEF,eAAO,MAAM,2BAA2B,oFAAkB,CAAC;AAE3D,eAAO,MAAM,oBAAoB,oFAM/B,CAAC;AAEH,eAAO,MAAM,0BAA0B,oFAMrC,CAAC;AAEH,eAAO,MAAM,oBAAoB,oFAM/B,CAAC;AAEH,eAAO,MAAM,0BAA0B,oFAMrC,CAAC;AAEH,eAAO,MAAM,0BAA0B,oFAA2D,CAAC;AAEnG,eAAO,MAAM,+BAA+B,oFAAuB,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB;;8EAahC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;8EAoBhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B;;8EAmBzC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;8EAiBrC,CAAC;AAEH,eAAO,MAAM,uBAAuB,oFAEnC,CAAC;AAEF,eAAO,MAAM,6BAA6B,oFAAiC,CAAC;AAE5E,eAAO,MAAM,8BAA8B,oFAA6C,CAAC;AAEzF,eAAO,MAAM,sBAAsB,oFAElC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;8EAanC,CAAC;AAEF,eAAO,MAAM,4BAA4B,oFAExC,CAAC;AAIF,eAAO,MAAM,+BAA+B;;;8EAgB1C,CAAC;AAEH,eAAO,MAAM,2BAA2B,oFAAyD,CAAC;AAIlG,eAAO,MAAM,0BAA0B;;;8EAerC,CAAC;AAGH,eAAO,MAAM,qBAAqB,oFAKjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,oFAMjC,CAAC;AAEH,eAAO,MAAM,oBAAoB,oFAKhC,CAAC;AAEF,eAAO,MAAM,2BAA2B,oFAAkB,CAAC;AAI3D,eAAO,MAAM,2BAA2B;;8EAavC,CAAC;AAIF,eAAO,MAAM,8BAA8B,oFAA4C,CAAC;AAExF,eAAO,MAAM,gCAAgC,oFAA8C,CAAC;AAE5F,eAAO,MAAM,gCAAgC;;8EAQ3C,CAAC;AAEH,eAAO,MAAM,iCAAiC,oFAAgB,CAAC;AAE/D,eAAO,MAAM,mCAAmC,oFAAgB,CAAC;AAEjE,eAAO,MAAM,gCAAgC,oFAAgB,CAAC;AAE9D,eAAO,MAAM,iCAAiC,oFAE7C,CAAC;AAEF,eAAO,MAAM,oBAAoB,oFAM/B,CAAC;AAEH,eAAO,MAAM,0BAA0B,oFAMrC,CAAC;AAEH,eAAO,MAAM,oBAAoB,oFAM/B,CAAC;AAEH,eAAO,MAAM,gCAAgC,oFAM3C,CAAC;AAGH,eAAO,MAAM,6BAA6B,oFAAoD,CAAC;AAE/F,eAAO,MAAM,8BAA8B,oFAAqD,CAAC;AAEjG,eAAO,MAAM,2BAA2B,oFAA8C,CAAC;AAEvF,eAAO,MAAM,+BAA+B,oFAM1C,CAAC;AAIH,eAAO,MAAM,wBAAwB;;;8EAgBnC,CAAC;AAEH,eAAO,MAAM,0BAA0B,oFAMrC,CAAC;AAEH,eAAO,MAAM,0BAA0B,oFAA2D,CAAC;AAEnG,eAAO,MAAM,+BAA+B,oFAAuB,CAAC"}
@@ -18,18 +18,66 @@ export interface GridRowSelectionModel {
18
18
  type: 'include' | 'exclude';
19
19
  ids: Set<GridRowId>;
20
20
  }
21
+ /**
22
+ * Filter operators. Names match MUI Data Grid Community so server handlers written for
23
+ * MUI keep working. Which operators a column accepts depends on its `type`.
24
+ */
25
+ export type GridFilterOperator = 'contains' | 'doesNotContain' | 'equals' | 'doesNotEqual' | 'startsWith' | 'endsWith' | 'isEmpty' | 'isNotEmpty' | 'isAnyOf' | '=' | '!=' | '>' | '>=' | '<' | '<=' | 'is' | 'not' | 'after' | 'onOrAfter' | 'before' | 'onOrBefore';
21
26
  export interface GridFilterItem {
22
27
  field: string;
23
- value: string;
28
+ /** Defaults to `'contains'`, a case-insensitive substring match on the displayed text. */
29
+ operator?: GridFilterOperator;
30
+ /**
31
+ * Operand for `operator`: a string for text, a number for `number`, a `Date` for `date` /
32
+ * `dateTime`, a boolean for `boolean`, a `singleSelect` option value, or an array for
33
+ * `isAnyOf`. `isEmpty` and `isNotEmpty` ignore it.
34
+ */
35
+ value?: unknown;
24
36
  }
25
37
  export type GridFilterModel = GridFilterItem[];
38
+ /**
39
+ * Columns pinned to the logical start and end edges while the grid scrolls
40
+ * horizontally.
41
+ *
42
+ * `left` and `right` are deprecated compatibility aliases for `start` and `end`
43
+ * (same mapping as `GridColDef.align`).
44
+ */
45
+ export interface GridPinnedColumnFields {
46
+ start?: string[];
47
+ end?: string[];
48
+ /**
49
+ * @deprecated Use `start` instead.
50
+ */
51
+ left?: string[];
52
+ /**
53
+ * @deprecated Use `end` instead.
54
+ */
55
+ right?: string[];
56
+ }
57
+ /** How `filterModel` items combine: every item must match (`'and'`) or any one item (`'or'`). */
58
+ export type GridLogicOperator = 'and' | 'or';
26
59
  export interface GridRenderCellParams<R extends GridValidRowModel = GridValidRowModel> {
27
60
  value: unknown;
28
61
  row: R;
29
62
  field: string;
30
63
  id: GridRowId;
64
+ /** The column being rendered, including props spread after a column preset. */
65
+ col: GridColDef<R>;
31
66
  }
32
- export interface GridColDef<R extends GridValidRowModel = GridValidRowModel> {
67
+ /**
68
+ * Built-in column types. Names and defaults match MUI Data Grid Community.
69
+ * Omit `type` to keep untyped display, alignment, and sort.
70
+ */
71
+ export type GridColType = 'string' | 'number' | 'date' | 'dateTime' | 'boolean' | 'singleSelect';
72
+ /**
73
+ * A `singleSelect` choice: a primitive (value and label are the same) or an
74
+ * explicit `{ value, label }` pair.
75
+ */
76
+ export type GridValueOption = string | number | {
77
+ value: string | number;
78
+ label: string;
79
+ };
80
+ export interface GridBaseColDef<R extends GridValidRowModel = GridValidRowModel> {
33
81
  field: string;
34
82
  headerName?: string;
35
83
  width?: number;
@@ -39,25 +87,61 @@ export interface GridColDef<R extends GridValidRowModel = GridValidRowModel> {
39
87
  * Logical cell-content alignment.
40
88
  *
41
89
  * `left` and `right` are deprecated compatibility aliases for `start` and `end`.
42
- * @default 'start'
90
+ * When omitted, `number` defaults to `end`, `boolean` to `center`, and every
91
+ * other type (including omitted `type`) to `start`.
43
92
  */
44
93
  align?: GridAlignment;
45
94
  /**
46
- * Logical header-content alignment. Defaults to `align`.
95
+ * Logical header-content alignment. Defaults to `align`, then the type default.
47
96
  *
48
97
  * `left` and `right` are deprecated compatibility aliases for `start` and `end`.
49
98
  */
50
99
  headerAlign?: GridAlignment;
51
100
  sortable?: boolean;
52
101
  filterable?: boolean;
53
- type?: 'string';
102
+ /**
103
+ * Column value type. Drives default alignment, display formatting, and client
104
+ * sort/filter. Omitted `type` keeps the untyped defaults from the current release.
105
+ */
106
+ type?: Exclude<GridColType, 'singleSelect'>;
54
107
  valueGetter?: (value: unknown, row: R, col: GridColDef<R>) => unknown;
55
108
  valueFormatter?: (value: unknown, row: R, col: GridColDef<R>) => ReactNode | string;
56
109
  renderCell?: (params: GridRenderCellParams<R>) => ReactNode;
57
110
  renderHeader?: () => ReactNode;
58
111
  }
112
+ export interface GridSingleSelectColDef<R extends GridValidRowModel = GridValidRowModel> extends Omit<GridBaseColDef<R>, 'type'> {
113
+ type: 'singleSelect';
114
+ /**
115
+ * Choices for a `singleSelect` column. Use `{ value, label }` when the stored
116
+ * value differs from the displayed text. A function receives the row when labels
117
+ * depend on other fields.
118
+ */
119
+ valueOptions: readonly GridValueOption[] | ((params: {
120
+ row?: R;
121
+ }) => readonly GridValueOption[]);
122
+ }
123
+ export type GridColDef<R extends GridValidRowModel = GridValidRowModel> = GridBaseColDef<R> | GridSingleSelectColDef<R>;
59
124
  export type GridFeatureMode = 'client' | 'server';
60
125
  export type GridPaginationMode = GridFeatureMode;
126
+ /** Maps a column `field` to `false` to hide it. Fields that are missing or `true` stay visible. */
127
+ export type GridColumnVisibilityModel = Record<string, boolean>;
128
+ export interface GridRowParams<R extends GridValidRowModel = GridValidRowModel> {
129
+ id: GridRowId;
130
+ row: R;
131
+ }
132
+ export interface GridTreeNodeParams<R extends GridValidRowModel = GridValidRowModel> extends GridRowParams<R> {
133
+ /** `0` for top-level rows. */
134
+ depth: number;
135
+ }
136
+ /**
137
+ * How a selection change spreads through `treeData`. Both default to `true`, as in MUI.
138
+ */
139
+ export interface GridRowSelectionPropagation {
140
+ /** Selecting or deselecting a parent applies to its descendants that pass the current filter. */
141
+ descendants?: boolean;
142
+ /** A parent is selected exactly when all of its children are selected. */
143
+ parents?: boolean;
144
+ }
61
145
  export interface DataGridProps<R extends GridValidRowModel = GridValidRowModel> {
62
146
  rows: GridRowsProp<R>;
63
147
  columns: readonly GridColDef<R>[];
@@ -101,14 +185,72 @@ export interface DataGridProps<R extends GridValidRowModel = GridValidRowModel>
101
185
  filterModel?: GridFilterModel;
102
186
  defaultFilterModel?: GridFilterModel;
103
187
  onFilterModelChange?: (model: GridFilterModel) => void;
188
+ /** Combines `filterModel` items. Defaults to `'and'`. The quick filter always applies on top. */
189
+ filterLogicOperator?: GridLogicOperator;
190
+ defaultFilterLogicOperator?: GridLogicOperator;
191
+ onFilterLogicOperatorChange?: (operator: GridLogicOperator) => void;
104
192
  quickFilter?: string;
105
193
  defaultQuickFilter?: string;
106
194
  onQuickFilterChange?: (value: string) => void;
107
- /** Shows the toolbar search field. Off by default, same as MUI Community. */
195
+ /** Shows the toolbar search field and filter button. Off by default, same as MUI Community. */
108
196
  showToolbar?: boolean;
109
- /** Consumer-owned toolbar controls beside search (export, density, toggles, etc.). Wire actions to app state that drives grid props — DataGrid does not ship toolbar buttons. */
197
+ /** Consumer-owned toolbar controls beside search and the filter button (export, density, toggles, etc.). Wire actions to app state that drives grid props. */
110
198
  toolbarActions?: ReactNode;
199
+ /**
200
+ * Pins columns to the logical start and/or end edge while the grid scrolls
201
+ * horizontally. Replaces MUI X Pro `pinnedColumns` (including deprecated
202
+ * `left` / `right` aliases). MUI X `initialState.pinnedColumns` maps here.
203
+ *
204
+ * MUI X Community ships no column pinning; this is a Pro feature.
205
+ */
206
+ pinnedColumns?: GridPinnedColumnFields;
207
+ /**
208
+ * Hides columns without removing them from `columns`. Hidden columns still sort, filter, and
209
+ * match the quick filter, and the filter panel still lists them. The grid has no built-in
210
+ * control that changes visibility, so keep the model in your own state.
211
+ */
212
+ columnVisibilityModel?: GridColumnVisibilityModel;
111
213
  headerFilters?: boolean;
214
+ /**
215
+ * Renders `rows` as a tree. Each row's position comes from `getTreeDataPath`. The first column
216
+ * becomes the tree column: it indents by depth and holds the expand toggle and, with
217
+ * `checkboxSelection`, the row checkbox. Search and filters keep the ancestors of every match
218
+ * and expand them while the filter is active.
219
+ *
220
+ * Client mode only: server pagination, sorting, and filtering are not supported with tree data.
221
+ * Pagination counts top-level rows, so a group never splits across pages.
222
+ * @default false
223
+ */
224
+ treeData?: boolean;
225
+ /**
226
+ * Path from the root to the row, for example `['Accounts', 'OAuth V1', 'List accounts']`.
227
+ * Paths must be unique. A row whose parent path has no row attaches to its nearest existing
228
+ * ancestor. Keep the function reference stable.
229
+ */
230
+ getTreeDataPath?: (row: R) => readonly string[];
231
+ /**
232
+ * Overrides the tree column (the first column) when `treeData` is on: header name, width,
233
+ * `renderCell`, and so on. `field` stays the first column's field.
234
+ */
235
+ groupingColDef?: Partial<Omit<GridBaseColDef<R>, 'field'>>;
236
+ /** Depth expanded on first render. `0` collapses every group; `-1` expands all. @default 0 */
237
+ defaultGroupingExpansionDepth?: number;
238
+ /** Takes priority over `defaultGroupingExpansionDepth` for the initial state of a group. */
239
+ isGroupExpandedByDefault?: (node: GridTreeNodeParams<R>) => boolean;
240
+ /**
241
+ * How selection spreads between parents and children with `treeData`. Unlike MUI, rows hidden
242
+ * by a filter stay selected, so a search-then-pick form keeps earlier picks.
243
+ */
244
+ rowSelectionPropagation?: GridRowSelectionPropagation;
245
+ /**
246
+ * Content of the expandable panel under a row (master-detail). Adds a toggle column at the
247
+ * start. Rows for which this returns `null` or `undefined` get no toggle.
248
+ */
249
+ getDetailPanelContent?: (params: GridRowParams<R>) => ReactNode;
250
+ /** Ids of rows whose detail panel is open (controlled). */
251
+ detailPanelExpandedRowIds?: ReadonlySet<GridRowId>;
252
+ defaultDetailPanelExpandedRowIds?: ReadonlySet<GridRowId>;
253
+ onDetailPanelExpandedRowIdsChange?: (ids: Set<GridRowId>) => void;
112
254
  /** Replaces the default centered "No rows" message. Shown when `rows` is empty and not loading. */
113
255
  noRowsOverlay?: ReactNode;
114
256
  /** Replaces the default skeleton rows shown when `loading` is true. */
@@ -120,6 +262,11 @@ export interface DataGridProps<R extends GridValidRowModel = GridValidRowModel>
120
262
  'aria-labelledby'?: string;
121
263
  }
122
264
  export declare const SELECT_COLUMN_ID = "__select__";
265
+ /** Same id as MUI X's master-detail toggle column. */
266
+ export declare const DETAIL_PANEL_TOGGLE_ID = "__detail_panel_toggle__";
267
+ export declare const EMPTY_ROW_ID_SET: ReadonlySet<GridRowId>;
268
+ /** MUI X Data Grid checkbox-column field; accepted as an alias for {@link SELECT_COLUMN_ID}. */
269
+ export declare const MUI_CHECKBOX_FIELD = "__check__";
123
270
  export declare const DEFAULT_PAGE_SIZE_OPTIONS: readonly [25, 50, 100];
124
271
  export declare const DEFAULT_PAGINATION_MODEL: GridPaginationModel;
125
272
  export declare const EMPTY_SELECTION: GridRowSelectionModel;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,16 @@
1
- import { type ColumnFiltersState, type PaginationState, type RowSelectionState, type SortingState } from '@tanstack/react-table';
2
- import type { GridColDef, GridFeatureMode, GridFilterModel, GridPaginationModel, GridRowId, GridRowSelectionModel, GridRowsProp, GridSortModel, GridValidRowModel } from './types';
1
+ import { type ColumnFiltersState, type ColumnPinningState, type PaginationState, type RowSelectionState, type SortingState } from '@tanstack/react-table';
2
+ import { type GridTreeRowLike, type GridTreeSelectionStatus } from './adapter/treeData';
3
+ import { sortFn_boolean, sortFn_datetime, sortFn_number, sortFn_selectLabel } from './adapter/columnTypes';
4
+ import type { GridColDef, GridColumnVisibilityModel, GridFeatureMode, GridFilterModel, GridLogicOperator, GridPaginationModel, GridRowId, GridRowSelectionModel, GridRowSelectionPropagation, GridRowsProp, GridSortModel, GridTreeNodeParams, GridValidRowModel } from './types';
3
5
  export declare function sortModelToSortingState(model: GridSortModel): SortingState;
4
6
  export declare function sortingStateToSortModel(state: SortingState): GridSortModel;
5
7
  export declare function paginationModelToState(model: GridPaginationModel): PaginationState;
6
8
  export declare function paginationStateToModel(state: PaginationState): GridPaginationModel;
9
+ /**
10
+ * Items without an `operator` keep today's text filter. Items with one carry the operator and
11
+ * typed operand into the column filter. An item whose operator needs a value but has none is
12
+ * dropped, so `isEmpty` / `isNotEmpty` survive a blank `value` and nothing else does.
13
+ */
7
14
  export declare function filterModelToColumnFilters(model: GridFilterModel): ColumnFiltersState;
8
15
  export declare function columnFiltersToFilterModel(state: ColumnFiltersState): GridFilterModel;
9
16
  export declare function selectionModelToRowSelection(model: GridRowSelectionModel, allIds: GridRowId[]): RowSelectionState;
@@ -25,15 +32,38 @@ interface UseDataGridTableParams<R extends GridValidRowModel> {
25
32
  onPaginationModelChange: (model: GridPaginationModel) => void;
26
33
  filterModel: GridFilterModel;
27
34
  onFilterModelChange: (model: GridFilterModel) => void;
35
+ filterLogicOperator: GridLogicOperator;
28
36
  quickFilter: string;
29
37
  onQuickFilterChange: (value: string) => void;
30
38
  rowSelectionModel: GridRowSelectionModel;
31
39
  onRowSelectionModelChange: (model: GridRowSelectionModel) => void;
40
+ columnPinning: ColumnPinningState;
41
+ columnVisibility?: GridColumnVisibilityModel;
42
+ detailPanel?: boolean;
43
+ treeData?: boolean;
44
+ getTreeDataPath?: (row: R) => readonly string[];
45
+ defaultGroupingExpansionDepth?: number;
46
+ isGroupExpandedByDefault?: (node: GridTreeNodeParams<R>) => boolean;
47
+ rowSelectionPropagation?: GridRowSelectionPropagation;
32
48
  }
33
- export declare function useDataGridTable<R extends GridValidRowModel>({ rows, columns, getRowId, checkboxSelection, disableColumnSorting, paginationMode, sortingMode, filterMode, rowCount, sortModel, onSortModelChange, paginationModel, onPaginationModelChange, filterModel, onFilterModelChange, quickFilter, onQuickFilterChange, rowSelectionModel, onRowSelectionModelChange, }: UseDataGridTableParams<R>): {
49
+ export interface DataGridTreeState {
50
+ isRowExpanded: (key: string) => boolean;
51
+ toggleRowExpanded: (key: string) => void;
52
+ selectionStatus: (key: string) => GridTreeSelectionStatus;
53
+ toggleRowSelected: (row: GridTreeRowLike) => void;
54
+ toggleAllRowsSelected: () => void;
55
+ headerSelection: {
56
+ checked: boolean;
57
+ indeterminate: boolean;
58
+ };
59
+ }
60
+ export declare function useDataGridTable<R extends GridValidRowModel>({ rows, columns, getRowId, checkboxSelection, disableColumnSorting, paginationMode, sortingMode, filterMode, rowCount, sortModel, onSortModelChange, paginationModel, onPaginationModelChange, filterModel, onFilterModelChange, filterLogicOperator, quickFilter, onQuickFilterChange, rowSelectionModel, onRowSelectionModelChange, columnPinning, columnVisibility, detailPanel, treeData: treeDataProp, getTreeDataPath, defaultGroupingExpansionDepth, isGroupExpandedByDefault, rowSelectionPropagation, }: UseDataGridTableParams<R>): {
34
61
  table: import("@tanstack/react-table").ReactTable<{
35
62
  columnFilteringFeature: import("@tanstack/react-table").TableFeature;
63
+ columnPinningFeature: import("@tanstack/react-table").TableFeature;
64
+ columnVisibilityFeature: import("@tanstack/react-table").TableFeature;
36
65
  globalFilteringFeature: import("@tanstack/react-table").TableFeature;
66
+ rowExpandingFeature: import("@tanstack/react-table").TableFeature;
37
67
  rowSortingFeature: import("@tanstack/react-table").TableFeature;
38
68
  rowPaginationFeature: import("@tanstack/react-table").TableFeature;
39
69
  rowSelectionFeature: import("@tanstack/react-table").TableFeature;
@@ -46,10 +76,16 @@ export declare function useDataGridTable<R extends GridValidRowModel>({ rows, co
46
76
  sortFns: {
47
77
  alphanumeric: import("@tanstack/react-table").CreatedSortFn<any, any>;
48
78
  text: import("@tanstack/react-table").CreatedSortFn<any, any>;
79
+ number: typeof sortFn_number;
80
+ datetime: typeof sortFn_datetime;
81
+ boolean: typeof sortFn_boolean;
82
+ selectLabel: typeof sortFn_selectLabel;
49
83
  };
50
- }, R, import("@tanstack/react-table").TableState_ColumnFiltering & import("@tanstack/react-table").TableState_GlobalFiltering & import("@tanstack/react-table").TableState_RowPagination & import("@tanstack/react-table").TableState_RowSelection & import("@tanstack/react-table").TableState_RowSorting>;
84
+ }, R, import("@tanstack/react-table").TableState_ColumnFiltering & import("@tanstack/react-table").TableState_ColumnPinning & import("@tanstack/react-table").TableState_ColumnVisibility & import("@tanstack/react-table").TableState_GlobalFiltering & import("@tanstack/react-table").TableState_RowExpanding & import("@tanstack/react-table").TableState_RowPagination & import("@tanstack/react-table").TableState_RowSelection & import("@tanstack/react-table").TableState_RowSorting>;
51
85
  setQuickFilter: (value: string) => void;
52
86
  setColumnFilter: (field: string, value: string) => void;
87
+ setFilterModel: (model: GridFilterModel) => void;
88
+ tree: DataGridTreeState | undefined;
53
89
  };
54
90
  export {};
55
91
  //# sourceMappingURL=useDataGridTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDataGridTable.d.ts","sourceRoot":"","sources":["../../src/useDataGridTable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDataGridTable.d.ts","sourceRoot":"","sources":["../../src/useDataGridTable.ts"],"names":[],"mappings":"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"}