@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
@@ -1,6 +1,44 @@
1
1
  "use strict";
2
2
 
3
+ /**
4
+ * Filter operators. Names match MUI Data Grid Community so server handlers written for
5
+ * MUI keep working. Which operators a column accepts depends on its `type`.
6
+ */
7
+
8
+ /**
9
+ * Columns pinned to the logical start and end edges while the grid scrolls
10
+ * horizontally.
11
+ *
12
+ * `left` and `right` are deprecated compatibility aliases for `start` and `end`
13
+ * (same mapping as `GridColDef.align`).
14
+ */
15
+
16
+ /** How `filterModel` items combine: every item must match (`'and'`) or any one item (`'or'`). */
17
+
18
+ /**
19
+ * Built-in column types. Names and defaults match MUI Data Grid Community.
20
+ * Omit `type` to keep untyped display, alignment, and sort.
21
+ */
22
+
23
+ /**
24
+ * A `singleSelect` choice: a primitive (value and label are the same) or an
25
+ * explicit `{ value, label }` pair.
26
+ */
27
+
28
+ /** Maps a column `field` to `false` to hide it. Fields that are missing or `true` stay visible. */
29
+
30
+ /**
31
+ * How a selection change spreads through `treeData`. Both default to `true`, as in MUI.
32
+ */
33
+
3
34
  export const SELECT_COLUMN_ID = '__select__';
35
+
36
+ /** Same id as MUI X's master-detail toggle column. */
37
+ export const DETAIL_PANEL_TOGGLE_ID = '__detail_panel_toggle__';
38
+ export const EMPTY_ROW_ID_SET = new Set();
39
+
40
+ /** MUI X Data Grid checkbox-column field; accepted as an alias for {@link SELECT_COLUMN_ID}. */
41
+ export const MUI_CHECKBOX_FIELD = '__check__';
4
42
  export const DEFAULT_PAGE_SIZE_OPTIONS = [25, 50, 100];
