@cdx-ui/data-grid 0.3.11 → 0.3.12

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 (82) hide show
  1. package/README.md +3 -1
  2. package/coverage.svg +1 -1
  3. package/lib/commonjs/DataGrid.js +232 -62
  4. package/lib/commonjs/DataGrid.js.map +1 -1
  5. package/lib/commonjs/DataGridFilterPanel.js +420 -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 +132 -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 +101 -0
  14. package/lib/commonjs/adapter/pinning.js.map +1 -0
  15. package/lib/commonjs/index.js +26 -0
  16. package/lib/commonjs/index.js.map +1 -1
  17. package/lib/commonjs/numberCells.js +280 -0
  18. package/lib/commonjs/numberCells.js.map +1 -0
  19. package/lib/commonjs/styles.js +61 -1
  20. package/lib/commonjs/styles.js.map +1 -1
  21. package/lib/commonjs/types.js +29 -1
  22. package/lib/commonjs/types.js.map +1 -1
  23. package/lib/commonjs/useDataGridTable.js +98 -13
  24. package/lib/commonjs/useDataGridTable.js.map +1 -1
  25. package/lib/module/DataGrid.js +237 -67
  26. package/lib/module/DataGrid.js.map +1 -1
  27. package/lib/module/DataGridFilterPanel.js +414 -0
  28. package/lib/module/DataGridFilterPanel.js.map +1 -0
  29. package/lib/module/adapter/columnTypes.js +240 -0
  30. package/lib/module/adapter/columnTypes.js.map +1 -0
  31. package/lib/module/adapter/columns.js +129 -4
  32. package/lib/module/adapter/columns.js.map +1 -1
  33. package/lib/module/adapter/filterOperators.js +406 -0
  34. package/lib/module/adapter/filterOperators.js.map +1 -0
  35. package/lib/module/adapter/pinning.js +90 -0
  36. package/lib/module/adapter/pinning.js.map +1 -0
  37. package/lib/module/index.js +2 -0
  38. package/lib/module/index.js.map +1 -1
  39. package/lib/module/numberCells.js +275 -0
  40. package/lib/module/numberCells.js.map +1 -0
  41. package/lib/module/styles.js +60 -0
  42. package/lib/module/styles.js.map +1 -1
  43. package/lib/module/types.js +28 -0
  44. package/lib/module/types.js.map +1 -1
  45. package/lib/module/useDataGridTable.js +99 -14
  46. package/lib/module/useDataGridTable.js.map +1 -1
  47. package/lib/typescript/DataGrid.d.ts.map +1 -1
  48. package/lib/typescript/DataGridFilterPanel.d.ts +17 -0
  49. package/lib/typescript/DataGridFilterPanel.d.ts.map +1 -0
  50. package/lib/typescript/adapter/columnTypes.d.ts +32 -0
  51. package/lib/typescript/adapter/columnTypes.d.ts.map +1 -0
  52. package/lib/typescript/adapter/columns.d.ts +14 -5
  53. package/lib/typescript/adapter/columns.d.ts.map +1 -1
  54. package/lib/typescript/adapter/filterOperators.d.ts +43 -0
  55. package/lib/typescript/adapter/filterOperators.d.ts.map +1 -0
  56. package/lib/typescript/adapter/pinning.d.ts +25 -0
  57. package/lib/typescript/adapter/pinning.d.ts.map +1 -0
  58. package/lib/typescript/index.d.ts +4 -1
  59. package/lib/typescript/index.d.ts.map +1 -1
  60. package/lib/typescript/numberCells.d.ts +46 -0
  61. package/lib/typescript/numberCells.d.ts.map +1 -0
  62. package/lib/typescript/styles.d.ts +21 -0
  63. package/lib/typescript/styles.d.ts.map +1 -1
  64. package/lib/typescript/types.d.ts +86 -7
  65. package/lib/typescript/types.d.ts.map +1 -1
  66. package/lib/typescript/useDataGridTable.d.ts +18 -4
  67. package/lib/typescript/useDataGridTable.d.ts.map +1 -1
  68. package/package.json +5 -5
  69. package/src/DataGrid.tsx +377 -67
  70. package/src/DataGridFilterPanel.tsx +477 -0
  71. package/src/adapter/columnTypes.ts +327 -0
  72. package/src/adapter/columns.test.ts +75 -1
  73. package/src/adapter/columns.ts +178 -3
  74. package/src/adapter/filterOperators.test.ts +292 -0
  75. package/src/adapter/filterOperators.ts +524 -0
  76. package/src/adapter/pinning.ts +125 -0
  77. package/src/index.ts +15 -0
  78. package/src/numberCells.tsx +379 -0
  79. package/src/styles.ts +75 -0
  80. package/src/types.ts +114 -7
  81. package/src/useDataGridTable.test.ts +69 -0
  82. package/src/useDataGridTable.ts +127 -8
