@tanstack/table-core 8.0.0-alpha.63 → 8.0.0-alpha.67

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 (114) hide show
  1. package/build/cjs/core.js +7 -4
  2. package/build/cjs/core.js.map +1 -1
  3. package/build/cjs/features/Cells.js +2 -2
  4. package/build/cjs/features/Cells.js.map +1 -1
  5. package/build/cjs/features/ColumnSizing.js +68 -143
  6. package/build/cjs/features/ColumnSizing.js.map +1 -1
  7. package/build/cjs/features/Columns.js +7 -7
  8. package/build/cjs/features/Columns.js.map +1 -1
  9. package/build/cjs/features/Expanding.js +52 -90
  10. package/build/cjs/features/Expanding.js.map +1 -1
  11. package/build/cjs/features/Filters.js +213 -191
  12. package/build/cjs/features/Filters.js.map +1 -1
  13. package/build/cjs/features/Grouping.js +54 -80
  14. package/build/cjs/features/Grouping.js.map +1 -1
  15. package/build/cjs/features/Headers.js +16 -40
  16. package/build/cjs/features/Headers.js.map +1 -1
  17. package/build/cjs/features/Ordering.js +6 -5
  18. package/build/cjs/features/Ordering.js.map +1 -1
  19. package/build/cjs/features/Pagination.js +5 -5
  20. package/build/cjs/features/Pagination.js.map +1 -1
  21. package/build/cjs/features/Pinning.js +82 -168
  22. package/build/cjs/features/Pinning.js.map +1 -1
  23. package/build/cjs/features/RowSelection.js +67 -119
  24. package/build/cjs/features/RowSelection.js.map +1 -1
  25. package/build/cjs/features/Sorting.js +41 -91
  26. package/build/cjs/features/Sorting.js.map +1 -1
  27. package/build/cjs/features/Visibility.js +20 -43
  28. package/build/cjs/features/Visibility.js.map +1 -1
  29. package/build/cjs/filterFns.js +51 -108
  30. package/build/cjs/filterFns.js.map +1 -1
  31. package/build/cjs/index.js +5 -4
  32. package/build/cjs/index.js.map +1 -1
  33. package/build/cjs/utils/filterRowsUtils.js +21 -0
  34. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  35. package/build/cjs/utils/getCoreRowModelAsync.js +1 -1
  36. package/build/cjs/utils/getCoreRowModelAsync.js.map +1 -1
  37. package/build/cjs/utils/getCoreRowModelSync.js +1 -1
  38. package/build/cjs/utils/getCoreRowModelSync.js.map +1 -1
  39. package/build/cjs/utils/getExpandedRowModel.js +2 -2
  40. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  41. package/build/cjs/utils/getFilteredRowModelSync.js +125 -0
  42. package/build/cjs/utils/getFilteredRowModelSync.js.map +1 -0
  43. package/build/cjs/utils/getGroupedRowModel.js +1 -1
  44. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  45. package/build/cjs/utils/getPaginationRowModel.js +1 -1
  46. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  47. package/build/cjs/utils/getSortedRowModelSync.js +3 -3
  48. package/build/cjs/utils/getSortedRowModelSync.js.map +1 -1
  49. package/build/cjs/utils.js +2 -6
  50. package/build/cjs/utils.js.map +1 -1
  51. package/build/esm/index.js +899 -1357
  52. package/build/esm/index.js.map +1 -1
  53. package/build/stats-html.html +1 -1
  54. package/build/stats-react.json +404 -418
  55. package/build/types/features/ColumnSizing.d.ts +2 -13
  56. package/build/types/features/Expanding.d.ts +3 -13
  57. package/build/types/features/Filters.d.ts +38 -42
  58. package/build/types/features/Grouping.d.ts +3 -18
  59. package/build/types/features/Ordering.d.ts +2 -6
  60. package/build/types/features/Pinning.d.ts +2 -19
  61. package/build/types/features/RowSelection.d.ts +4 -15
  62. package/build/types/features/Sorting.d.ts +5 -22
  63. package/build/types/features/Visibility.d.ts +2 -15
  64. package/build/types/filterFns.d.ts +10 -52
  65. package/build/types/index.d.ts +1 -2
  66. package/build/types/types.d.ts +2 -4
  67. package/build/types/utils/filterRowsUtils.d.ts +1 -0
  68. package/build/types/utils/{getColumnFilteredRowModelAsync.d.ts → getFilteredRowModelAsync.d.ts} +1 -1
  69. package/build/types/utils/getFilteredRowModelSync.d.ts +2 -0
  70. package/build/types/utils.d.ts +2 -2
  71. package/build/umd/index.development.js +867 -1323
  72. package/build/umd/index.development.js.map +1 -1
  73. package/build/umd/index.production.js +1 -1
  74. package/build/umd/index.production.js.map +1 -1
  75. package/package.json +2 -1
  76. package/src/core.ts +5 -5
  77. package/src/features/Cells.ts +4 -2
  78. package/src/features/ColumnSizing.ts +69 -126
  79. package/src/features/Columns.ts +12 -7
  80. package/src/features/Expanding.ts +62 -107
  81. package/src/features/Filters.ts +293 -243
  82. package/src/features/Grouping.ts +59 -81
  83. package/src/features/Headers.ts +18 -40
  84. package/src/features/Ordering.ts +7 -9
  85. package/src/features/Pagination.ts +4 -3
  86. package/src/features/Pinning.ts +77 -164
  87. package/src/features/RowSelection.ts +76 -123
  88. package/src/features/Sorting.ts +48 -106
  89. package/src/features/Visibility.ts +25 -52
  90. package/src/filterFns.ts +74 -147
  91. package/src/index.ts +1 -2
  92. package/src/types.ts +2 -2
  93. package/src/utils/filterRowsUtils.ts +24 -0
  94. package/src/utils/getCoreRowModelAsync.ts +1 -1
  95. package/src/utils/getCoreRowModelSync.ts +1 -1
  96. package/src/utils/getExpandedRowModel.ts +2 -2
  97. package/src/utils/getFilteredRowModelAsync.ts +157 -0
  98. package/src/utils/getFilteredRowModelSync.ts +141 -0
  99. package/src/utils/getGroupedRowModel.ts +1 -1
  100. package/src/utils/getPaginationRowModel.ts +1 -1
  101. package/src/utils/getSortedRowModelAsync.ts +1 -1
  102. package/src/utils/getSortedRowModelSync.ts +4 -4
  103. package/src/utils.ts +2 -4
  104. package/build/cjs/utils/getColumnFilteredRowModelSync.js +0 -115
  105. package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +0 -1
  106. package/build/cjs/utils/getGlobalFilteredRowModelSync.js +0 -91
  107. package/build/cjs/utils/getGlobalFilteredRowModelSync.js.map +0 -1
  108. package/build/types/utils/getColumnFilteredRowModelSync.d.ts +0 -2
  109. package/build/types/utils/getGlobalFilteredRowModelAsync.d.ts +0 -4
  110. package/build/types/utils/getGlobalFilteredRowModelSync.d.ts +0 -2
  111. package/src/utils/getColumnFilteredRowModelAsync.ts +0 -118
  112. package/src/utils/getColumnFilteredRowModelSync.ts +0 -102
  113. package/src/utils/getGlobalFilteredRowModelAsync.ts +0 -96
  114. package/src/utils/getGlobalFilteredRowModelSync.ts +0 -79
