@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
@@ -18,16 +18,16 @@ var utils = require('../utils.js');
18
18
 
19
19
  //
20
20
  var Sorting = {
21
+ getInitialState: function getInitialState(state) {
22
+ return _rollupPluginBabelHelpers["extends"]({
23
+ sorting: []
24
+ }, state);
25
+ },
21
26
  getDefaultColumn: function getDefaultColumn() {
22
27
  return {
23
28
  sortingFn: 'auto'
24
29
  };
25
30
  },
26
- getInitialState: function getInitialState() {
27
- return {
28
- sorting: []
29
- };
30
- },
31
31
  getDefaultOptions: function getDefaultOptions(instance) {
32
32
  return {
33
33
  onSortingChange: utils.makeStateUpdater('sorting', instance),
@@ -38,39 +38,13 @@ var Sorting = {
38
38
  },
39
39
  createColumn: function createColumn(column, instance) {
40
40
  return {
41
- sortingFn: column.sortingFn,
42
- getCanSort: function getCanSort() {
43
- return instance.getColumnCanSort(column.id);
44
- },
45
- getCanMultiSort: function getCanMultiSort() {
46
- return instance.getColumnCanMultiSort(column.id);
47
- },
48
- getSortIndex: function getSortIndex() {
49
- return instance.getColumnSortIndex(column.id);
50
- },
51
- getIsSorted: function getIsSorted() {
52
- return instance.getColumnIsSorted(column.id);
53
- },
54
- resetSorting: function resetSorting() {
55
- return instance.resetSorting(column.id);
56
- },
57
- toggleSorting: function toggleSorting(desc, isMulti) {
58
- return instance.toggleColumnSorting(column.id, desc, isMulti);
59
- },
60
- getToggleSortingHandler: function getToggleSortingHandler() {
61
- return instance.getToggleSortingHandler(column.id);
62
- }
63
- };
64
- },
65
- createInstance: function createInstance(instance) {
66
- return {
67
- getColumnAutoSortingFn: function getColumnAutoSortingFn(columnId) {
68
- var firstRows = instance.getGlobalFilteredRowModel().flatRows.slice(100);
41
+ getAutoSortingFn: function getAutoSortingFn() {
42
+ var firstRows = instance.getFilteredRowModel().flatRows.slice(100);
69
43
  var isString = false;
70
44
 
71
45
  for (var _iterator = _rollupPluginBabelHelpers.createForOfIteratorHelperLoose(firstRows), _step; !(_step = _iterator()).done;) {
72
46
  var row = _step.value;
73
- var value = row == null ? void 0 : row.values[columnId];
47
+ var value = row == null ? void 0 : row.values[column.id];
74
48
 
75
49
  if (Object.prototype.toString.call(value) === '[object Date]') {
76
50
  return sortingFns.sortingFns.datetime;
@@ -91,9 +65,9 @@ var Sorting = {
91
65
 
92
66
  return sortingFns.sortingFns.basic;
93
67
  },
94
- getColumnAutoSortDir: function getColumnAutoSortDir(columnId) {
95
- var firstRow = instance.getGlobalFilteredRowModel().flatRows[0];
96
- var value = firstRow == null ? void 0 : firstRow.values[columnId];
68
+ getAutoSortDir: function getAutoSortDir() {
69
+ var firstRow = instance.getFilteredRowModel().flatRows[0];
70
+ var value = firstRow == null ? void 0 : firstRow.values[column.id];
97
71
 
98
72
  if (typeof value === 'string') {
99
73
  return 'asc';
@@ -101,27 +75,19 @@ var Sorting = {
101
75
 
102
76
  return 'desc';
103
77
  },
104
- getColumnSortingFn: function getColumnSortingFn(columnId) {
78
+ getSortingFn: function getSortingFn() {
105
79
  var _ref;
106
80
 
107
- var column = instance.getColumn(columnId);
108
81
  var userSortingFn = instance.options.sortingFns;
109
82
 
110
83
  if (!column) {
111
84
  throw new Error();
112
85
  }
113
86
 
114
- return utils.isFunction(column.sortingFn) ? column.sortingFn : column.sortingFn === 'auto' ? instance.getColumnAutoSortingFn(columnId) : (_ref = userSortingFn == null ? void 0 : userSortingFn[column.sortingFn]) != null ? _ref : sortingFns.sortingFns[column.sortingFn];
87
+ return utils.isFunction(column.sortingFn) ? column.sortingFn : column.sortingFn === 'auto' ? column.getAutoSortingFn() : (_ref = userSortingFn == null ? void 0 : userSortingFn[column.sortingFn]) != null ? _ref : sortingFns.sortingFns[column.sortingFn];
115
88
  },
116
- setSorting: function setSorting(updater) {
117
- return instance.options.onSortingChange == null ? void 0 : instance.options.onSortingChange(updater);
118
- },
119
- toggleColumnSorting: function toggleColumnSorting(columnId, desc, multi) {
120
- var column = instance.getColumn(columnId);
121
-
122
- if (!column) {
123
- throw new Error();
124
- } // if (column.columns.length) {
89
+ toggleSorting: function toggleSorting(desc, multi) {
90
+ // if (column.columns.length) {
125
91
  // column.columns.forEach((c, i) => {
126
92
  // if (c.id) {
127
93
  // instance.toggleColumnSorting(c.id, undefined, multi || !!i)
@@ -129,17 +95,15 @@ var Sorting = {
129
95
  // })
130
96
  // return
131
97
  // }
132
-
133
-
134
98
  instance.setSorting(function (old) {
135
99
  var _ref2, _column$sortDescFirst, _instance$options$ena, _instance$options$ena2;
136
100
 
137
101
  // Find any existing sorting for this column
138
102
  var existingSorting = old == null ? void 0 : old.find(function (d) {
139
- return d.id === columnId;
103
+ return d.id === column.id;
140
104
  });
141
105
  var existingIndex = old == null ? void 0 : old.findIndex(function (d) {
142
- return d.id === columnId;
106
+ return d.id === column.id;
143
107
  });
144
108
  var hasDescDefined = typeof desc !== 'undefined' && desc !== null;
145
109
  var newSorting = []; // What should we do with this sort action?
@@ -163,7 +127,7 @@ var Sorting = {
163
127
  }
164
128
  }
165
129
 
166
- var sortDescFirst = (_ref2 = (_column$sortDescFirst = column.sortDescFirst) != null ? _column$sortDescFirst : instance.options.sortDescFirst) != null ? _ref2 : instance.getColumnAutoSortDir(columnId) === 'desc'; // Handle toggle states that will remove the sorting
130
+ var sortDescFirst = (_ref2 = (_column$sortDescFirst = column.sortDescFirst) != null ? _column$sortDescFirst : instance.options.sortDescFirst) != null ? _ref2 : column.getAutoSortDir() === 'desc'; // Handle toggle states that will remove the sorting
167
131
 
168
132
  if (sortAction === 'toggle' && ( // Must be toggling
169
133
  (_instance$options$ena = instance.options.enableSortingRemoval) != null ? _instance$options$ena : true) && // If enableSortRemove, enable in general
@@ -176,14 +140,14 @@ var Sorting = {
176
140
 
177
141
  if (sortAction === 'replace') {
178
142
  newSorting = [{
179
- id: columnId,
143
+ id: column.id,
180
144
  desc: hasDescDefined ? desc : !!sortDescFirst
181
145
  }];
182
146
  } else if (sortAction === 'add' && old != null && old.length) {
183
147
  var _instance$options$max;
184
148
 
185
149
  newSorting = [].concat(old, [{
186
- id: columnId,
150
+ id: column.id,
187
151
  desc: hasDescDefined ? desc : !!sortDescFirst
188
152
  }]); // Take latest n columns
189
153
 
@@ -191,7 +155,7 @@ var Sorting = {
191
155
  } else if (sortAction === 'toggle' && old != null && old.length) {
192
156
  // This flips (or sets) the
193
157
  newSorting = old.map(function (d) {
194
- if (d.id === columnId) {
158
+ if (d.id === column.id) {
195
159
  return _rollupPluginBabelHelpers["extends"]({}, d, {
196
160
  desc: hasDescDefined ? desc : !(existingSorting != null && existingSorting.desc)
197
161
  });
@@ -201,51 +165,36 @@ var Sorting = {
201
165
  });
202
166
  } else if (sortAction === 'remove' && old != null && old.length) {
203
167
  newSorting = old.filter(function (d) {
204
- return d.id !== columnId;
168
+ return d.id !== column.id;
205
169
  });
206
170
  }
207
171
 
208
172
  return newSorting;
209
173
  });
210
174
  },
211
- getColumnCanSort: function getColumnCanSort(columnId) {
212
- var _ref3, _ref4, _column$enableSorting;
213
-
214
- var column = instance.getColumn(columnId);
215
-
216
- if (!column) {
217
- throw new Error();
218
- }
175
+ getCanSort: function getCanSort() {
176
+ var _column$enableSorting, _instance$options$ena3;
219
177
 
220
- return (_ref3 = (_ref4 = (_column$enableSorting = column.enableSorting) != null ? _column$enableSorting : instance.options.enableSorting) != null ? _ref4 : column.defaultCanSort) != null ? _ref3 : !!column.accessorFn // (!!column.accessorFn ||
221
- // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??
222
- // false
223
- ;
178
+ return ((_column$enableSorting = column.enableSorting) != null ? _column$enableSorting : true) && ((_instance$options$ena3 = instance.options.enableSorting) != null ? _instance$options$ena3 : true) && !!column.accessorFn;
224
179
  },
225
- getColumnCanMultiSort: function getColumnCanMultiSort(columnId) {
226
- var _ref5, _column$enableMultiSo;
227
-
228
- var column = instance.getColumn(columnId);
229
-
230
- if (!column) {
231
- throw new Error();
232
- }
180
+ getCanMultiSort: function getCanMultiSort() {
181
+ var _ref3, _column$enableMultiSo;
233
182
 
234
- return (_ref5 = (_column$enableMultiSo = column.enableMultiSort) != null ? _column$enableMultiSo : instance.options.enableMultiSort) != null ? _ref5 : !!column.accessorFn;
183
+ return (_ref3 = (_column$enableMultiSo = column.enableMultiSort) != null ? _column$enableMultiSo : instance.options.enableMultiSort) != null ? _ref3 : !!column.accessorFn;
235
184
  },
236
- getColumnIsSorted: function getColumnIsSorted(columnId) {
185
+ getIsSorted: function getIsSorted() {
237
186
  var _instance$getState$so;
238
187
 
239
188
  var columnSort = (_instance$getState$so = instance.getState().sorting) == null ? void 0 : _instance$getState$so.find(function (d) {
240
- return d.id === columnId;
189
+ return d.id === column.id;
241
190
  });
242
191
  return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';
243
192
  },
244
- getColumnSortIndex: function getColumnSortIndex(columnId) {
193
+ getSortIndex: function getSortIndex() {
245
194
  var _instance$getState$so2, _instance$getState$so3;
246
195
 
247
196
  return (_instance$getState$so2 = (_instance$getState$so3 = instance.getState().sorting) == null ? void 0 : _instance$getState$so3.findIndex(function (d) {
248
- return d.id === columnId;
197
+ return d.id === column.id;
249
198
  })) != null ? _instance$getState$so2 : -1;
250
199
  },
251
200
  resetSorting: function resetSorting(columnId) {
@@ -261,22 +210,23 @@ var Sorting = {
261
210
  instance.setSorting((_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.sorting) != null ? _instance$initialStat : []);
262
211
  }
263
212
  },
264
- getToggleSortingHandler: function getToggleSortingHandler(columnId) {
265
- var column = instance.getColumn(columnId);
266
-
267
- if (!column) {
268
- throw new Error();
269
- }
270
-
213
+ getToggleSortingHandler: function getToggleSortingHandler() {
271
214
  var canSort = column.getCanSort();
272
215
  return function (e) {
273
216
  if (!canSort) return;
274
217
  e.persist == null ? void 0 : e.persist();
275
218
  column.toggleSorting == null ? void 0 : column.toggleSorting(undefined, column.getCanMultiSort() ? instance.options.isMultiSortEvent == null ? void 0 : instance.options.isMultiSortEvent(e) : false);
276
219
  };
220
+ }
221
+ };
222
+ },
223
+ createInstance: function createInstance(instance) {
224
+ return {
225
+ setSorting: function setSorting(updater) {
226
+ return instance.options.onSortingChange == null ? void 0 : instance.options.onSortingChange(updater);
277
227
  },
278
228
  getPreSortedRowModel: function getPreSortedRowModel() {
279
- return instance.getGlobalFilteredRowModel();
229
+ return instance.getFilteredRowModel();
280
230
  },
281
231
  getSortedRowModel: function getSortedRowModel() {
282
232
  if (!instance._getSortedRowModel && instance.options.getSortedRowModel) {
@@ -1 +1 @@
1
- {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { RowModel } from '..'\nimport {\n BuiltInSortingFn,\n reSplitAlphaNumeric,\n sortingFns,\n} from '../sortingFns'\n\nimport {\n Column,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n Updater,\n} from '../types'\n\nimport { isFunction, makeStateUpdater, Overwrite } from '../utils'\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport type ColumnSort = {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport type SortingFn<TGenerics extends TableGenerics> = {\n (rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number\n}\n\nexport type CustomSortingFns<TGenerics extends TableGenerics> = Record<\n string,\n SortingFn<TGenerics>\n>\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortingFnOption<TGenerics extends TableGenerics> =\n | 'auto'\n | BuiltInSortingFn\n | keyof TGenerics['SortingFns']\n | SortingFn<TGenerics>\n\nexport type SortingColumnDef<TGenerics extends TableGenerics> = {\n sortingFn?: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n defaultCanSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TGenerics extends TableGenerics> = {\n sortingFn: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n resetSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingHandler: () => undefined | ((event: unknown) => void)\n}\n\nexport type SortingOptions<TGenerics extends TableGenerics> = {\n manualSorting?: boolean\n sortingFns?: TGenerics['SortingFns']\n onSortingChange?: OnChangeFn<SortingState>\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n getSortedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: unknown) => boolean\n}\n\nexport type SortingInstance<TGenerics extends TableGenerics> = {\n getColumnAutoSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n getColumnAutoSortDir: (columnId: string) => SortDirection\n\n getColumnSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: (columnId?: string) => void\n getColumnCanSort: (columnId: string) => boolean\n getColumnCanMultiSort: (columnId: string) => boolean\n getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'\n getColumnSortIndex: (columnId: string) => number\n getToggleSortingHandler: (\n columnId: string\n ) => undefined | ((event: unknown) => void)\n getPreSortedRowModel: () => RowModel<TGenerics>\n getSortedRowModel: () => RowModel<TGenerics>\n _getSortedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Sorting = {\n getDefaultColumn: <\n TGenerics extends TableGenerics\n >(): SortingColumnDef<TGenerics> => {\n return {\n sortingFn: 'auto',\n }\n },\n\n getInitialState: (): SortingTableState => {\n return {\n sorting: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingOptions<TGenerics> => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n isMultiSortEvent: (e: unknown) => {\n return (e as MouseEvent).shiftKey\n },\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): SortingColumn<TGenerics> => {\n return {\n sortingFn: column.sortingFn,\n getCanSort: () => instance.getColumnCanSort(column.id),\n getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),\n getSortIndex: () => instance.getColumnSortIndex(column.id),\n getIsSorted: () => instance.getColumnIsSorted(column.id),\n resetSorting: () => instance.resetSorting(column.id),\n toggleSorting: (desc, isMulti) =>\n instance.toggleColumnSorting(column.id, desc, isMulti),\n getToggleSortingHandler: () =>\n instance.getToggleSortingHandler(column.id)!,\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\n let registered = false\n\n return {\n getColumnAutoSortingFn: columnId => {\n const firstRows = instance\n .getGlobalFilteredRowModel()\n .flatRows.slice(100)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.values[columnId]\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortingFns.text\n }\n\n return sortingFns.basic\n },\n getColumnAutoSortDir: columnId => {\n const firstRow = instance.getGlobalFilteredRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getColumnSortingFn: columnId => {\n const column = instance.getColumn(columnId)\n const userSortingFn = instance.options.sortingFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.sortingFn)\n ? column.sortingFn\n : column.sortingFn === 'auto'\n ? instance.getColumnAutoSortingFn(columnId)\n : (userSortingFn as Record<string, any>)?.[\n column.sortingFn as string\n ] ??\n (sortingFns[\n column.sortingFn as BuiltInSortingFn\n ] as SortingFn<TGenerics>)\n },\n\n setSorting: updater => instance.options.onSortingChange?.(updater),\n\n toggleColumnSorting: (columnId, desc, multi) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // instance.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n instance.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === columnId)\n const existingIndex = old?.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n const sortDescFirst =\n column.sortDescFirst ??\n instance.options.sortDescFirst ??\n instance.getColumnAutoSortDir(columnId) === 'desc'\n\n // Handle toggle states that will remove the sorting\n if (\n sortAction === 'toggle' && // Must be toggling\n (instance.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? instance.options.enableMultiRemove ?? true : true) && // If multi, don't allow if enableMultiRemove\n (existingSorting?.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst\n : sortDescFirst)\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSorting = [\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (instance.options.maxMultiSortColCount ??\n Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle' && old?.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc! : !existingSorting?.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove' && old?.length) {\n newSorting = old.filter(d => d.id !== columnId)\n }\n\n return newSorting\n })\n },\n\n getColumnCanSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableSorting ??\n instance.options.enableSorting ??\n column.defaultCanSort ??\n !!column.accessorFn\n // (!!column.accessorFn ||\n // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??\n // false\n )\n },\n\n getColumnCanMultiSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getColumnIsSorted: columnId => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === columnId)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getColumnSortIndex: columnId =>\n instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,\n\n resetSorting: (columnId?: string) => {\n if (columnId) {\n instance.setSorting(old =>\n old?.length ? old.filter(d => d.id !== columnId) : []\n )\n } else {\n instance.setSorting(instance.initialState?.sorting ?? [])\n }\n },\n\n getToggleSortingHandler: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const canSort = column.getCanSort()\n\n return (e: unknown) => {\n if (!canSort) return\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n },\n\n getPreSortedRowModel: () => instance.getGlobalFilteredRowModel(),\n getSortedRowModel: () => {\n if (\n !instance._getSortedRowModel &&\n instance.options.getSortedRowModel\n ) {\n instance._getSortedRowModel =\n instance.options.getSortedRowModel(instance)\n }\n\n if (instance.options.manualSorting || !instance._getSortedRowModel) {\n return instance.getPreSortedRowModel()\n }\n\n return instance._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getDefaultColumn","sortingFn","getInitialState","sorting","getDefaultOptions","instance","onSortingChange","makeStateUpdater","isMultiSortEvent","e","shiftKey","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","resetSorting","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingHandler","createInstance","getColumnAutoSortingFn","columnId","firstRows","getGlobalFilteredRowModel","flatRows","slice","isString","_createForOfIteratorHelperLoose","row","value","values","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getColumnAutoSortDir","firstRow","getColumnSortingFn","getColumn","userSortingFn","options","Error","isFunction","setSorting","updater","multi","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","_extends","filter","enableSorting","defaultCanSort","accessorFn","enableMultiSort","columnSort","getState","initialState","canSort","persist","undefined","getPreSortedRowModel","getSortedRowModel","_getSortedRowModel","manualSorting"],"mappings":"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"}
1
+ {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { RowModel } from '..'\nimport {\n BuiltInSortingFn,\n reSplitAlphaNumeric,\n sortingFns,\n} from '../sortingFns'\n\nimport {\n Column,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n Updater,\n TableFeature,\n} from '../types'\n\nimport { isFunction, makeStateUpdater, Overwrite } from '../utils'\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport type ColumnSort = {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport type SortingFn<TGenerics extends TableGenerics> = {\n (rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number\n}\n\nexport type CustomSortingFns<TGenerics extends TableGenerics> = Record<\n string,\n SortingFn<TGenerics>\n>\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortingFnOption<TGenerics extends TableGenerics> =\n | 'auto'\n | BuiltInSortingFn\n | keyof TGenerics['SortingFns']\n | SortingFn<TGenerics>\n\nexport type SortingColumnDef<TGenerics extends TableGenerics> = {\n sortingFn?: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TGenerics extends TableGenerics> = {\n getAutoSortingFn: () => SortingFn<TGenerics>\n getAutoSortDir: () => SortDirection\n getSortingFn: () => SortingFn<TGenerics>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n resetSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingHandler: () => undefined | ((event: unknown) => void)\n}\n\nexport type SortingOptions<TGenerics extends TableGenerics> = {\n manualSorting?: boolean\n sortingFns?: TGenerics['SortingFns']\n onSortingChange?: OnChangeFn<SortingState>\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n getSortedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: unknown) => boolean\n}\n\nexport type SortingInstance<TGenerics extends TableGenerics> = {\n setSorting: (updater: Updater<SortingState>) => void\n getPreSortedRowModel: () => RowModel<TGenerics>\n getSortedRowModel: () => RowModel<TGenerics>\n _getSortedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Sorting: TableFeature = {\n getInitialState: (state): SortingTableState => {\n return {\n sorting: [],\n ...state,\n }\n },\n\n getDefaultColumn: <\n TGenerics extends TableGenerics\n >(): SortingColumnDef<TGenerics> => {\n return {\n sortingFn: 'auto',\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingOptions<TGenerics> => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n isMultiSortEvent: (e: unknown) => {\n return (e as MouseEvent).shiftKey\n },\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): SortingColumn<TGenerics> => {\n return {\n getAutoSortingFn: () => {\n const firstRows = instance.getFilteredRowModel().flatRows.slice(100)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.values[column.id]\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortingFns.text\n }\n\n return sortingFns.basic\n },\n getAutoSortDir: () => {\n const firstRow = instance.getFilteredRowModel().flatRows[0]\n\n const value = firstRow?.values[column.id]\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getSortingFn: () => {\n const userSortingFn = instance.options.sortingFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.sortingFn)\n ? column.sortingFn\n : column.sortingFn === 'auto'\n ? column.getAutoSortingFn()\n : (userSortingFn as Record<string, any>)?.[\n column.sortingFn as string\n ] ??\n (sortingFns[\n column.sortingFn as BuiltInSortingFn\n ] as SortingFn<TGenerics>)\n },\n toggleSorting: (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // instance.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n instance.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === column.id)\n const existingIndex = old?.findIndex(d => d.id === column.id)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n const sortDescFirst =\n column.sortDescFirst ??\n instance.options.sortDescFirst ??\n column.getAutoSortDir() === 'desc'\n\n // Handle toggle states that will remove the sorting\n if (\n sortAction === 'toggle' && // Must be toggling\n (instance.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? instance.options.enableMultiRemove ?? true : true) && // If multi, don't allow if enableMultiRemove\n (existingSorting?.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst\n : sortDescFirst)\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSorting = [\n {\n id: column.id,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: column.id,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (instance.options.maxMultiSortColCount ??\n Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle' && old?.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: hasDescDefined ? desc! : !existingSorting?.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove' && old?.length) {\n newSorting = old.filter(d => d.id !== column.id)\n }\n\n return newSorting\n })\n },\n\n getCanSort: () => {\n return (\n (column.enableSorting ?? true) &&\n (instance.options.enableSorting ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanMultiSort: () => {\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getIsSorted: () => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === column.id)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getSortIndex: () =>\n instance.getState().sorting?.findIndex(d => d.id === column.id) ?? -1,\n\n resetSorting: (columnId?: string) => {\n if (columnId) {\n instance.setSorting(old =>\n old?.length ? old.filter(d => d.id !== columnId) : []\n )\n } else {\n instance.setSorting(instance.initialState?.sorting ?? [])\n }\n },\n\n getToggleSortingHandler: () => {\n const canSort = column.getCanSort()\n\n return (e: unknown) => {\n if (!canSort) return\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n },\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\n let registered = false\n\n return {\n setSorting: updater => instance.options.onSortingChange?.(updater),\n\n getPreSortedRowModel: () => instance.getFilteredRowModel(),\n getSortedRowModel: () => {\n if (\n !instance._getSortedRowModel &&\n instance.options.getSortedRowModel\n ) {\n instance._getSortedRowModel =\n instance.options.getSortedRowModel(instance)\n }\n\n if (instance.options.manualSorting || !instance._getSortedRowModel) {\n return instance.getPreSortedRowModel()\n }\n\n return instance._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getInitialState","state","_extends","sorting","getDefaultColumn","sortingFn","getDefaultOptions","instance","onSortingChange","makeStateUpdater","isMultiSortEvent","e","shiftKey","createColumn","column","getAutoSortingFn","firstRows","getFilteredRowModel","flatRows","slice","isString","_createForOfIteratorHelperLoose","row","value","values","id","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getAutoSortDir","firstRow","getSortingFn","userSortingFn","options","Error","isFunction","toggleSorting","desc","multi","setSorting","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","getCanMultiSort","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","getCanSort","enableSorting","accessorFn","enableMultiSort","getIsSorted","columnSort","getState","getSortIndex","resetSorting","columnId","initialState","getToggleSortingHandler","canSort","persist","undefined","createInstance","updater","getPreSortedRowModel","getSortedRowModel","_getSortedRowModel","manualSorting"],"mappings":"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"}
@@ -17,10 +17,10 @@ var utils = require('../utils.js');
17
17
 
18
18
  //
19
19
  var Visibility = {
20
- getInitialState: function getInitialState() {
21
- return {
20
+ getInitialState: function getInitialState(state) {
21
+ return _rollupPluginBabelHelpers["extends"]({
22
22
  columnVisibility: {}
23
- };
23
+ }, state);
24
24
  },
25
25
  getDefaultOptions: function getDefaultOptions(instance) {
26
26
  return {
@@ -34,14 +34,24 @@ var Visibility = {
34
34
  },
35
35
  createColumn: function createColumn(column, instance) {
36
36
  return {
37
- getCanHide: function getCanHide() {
38
- return instance.getColumnCanHide(column.id);
37
+ toggleVisibility: function toggleVisibility(value) {
38
+ if (column.getCanHide()) {
39
+ instance.setColumnVisibility(function (old) {
40
+ var _extends2;
41
+
42
+ return _rollupPluginBabelHelpers["extends"]({}, old, (_extends2 = {}, _extends2[column.id] = value != null ? value : !column.getIsVisible(), _extends2));
43
+ });
44
+ }
39
45
  },
40
46
  getIsVisible: function getIsVisible() {
41
- return instance.getColumnIsVisible(column.id);
47
+ var _instance$getState$co, _instance$getState$co2;
48
+
49
+ return (_instance$getState$co = (_instance$getState$co2 = instance.getState().columnVisibility) == null ? void 0 : _instance$getState$co2[column.id]) != null ? _instance$getState$co : true;
42
50
  },
43
- toggleVisibility: function toggleVisibility(value) {
44
- return instance.toggleColumnVisibility(column.id, value);
51
+ getCanHide: function getCanHide() {
52
+ var _column$enableHiding, _instance$options$ena;
53
+
54
+ return ((_column$enableHiding = column.enableHiding) != null ? _column$enableHiding : true) && ((_instance$options$ena = instance.options.enableHiding) != null ? _instance$options$ena : true);
45
55
  },
46
56
  getToggleVisibilityHandler: function getToggleVisibilityHandler() {
47
57
  return function (e) {
@@ -63,7 +73,7 @@ var Visibility = {
63
73
  return cell.column.getIsVisible();
64
74
  });
65
75
  }, {
66
- key: 'row._getAllVisibleCells',
76
+ key: process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',
67
77
  debug: function debug() {
68
78
  var _instance$options$deb;
69
79
 
@@ -75,7 +85,7 @@ var Visibility = {
75
85
  }, function (left, center, right) {
76
86
  return [].concat(left, center, right);
77
87
  }, {
78
- key: 'row.getVisibleCells',
88
+ key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',
79
89
  debug: function debug() {
80
90
  var _instance$options$deb2;
81
91
 
@@ -125,17 +135,6 @@ var Visibility = {
125
135
  setColumnVisibility: function setColumnVisibility(updater) {
126
136
  return instance.options.onColumnVisibilityChange == null ? void 0 : instance.options.onColumnVisibilityChange(updater);
127
137
  },
128
- toggleColumnVisibility: function toggleColumnVisibility(columnId, value) {
129
- if (!columnId) return;
130
-
131
- if (instance.getColumnCanHide(columnId)) {
132
- instance.setColumnVisibility(function (old) {
133
- var _extends2;
134
-
135
- return _rollupPluginBabelHelpers["extends"]({}, old, (_extends2 = {}, _extends2[columnId] = value != null ? value : !instance.getColumnIsVisible(columnId), _extends2));
136
- });
137
- }
138
- },
139
138
  toggleAllColumnsVisible: function toggleAllColumnsVisible(value) {
140
139
  var _value;
141
140
 
@@ -146,28 +145,6 @@ var Visibility = {
146
145
  return _rollupPluginBabelHelpers["extends"]({}, obj, (_extends3 = {}, _extends3[column.id] = !value ? !(column.getCanHide != null && column.getCanHide()) : value, _extends3));
147
146
  }, {}));
148
147
  },
149
- getColumnIsVisible: function getColumnIsVisible(columnId) {
150
- var _ref, _instance$getState$co, _instance$getState$co2;
151
-
152
- var column = instance.getColumn(columnId);
153
-
154
- if (!column) {
155
- throw new Error();
156
- }
157
-
158
- return (_ref = (_instance$getState$co = (_instance$getState$co2 = instance.getState().columnVisibility) == null ? void 0 : _instance$getState$co2[columnId]) != null ? _instance$getState$co : column.defaultIsVisible) != null ? _ref : true;
159
- },
160
- getColumnCanHide: function getColumnCanHide(columnId) {
161
- var _ref2, _ref3, _instance$options$ena;
162
-
163
- var column = instance.getColumn(columnId);
164
-
165
- if (!column) {
166
- throw new Error();
167
- }
168
-
169
- return (_ref2 = (_ref3 = (_instance$options$ena = instance.options.enableHiding) != null ? _instance$options$ena : column.enableHiding) != null ? _ref3 : column.defaultCanHide) != null ? _ref2 : true;
170
- },
171
148
  getIsAllColumnsVisible: function getIsAllColumnsVisible() {
172
149
  return !instance.getAllLeafColumns().some(function (column) {
173
150
  return !(column.getIsVisible != null && column.getIsVisible());
@@ -1 +1 @@
1
- {"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import {\n Cell,\n Column,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Updater,\n Row,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type VisibilityOptions = {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport type VisibilityDefaultOptions = {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport type VisibilityState = Record<string, boolean>\n\nexport type VisibilityTableState = {\n columnVisibility: VisibilityState\n}\n\nexport type VisibilityInstance<TGenerics extends TableGenerics> = {\n getVisibleFlatColumns: () => Column<TGenerics>[]\n getVisibleLeafColumns: () => Column<TGenerics>[]\n getLeftVisibleLeafColumns: () => Column<TGenerics>[]\n getRightVisibleLeafColumns: () => Column<TGenerics>[]\n getCenterVisibleLeafColumns: () => Column<TGenerics>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n toggleColumnVisibility: (columnId: string, value?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getColumnIsVisible: (columId: string) => boolean\n getColumnCanHide: (columnId: string) => boolean\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityHandler: () =>\n | undefined\n | ((event: unknown) => void)\n}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n defaultCanHide?: boolean\n defaultIsVisible?: boolean\n}\n\nexport type VisibilityRow<TGenerics extends TableGenerics> = {\n _getAllVisibleCells: () => Cell<TGenerics>[]\n getVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type VisibilityColumn = {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const Visibility = {\n getInitialState: (): VisibilityTableState => {\n return {\n columnVisibility: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance),\n }\n },\n\n getDefaultColumn: () => {\n return {\n defaultIsVisible: true,\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityColumn => {\n return {\n getCanHide: () => instance.getColumnCanHide(column.id),\n getIsVisible: () => instance.getColumnIsVisible(column.id),\n toggleVisibility: value =>\n instance.toggleColumnVisibility(column.id, value),\n getToggleVisibilityHandler: () => {\n return (e: unknown) => {\n column.toggleVisibility?.(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityRow<TGenerics> => {\n return {\n _getAllVisibleCells: memo(\n () => [\n row\n .getAllCells()\n .filter(cell => cell.column.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n _ => {\n return row.getAllCells().filter(cell => cell.column.getIsVisible())\n },\n {\n key: 'row._getAllVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n {\n key: 'row.getVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityInstance<TGenerics> => {\n const makeVisibleColumnsMethod = (\n key: string,\n getColumns: () => Column<TGenerics>[]\n ): (() => Column<TGenerics>[]) => {\n return memo(\n () => [\n getColumns(),\n getColumns()\n .filter(d => d.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n columns => {\n return columns.filter(d => d.getIsVisible?.())\n },\n {\n key,\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n )\n }\n\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod(\n 'getVisibleFlatColumns',\n () => instance.getAllFlatColumns()\n ),\n getVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getVisibleLeafColumns',\n () => instance.getAllLeafColumns()\n ),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getLeftVisibleLeafColumns',\n () => instance.getLeftLeafColumns()\n ),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getRightVisibleLeafColumns',\n () => instance.getRightLeafColumns()\n ),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getCenterVisibleLeafColumns',\n () => instance.getCenterLeafColumns()\n ),\n\n setColumnVisibility: updater =>\n instance.options.onColumnVisibilityChange?.(updater),\n\n toggleColumnVisibility: (columnId, value) => {\n if (!columnId) return\n\n if (instance.getColumnCanHide(columnId)) {\n instance.setColumnVisibility(old => ({\n ...old,\n [columnId]: value ?? !instance.getColumnIsVisible(columnId),\n }))\n }\n },\n\n toggleAllColumnsVisible: value => {\n value = value ?? !instance.getIsAllColumnsVisible()\n\n instance.setColumnVisibility(\n instance.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getColumnIsVisible: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnVisibility?.[columnId] ??\n column.defaultIsVisible ??\n true\n )\n },\n\n getColumnCanHide: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.options.enableHiding ??\n column.enableHiding ??\n column.defaultCanHide ??\n true\n )\n },\n\n getIsAllColumnsVisible: () =>\n !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n instance.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityHandler: () => {\n return (e: unknown) => {\n instance.toggleAllColumnsVisible(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","getDefaultColumn","defaultIsVisible","createColumn","column","getCanHide","getColumnCanHide","id","getIsVisible","getColumnIsVisible","toggleVisibility","value","toggleColumnVisibility","getToggleVisibilityHandler","e","target","checked","createRow","row","_getAllVisibleCells","memo","getAllCells","filter","cell","map","d","join","_","key","debug","options","debugAll","debugRows","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","createInstance","makeVisibleColumnsMethod","getColumns","columns","debugColumns","getVisibleFlatColumns","getAllFlatColumns","getVisibleLeafColumns","getAllLeafColumns","getLeftVisibleLeafColumns","getLeftLeafColumns","getRightVisibleLeafColumns","getRightLeafColumns","getCenterVisibleLeafColumns","getCenterLeafColumns","setColumnVisibility","updater","columnId","old","_extends","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","getColumn","Error","getState","enableHiding","defaultCanHide","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler"],"mappings":"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"}
1
+ {"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import {\n Cell,\n Column,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Updater,\n Row,\n TableFeature,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type VisibilityOptions = {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport type VisibilityDefaultOptions = {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport type VisibilityState = Record<string, boolean>\n\nexport type VisibilityTableState = {\n columnVisibility: VisibilityState\n}\n\nexport type VisibilityInstance<TGenerics extends TableGenerics> = {\n getVisibleFlatColumns: () => Column<TGenerics>[]\n getVisibleLeafColumns: () => Column<TGenerics>[]\n getLeftVisibleLeafColumns: () => Column<TGenerics>[]\n getRightVisibleLeafColumns: () => Column<TGenerics>[]\n getCenterVisibleLeafColumns: () => Column<TGenerics>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityHandler: () =>\n | undefined\n | ((event: unknown) => void)\n}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n defaultIsVisible?: boolean\n}\n\nexport type VisibilityRow<TGenerics extends TableGenerics> = {\n _getAllVisibleCells: () => Cell<TGenerics>[]\n getVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type VisibilityColumn = {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const Visibility: TableFeature = {\n getInitialState: (state): VisibilityTableState => {\n return {\n columnVisibility: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance),\n }\n },\n\n getDefaultColumn: () => {\n return {\n defaultIsVisible: true,\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityColumn => {\n return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n instance.setColumnVisibility(old => ({\n ...old,\n [column.id]: value ?? !column.getIsVisible(),\n }))\n }\n },\n getIsVisible: () => {\n return instance.getState().columnVisibility?.[column.id] ?? true\n },\n\n getCanHide: () => {\n return (\n (column.enableHiding ?? true) &&\n (instance.options.enableHiding ?? true)\n )\n },\n getToggleVisibilityHandler: () => {\n return (e: unknown) => {\n column.toggleVisibility?.(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityRow<TGenerics> => {\n return {\n _getAllVisibleCells: memo(\n () => [\n row\n .getAllCells()\n .filter(cell => cell.column.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n _ => {\n return row.getAllCells().filter(cell => cell.column.getIsVisible())\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityInstance<TGenerics> => {\n const makeVisibleColumnsMethod = (\n key: string,\n getColumns: () => Column<TGenerics>[]\n ): (() => Column<TGenerics>[]) => {\n return memo(\n () => [\n getColumns(),\n getColumns()\n .filter(d => d.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n columns => {\n return columns.filter(d => d.getIsVisible?.())\n },\n {\n key,\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n )\n }\n\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod(\n 'getVisibleFlatColumns',\n () => instance.getAllFlatColumns()\n ),\n getVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getVisibleLeafColumns',\n () => instance.getAllLeafColumns()\n ),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getLeftVisibleLeafColumns',\n () => instance.getLeftLeafColumns()\n ),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getRightVisibleLeafColumns',\n () => instance.getRightLeafColumns()\n ),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getCenterVisibleLeafColumns',\n () => instance.getCenterLeafColumns()\n ),\n\n setColumnVisibility: updater =>\n instance.options.onColumnVisibilityChange?.(updater),\n\n toggleAllColumnsVisible: value => {\n value = value ?? !instance.getIsAllColumnsVisible()\n\n instance.setColumnVisibility(\n instance.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getIsAllColumnsVisible: () =>\n !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n instance.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityHandler: () => {\n return (e: unknown) => {\n instance.toggleAllColumnsVisible(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","state","_extends","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","getDefaultColumn","defaultIsVisible","createColumn","column","toggleVisibility","value","getCanHide","setColumnVisibility","old","id","getIsVisible","getState","enableHiding","options","getToggleVisibilityHandler","e","target","checked","createRow","row","_getAllVisibleCells","memo","getAllCells","filter","cell","map","d","join","_","key","process","env","NODE_ENV","debug","debugAll","debugRows","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","createInstance","makeVisibleColumnsMethod","getColumns","columns","debugColumns","getVisibleFlatColumns","getAllFlatColumns","getVisibleLeafColumns","getAllLeafColumns","getLeftVisibleLeafColumns","getLeftLeafColumns","getRightVisibleLeafColumns","getRightLeafColumns","getCenterVisibleLeafColumns","getCenterLeafColumns","updater","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler"],"mappings":"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"}