@@ -0,0 +1,240 @@
1
+ "use strict";
2
+
3
+ const localeNumberFormat = new Intl.NumberFormat();
4
+ const localeDateFormat = new Intl.DateTimeFormat();
5
+ const localeDateTimeFormat = new Intl.DateTimeFormat(undefined, {
6
+ year: 'numeric',
7
+ month: 'numeric',
8
+ day: 'numeric',
9
+ hour: 'numeric',
10
+ minute: 'numeric',
11
+ second: 'numeric'
12
+ });
13
+ function isDataGridColumnMeta(meta) {
14
+ return typeof meta === 'object' && meta !== null && 'colDef' in meta && 'getFilterText' in meta && typeof meta.getFilterText === 'function';
15
+ }
16
+ const DISPLAY_FILTER_TYPES = new Set(['number', 'date', 'dateTime', 'boolean', 'singleSelect']);
17
+ export function usesDisplayFilter(col) {
18
+ return col.type != null && DISPLAY_FILTER_TYPES.has(col.type);
19
+ }
20
+ export function metaUsesDisplayFilter(meta) {
21
+ return isDataGridColumnMeta(meta) && usesDisplayFilter(meta.colDef);
22
+ }
23
+ export function columnSortFnName(col) {
24
+ switch (col.type) {
25
+ case 'string':
26
+ return 'text';
27
+ case 'number':
28
+ return 'number';
29
+ case 'date':
30
+ case 'dateTime':
31
+ return 'datetime';
32
+ case 'boolean':
33
+ return 'boolean';
34
+ case 'singleSelect':
35
+ return 'selectLabel';
36
+ default:
37
+ return undefined;
38
+ }
39
+ }
40
+ export function typeDefaultAlign(type) {
41
+ if (type === 'number') {
42
+ return 'end';
43
+ }
44
+ if (type === 'boolean') {
45
+ return 'center';
46
+ }
47
+ return undefined;
48
+ }
49
+ function asValidDate(value) {
50
+ return value instanceof Date && Number.isFinite(value.getTime()) ? value : null;
51
+ }
52
+ function formatNumberCell(value) {
53
+ if (typeof value !== 'number' || !Number.isFinite(value)) {
54
+ return '';
55
+ }
56
+ return localeNumberFormat.format(value);
57
+ }
58
+ function formatDateCell(value) {
59
+ const date = asValidDate(value);
60
+ return date ? localeDateFormat.format(date) : '';
61
+ }
62
+ function formatDateTimeCell(value) {
63
+ const date = asValidDate(value);
64
+ return date ? localeDateTimeFormat.format(date) : '';
65
+ }
66
+ function stringifyCellValue(value) {
67
+ if (typeof value === 'string') {
68
+ return value;
69
+ }
70
+ if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') {
71
+ return value.toString();
72
+ }
73
+ return '';
74
+ }
75
+ function optionValue(option) {
76
+ return typeof option === 'object' ? option.value : option;
77
+ }
78
+ function optionLabel(option) {
79
+ if (typeof option === 'object') {
80
+ return option.label;
81
+ }
82
+ return typeof option === 'number' ? option.toString() : option;
83
+ }
84
+ function resolveValueOptions(col, row) {
85
+ const options = col.valueOptions;
86
+ return typeof options === 'function' ? options({
87
+ row
88
+ }) : options;
89
+ }
90
+ function resolveSelectLabel(col, value, row) {
91
+ const match = resolveValueOptions(col, row).find(option => optionValue(option) === value);
92
+ if (match) {
93
+ return optionLabel(match);
94
+ }
95
+ return stringifyCellValue(value);
96
+ }
97
+ export function getColumnFilterText(col, value, row) {
98
+ if (value == null) {
99
+ return '';
100
+ }
101
+ switch (col.type) {
102
+ case 'number':
103
+ return formatNumberCell(value);
104
+ case 'date':
105
+ return formatDateCell(value);
106
+ case 'dateTime':
107
+ return formatDateTimeCell(value);
108
+ case 'boolean':
109
+ return typeof value === 'boolean' ? value ? 'Yes' : 'No' : stringifyCellValue(value);
110
+ case 'singleSelect':
111
+ return resolveSelectLabel(col, value, row);
112
+ case 'string':
113
+ return stringifyCellValue(value);
114
+ default:
115
+ return stringifyCellValue(value);
116
+ }
117
+ }
118
+ export function getTypedCellText(col, value, row) {
119
+ if (!col?.type || col.type === 'boolean') {
120
+ return undefined;
121
+ }
122
+ if (value == null) {
123
+ return '';
124
+ }
125
+ return getColumnFilterText(col, value, row);
126
+ }
127
+ function compareNullish(a, b) {
128
+ const aNull = a == null;
129
+ const bNull = b == null;
130
+ if (aNull && bNull) {
131
+ return 0;
132
+ }
133
+ if (aNull) {
134
+ return 1;
135
+ }
136
+ if (bNull) {
137
+ return -1;
138
+ }
139
+ return undefined;
140
+ }
141
+ function getColumnMeta(row, columnId) {
142
+ for (const cell of row.getAllCells()) {
143
+ if (cell.column.id === columnId) {
144
+ const meta = cell.column.columnDef.meta;
145
+ return isDataGridColumnMeta(meta) ? meta : undefined;
146
+ }
147
+ }
148
+ return undefined;
149
+ }
150
+ function filterTextForRow(row, columnId) {
151
+ const value = row.getValue(columnId);
152
+ const meta = getColumnMeta(row, columnId);
153
+ if (meta) {
154
+ return meta.getFilterText(value, row.original);
155
+ }
156
+ return stringifyCellValue(value);
157
+ }
158
+ export function normalizeFilterQuery(filterValue) {
159
+ if (typeof filterValue !== 'string' && typeof filterValue !== 'number') {
160
+ return '';
161
+ }
162
+ return filterValue.toString().trim().toLowerCase();
163
+ }
164
+ function stringifyForIncludes(value) {
165
+ if (typeof value === 'string') {
166
+ return value.toLowerCase();
167
+ }
168
+ if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') {
169
+ return value.toString().toLowerCase();
170
+ }
171
+ if (value instanceof Date) {
172
+ return value.toString().toLowerCase();
173
+ }
174
+ if (Array.isArray(value)) {
175
+ return value.join(',').toLowerCase();
176
+ }
177
+ if (typeof value === 'object' && value !== null) {
178
+ return '[object object]';
179
+ }
180
+ if (typeof value === 'symbol' || typeof value === 'function') {
181
+ return value.toString().toLowerCase();
182
+ }
183
+ return '';
184
+ }
185
+ export function untypedCellIncludesQuery(value, query) {
186
+ if (!query) {
187
+ return true;
188
+ }
189
+ if (value == null) {
190
+ return false;
191
+ }
192
+ return stringifyForIncludes(value).includes(query);
193
+ }
194
+ export function filterFn_displayText(row, columnId, filterValue) {
195
+ const query = normalizeFilterQuery(filterValue);
196
+ if (!query) {
197
+ return true;
198
+ }
199
+ return filterTextForRow(row, columnId).toLowerCase().includes(query);
200
+ }
201
+ function toFiniteNumber(value) {
202
+ return typeof value === 'number' && Number.isFinite(value) ? value : null;
203
+ }
204
+ function toTimestamp(value) {
205
+ const date = asValidDate(value);
206
+ return date ? date.getTime() : null;
207
+ }
208
+ function compareFinite(a, b) {
209
+ if (a == null && b == null) {
210
+ return 0;
211
+ }
212
+ if (a == null) {
213
+ return 1;
214
+ }
215
+ if (b == null) {
216
+ return -1;
217
+ }
218
+ return a - b;
219
+ }
220
+ export function sortFn_number(rowA, rowB, columnId) {
221
+ return compareFinite(toFiniteNumber(rowA.getValue(columnId)), toFiniteNumber(rowB.getValue(columnId)));
222
+ }
223
+ export function sortFn_datetime(rowA, rowB, columnId) {
224
+ return compareFinite(toTimestamp(rowA.getValue(columnId)), toTimestamp(rowB.getValue(columnId)));
225
+ }
226
+ export function sortFn_boolean(rowA, rowB, columnId) {
227
+ const a = rowA.getValue(columnId);
228
+ const b = rowB.getValue(columnId);
229
+ return compareFinite(typeof a === 'boolean' ? Number(a) : null, typeof b === 'boolean' ? Number(b) : null);
230
+ }
231
+ export function sortFn_selectLabel(rowA, rowB, columnId) {
232
+ const a = rowA.getValue(columnId);
233
+ const b = rowB.getValue(columnId);
234
+ const nullish = compareNullish(a, b);
235
+ if (nullish !== undefined) {
236
+ return nullish;
237
+ }
238
+ return filterTextForRow(rowA, columnId).localeCompare(filterTextForRow(rowB, columnId));
239
+ }
240
+ //# sourceMappingURL=columnTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["localeNumberFormat","Intl","NumberFormat","localeDateFormat","DateTimeFormat","localeDateTimeFormat","undefined","year","month","day","hour","minute","second","isDataGridColumnMeta","meta","getFilterText","DISPLAY_FILTER_TYPES","Set","usesDisplayFilter","col","type","has","metaUsesDisplayFilter","colDef","columnSortFnName","typeDefaultAlign","asValidDate","value","Date","Number","isFinite","getTime","formatNumberCell","format","formatDateCell","date","formatDateTimeCell","stringifyCellValue","toString","optionValue","option","optionLabel","label","resolveValueOptions","row","options","valueOptions","resolveSelectLabel","match","find","getColumnFilterText","getTypedCellText","compareNullish","a","b","aNull","bNull","getColumnMeta","columnId","cell","getAllCells","column","id","columnDef","filterTextForRow","getValue","original","normalizeFilterQuery","filterValue","trim","toLowerCase","stringifyForIncludes","Array","isArray","join","untypedCellIncludesQuery","query","includes","filterFn_displayText","toFiniteNumber","toTimestamp","compareFinite","sortFn_number","rowA","rowB","sortFn_datetime","sortFn_boolean","sortFn_selectLabel","nullish","localeCompare"],"sourceRoot":"../../../src","sources":["adapter/columnTypes.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,14 @@
1
1
  "use strict";