@@ -12,6 +12,7 @@ import {
12
12
  TableInstance,
13
13
  Row,
14
14
  Updater,
15
+ TableFeature,
15
16
  } from '../types'
16
17
 
17
18
  import { isFunction, makeStateUpdater, Overwrite } from '../utils'
@@ -49,13 +50,14 @@ export type SortingColumnDef<TGenerics extends TableGenerics> = {
49
50
  sortDescFirst?: boolean
50
51
  enableSorting?: boolean
51
52
  enableMultiSort?: boolean
52
- defaultCanSort?: boolean
53
53
  invertSorting?: boolean
54
54
  sortUndefined?: false | -1 | 1
55
55
  }
56
56
 
57
57
  export type SortingColumn<TGenerics extends TableGenerics> = {
58
- sortingFn: SortingFnOption<Overwrite<TGenerics, { Value: any }>>
58
+ getAutoSortingFn: () => SortingFn<TGenerics>
59
+ getAutoSortDir: () => SortDirection
60
+ getSortingFn: () => SortingFn<TGenerics>
59
61
  getCanSort: () => boolean
60
62
  getCanMultiSort: () => boolean
61
63
  getSortIndex: () => number
@@ -82,25 +84,7 @@ export type SortingOptions<TGenerics extends TableGenerics> = {
82
84
  }
83
85
 
84
86
  export type SortingInstance<TGenerics extends TableGenerics> = {
85
- getColumnAutoSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined
86
- getColumnAutoSortDir: (columnId: string) => SortDirection
87
-
88
- getColumnSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined
89
-
90
87
  setSorting: (updater: Updater<SortingState>) => void
91
- toggleColumnSorting: (
92
- columnId: string,
93
- desc?: boolean,
94
- multi?: boolean
95
- ) => void
96
- resetSorting: (columnId?: string) => void
97
- getColumnCanSort: (columnId: string) => boolean
98
- getColumnCanMultiSort: (columnId: string) => boolean
99
- getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'
100
- getColumnSortIndex: (columnId: string) => number
101
- getToggleSortingHandler: (
102
- columnId: string
103
- ) => undefined | ((event: unknown) => void)
104
88
  getPreSortedRowModel: () => RowModel<TGenerics>
105
89
  getSortedRowModel: () => RowModel<TGenerics>
106
90
  _getSortedRowModel?: () => RowModel<TGenerics>
@@ -108,18 +92,19 @@ export type SortingInstance<TGenerics extends TableGenerics> = {
108
92
 
109
93
  //
110
94
 
111
- export const Sorting = {
112
- getDefaultColumn: <
113
- TGenerics extends TableGenerics
114
- >(): SortingColumnDef<TGenerics> => {
95
+ export const Sorting: TableFeature = {
96
+ getInitialState: (state): SortingTableState => {
115
97
  return {
116
- sortingFn: 'auto',
98
+ sorting: [],
99
+ ...state,
117
100
  }
118
101
  },
119
102
 
120
- getInitialState: (): SortingTableState => {
103
+ getDefaultColumn: <
104
+ TGenerics extends TableGenerics
105
+ >(): SortingColumnDef<TGenerics> => {
121
106
  return {
122
- sorting: [],
107
+ sortingFn: 'auto',
123
108
  }
124
109
  },
125
110
 
@@ -139,34 +124,13 @@ export const Sorting = {
139
124
  instance: TableInstance<TGenerics>
140
125
  ): SortingColumn<TGenerics> => {
141
126
  return {
142
- sortingFn: column.sortingFn,
143
- getCanSort: () => instance.getColumnCanSort(column.id),
144
- getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),
145
- getSortIndex: () => instance.getColumnSortIndex(column.id),
146
- getIsSorted: () => instance.getColumnIsSorted(column.id),
147
- resetSorting: () => instance.resetSorting(column.id),
148
- toggleSorting: (desc, isMulti) =>
149
- instance.toggleColumnSorting(column.id, desc, isMulti),
150
- getToggleSortingHandler: () =>
151
- instance.getToggleSortingHandler(column.id)!,
152
- }
153
- },
154
-
155
- createInstance: <TGenerics extends TableGenerics>(
156
- instance: TableInstance<TGenerics>
157
- ): SortingInstance<TGenerics> => {
158
- let registered = false
159
-
160
- return {
161
- getColumnAutoSortingFn: columnId => {
162
- const firstRows = instance
163
- .getGlobalFilteredRowModel()
164
- .flatRows.slice(100)
127
+ getAutoSortingFn: () => {
128
+ const firstRows = instance.getFilteredRowModel().flatRows.slice(100)
165
129
 
166
130
  let isString = false
167
131
 
168
132
  for (const row of firstRows) {
169
- const value = row?.values[columnId]
133
+ const value = row?.values[column.id]
170
134
 
171
135
  if (Object.prototype.toString.call(value) === '[object Date]') {
172
136
  return sortingFns.datetime
@@ -187,10 +151,10 @@ export const Sorting = {
187
151
 
188
152
  return sortingFns.basic
189
153
  },
190
- getColumnAutoSortDir: columnId => {
191
- const firstRow = instance.getGlobalFilteredRowModel().flatRows[0]
154
+ getAutoSortDir: () => {
155
+ const firstRow = instance.getFilteredRowModel().flatRows[0]
192
156
 
193
- const value = firstRow?.values[columnId]
157
+ const value = firstRow?.values[column.id]
194
158
 
195
159
  if (typeof value === 'string') {
196
160
  return 'asc'
@@ -198,8 +162,7 @@ export const Sorting = {
198
162
 
199
163
  return 'desc'
200
164
  },
201
- getColumnSortingFn: columnId => {
202
- const column = instance.getColumn(columnId)
165
+ getSortingFn: () => {
203
166
  const userSortingFn = instance.options.sortingFns
204
167
 
205
168
  if (!column) {
@@ -209,7 +172,7 @@ export const Sorting = {
209
172
  return isFunction(column.sortingFn)
210
173
  ? column.sortingFn
211
174
  : column.sortingFn === 'auto'
212
- ? instance.getColumnAutoSortingFn(columnId)
175
+ ? column.getAutoSortingFn()
213
176
  : (userSortingFn as Record<string, any>)?.[
214
177
  column.sortingFn as string
215
178
  ] ??
@@ -217,16 +180,7 @@ export const Sorting = {
217
180
  column.sortingFn as BuiltInSortingFn
218
181
  ] as SortingFn<TGenerics>)
219
182
  },
220
-
221
- setSorting: updater => instance.options.onSortingChange?.(updater),
222
-
223
- toggleColumnSorting: (columnId, desc, multi) => {
224
- const column = instance.getColumn(columnId)
225
-
226
- if (!column) {
227
- throw new Error()
228
- }
229
-
183
+ toggleSorting: (desc, multi) => {
230
184
  // if (column.columns.length) {
231
185
  // column.columns.forEach((c, i) => {
232
186
  // if (c.id) {
@@ -238,8 +192,8 @@ export const Sorting = {
238
192
 
239
193
  instance.setSorting(old => {
240
194
  // Find any existing sorting for this column
241
- const existingSorting = old?.find(d => d.id === columnId)
242
- const existingIndex = old?.findIndex(d => d.id === columnId)
195
+ const existingSorting = old?.find(d => d.id === column.id)
196
+ const existingIndex = old?.findIndex(d => d.id === column.id)
243
197
  const hasDescDefined = typeof desc !== 'undefined' && desc !== null
244
198
 
245
199
  let newSorting: SortingState = []
@@ -267,7 +221,7 @@ export const Sorting = {
267
221
  const sortDescFirst =
268
222
  column.sortDescFirst ??
269
223
  instance.options.sortDescFirst ??
270
- instance.getColumnAutoSortDir(columnId) === 'desc'
224
+ column.getAutoSortDir() === 'desc'
271
225
 
272
226
  // Handle toggle states that will remove the sorting
273
227
  if (
@@ -285,7 +239,7 @@ export const Sorting = {
285
239
  if (sortAction === 'replace') {
286
240
  newSorting = [
287
241
  {
288
- id: columnId,
242
+ id: column.id,
289
243
  desc: hasDescDefined ? desc! : !!sortDescFirst,
290
244
  },
291
245
  ]
@@ -293,7 +247,7 @@ export const Sorting = {
293
247
  newSorting = [
294
248
  ...old,
295
249
  {
296
- id: columnId,
250
+ id: column.id,
297
251
  desc: hasDescDefined ? desc! : !!sortDescFirst,
298
252
  },
299
253
  ]
@@ -307,7 +261,7 @@ export const Sorting = {
307
261
  } else if (sortAction === 'toggle' && old?.length) {
308
262
  // This flips (or sets) the
309
263
  newSorting = old.map(d => {
310
- if (d.id === columnId) {
264
+ if (d.id === column.id) {
311
265
  return {
312
266
  ...d,
313
267
  desc: hasDescDefined ? desc! : !existingSorting?.desc,
@@ -316,38 +270,22 @@ export const Sorting = {
316
270
  return d
317
271
  })
318
272
  } else if (sortAction === 'remove' && old?.length) {
319
- newSorting = old.filter(d => d.id !== columnId)
273
+ newSorting = old.filter(d => d.id !== column.id)
320
274
  }
321
275
 
322
276
  return newSorting
323
277
  })
324
278
  },
325
279
 
326
- getColumnCanSort: columnId => {
327
- const column = instance.getColumn(columnId)
328
-
329
- if (!column) {
330
- throw new Error()
331
- }
332
-
280
+ getCanSort: () => {
333
281
  return (
334
- column.enableSorting ??
335
- instance.options.enableSorting ??
336
- column.defaultCanSort ??
282
+ (column.enableSorting ?? true) &&
283
+ (instance.options.enableSorting ?? true) &&
337
284
  !!column.accessorFn
338
- // (!!column.accessorFn ||
339
- // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??
340
- // false
341
285
  )
342
286
  },
343
287
 
344
- getColumnCanMultiSort: columnId => {
345
- const column = instance.getColumn(columnId)
346
-
347
- if (!column) {
348
- throw new Error()
349
- }
350
-
288
+ getCanMultiSort: () => {
351
289
  return (
352
290
  column.enableMultiSort ??
353
291
  instance.options.enableMultiSort ??
@@ -355,16 +293,16 @@ export const Sorting = {
355
293
  )
356
294
  },
357
295
 
358
- getColumnIsSorted: columnId => {
296
+ getIsSorted: () => {
359
297
  const columnSort = instance
360
298
  .getState()
361
- .sorting?.find(d => d.id === columnId)
299
+ .sorting?.find(d => d.id === column.id)
362
300
 
363
301
  return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'
364
302
  },
365
303
 
366
- getColumnSortIndex: columnId =>
367
- instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,
304
+ getSortIndex: () =>
305
+ instance.getState().sorting?.findIndex(d => d.id === column.id) ?? -1,
368
306
 
369
307
  resetSorting: (columnId?: string) => {
370
308
  if (columnId) {
@@ -376,13 +314,7 @@ export const Sorting = {
376
314
  }
377
315
  },
378
316
 
379
- getToggleSortingHandler: columnId => {
380
- const column = instance.getColumn(columnId)
381
-
382
- if (!column) {
383
- throw new Error()
384
- }
385
-
317
+ getToggleSortingHandler: () => {
386
318
  const canSort = column.getCanSort()
387
319
 
388
320
  return (e: unknown) => {
@@ -396,8 +328,18 @@ export const Sorting = {
396
328
  )
397
329
  }
398
330
  },
331
+ }
332
+ },
333
+
334
+ createInstance: <TGenerics extends TableGenerics>(
335
+ instance: TableInstance<TGenerics>
336
+ ): SortingInstance<TGenerics> => {
337
+ let registered = false
338
+
339
+ return {
340
+ setSorting: updater => instance.options.onSortingChange?.(updater),
399
341
 
400
- getPreSortedRowModel: () => instance.getGlobalFilteredRowModel(),
342
+ getPreSortedRowModel: () => instance.getFilteredRowModel(),
401
343
  getSortedRowModel: () => {
402
344
  if (
403
345
  !instance._getSortedRowModel &&
@@ -6,6 +6,7 @@ import {
6
6
  TableInstance,
7
7
  Updater,
8
8
  Row,
9
+ TableFeature,
9
10
  } from '../types'
10
11
  import { makeStateUpdater, memo } from '../utils'
11
12
 
@@ -31,10 +32,7 @@ export type VisibilityInstance<TGenerics extends TableGenerics> = {
31
32
  getRightVisibleLeafColumns: () => Column<TGenerics>[]
32
33
  getCenterVisibleLeafColumns: () => Column<TGenerics>[]
33
34
  setColumnVisibility: (updater: Updater<VisibilityState>) => void
34
- toggleColumnVisibility: (columnId: string, value?: boolean) => void
35
35
  toggleAllColumnsVisible: (value?: boolean) => void
36
- getColumnIsVisible: (columId: string) => boolean
37
- getColumnCanHide: (columnId: string) => boolean
38
36
  getIsAllColumnsVisible: () => boolean
39
37
  getIsSomeColumnsVisible: () => boolean
40
38
  getToggleAllColumnsVisibilityHandler: () =>
@@ -44,7 +42,6 @@ export type VisibilityInstance<TGenerics extends TableGenerics> = {
44
42
 
45
43
  export type VisibilityColumnDef = {
46
44
  enableHiding?: boolean
47
- defaultCanHide?: boolean
48
45
  defaultIsVisible?: boolean
49
46
  }
50
47
 
@@ -62,10 +59,11 @@ export type VisibilityColumn = {
62
59
 
63
60
  //
64
61
 
65
- export const Visibility = {
66
- getInitialState: (): VisibilityTableState => {
62
+ export const Visibility: TableFeature = {
63
+ getInitialState: (state): VisibilityTableState => {
67
64
  return {
68
65
  columnVisibility: {},
66
+ ...state,
69
67
  }
70
68
  },
71
69
 
@@ -88,10 +86,24 @@ export const Visibility = {
88
86
  instance: TableInstance<TGenerics>
89
87
  ): VisibilityColumn => {
90
88
  return {
91
- getCanHide: () => instance.getColumnCanHide(column.id),
92
- getIsVisible: () => instance.getColumnIsVisible(column.id),
93
- toggleVisibility: value =>
94
- instance.toggleColumnVisibility(column.id, value),
89
+ toggleVisibility: value => {
90
+ if (column.getCanHide()) {
91
+ instance.setColumnVisibility(old => ({
92
+ ...old,
93
+ [column.id]: value ?? !column.getIsVisible(),
94
+ }))
95
+ }
96
+ },
97
+ getIsVisible: () => {
98
+ return instance.getState().columnVisibility?.[column.id] ?? true
99
+ },
100
+
101
+ getCanHide: () => {
102
+ return (
103
+ (column.enableHiding ?? true) &&
104
+ (instance.options.enableHiding ?? true)
105
+ )
106
+ },
95
107
  getToggleVisibilityHandler: () => {
96
108
  return (e: unknown) => {
97
109
  column.toggleVisibility?.(
@@ -119,7 +131,8 @@ export const Visibility = {
119
131
  return row.getAllCells().filter(cell => cell.column.getIsVisible())
120
132
  },
121
133
  {
122
- key: 'row._getAllVisibleCells',
134
+ key:
135
+ process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',
123
136
  debug: () => instance.options.debugAll ?? instance.options.debugRows,
124
137
  }
125
138
  ),
@@ -131,7 +144,7 @@ export const Visibility = {
131
144
  ],
132
145
  (left, center, right) => [...left, ...center, ...right],
133
146
  {
134
- key: 'row.getVisibleCells',
147
+ key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',
135
148
  debug: () => instance.options.debugAll ?? instance.options.debugRows,
136
149
  }
137
150
  ),
@@ -189,17 +202,6 @@ export const Visibility = {
189
202
  setColumnVisibility: updater =>
190
203
  instance.options.onColumnVisibilityChange?.(updater),
191
204
 
192
- toggleColumnVisibility: (columnId, value) => {
193
- if (!columnId) return
194
-
195
- if (instance.getColumnCanHide(columnId)) {
196
- instance.setColumnVisibility(old => ({
197
- ...old,
198
- [columnId]: value ?? !instance.getColumnIsVisible(columnId),
199
- }))
200
- }
201
- },
202
-
203
205
  toggleAllColumnsVisible: value => {
204
206
  value = value ?? !instance.getIsAllColumnsVisible()
205
207
 
@@ -214,35 +216,6 @@ export const Visibility = {
214
216
  )
215
217
  },
216
218
 
217
- getColumnIsVisible: columnId => {
218
- const column = instance.getColumn(columnId)
219
-
220
- if (!column) {
221
- throw new Error()
222
- }
223
-
224
- return (
225
- instance.getState().columnVisibility?.[columnId] ??
226
- column.defaultIsVisible ??
227
- true
228
- )
229
- },
230
-
231
- getColumnCanHide: columnId => {
232
- const column = instance.getColumn(columnId)
233
-
234
- if (!column) {
235
- throw new Error()
236
- }
237
-
238
- return (
239
- instance.options.enableHiding ??
240
- column.enableHiding ??
241
- column.defaultCanHide ??
242
- true
243
- )
244
- },
245
-
246
219
  getIsAllColumnsVisible: () =>
247
220
  !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),
248
221