5
43
  export const DEFAULT_PAGINATION_MODEL = {
6
44
  page: 0,
@@ -1 +1 @@
1
- {"version":3,"names":["SELECT_COLUMN_ID","DEFAULT_PAGE_SIZE_OPTIONS","DEFAULT_PAGINATION_MODEL","page","pageSize","EMPTY_SELECTION","type","ids","Set"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AAuIA,OAAO,MAAMA,gBAAgB,GAAG,YAAY;AAE5C,OAAO,MAAMC,yBAAyB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAU;AAE/D,OAAO,MAAMC,wBAA6C,GAAG;EAC3DC,IAAI,EAAE,CAAC;EACPC,QAAQ,EAAE;AACZ,CAAC;AAED,OAAO,MAAMC,eAAsC,GAAG;EACpDC,IAAI,EAAE,SAAS;EACfC,GAAG,EAAE,IAAIC,GAAG,CAAC;AACf,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["SELECT_COLUMN_ID","DETAIL_PANEL_TOGGLE_ID","EMPTY_ROW_ID_SET","Set","MUI_CHECKBOX_FIELD","DEFAULT_PAGE_SIZE_OPTIONS","DEFAULT_PAGINATION_MODEL","page","pageSize","EMPTY_SELECTION","type","ids"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AA8BA;AACA;AACA;AACA;;AAsCA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcA;;AAYA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAwDA;;AAeA;AACA;AACA;;AA6HA,OAAO,MAAMA,gBAAgB,GAAG,YAAY;;AAE5C;AACA,OAAO,MAAMC,sBAAsB,GAAG,yBAAyB;AAE/D,OAAO,MAAMC,gBAAwC,GAAG,IAAIC,GAAG,CAAC,CAAC;;AAEjE;AACA,OAAO,MAAMC,kBAAkB,GAAG,WAAW;AAE7C,OAAO,MAAMC,yBAAyB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAU;AAE/D,OAAO,MAAMC,wBAA6C,GAAG;EAC3DC,IAAI,EAAE,CAAC;EACPC,QAAQ,EAAE;AACZ,CAAC;AAED,OAAO,MAAMC,eAAsC,GAAG;EACpDC,IAAI,EAAE,SAAS;EACfC,GAAG,EAAE,IAAIR,GAAG,CAAC;AACf,CAAC","ignoreList":[]}
@@ -1,13 +1,29 @@
1
1
  "use strict";
2
2
 
3
- import { useMemo } from 'react';
4
- import { columnFilteringFeature, createFilteredRowModel, createPaginatedRowModel, createSortedRowModel, filterFn_includesString, globalFilteringFeature, rowPaginationFeature, rowSelectionFeature, rowSortingFeature, sortFn_alphanumeric, sortFn_text, tableFeatures, useTable } from '@tanstack/react-table';
5
- import { createSelectColumn } from './adapter/selectColumn';
3
+ import { useMemo, useState } from 'react';
4
+ import { columnFilteringFeature, columnPinningFeature, columnVisibilityFeature, createFilteredRowModel, createPaginatedRowModel, createSortedRowModel, filterFn_includesString, globalFilteringFeature, rowExpandingFeature, rowPaginationFeature, rowSelectionFeature, rowSortingFeature, sortFn_alphanumeric, sortFn_text, tableFeatures, useTable } from '@tanstack/react-table';
5
+ import { createDetailPanelToggleColumn, createSelectColumn } from './adapter/selectColumn';
6
+ import { applyTreeSelection, buildTreeIndex, computeTreeSelection, keepMatchesWithAncestors, selectionScope } from './adapter/treeData';
6
7
  import { applyUpdater, gridColDefToColumnDef } from './adapter/columns';
7
- import { SELECT_COLUMN_ID } from './types';
8
+ import { filterFn_displayText, metaUsesDisplayFilter, normalizeFilterQuery, sortFn_boolean, sortFn_datetime, sortFn_number, sortFn_selectLabel, untypedCellIncludesQuery } from './adapter/columnTypes';
9
+ import { filterOperatorNeedsValue, isActiveFilterItem, isBlankFilterValue, isFilterValueGroup, isOperatorFilterValue, rowMatchesFilterItem } from './adapter/filterOperators';
10
+ import { DETAIL_PANEL_TOGGLE_ID, SELECT_COLUMN_ID } from './types';
11
+ function gridGlobalFilterFn(row, columnId, filterValue) {
12
+ if (columnId === SELECT_COLUMN_ID || columnId === DETAIL_PANEL_TOGGLE_ID) {
13
+ return false;
14
+ }
15
+ const meta = row.getAllCells().find(cell => cell.column.id === columnId)?.column.columnDef.meta;
16
+ if (metaUsesDisplayFilter(meta)) {
17
+ return filterFn_displayText(row, columnId, filterValue);
18
+ }
19
+ return untypedCellIncludesQuery(row.getValue(columnId), normalizeFilterQuery(filterValue));
20
+ }
8
21
  const features = tableFeatures({
9
22
  columnFilteringFeature,
23
+ columnPinningFeature,
24
+ columnVisibilityFeature,
10
25
  globalFilteringFeature,
26
+ rowExpandingFeature,
11
27
  rowSortingFeature,
12
28
  rowPaginationFeature,
13
29
  rowSelectionFeature,
@@ -19,7 +35,11 @@ const features = tableFeatures({
19
35
  },
20
36
  sortFns: {
21
37
  alphanumeric: sortFn_alphanumeric,
22
- text: sortFn_text
38
+ text: sortFn_text,
39
+ number: sortFn_number,
40
+ datetime: sortFn_datetime,
41
+ boolean: sortFn_boolean,
42
+ selectLabel: sortFn_selectLabel
23
43
  }
24
44
  });
25
45
  export function sortModelToSortingState(model) {
@@ -58,17 +78,60 @@ function columnFilterValueToString(value) {
58
78
  }
59
79
  return '';
60
80
  }
81
+
82
+ /**
83
+ * Items without an `operator` keep today's text filter. Items with one carry the operator and
84
+ * typed operand into the column filter. An item whose operator needs a value but has none is
85
+ * dropped, so `isEmpty` / `isNotEmpty` survive a blank `value` and nothing else does.
86
+ */
61
87
  export function filterModelToColumnFilters(model) {
62
- return model.filter(item => item.value.trim().length > 0).map(item => ({
63
- id: item.field,
64
- value: item.value
88
+ const valuesByField = new Map();
89
+ for (const item of model) {
90
+ let value;
91
+ if (item.operator !== undefined) {
92
+ if (filterOperatorNeedsValue(item.operator) && isBlankFilterValue(item.value)) {
93
+ continue;
94
+ }
95
+ value = {
96
+ operator: item.operator,
97
+ value: item.value
98
+ };
99
+ } else {
100
+ const text = columnFilterValueToString(item.value);
101
+ if (text.trim().length === 0) {
102
+ continue;
103
+ }
104
+ value = text;
105
+ }
106
+ const values = valuesByField.get(item.field);
107
+ if (values) {
108
+ values.push(value);
109
+ } else {
110
+ valuesByField.set(item.field, [value]);
111
+ }
112
+ }
113
+ return [...valuesByField].map(([id, values]) => ({
114
+ id,
115
+ value: values.length === 1 ? values[0] : {
116
+ items: values
117
+ }
65
118
  }));
66
119
  }
120
+ function columnFilterValueToItem(field, value) {
121
+ if (isOperatorFilterValue(value)) {
122
+ return {
123
+ field,
124
+ operator: value.operator,
125
+ value: value.value
126
+ };
127
+ }
128
+ return {
129
+ field,
130
+ value: columnFilterValueToString(value)
131
+ };
132
+ }
67
133
  export function columnFiltersToFilterModel(state) {
68
- return state.filter(item => item.id !== SELECT_COLUMN_ID).map(item => ({
69
- field: item.id,
70
- value: columnFilterValueToString(item.value)
71
- }));
134
+ return state.filter(item => item.id !== SELECT_COLUMN_ID).flatMap(item => isFilterValueGroup(item.value) ? item.value.items.map(value => columnFilterValueToItem(item.id, value)) : [columnFilterValueToItem(item.id, item.value)]);
72
135
  }
73
136
  function selectionIdKey(id) {
74
137
  return `${typeof id}:${String(id)}`;
@@ -133,6 +196,10 @@ export function resolveRowId(row, getRowId) {
133
196
  }
134
197
  return '';
135
198
  }
199
+ const EMPTY_EXPANSION = {};
200
+ const EMPTY_FILTER_EXPANSION = {};
201
+ const EMPTY_VISIBILITY = {};
202
+ let warnedMissingTreeDataPath = false;
136
203
  export function useDataGridTable({
137
204
  rows,
138
205
  columns,
@@ -149,13 +216,55 @@ export function useDataGridTable({
149
216
  onPaginationModelChange,
150
217
  filterModel,
151
218
  onFilterModelChange,
219
+ filterLogicOperator,
152
220
  quickFilter,
153
221
  onQuickFilterChange,
154
222
  rowSelectionModel,
155
- onRowSelectionModelChange
223
+ onRowSelectionModelChange,
224
+ columnPinning,
225
+ columnVisibility = EMPTY_VISIBILITY,
226
+ detailPanel = false,
227
+ treeData: treeDataProp = false,
228
+ getTreeDataPath,
229
+ defaultGroupingExpansionDepth = 0,
230
+ isGroupExpandedByDefault,
231
+ rowSelectionPropagation
156
232
  }) {
157
- const data = useMemo(() => [...rows], [rows]);
233
+ const treeData = treeDataProp && getTreeDataPath !== undefined;
234
+ if (__DEV__ && treeDataProp && getTreeDataPath === undefined && !warnedMissingTreeDataPath) {
235
+ warnedMissingTreeDataPath = true;
236
+ console.warn('[DataGrid] `treeData` needs `getTreeDataPath`. Rendering flat rows.');
237
+ }
238
+ const propagateDescendants = rowSelectionPropagation?.descendants ?? true;
239
+ const propagateParents = rowSelectionPropagation?.parents ?? true;
240
+ const orFilterItems = useMemo(() => {
241
+ if (filterLogicOperator !== 'or' || filterMode === 'server') {
242
+ return undefined;
243
+ }
244
+ const active = filterModel.filter(isActiveFilterItem);
245
+ return active.length > 1 ? active : undefined;
246
+ }, [filterLogicOperator, filterMode, filterModel]);
247
+ const keyOf = useMemo(() => row => selectionIdKey(resolveRowId(row, getRowId)), [getRowId]);
248
+ const fullTree = useMemo(() => treeData ? buildTreeIndex(rows, getTreeDataPath, keyOf) : undefined, [getTreeDataPath, keyOf, rows, treeData]);
249
+ const data = useMemo(() => {
250
+ if (!orFilterItems) {
251
+ return [...rows];
252
+ }
253
+ const filterableColumns = new Map(columns.filter(col => col.filterable !== false).map(col => [col.field, col]));
254
+ const matches = row => orFilterItems.some(item => {
255
+ const col = filterableColumns.get(item.field);
256
+ return col !== undefined && rowMatchesFilterItem(col, row, item);
257
+ });
258
+ return fullTree ? keepMatchesWithAncestors(rows, fullTree, keyOf, matches) : rows.filter(matches);
259
+ }, [columns, fullTree, keyOf, orFilterItems, rows]);
158
260
  const allIds = useMemo(() => data.map(row => resolveRowId(row, getRowId)), [data, getRowId]);
261
+ const allRowIds = useMemo(() => rows.map(row => resolveRowId(row, getRowId)), [rows, getRowId]);
262
+ const tree = useMemo(() => {
263
+ if (!fullTree || !getTreeDataPath) {
264
+ return undefined;
265
+ }
266
+ return data.length === rows.length ? fullTree : buildTreeIndex(data, getTreeDataPath, keyOf);
267
+ }, [data, fullTree, getTreeDataPath, keyOf, rows.length]);
159
268
  const columnDefs = useMemo(() => {
160
269
  const mapped = columns.map(col => {
161
270
  const def = gridColDefToColumnDef(col);
@@ -164,12 +273,68 @@ export function useDataGridTable({
164
273
  }
165
274
  return def;
166
275
  });
167
- return checkboxSelection ? [createSelectColumn(), ...mapped] : mapped;
168
- }, [checkboxSelection, columns, disableColumnSorting]);
276
+ return [...(checkboxSelection && !treeData ? [createSelectColumn()] : []), ...(detailPanel ? [createDetailPanelToggleColumn()] : []), ...mapped];
277
+ }, [checkboxSelection, columns, detailPanel, disableColumnSorting, treeData]);
169
278
  const sortingState = useMemo(() => sortModelToSortingState(sortModel), [sortModel]);
170
279
  const paginationState = useMemo(() => paginationModelToState(paginationModel), [paginationModel]);
171
- const columnFilterState = useMemo(() => filterModelToColumnFilters(filterModel), [filterModel]);
172
- const rowSelectionState = useMemo(() => selectionModelToRowSelection(rowSelectionModel, allIds), [rowSelectionModel, allIds]);
280
+ const columnFilterState = useMemo(() => orFilterItems ? [] : filterModelToColumnFilters(filterModel), [filterModel, orFilterItems]);
281
+ const rowSelectionState = useMemo(() => selectionModelToRowSelection(rowSelectionModel, treeData ? allRowIds : allIds), [rowSelectionModel, treeData, allRowIds, allIds]);
282
+ const filterSignature = treeData && filterMode === 'client' && (quickFilter.trim().length > 0 || filterModel.some(isActiveFilterItem)) ? JSON.stringify([quickFilter, filterModel, filterLogicOperator]) : '';
283
+ const [userExpanded, setUserExpanded] = useState({});
284
+ const [filterExpansion, setFilterExpansion] = useState({
285
+ signature: '',
286
+ expanded: {}
287
+ });
288
+ const filterExpanded = filterSignature !== '' && filterExpansion.signature === filterSignature ? filterExpansion.expanded : EMPTY_FILTER_EXPANSION;
289
+ const expandedState = useMemo(() => {
290
+ if (!tree) {
291
+ return EMPTY_EXPANSION;
292
+ }
293
+ const isExpanded = key => {
294
+ if (filterSignature !== '') {
295
+ return filterExpanded[key] ?? true;
296
+ }
297
+ const own = userExpanded[key];
298
+ if (own !== undefined) {
299
+ return own;
300
+ }
301
+ const row = tree.rowOf.get(key);
302
+ const depth = fullTree?.depthOf.get(key) ?? tree.depthOf.get(key) ?? 0;
303
+ if (row !== undefined && isGroupExpandedByDefault) {
304
+ return isGroupExpandedByDefault({
305
+ id: resolveRowId(row, getRowId),
306
+ row,
307
+ depth
308
+ });
309
+ }
310
+ return defaultGroupingExpansionDepth === -1 || depth < defaultGroupingExpansionDepth;
311
+ };
312
+ const state = {};
313
+ for (const key of tree.childKeysOf.keys()) {
314
+ if (isExpanded(key)) {
315
+ state[key] = true;
316
+ }
317
+ }
318
+ return state;
319
+ }, [tree, fullTree, filterSignature, filterExpanded, userExpanded, isGroupExpandedByDefault, defaultGroupingExpansionDepth, getRowId]);
320
+ const isRowExpanded = key => key in expandedState;
321
+ const toggleRowExpanded = key => {
322
+ const next = !isRowExpanded(key);
323
+ if (filterSignature !== '') {
324
+ setFilterExpansion(previous => ({
325
+ signature: filterSignature,
326
+ expanded: {
327
+ ...(previous.signature === filterSignature ? previous.expanded : {}),
328
+ [key]: next
329
+ }
330
+ }));
331
+ return;
332
+ }
333
+ setUserExpanded(previous => ({
334
+ ...previous,
335
+ [key]: next
336
+ }));
337
+ };
173
338
  const resetPaginationPage = () => {
174
339
  if (paginationModel.page !== 0) {
175
340
  onPaginationModelChange({
@@ -196,10 +361,14 @@ export function useDataGridTable({
196
361
  const table = useTable({
197
362
  features,
198
363
  columns: columnDefs,
199
- data,
200
- getRowId: row => selectionIdKey(resolveRowId(row, getRowId)),
364
+ data: tree ? tree.roots : data,
365
+ getRowId: row => keyOf(row),
366
+ getSubRows: tree ? row => tree.childrenOf.get(row) : undefined,
367
+ filterFromLeafRows: treeData,
368
+ paginateExpandedRows: false,
201
369
  enableMultiSort: false,
202
370
  enableMultiRowSelection: true,
371
+ globalFilterFn: gridGlobalFilterFn,
203
372
  manualPagination: paginationMode === 'server',
204
373
  manualSorting: sortingMode === 'server',
205
374
  manualFiltering: filterMode === 'server',
@@ -210,7 +379,10 @@ export function useDataGridTable({
210
379
  pagination: paginationState,
211
380
  columnFilters: columnFilterState,
212
381
  globalFilter: quickFilter,
213
- rowSelection: rowSelectionState
382
+ rowSelection: rowSelectionState,
383
+ columnPinning,
384
+ columnVisibility,
385
+ expanded: expandedState
214
386
  },
215
387
  onSortingChange: updater => {
216
388
  const next = applyUpdater(updater, sortingState);
@@ -235,10 +407,54 @@ export function useDataGridTable({
235
407
  onRowSelectionModelChange(rowSelectionToModel(next, rowSelectionModel, allIds));
236
408
  }
237
409
  });
410
+ const setFilterModel = model => {
411
+ onFilterModelChange(model);
412
+ resetPaginationPage();
413
+ };
414
+ const treeSelection = useMemo(() => {
415
+ if (!fullTree) {
416
+ return undefined;
417
+ }
418
+ const selectedKeys = new Set(Object.keys(rowSelectionState));
419
+ return {
420
+ selectedKeys,
421
+ statuses: computeTreeSelection(fullTree, selectedKeys, propagateParents)
422
+ };
423
+ }, [fullTree, propagateParents, rowSelectionState]);
424
+ let treeState;
425
+ if (fullTree && treeSelection) {
426
+ const {
427
+ selectedKeys,
428
+ statuses
429
+ } = treeSelection;
430
+ const selectionStatus = key => statuses.get(key) ?? 'none';
431
+ const commit = scope => {
432
+ const value = !scope.units.every(key => selectionStatus(key) === 'all');
433
+ const next = applyTreeSelection(fullTree, selectedKeys, scope.targets, value, propagateParents);
434
+ onRowSelectionModelChange(rowSelectionToModel(Object.fromEntries([...next].map(key => [key, true])), rowSelectionModel, allRowIds));
435
+ };
436
+ const filtered = table.getFilteredRowModel();
437
+ const headerScope = propagateDescendants ? selectionScope(filtered.rows, fullTree, true) : selectionScope(filtered.flatRows, fullTree, false);
438
+ const selectedUnits = headerScope.units.filter(key => selectionStatus(key) !== 'none');
439
+ const allUnitsSelected = headerScope.units.length > 0 && headerScope.units.every(key => selectionStatus(key) === 'all');
440
+ treeState = {
441
+ isRowExpanded,
442
+ toggleRowExpanded,
443
+ selectionStatus,
444
+ toggleRowSelected: row => commit(selectionScope([row], fullTree, propagateDescendants)),
445
+ toggleAllRowsSelected: () => commit(headerScope),
446
+ headerSelection: {
447
+ checked: allUnitsSelected,
448
+ indeterminate: !allUnitsSelected && selectedUnits.length > 0
449
+ }
450
+ };
451
+ }
238
452
  return {
239
453
  table,
240
454
  setQuickFilter,
241
- setColumnFilter
455
+ setColumnFilter,
456
+ setFilterModel,
457
+ tree: treeState
242
458
  };
243
459
  }
244
460
  //# sourceMappingURL=useDataGridTable.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","columnFilteringFeature","createFilteredRowModel","createPaginatedRowModel","createSortedRowModel","filterFn_includesString","globalFilteringFeature","rowPaginationFeature","rowSelectionFeature","rowSortingFeature","sortFn_alphanumeric","sortFn_text","tableFeatures","useTable","createSelectColumn","applyUpdater","gridColDefToColumnDef","SELECT_COLUMN_ID","features","filteredRowModel","sortedRowModel","paginatedRowModel","filterFns","includesString","sortFns","alphanumeric","text","sortModelToSortingState","model","map","item","id","field","desc","sort","sortingStateToSortModel","state","filter","slice","paginationModelToState","pageIndex","page","pageSize","paginationStateToModel","columnFilterValueToString","value","String","filterModelToColumnFilters","trim","length","columnFiltersToFilterModel","selectionIdKey","selectionModelToRowSelection","allIds","selected","Set","type","ids","add","has","Object","fromEntries","rowSelectionToModel","previousModel","currentIdsByKey","Map","set","selectedKeys","keys","key","delete","resolveRowId","row","getRowId","__DEV__","console","warn","useDataGridTable","rows","columns","checkboxSelection","disableColumnSorting","paginationMode","sortingMode","filterMode","rowCount","sortModel","onSortModelChange","paginationModel","onPaginationModelChange","filterModel","onFilterModelChange","quickFilter","onQuickFilterChange","rowSelectionModel","onRowSelectionModelChange","data","columnDefs","mapped","col","def","enableSorting","sortingState","paginationState","columnFilterState","rowSelectionState","resetPaginationPage","setQuickFilter","setColumnFilter","next","push","table","enableMultiSort","enableMultiRowSelection","manualPagination","manualSorting","manualFiltering","autoResetPageIndex","undefined","sorting","pagination","columnFilters","globalFilter","rowSelection","onSortingChange","updater","onPaginationChange","onColumnFiltersChange","onGlobalFilterChange","onRowSelectionChange"],"sourceRoot":"../../src","sources":["useDataGridTable.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","useState","columnFilteringFeature","columnPinningFeature","columnVisibilityFeature","createFilteredRowModel","createPaginatedRowModel","createSortedRowModel","filterFn_includesString","globalFilteringFeature","rowExpandingFeature","rowPaginationFeature","rowSelectionFeature","rowSortingFeature","sortFn_alphanumeric","sortFn_text","tableFeatures","useTable","createDetailPanelToggleColumn","createSelectColumn","applyTreeSelection","buildTreeIndex","computeTreeSelection","keepMatchesWithAncestors","selectionScope","applyUpdater","gridColDefToColumnDef","filterFn_displayText","metaUsesDisplayFilter","normalizeFilterQuery","sortFn_boolean","sortFn_datetime","sortFn_number","sortFn_selectLabel","untypedCellIncludesQuery","filterOperatorNeedsValue","isActiveFilterItem","isBlankFilterValue","isFilterValueGroup","isOperatorFilterValue","rowMatchesFilterItem","DETAIL_PANEL_TOGGLE_ID","SELECT_COLUMN_ID","gridGlobalFilterFn","row","columnId","filterValue","meta","getAllCells","find","cell","column","id","columnDef","getValue","features","filteredRowModel","sortedRowModel","paginatedRowModel","filterFns","includesString","sortFns","alphanumeric","text","number","datetime","boolean","selectLabel","sortModelToSortingState","model","map","item","field","desc","sort","sortingStateToSortModel","state","filter","slice","paginationModelToState","pageIndex","page","pageSize","paginationStateToModel","columnFilterValueToString","value","String","filterModelToColumnFilters","valuesByField","Map","operator","undefined","trim","length","values","get","push","set","items","columnFilterValueToItem","columnFiltersToFilterModel","flatMap","selectionIdKey","selectionModelToRowSelection","allIds","selected","Set","type","ids","add","has","Object","fromEntries","rowSelectionToModel","previousModel","currentIdsByKey","selectedKeys","keys","key","delete","resolveRowId","getRowId","__DEV__","console","warn","EMPTY_EXPANSION","EMPTY_FILTER_EXPANSION","EMPTY_VISIBILITY","warnedMissingTreeDataPath","useDataGridTable","rows","columns","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","propagateDescendants","descendants","propagateParents","parents","orFilterItems","active","keyOf","fullTree","data","filterableColumns","col","filterable","matches","some","allRowIds","tree","columnDefs","mapped","def","enableSorting","sortingState","paginationState","columnFilterState","rowSelectionState","filterSignature","JSON","stringify","userExpanded","setUserExpanded","filterExpansion","setFilterExpansion","signature","expanded","filterExpanded","expandedState","isExpanded","own","rowOf","depth","depthOf","childKeysOf","isRowExpanded","toggleRowExpanded","next","previous","resetPaginationPage","setQuickFilter","setColumnFilter","table","roots","getSubRows","childrenOf","filterFromLeafRows","paginateExpandedRows","enableMultiSort","enableMultiRowSelection","globalFilterFn","manualPagination","manualSorting","manualFiltering","autoResetPageIndex","sorting","pagination","columnFilters","globalFilter","rowSelection","onSortingChange","updater","onPaginationChange","onColumnFiltersChange","onGlobalFilterChange","onRowSelectionChange","setFilterModel","treeSelection","statuses","treeState","selectionStatus","commit","scope","units","every","targets","filtered","getFilteredRowModel","headerScope","flatRows","selectedUnits","allUnitsSelected","toggleRowSelected","toggleAllRowsSelected","headerSelection","checked","indeterminate"],"sourceRoot":"../../src","sources":["useDataGridTable.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../../src/DataGrid.tsx"],"names":[],"mappings":"AAsCA,OAAO,EAKL,KAAK,aAAa,EAElB,KAAK,iBAAiB,EACvB,MAAM,SAAS,CAAC;AAklBjB,wBAAgB,QAAQ,CAAC,CAAC,SAAS,iBAAiB,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,2CAE5E;yBAFe,QAAQ;;;AAMxB,YAAY,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../../src/DataGrid.tsx"],"names":[],"mappings":"AAkFA,OAAO,EAOL,KAAK,aAAa,EAGlB,KAAK,iBAAiB,EACvB,MAAM,SAAS,CAAC;AA6qCjB,wBAAgB,QAAQ,CAAC,CAAC,SAAS,iBAAiB,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,2CAE5E;yBAFe,QAAQ;;;AAMxB,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { type RefObject } from 'react';
2
+ import { View } from 'react-native';
3
+ import type { GridColDef, GridFilterItem, GridFilterModel, GridFilterOperator, GridLogicOperator, GridValidRowModel } from './types';
4
+ export declare function filterPlaceholder<R extends GridValidRowModel>(col: GridColDef<R> | undefined, operator: GridFilterOperator): string;
5
+ export declare function createDefaultFilterItem<R extends GridValidRowModel>(columns: readonly GridColDef<R>[]): GridFilterItem | undefined;
6
+ /** The control that opened the panel and, for a column opener, the field it targets. */
7
+ export interface DataGridFilterPanelOpener {
8
+ ref: RefObject<View | null>;
9
+ field?: string;
10
+ /** Changes on every open-for-field call, so a repeat call moves focus again. */
11
+ request?: number;
12
+ }
13
+ export interface UseDataGridFilterPanelParams<R extends GridValidRowModel> {
14
+ /** The panel's columns. A field that is missing or has `filterable: false` does not open it. */
15
+ columns: readonly GridColDef<R>[];
16
+ filterModel: GridFilterModel;
17
+ /** Receives the appended item. It filters nothing, so callers should not reset the page. */
18
+ onFilterModelChange: (model: GridFilterModel) => void;
19
+ }
20
+ export interface UseDataGridFilterPanelResult {
21
+ opener: DataGridFilterPanelOpener | null;
22
+ /** Opens the panel on `field`, or retargets it when already open. Header filter cells and the
23
+ * column menu call this; the column menu passes its trigger, since the menu item unmounts. */
24
+ openForField: (field: string, ref: RefObject<View | null>) => void;
25
+ /** The toolbar button: opens the panel on the model as it is, or closes it. */
26
+ toggle: (ref: RefObject<View | null>) => void;
27
+ close: (options: {
28
+ restoreFocus: boolean;
29
+ }) => void;
30
+ }
31
+ /**
32
+ * Open state for the filter panel. Opening for a field shows the field's first item, even a
33
+ * value-less one, and leaves the model alone. When the field has none, it appends
34
+ * `{ field, operator }` and drops value-less items on other fields, as the append branch of MUI X
35
+ * `showFilterPanel(field)` does. MUI also rewrites the model when the field has an item.
36
+ */
37
+ export declare function useDataGridFilterPanel<R extends GridValidRowModel>({ columns, filterModel, onFilterModelChange, }: UseDataGridFilterPanelParams<R>): UseDataGridFilterPanelResult;
38
+ export interface DataGridFilterPanelProps<R extends GridValidRowModel> {
39
+ columns: readonly GridColDef<R>[];
40
+ filterModel: GridFilterModel;
41
+ onFilterModelChange: (model: GridFilterModel) => void;
42
+ logicOperator: GridLogicOperator;
43
+ onLogicOperatorChange: (operator: GridLogicOperator) => void;
44
+ /** `restoreFocus` is false for an outside press, which leaves focus where the user pressed. */
45
+ onClose: (options: {
46
+ restoreFocus: boolean;
47
+ }) => void;
48
+ /** Presses on the opener are not outside presses. A column opener also anchors the panel. */
49
+ opener: DataGridFilterPanelOpener;
50
+ }
51
+ export declare function DataGridFilterPanel<R extends GridValidRowModel>({ columns, filterModel, onFilterModelChange, logicOperator, onLogicOperatorChange, onClose, opener, }: DataGridFilterPanelProps<R>): import("react/jsx-runtime").JSX.Element;
52
+ //# sourceMappingURL=DataGridFilterPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataGridFilterPanel.d.ts","sourceRoot":"","sources":["../../src/DataGridFilterPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,EAAY,IAAI,EAAE,MAAM,cAAc,CAAC;AAsC9C,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAyCjB,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,iBAAiB,EAC3D,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,EAC9B,QAAQ,EAAE,kBAAkB,GAC3B,MAAM,CAeR;AAiED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,iBAAiB,EACjE,OAAO,EAAE,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,GAChC,cAAc,GAAG,SAAS,CAM5B;AAgCD,wFAAwF;AACxF,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,4BAA4B,CAAC,CAAC,SAAS,iBAAiB;IACvE,gGAAgG;IAChG,OAAO,EAAE,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,WAAW,EAAE,eAAe,CAAC;IAC7B,4FAA4F;IAC5F,mBAAmB,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CACvD;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAAC;IACzC;kGAC8F;IAC9F,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;IACnE,+EAA+E;IAC/E,MAAM,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;IAC9C,KAAK,EAAE,CAAC,OAAO,EAAE;QAAE,YAAY,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CACrD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,iBAAiB,EAAE,EAClE,OAAO,EACP,WAAW,EACX,mBAAmB,GACpB,EAAE,4BAA4B,CAAC,CAAC,CAAC,GAAG,4BAA4B,CAkChE;AAiOD,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,iBAAiB;IACnE,OAAO,EAAE,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,WAAW,EAAE,eAAe,CAAC;IAC7B,mBAAmB,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IACtD,aAAa,EAAE,iBAAiB,CAAC;IACjC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7D,+FAA+F;IAC/F,OAAO,EAAE,CAAC,OAAO,EAAE;QAAE,YAAY,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACtD,6FAA6F;IAC7F,MAAM,EAAE,yBAAyB,CAAC;CACnC;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,iBAAiB,EAAE,EAC/D,OAAO,EACP,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,qBAAqB,EACrB,OAAO,EACP,MAAM,GACP,EAAE,wBAAwB,CAAC,CAAC,CAAC,2CA0H7B"}
@@ -0,0 +1,32 @@
1
+ import type { GridAlignment, GridColDef, GridColType, GridValidRowModel } from '../types';
2
+ export interface DataGridColumnMeta<R extends GridValidRowModel = GridValidRowModel> {
3
+ colDef: GridColDef<R>;
4
+ getFilterText: (value: unknown, row: R) => string;
5
+ }
6
+ interface ValueRow {
7
+ getValue: (columnId: string) => unknown;
8
+ original: unknown;
9
+ getAllCells: () => readonly {
10
+ column: {
11
+ id: string;
12
+ columnDef: {
13
+ meta?: unknown;
14
+ };
15
+ };
16
+ }[];
17
+ }
18
+ export declare function usesDisplayFilter<R extends GridValidRowModel>(col: GridColDef<R>): boolean;
19
+ export declare function metaUsesDisplayFilter(meta: unknown): boolean;
20
+ export declare function columnSortFnName<R extends GridValidRowModel>(col: GridColDef<R>): 'text' | 'number' | 'datetime' | 'boolean' | 'selectLabel' | undefined;
21
+ export declare function typeDefaultAlign(type: GridColType | undefined): GridAlignment | undefined;
22
+ export declare function getColumnFilterText<R extends GridValidRowModel>(col: GridColDef<R>, value: unknown, row: R): string;
23
+ export declare function getTypedCellText<R extends GridValidRowModel>(col: GridColDef<R> | undefined, value: unknown, row: R): string | undefined;
24
+ export declare function normalizeFilterQuery(filterValue: unknown): string;
25
+ export declare function untypedCellIncludesQuery(value: unknown, query: string): boolean;
26
+ export declare function filterFn_displayText(row: ValueRow, columnId: string, filterValue: unknown): boolean;
27
+ export declare function sortFn_number(rowA: ValueRow, rowB: ValueRow, columnId: string): number;
28
+ export declare function sortFn_datetime(rowA: ValueRow, rowB: ValueRow, columnId: string): number;
29
+ export declare function sortFn_boolean(rowA: ValueRow, rowB: ValueRow, columnId: string): number;
30
+ export declare function sortFn_selectLabel(rowA: ValueRow, rowB: ValueRow, columnId: string): number;
31
+ export {};
32
+ //# sourceMappingURL=columnTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columnTypes.d.ts","sourceRoot":"","sources":["../../../src/adapter/columnTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,WAAW,EAEX,iBAAiB,EAElB,MAAM,UAAU,CAAC;AAalB,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB;IACjF,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;CACnD;AAED,UAAU,QAAQ;IAChB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,SAAS;QAC1B,MAAM,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE;gBAAE,IAAI,CAAC,EAAE,OAAO,CAAA;aAAE,CAAA;SAAE,CAAC;KACvD,EAAE,CAAC;CACL;AAoBD,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,iBAAiB,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAE1F;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAE5D;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,iBAAiB,EAC1D,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GACjB,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAgBxE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAQzF;AAgED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,iBAAiB,EAC7D,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,CAAC,GACL,MAAM,CAoBR;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,iBAAiB,EAC1D,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,EAC9B,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,CAAC,GACL,MAAM,GAAG,SAAS,CAQpB;AAoCD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAKjE;AAwBD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAQ/E;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,OAAO,GACnB,OAAO,CAMT;AAwBD,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKtF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOvF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ3F"}
@@ -1,17 +1,26 @@
1
1
  import type { TableAlignment } from '@cdx-ui/components';
2
- import type { GridAlignment, GridColDef, GridValidRowModel } from '../types';
2
+ import type { ColumnPinningState } from '@tanstack/react-table';
3
+ import { type GridAlignment, type GridColDef, type GridPinnedColumnFields, type GridValidRowModel } from '../types';
4
+ import { filterFn_displayText, type DataGridColumnMeta } from './columnTypes';
3
5
  export declare function gridColDefToColumnDef<R extends GridValidRowModel>(col: GridColDef<R>): {
6
+ meta: DataGridColumnMeta<R>;
7
+ sortFn?: "number" | "boolean" | "text" | "datetime" | "selectLabel" | undefined;
8
+ sortUndefined?: "last" | undefined;
4
9
  id: string;
5
10
  accessorFn: (row: R) => unknown;
6
11
  header: string;
7
12
  enableSorting: boolean;
8
13
  enableColumnFilter: boolean;
9
14
  enableGlobalFilter: boolean;
10
- filterFn: "includesString";
11
- meta: {
12
- colDef: GridColDef<R>;
13
- };
15
+ filterFn: (row: Parameters<typeof filterFn_displayText>[0], columnId: string, filterValue: unknown) => boolean;
14
16
  };
15
17
  export declare function applyUpdater<T>(updater: T | ((old: T) => T), previous: T): T;
16
18
  export declare function normalizeGridAlignment(align?: GridAlignment): TableAlignment;
19
+ /**
20
+ * Maps `pinnedColumns` (including deprecated `left` / `right` and MUI `__check__`)
21
+ * to TanStack `ColumnPinningState`. Logical keys win over aliases; start wins over end.
22
+ */
23
+ export declare function normalizePinnedColumns(pinnedColumns: GridPinnedColumnFields | undefined, knownFields: ReadonlySet<string>, checkboxSelection: boolean, detailPanel?: boolean): ColumnPinningState;
24
+ export declare function resolveColumnAlign<R extends GridValidRowModel>(col: GridColDef<R> | undefined): TableAlignment;
25
+ export declare function resolveColumnHeaderAlign<R extends GridValidRowModel>(col: GridColDef<R> | undefined): TableAlignment;
17
26
  //# sourceMappingURL=columns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../../src/adapter/columns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7E,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,iBAAiB,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;;sBAG/D,CAAC;;;;;;;;;EAWtB;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAE5E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,cAAc,CAQ5E"}
1
+ {"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../../src/adapter/columns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACvB,MAAM,UAAU,CAAC;AAClB,OAAO,EAEL,oBAAoB,EAKpB,KAAK,kBAAkB,EAExB,MAAM,eAAe,CAAC;AAOvB,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,iBAAiB,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;;;;;sBAS/D,CAAC;;;;;oBASZ,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,YACrC,MAAM,eACH,OAAO,KACnB,OAAO;EAsBb;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAE5E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,cAAc,CAQ5E;AA2BD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,sBAAsB,GAAG,SAAS,EACjD,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAChC,iBAAiB,EAAE,OAAO,EAC1B,WAAW,UAAQ,GAClB,kBAAkB,CAkFpB;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,iBAAiB,EAC5D,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,GAC7B,cAAc,CAKhB;AAED,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,iBAAiB,EAClE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,GAC7B,cAAc,CAKhB"}