2
2
 
3
+ import { MUI_CHECKBOX_FIELD, SELECT_COLUMN_ID } from '../types';
4
+ import { columnSortFnName, filterFn_displayText, getColumnFilterText, normalizeFilterQuery, untypedCellIncludesQuery, usesDisplayFilter, typeDefaultAlign } from './columnTypes';
5
+ import { isFilterValueGroup, isOperatorFilterValue, matchesOperatorFilter } from './filterOperators';
3
6
  export function gridColDefToColumnDef(col) {
7
+ const sortFn = columnSortFnName(col);
8
+ const meta = {
9
+ colDef: col,
10
+ getFilterText: (value, row) => getColumnFilterText(col, value, row)
11
+ };
4
12
  return {
5
13
  id: col.field,
6
14
  accessorFn: row => {
@@ -11,10 +19,23 @@ export function gridColDefToColumnDef(col) {
11
19
  enableSorting: col.sortable !== false,
12
20
  enableColumnFilter: col.filterable !== false,
13
21
  enableGlobalFilter: col.filterable !== false,
14
- filterFn: 'includesString',
15
- meta: {
16
- colDef: col
17
- }
22
+ filterFn: (row, columnId, filterValue) => {
23
+ const matches = value => {
24
+ if (isOperatorFilterValue(value)) {
25
+ return matchesOperatorFilter(col, row.getValue(columnId), row.original, value);
26
+ }
27
+ if (usesDisplayFilter(col)) {
28
+ return filterFn_displayText(row, columnId, value);
29
+ }
30
+ return untypedCellIncludesQuery(row.getValue(columnId), normalizeFilterQuery(value));
31
+ };
32
+ return isFilterValueGroup(filterValue) ? filterValue.items.every(matches) : matches(filterValue);
33
+ },
34
+ ...(sortFn ? {
35
+ sortFn,
36
+ sortUndefined: 'last'
37
+ } : {}),
38
+ meta
18
39
  };
19
40
  }
20
41
  export function applyUpdater(updater, previous) {
@@ -29,4 +50,108 @@ export function normalizeGridAlignment(align) {
29
50
  }
30
51
  return align ?? 'start';
31
52
  }
53
+ function resolvePinnedFieldId(field) {
54
+ return field === MUI_CHECKBOX_FIELD ? SELECT_COLUMN_ID : field;
55
+ }
56
+ const warnedUnknownPinnedFields = new Set();
57
+ const warnedConflictPinnedFields = new Set();
58
+ function warnUnknownPinnedField(raw) {
59
+ if (!__DEV__ || warnedUnknownPinnedFields.has(raw)) {
60
+ return;
61
+ }
62
+ warnedUnknownPinnedFields.add(raw);
63
+ console.warn(`[DataGrid] Unknown pinned column field "${raw}" was ignored.`);
64
+ }
65
+ function warnConflictPinnedField(field) {
66
+ if (!__DEV__ || warnedConflictPinnedFields.has(field)) {
67
+ return;
68
+ }
69
+ warnedConflictPinnedFields.add(field);
70
+ console.warn(`[DataGrid] Column "${field}" is listed in both start and end pinned columns; pinning to start.`);
71
+ }
72
+
73
+ /**
74
+ * Maps `pinnedColumns` (including deprecated `left` / `right` and MUI `__check__`)
75
+ * to TanStack `ColumnPinningState`. Logical keys win over aliases; start wins over end.
76
+ */
77
+ export function normalizePinnedColumns(pinnedColumns, knownFields, checkboxSelection) {
78
+ if (pinnedColumns == null) {
79
+ return {
80
+ start: [],
81
+ end: []
82
+ };
83
+ }
84
+ const appendUnique = (target, seen, fields) => {
85
+ if (fields == null) {
86
+ return;
87
+ }
88
+ for (const raw of fields) {
89
+ const field = resolvePinnedFieldId(raw);
90
+ if (seen.has(field)) {
91
+ continue;
92
+ }
93
+ const isSelect = field === SELECT_COLUMN_ID;
94
+ if (isSelect ? !checkboxSelection : !knownFields.has(field)) {
95
+ warnUnknownPinnedField(raw);
96
+ continue;
97
+ }
98
+ seen.add(field);
99
+ target.push(field);
100
+ }
101
+ };
102
+ const startSeen = new Set();
103
+ const start = [];
104
+ appendUnique(start, startSeen, pinnedColumns.start);
105
+ // Intentionally accept deprecated MUI X `left` / `right` aliases.
106
+ // eslint-disable-next-line @typescript-eslint/no-deprecated -- alias merge
107
+ appendUnique(start, startSeen, pinnedColumns.left);
108
+ const endSeen = new Set();
109
+ const end = [];
110
+ const appendEnd = fields => {
111
+ if (fields == null) {
112
+ return;
113
+ }
114
+ for (const raw of fields) {
115
+ const field = resolvePinnedFieldId(raw);
116
+ if (startSeen.has(field)) {
117
+ warnConflictPinnedField(field);
118
+ continue;
119
+ }
120
+ if (endSeen.has(field)) {
121
+ continue;
122
+ }
123
+ const isSelect = field === SELECT_COLUMN_ID;
124
+ if (isSelect ? !checkboxSelection : !knownFields.has(field)) {
125
+ warnUnknownPinnedField(raw);
126
+ continue;
127
+ }
128
+ endSeen.add(field);
129
+ end.push(field);
130
+ }
131
+ };
132
+ appendEnd(pinnedColumns.end);
133
+ // eslint-disable-next-line @typescript-eslint/no-deprecated -- alias merge
134
+ appendEnd(pinnedColumns.right);
135
+ if (checkboxSelection && start.length > 0) {
136
+ const withoutSelect = start.filter(field => field !== SELECT_COLUMN_ID);
137
+ start.length = 0;
138
+ start.push(SELECT_COLUMN_ID, ...withoutSelect);
139
+ }
140
+ return {
141
+ start,
142
+ end
143
+ };
144
+ }
145
+ export function resolveColumnAlign(col) {
146
+ if (!col) {
147
+ return 'start';
148
+ }
149
+ return normalizeGridAlignment(col.align ?? typeDefaultAlign(col.type));
150
+ }
151
+ export function resolveColumnHeaderAlign(col) {
152
+ if (!col) {
153
+ return 'start';
154
+ }
155
+ return normalizeGridAlignment(col.headerAlign ?? col.align ?? typeDefaultAlign(col.type));
156
+ }
32
157
  //# sourceMappingURL=columns.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["gridColDefToColumnDef","col","id","field","accessorFn","row","raw","valueGetter","header","headerName","enableSorting","sortable","enableColumnFilter","filterable","enableGlobalFilter","filterFn","meta","colDef","applyUpdater","updater","previous","normalizeGridAlignment","align"],"sourceRoot":"../../../src","sources":["adapter/columns.ts"],"mappings":";;AAGA,OAAO,SAASA,qBAAqBA,CAA8BC,GAAkB,EAAE;EACrF,OAAO;IACLC,EAAE,EAAED,GAAG,CAACE,KAAK;IACbC,UAAU,EAAGC,GAAM,IAAK;MACtB,MAAMC,GAAG,GAAGD,GAAG,CAACJ,GAAG,CAACE,KAAK,CAAC;MAC1B,OAAOF,GAAG,CAACM,WAAW,GAAGN,GAAG,CAACM,WAAW,CAACD,GAAG,EAAED,GAAG,EAAEJ,GAAG,CAAC,GAAGK,GAAG;IAC/D,CAAC;IACDE,MAAM,EAAEP,GAAG,CAACQ,UAAU,IAAIR,GAAG,CAACE,KAAK;IACnCO,aAAa,EAAET,GAAG,CAACU,QAAQ,KAAK,KAAK;IACrCC,kBAAkB,EAAEX,GAAG,CAACY,UAAU,KAAK,KAAK;IAC5CC,kBAAkB,EAAEb,GAAG,CAACY,UAAU,KAAK,KAAK;IAC5CE,QAAQ,EAAE,gBAAyB;IACnCC,IAAI,EAAE;MAAEC,MAAM,EAAEhB;IAAI;EACtB,CAAC;AACH;AAEA,OAAO,SAASiB,YAAYA,CAAIC,OAA4B,EAAEC,QAAW,EAAK;EAC5E,OAAO,OAAOD,OAAO,KAAK,UAAU,GAAIA,OAAO,CAAmBC,QAAQ,CAAC,GAAGD,OAAO;AACvF;AAEA,OAAO,SAASE,sBAAsBA,CAACC,KAAqB,EAAkB;EAC5E,IAAIA,KAAK,KAAK,MAAM,EAAE;IACpB,OAAO,OAAO;EAChB;EACA,IAAIA,KAAK,KAAK,OAAO,EAAE;IACrB,OAAO,KAAK;EACd;EACA,OAAOA,KAAK,IAAI,OAAO;AACzB","ignoreList":[]}
1
+ {"version":3,"names":["MUI_CHECKBOX_FIELD","SELECT_COLUMN_ID","columnSortFnName","filterFn_displayText","getColumnFilterText","normalizeFilterQuery","untypedCellIncludesQuery","usesDisplayFilter","typeDefaultAlign","isFilterValueGroup","isOperatorFilterValue","matchesOperatorFilter","gridColDefToColumnDef","col","sortFn","meta","colDef","getFilterText","value","row","id","field","accessorFn","raw","valueGetter","header","headerName","enableSorting","sortable","enableColumnFilter","filterable","enableGlobalFilter","filterFn","columnId","filterValue","matches","getValue","original","items","every","sortUndefined","applyUpdater","updater","previous","normalizeGridAlignment","align","resolvePinnedFieldId","warnedUnknownPinnedFields","Set","warnedConflictPinnedFields","warnUnknownPinnedField","__DEV__","has","add","console","warn","warnConflictPinnedField","normalizePinnedColumns","pinnedColumns","knownFields","checkboxSelection","start","end","appendUnique","target","seen","fields","isSelect","push","startSeen","left","endSeen","appendEnd","right","length","withoutSelect","filter","resolveColumnAlign","type","resolveColumnHeaderAlign","headerAlign"],"sourceRoot":"../../../src","sources":["adapter/columns.ts"],"mappings":"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","ignoreList":[]}