@tanstack/table-core 8.5.13 → 8.5.16

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 (71) hide show
  1. package/build/cjs/aggregationFns.js +0 -15
  2. package/build/cjs/aggregationFns.js.map +1 -1
  3. package/build/cjs/columnHelper.js +10 -2
  4. package/build/cjs/columnHelper.js.map +1 -1
  5. package/build/cjs/core/cell.js +2 -9
  6. package/build/cjs/core/cell.js.map +1 -1
  7. package/build/cjs/core/column.js +9 -27
  8. package/build/cjs/core/column.js.map +1 -1
  9. package/build/cjs/core/headers.js +45 -129
  10. package/build/cjs/core/headers.js.map +1 -1
  11. package/build/cjs/core/row.js +4 -21
  12. package/build/cjs/core/row.js.map +1 -1
  13. package/build/cjs/core/table.js +26 -73
  14. package/build/cjs/core/table.js.map +1 -1
  15. package/build/cjs/features/ColumnSizing.js +56 -67
  16. package/build/cjs/features/ColumnSizing.js.map +1 -1
  17. package/build/cjs/features/Expanding.js +18 -34
  18. package/build/cjs/features/Expanding.js.map +1 -1
  19. package/build/cjs/features/Filters.js +19 -55
  20. package/build/cjs/features/Filters.js.map +1 -1
  21. package/build/cjs/features/Grouping.js +9 -26
  22. package/build/cjs/features/Grouping.js.map +1 -1
  23. package/build/cjs/features/Ordering.js +14 -13
  24. package/build/cjs/features/Ordering.js.map +1 -1
  25. package/build/cjs/features/Pagination.js +20 -43
  26. package/build/cjs/features/Pagination.js.map +1 -1
  27. package/build/cjs/features/Pinning.js +26 -66
  28. package/build/cjs/features/Pinning.js.map +1 -1
  29. package/build/cjs/features/RowSelection.js +44 -74
  30. package/build/cjs/features/RowSelection.js.map +1 -1
  31. package/build/cjs/features/Sorting.js +25 -50
  32. package/build/cjs/features/Sorting.js.map +1 -1
  33. package/build/cjs/features/Visibility.js +14 -32
  34. package/build/cjs/features/Visibility.js.map +1 -1
  35. package/build/cjs/filterFns.js +3 -28
  36. package/build/cjs/filterFns.js.map +1 -1
  37. package/build/cjs/sortingFns.js +24 -31
  38. package/build/cjs/sortingFns.js.map +1 -1
  39. package/build/cjs/utils/filterRowsUtils.js +7 -19
  40. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  41. package/build/cjs/utils/getCoreRowModel.js +12 -18
  42. package/build/cjs/utils/getCoreRowModel.js.map +1 -1
  43. package/build/cjs/utils/getExpandedRowModel.js +2 -12
  44. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  45. package/build/cjs/utils/getFacetedMinMaxValues.js +1 -11
  46. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
  47. package/build/cjs/utils/getFacetedRowModel.js +1 -9
  48. package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
  49. package/build/cjs/utils/getFacetedUniqueValues.js +2 -12
  50. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -1
  51. package/build/cjs/utils/getFilteredRowModel.js +14 -34
  52. package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
  53. package/build/cjs/utils/getGroupedRowModel.js +25 -35
  54. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  55. package/build/cjs/utils/getPaginationRowModel.js +1 -11
  56. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  57. package/build/cjs/utils/getSortedRowModel.js +8 -23
  58. package/build/cjs/utils/getSortedRowModel.js.map +1 -1
  59. package/build/cjs/utils.js +11 -14
  60. package/build/cjs/utils.js.map +1 -1
  61. package/build/esm/index.js +452 -993
  62. package/build/esm/index.js.map +1 -1
  63. package/build/stats-html.html +44 -34
  64. package/build/stats-react.json +371 -371
  65. package/build/umd/index.development.js +452 -991
  66. package/build/umd/index.development.js.map +1 -1
  67. package/build/umd/index.production.js +1 -1
  68. package/build/umd/index.production.js.map +1 -1
  69. package/package.json +1 -1
  70. package/src/features/ColumnSizing.ts +11 -1
  71. package/src/features/Expanding.ts +1 -1
@@ -15,12 +15,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
15
15
  var utils = require('../utils.js');
16
16
 
17
17
  //
18
+
18
19
  const defaultColumnSizing = {
19
20
  size: 150,
20
21
  minSize: 20,
21
22
  maxSize: Number.MAX_SAFE_INTEGER
22
23
  };
23
-
24
24
  const getDefaultColumnSizingInfoState = () => ({
25
25
  startOffset: null,
26
26
  startSize: null,
@@ -29,7 +29,6 @@ const getDefaultColumnSizingInfoState = () => ({
29
29
  isResizingColumn: false,
30
30
  columnSizingStart: []
31
31
  });
32
-
33
32
  const ColumnSizing = {
34
33
  getDefaultColumnDef: () => {
35
34
  return defaultColumnSizing;
@@ -51,35 +50,29 @@ const ColumnSizing = {
51
50
  createColumn: (column, table) => {
52
51
  return {
53
52
  getSize: () => {
54
- var _column$columnDef$min, _ref, _column$columnDef$max;
55
-
56
53
  const columnSize = table.getState().columnSizing[column.id];
57
- return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);
54
+ return Math.min(Math.max(column.columnDef.minSize ?? defaultColumnSizing.minSize, columnSize ?? column.columnDef.size ?? defaultColumnSizing.size), column.columnDef.maxSize ?? defaultColumnSizing.maxSize);
58
55
  },
59
56
  getStart: position => {
60
57
  const columns = !position ? table.getVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();
61
58
  const index = columns.findIndex(d => d.id === column.id);
62
-
63
59
  if (index > 0) {
64
60
  const prevSiblingColumn = columns[index - 1];
65
61
  return prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize();
66
62
  }
67
-
68
63
  return 0;
69
64
  },
70
65
  resetSize: () => {
71
- table.setColumnSizing(_ref2 => {
66
+ table.setColumnSizing(_ref => {
72
67
  let {
73
68
  [column.id]: _,
74
69
  ...rest
75
- } = _ref2;
70
+ } = _ref;
76
71
  return rest;
77
72
  });
78
73
  },
79
74
  getCanResize: () => {
80
- var _column$columnDef$ena, _table$options$enable;
81
-
82
- return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);
75
+ return (column.columnDef.enableResizing ?? true) && (table.options.enableColumnResizing ?? true);
83
76
  },
84
77
  getIsResizing: () => {
85
78
  return table.getState().columnSizingInfo.isResizingColumn === column.id;
@@ -90,17 +83,13 @@ const ColumnSizing = {
90
83
  return {
91
84
  getSize: () => {
92
85
  let sum = 0;
93
-
94
86
  const recurse = header => {
95
87
  if (header.subHeaders.length) {
96
88
  header.subHeaders.forEach(recurse);
97
89
  } else {
98
- var _header$column$getSiz;
99
-
100
- sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;
90
+ sum += header.column.getSize() ?? 0;
101
91
  }
102
92
  };
103
-
104
93
  recurse(header);
105
94
  return sum;
106
95
  },
@@ -109,7 +98,6 @@ const ColumnSizing = {
109
98
  const prevSiblingHeader = header.headerGroup.headers[header.index - 1];
110
99
  return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();
111
100
  }
112
-
113
101
  return 0;
114
102
  },
115
103
  getResizeHandler: () => {
@@ -120,51 +108,45 @@ const ColumnSizing = {
120
108
  return;
121
109
  }
122
110
  e.persist == null ? void 0 : e.persist();
123
-
124
111
  if (isTouchStartEvent(e)) {
125
112
  // lets not respond to multiple touches (e.g. 2 or 3 fingers)
126
113
  if (e.touches && e.touches.length > 1) {
127
114
  return;
128
115
  }
129
116
  }
130
-
131
117
  const startSize = header.getSize();
132
118
  const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];
133
119
  const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;
134
-
135
120
  const updateOffset = (eventType, clientXPos) => {
136
121
  if (typeof clientXPos !== 'number') {
137
122
  return;
138
123
  }
139
-
140
124
  let newColumnSizing = {};
141
125
  table.setColumnSizingInfo(old => {
142
- var _old$startOffset, _old$startSize;
143
-
144
- const deltaOffset = clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0);
145
- const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);
146
- old.columnSizingStart.forEach(_ref3 => {
147
- let [columnId, headerSize] = _ref3;
126
+ const deltaOffset = clientXPos - ((old == null ? void 0 : old.startOffset) ?? 0);
127
+ const deltaPercentage = Math.max(deltaOffset / ((old == null ? void 0 : old.startSize) ?? 0), -0.999999);
128
+ old.columnSizingStart.forEach(_ref2 => {
129
+ let [columnId, headerSize] = _ref2;
148
130
  newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;
149
131
  });
150
- return { ...old,
132
+ return {
133
+ ...old,
151
134
  deltaOffset,
152
135
  deltaPercentage
153
136
  };
154
137
  });
155
-
156
138
  if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {
157
- table.setColumnSizing(old => ({ ...old,
139
+ table.setColumnSizing(old => ({
140
+ ...old,
158
141
  ...newColumnSizing
159
142
  }));
160
143
  }
161
144
  };
162
-
163
145
  const onMove = clientXPos => updateOffset('move', clientXPos);
164
-
165
146
  const onEnd = clientXPos => {
166
147
  updateOffset('end', clientXPos);
167
- table.setColumnSizingInfo(old => ({ ...old,
148
+ table.setColumnSizingInfo(old => ({
149
+ ...old,
168
150
  isResizingColumn: false,
169
151
  startOffset: null,
170
152
  startSize: null,
@@ -173,7 +155,6 @@ const ColumnSizing = {
173
155
  columnSizingStart: []
174
156
  }));
175
157
  };
176
-
177
158
  const mouseEvents = {
178
159
  moveHandler: e => onMove(e.clientX),
179
160
  upHandler: e => {
@@ -182,16 +163,38 @@ const ColumnSizing = {
182
163
  onEnd(e.clientX);
183
164
  }
184
165
  };
166
+ const touchEvents = {
167
+ moveHandler: e => {
168
+ if (e.cancelable) {
169
+ e.preventDefault();
170
+ e.stopPropagation();
171
+ }
172
+ onMove(e.touches[0].clientX);
173
+ return false;
174
+ },
175
+ upHandler: e => {
176
+ var _e$touches$;
177
+ document.removeEventListener('touchmove', touchEvents.moveHandler);
178
+ document.removeEventListener('touchend', touchEvents.upHandler);
179
+ if (e.cancelable) {
180
+ e.preventDefault();
181
+ e.stopPropagation();
182
+ }
183
+ onEnd((_e$touches$ = e.touches[0]) == null ? void 0 : _e$touches$.clientX);
184
+ }
185
+ };
185
186
  const passiveIfSupported = passiveEventSupported() ? {
186
187
  passive: false
187
188
  } : false;
188
-
189
- if (isTouchStartEvent(e)) ; else {
189
+ if (isTouchStartEvent(e)) {
190
+ document.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);
191
+ document.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);
192
+ } else {
190
193
  document.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);
191
194
  document.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);
192
195
  }
193
-
194
- table.setColumnSizingInfo(old => ({ ...old,
196
+ table.setColumnSizingInfo(old => ({
197
+ ...old,
195
198
  startOffset: clientX,
196
199
  startSize,
197
200
  deltaOffset: 0,
@@ -208,42 +211,34 @@ const ColumnSizing = {
208
211
  setColumnSizing: updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater),
209
212
  setColumnSizingInfo: updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater),
210
213
  resetColumnSizing: defaultState => {
211
- var _table$initialState$c;
212
-
213
- table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});
214
+ table.setColumnSizing(defaultState ? {} : table.initialState.columnSizing ?? {});
214
215
  },
215
216
  resetHeaderSizeInfo: defaultState => {
216
- var _table$initialState$c2;
217
-
218
- table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());
217
+ table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : table.initialState.columnSizingInfo ?? getDefaultColumnSizingInfoState());
219
218
  },
220
219
  getTotalSize: () => {
221
- var _table$getHeaderGroup, _table$getHeaderGroup2;
222
-
223
- return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum, header) => {
220
+ var _table$getHeaderGroup;
221
+ return ((_table$getHeaderGroup = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup.headers.reduce((sum, header) => {
224
222
  return sum + header.getSize();
225
- }, 0)) != null ? _table$getHeaderGroup : 0;
223
+ }, 0)) ?? 0;
226
224
  },
227
225
  getLeftTotalSize: () => {
228
- var _table$getLeftHeaderG, _table$getLeftHeaderG2;
229
-
230
- return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum, header) => {
226
+ var _table$getLeftHeaderG;
227
+ return ((_table$getLeftHeaderG = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG.headers.reduce((sum, header) => {
231
228
  return sum + header.getSize();
232
- }, 0)) != null ? _table$getLeftHeaderG : 0;
229
+ }, 0)) ?? 0;
233
230
  },
234
231
  getCenterTotalSize: () => {
235
- var _table$getCenterHeade, _table$getCenterHeade2;
236
-
237
- return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum, header) => {
232
+ var _table$getCenterHeade;
233
+ return ((_table$getCenterHeade = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade.headers.reduce((sum, header) => {
238
234
  return sum + header.getSize();
239
- }, 0)) != null ? _table$getCenterHeade : 0;
235
+ }, 0)) ?? 0;
240
236
  },
241
237
  getRightTotalSize: () => {
242
- var _table$getRightHeader, _table$getRightHeader2;
243
-
244
- return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum, header) => {
238
+ var _table$getRightHeader;
239
+ return ((_table$getRightHeader = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader.headers.reduce((sum, header) => {
245
240
  return sum + header.getSize();
246
- }, 0)) != null ? _table$getRightHeader : 0;
241
+ }, 0)) ?? 0;
247
242
  }
248
243
  };
249
244
  }
@@ -252,28 +247,22 @@ let passiveSupported = null;
252
247
  function passiveEventSupported() {
253
248
  if (typeof passiveSupported === 'boolean') return passiveSupported;
254
249
  let supported = false;
255
-
256
250
  try {
257
251
  const options = {
258
252
  get passive() {
259
253
  supported = true;
260
254
  return false;
261
255
  }
262
-
263
256
  };
264
-
265
257
  const noop = () => {};
266
-
267
258
  window.addEventListener('test', noop, options);
268
259
  window.removeEventListener('test', noop);
269
260
  } catch (err) {
270
261
  supported = false;
271
262
  }
272
-
273
263
  passiveSupported = supported;
274
264
  return passiveSupported;
275
265
  }
276
-
277
266
  function isTouchStartEvent(e) {
278
267
  return e.type === 'touchstart';
279
268
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { RowData, Column, Header, OnChangeFn, Table, Updater } from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { ColumnPinningPosition } from './Pinning'\n\n//\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizingState\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnSizingState = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingInstance = {\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: (defaultState?: boolean) => void\n resetHeaderSizeInfo: (defaultState?: boolean) => void\n getTotalSize: () => number\n getLeftTotalSize: () => number\n getCenterTotalSize: () => number\n getRightTotalSize: () => number\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n size?: number\n minSize?: number\n maxSize?: number\n}\n\nexport type ColumnSizingColumn = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getResizeHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n}\n\nconst getDefaultColumnSizingInfoState = (): ColumnSizingInfoState => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n})\n\nexport const ColumnSizing: TableFeature = {\n getDefaultColumnDef: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (state): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingColumn => {\n return {\n getSize: () => {\n const columnSize = table.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultColumnSizing.minSize,\n columnSize ?? column.columnDef.size ?? defaultColumnSizing.size\n ),\n column.columnDef.maxSize ?? defaultColumnSizing.maxSize\n )\n },\n getStart: position => {\n const columns = !position\n ? table.getVisibleLeafColumns()\n : position === 'left'\n ? table.getLeftVisibleLeafColumns()\n : table.getRightVisibleLeafColumns()\n\n const index = columns.findIndex(d => d.id === column.id)\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1]!\n\n return (\n prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize()\n )\n }\n\n return 0\n },\n resetSize: () => {\n table.setColumnSizing(({ [column.id]: _, ...rest }) => {\n return rest\n })\n },\n getCanResize: () => {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (table.options.enableColumnResizing ?? true)\n )\n },\n getIsResizing: () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id\n },\n }\n },\n\n createHeader: <TData extends RowData, TValue>(\n header: Header<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingHeader => {\n return {\n getSize: () => {\n let sum = 0\n\n const recurse = (header: Header<TData, TValue>) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getSize() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader =\n header.headerGroup.headers[header.index - 1]!\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize()\n }\n\n return 0\n },\n getResizeHandler: () => {\n const column = table.getColumn(header.column.id)\n const canResize = column.getCanResize()\n\n return (e: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(e as any).persist?.()\n\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const startSize = header.getSize()\n\n const columnSizingStart: [string, number][] = header\n ? header\n .getLeafHeaders()\n .map(d => [d.column.id, d.column.getSize()])\n : [[column.id, column.getSize()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0]!.clientX)\n : (e as MouseEvent).clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizingState = {}\n\n table.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerSize + headerSize * deltaPercentage, 0) * 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n table.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]!.clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingInstance => {\n return {\n setColumnSizing: updater => table.options.onColumnSizingChange?.(updater),\n setColumnSizingInfo: updater =>\n table.options.onColumnSizingInfoChange?.(updater),\n resetColumnSizing: defaultState => {\n table.setColumnSizing(\n defaultState ? {} : table.initialState.columnSizing ?? {}\n )\n },\n resetHeaderSizeInfo: defaultState => {\n table.setColumnSizingInfo(\n defaultState\n ? getDefaultColumnSizingInfoState()\n : table.initialState.columnSizingInfo ??\n getDefaultColumnSizingInfoState()\n )\n },\n getTotalSize: () =>\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getLeftTotalSize: () =>\n table.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getCenterTotalSize: () =>\n table.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getRightTotalSize: () =>\n table.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n }\n },\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","getDefaultColumnSizingInfoState","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","getDefaultOptions","table","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","createColumn","column","getSize","columnSize","getState","id","Math","min","max","columnDef","getStart","position","columns","getVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","index","findIndex","d","prevSiblingColumn","resetSize","setColumnSizing","_","rest","getCanResize","enableResizing","options","enableColumnResizing","getIsResizing","createHeader","header","sum","recurse","subHeaders","length","forEach","prevSiblingHeader","headerGroup","headers","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","getLeafHeaders","map","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","setColumnSizingInfo","old","columnId","headerSize","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","passiveIfSupported","passiveEventSupported","passive","addEventListener","createTable","updater","resetColumnSizing","defaultState","initialState","resetHeaderSizeInfo","getTotalSize","getHeaderGroups","reduce","getLeftTotalSize","getLeftHeaderGroups","getCenterTotalSize","getCenterHeaderGroups","getRightTotalSize","getRightHeaderGroups","passiveSupported","supported","noop","window","err","type"],"mappings":";;;;;;;;;;;;;;;;AAsEA;AAEO,MAAMA,mBAAmB,GAAG;AACjCC,EAAAA,IAAI,EAAE,GAD2B;AAEjCC,EAAAA,OAAO,EAAE,EAFwB;EAGjCC,OAAO,EAAEC,MAAM,CAACC,gBAAAA;AAHiB,EAA5B;;AAMP,MAAMC,+BAA+B,GAAG,OAA8B;AACpEC,EAAAA,WAAW,EAAE,IADuD;AAEpEC,EAAAA,SAAS,EAAE,IAFyD;AAGpEC,EAAAA,WAAW,EAAE,IAHuD;AAIpEC,EAAAA,eAAe,EAAE,IAJmD;AAKpEC,EAAAA,gBAAgB,EAAE,KALkD;AAMpEC,EAAAA,iBAAiB,EAAE,EAAA;AANiD,CAA9B,CAAxC,CAAA;;AASO,MAAMC,YAA0B,GAAG;AACxCC,EAAAA,mBAAmB,EAAE,MAA6B;AAChD,IAAA,OAAOd,mBAAP,CAAA;GAFsC;EAIxCe,eAAe,EAAGC,KAAD,IAAmC;IAClD,OAAO;AACLC,MAAAA,YAAY,EAAE,EADT;MAELC,gBAAgB,EAAEZ,+BAA+B,EAF5C;MAGL,GAAGU,KAAAA;KAHL,CAAA;GALsC;EAYxCG,iBAAiB,EACfC,KADiB,IAEc;IAC/B,OAAO;AACLC,MAAAA,gBAAgB,EAAE,OADb;AAELC,MAAAA,oBAAoB,EAAEC,sBAAgB,CAAC,cAAD,EAAiBH,KAAjB,CAFjC;AAGLI,MAAAA,wBAAwB,EAAED,sBAAgB,CAAC,kBAAD,EAAqBH,KAArB,CAAA;KAH5C,CAAA;GAfsC;AAsBxCK,EAAAA,YAAY,EAAE,CACZC,MADY,EAEZN,KAFY,KAGW;IACvB,OAAO;AACLO,MAAAA,OAAO,EAAE,MAAM;AAAA,QAAA,IAAA,qBAAA,EAAA,IAAA,EAAA,qBAAA,CAAA;;QACb,MAAMC,UAAU,GAAGR,KAAK,CAACS,QAAN,EAAiBZ,CAAAA,YAAjB,CAA8BS,MAAM,CAACI,EAArC,CAAnB,CAAA;AAEA,QAAA,OAAOC,IAAI,CAACC,GAAL,CACLD,IAAI,CAACE,GAAL,CACEP,CAAAA,qBAAAA,GAAAA,MAAM,CAACQ,SAAP,CAAiBhC,OADnB,KAC8BF,IAAAA,GAAAA,qBAAAA,GAAAA,mBAAmB,CAACE,OADlD,EAAA,CAAA,IAAA,GAEE0B,UAFF,IAEEA,IAAAA,GAAAA,UAFF,GAEgBF,MAAM,CAACQ,SAAP,CAAiBjC,IAFjC,KAEyCD,IAAAA,GAAAA,IAAAA,GAAAA,mBAAmB,CAACC,IAF7D,CADK,2BAKLyB,MAAM,CAACQ,SAAP,CAAiB/B,OALZ,oCAKuBH,mBAAmB,CAACG,OAL3C,CAAP,CAAA;OAJG;MAYLgC,QAAQ,EAAEC,QAAQ,IAAI;QACpB,MAAMC,OAAO,GAAG,CAACD,QAAD,GACZhB,KAAK,CAACkB,qBAAN,EADY,GAEZF,QAAQ,KAAK,MAAb,GACAhB,KAAK,CAACmB,yBAAN,EADA,GAEAnB,KAAK,CAACoB,0BAAN,EAJJ,CAAA;AAMA,QAAA,MAAMC,KAAK,GAAGJ,OAAO,CAACK,SAAR,CAAkBC,CAAC,IAAIA,CAAC,CAACb,EAAF,KAASJ,MAAM,CAACI,EAAvC,CAAd,CAAA;;QAEA,IAAIW,KAAK,GAAG,CAAZ,EAAe;AACb,UAAA,MAAMG,iBAAiB,GAAGP,OAAO,CAACI,KAAK,GAAG,CAAT,CAAjC,CAAA;UAEA,OACEG,iBAAiB,CAACT,QAAlB,CAA2BC,QAA3B,CAAuCQ,GAAAA,iBAAiB,CAACjB,OAAlB,EADzC,CAAA;AAGD,SAAA;;AAED,QAAA,OAAO,CAAP,CAAA;OA7BG;AA+BLkB,MAAAA,SAAS,EAAE,MAAM;QACfzB,KAAK,CAAC0B,eAAN,CAAsB,KAAiC,IAAA;UAAA,IAAhC;AAAE,YAAA,CAACpB,MAAM,CAACI,EAAR,GAAaiB,CAAf;YAAkB,GAAGC,IAAAA;WAAW,GAAA,KAAA,CAAA;AACrD,UAAA,OAAOA,IAAP,CAAA;SADF,CAAA,CAAA;OAhCG;AAoCLC,MAAAA,YAAY,EAAE,MAAM;AAAA,QAAA,IAAA,qBAAA,EAAA,qBAAA,CAAA;;AAClB,QAAA,OACE,0BAACvB,MAAM,CAACQ,SAAP,CAAiBgB,cAAlB,KAAoC,IAAA,GAAA,qBAAA,GAAA,IAApC,MACC9B,CAAAA,qBAAAA,GAAAA,KAAK,CAAC+B,OAAN,CAAcC,oBADf,KAAA,IAAA,GAAA,qBAAA,GACuC,IADvC,CADF,CAAA;OArCG;AA0CLC,MAAAA,aAAa,EAAE,MAAM;QACnB,OAAOjC,KAAK,CAACS,QAAN,EAAiBX,CAAAA,gBAAjB,CAAkCP,gBAAlC,KAAuDe,MAAM,CAACI,EAArE,CAAA;AACD,OAAA;KA5CH,CAAA;GA1BsC;AA0ExCwB,EAAAA,YAAY,EAAE,CACZC,MADY,EAEZnC,KAFY,KAGW;IACvB,OAAO;AACLO,MAAAA,OAAO,EAAE,MAAM;QACb,IAAI6B,GAAG,GAAG,CAAV,CAAA;;QAEA,MAAMC,OAAO,GAAIF,MAAD,IAAmC;AACjD,UAAA,IAAIA,MAAM,CAACG,UAAP,CAAkBC,MAAtB,EAA8B;AAC5BJ,YAAAA,MAAM,CAACG,UAAP,CAAkBE,OAAlB,CAA0BH,OAA1B,CAAA,CAAA;AACD,WAFD,MAEO;AAAA,YAAA,IAAA,qBAAA,CAAA;;YACLD,GAAG,IAAA,CAAA,qBAAA,GAAID,MAAM,CAAC7B,MAAP,CAAcC,OAAd,EAAJ,oCAA+B,CAAlC,CAAA;AACD,WAAA;SALH,CAAA;;QAQA8B,OAAO,CAACF,MAAD,CAAP,CAAA;AAEA,QAAA,OAAOC,GAAP,CAAA;OAdG;AAgBLrB,MAAAA,QAAQ,EAAE,MAAM;AACd,QAAA,IAAIoB,MAAM,CAACd,KAAP,GAAe,CAAnB,EAAsB;AACpB,UAAA,MAAMoB,iBAAiB,GACrBN,MAAM,CAACO,WAAP,CAAmBC,OAAnB,CAA2BR,MAAM,CAACd,KAAP,GAAe,CAA1C,CADF,CAAA;AAEA,UAAA,OAAOoB,iBAAiB,CAAC1B,QAAlB,KAA+B0B,iBAAiB,CAAClC,OAAlB,EAAtC,CAAA;AACD,SAAA;;AAED,QAAA,OAAO,CAAP,CAAA;OAvBG;AAyBLqC,MAAAA,gBAAgB,EAAE,MAAM;QACtB,MAAMtC,MAAM,GAAGN,KAAK,CAAC6C,SAAN,CAAgBV,MAAM,CAAC7B,MAAP,CAAcI,EAA9B,CAAf,CAAA;AACA,QAAA,MAAMoC,SAAS,GAAGxC,MAAM,CAACuB,YAAP,EAAlB,CAAA;AAEA,QAAA,OAAQkB,CAAD,IAAgB;UACrB,IAAI,CAACD,SAAL,EAAgB;AACd,YAAA,OAAA;AACD,WAAA;AAECC,UAAAA,CAAD,CAAWC,OAAX,IAACD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAD,CAAWC,OAAX,EAAA,CAAA;;AAED,UAAA,IAAIC,iBAAiB,CAACF,CAAD,CAArB,EAA0B;AACxB;YACA,IAAIA,CAAC,CAACG,OAAF,IAAaH,CAAC,CAACG,OAAF,CAAUX,MAAV,GAAmB,CAApC,EAAuC;AACrC,cAAA,OAAA;AACD,aAAA;AACF,WAAA;;AAED,UAAA,MAAMnD,SAAS,GAAG+C,MAAM,CAAC5B,OAAP,EAAlB,CAAA;AAEA,UAAA,MAAMf,iBAAqC,GAAG2C,MAAM,GAChDA,MAAM,CACHgB,cADH,EAAA,CAEGC,GAFH,CAEO7B,CAAC,IAAI,CAACA,CAAC,CAACjB,MAAF,CAASI,EAAV,EAAca,CAAC,CAACjB,MAAF,CAASC,OAAT,EAAd,CAFZ,CADgD,GAIhD,CAAC,CAACD,MAAM,CAACI,EAAR,EAAYJ,MAAM,CAACC,OAAP,EAAZ,CAAD,CAJJ,CAAA;UAMA,MAAM8C,OAAO,GAAGJ,iBAAiB,CAACF,CAAD,CAAjB,GACZpC,IAAI,CAAC2C,KAAL,CAAWP,CAAC,CAACG,OAAF,CAAU,CAAV,CAAA,CAAcG,OAAzB,CADY,GAEXN,CAAD,CAAkBM,OAFtB,CAAA;;AAIA,UAAA,MAAME,YAAY,GAAG,CACnBC,SADmB,EAEnBC,UAFmB,KAGhB;AACH,YAAA,IAAI,OAAOA,UAAP,KAAsB,QAA1B,EAAoC;AAClC,cAAA,OAAA;AACD,aAAA;;YAED,IAAIC,eAAkC,GAAG,EAAzC,CAAA;AAEA1D,YAAAA,KAAK,CAAC2D,mBAAN,CAA0BC,GAAG,IAAI;AAAA,cAAA,IAAA,gBAAA,EAAA,cAAA,CAAA;;cAC/B,MAAMvE,WAAW,GAAGoE,UAAU,IAAIG,CAAAA,gBAAAA,GAAAA,GAAJ,IAAIA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAEzE,WAAT,KAAwB,IAAA,GAAA,gBAAA,GAAA,CAAxB,CAA9B,CAAA;AACA,cAAA,MAAMG,eAAe,GAAGqB,IAAI,CAACE,GAAL,CACtBxB,WAAW,IAAIuE,CAAAA,cAAAA,GAAAA,GAAJ,oBAAIA,GAAG,CAAExE,SAAT,KAAsB,IAAA,GAAA,cAAA,GAAA,CAAtB,CADW,EAEtB,CAAC,QAFqB,CAAxB,CAAA;AAKAwE,cAAAA,GAAG,CAACpE,iBAAJ,CAAsBgD,OAAtB,CAA8B,KAA4B,IAAA;AAAA,gBAAA,IAA3B,CAACqB,QAAD,EAAWC,UAAX,CAA2B,GAAA,KAAA,CAAA;gBACxDJ,eAAe,CAACG,QAAD,CAAf,GACElD,IAAI,CAAC2C,KAAL,CACE3C,IAAI,CAACE,GAAL,CAASiD,UAAU,GAAGA,UAAU,GAAGxE,eAAnC,EAAoD,CAApD,CAAA,GAAyD,GAD3D,CAAA,GAEI,GAHN,CAAA;eADF,CAAA,CAAA;cAOA,OAAO,EACL,GAAGsE,GADE;gBAELvE,WAFK;AAGLC,gBAAAA,eAAAA;eAHF,CAAA;aAdF,CAAA,CAAA;;YAqBA,IACEU,KAAK,CAAC+B,OAAN,CAAc9B,gBAAd,KAAmC,UAAnC,IACAuD,SAAS,KAAK,KAFhB,EAGE;AACAxD,cAAAA,KAAK,CAAC0B,eAAN,CAAsBkC,GAAG,KAAK,EAC5B,GAAGA,GADyB;gBAE5B,GAAGF,eAAAA;AAFyB,eAAL,CAAzB,CAAA,CAAA;AAID,aAAA;WAvCH,CAAA;;UA0CA,MAAMK,MAAM,GAAIN,UAAD,IACbF,YAAY,CAAC,MAAD,EAASE,UAAT,CADd,CAAA;;UAGA,MAAMO,KAAK,GAAIP,UAAD,IAAyB;AACrCF,YAAAA,YAAY,CAAC,KAAD,EAAQE,UAAR,CAAZ,CAAA;AAEAzD,YAAAA,KAAK,CAAC2D,mBAAN,CAA0BC,GAAG,KAAK,EAChC,GAAGA,GAD6B;AAEhCrE,cAAAA,gBAAgB,EAAE,KAFc;AAGhCJ,cAAAA,WAAW,EAAE,IAHmB;AAIhCC,cAAAA,SAAS,EAAE,IAJqB;AAKhCC,cAAAA,WAAW,EAAE,IALmB;AAMhCC,cAAAA,eAAe,EAAE,IANe;AAOhCE,cAAAA,iBAAiB,EAAE,EAAA;AAPa,aAAL,CAA7B,CAAA,CAAA;WAHF,CAAA;;AAcA,UAAA,MAAMyE,WAAW,GAAG;YAClBC,WAAW,EAAGnB,CAAD,IAAmBgB,MAAM,CAAChB,CAAC,CAACM,OAAH,CADpB;YAElBc,SAAS,EAAGpB,CAAD,IAAmB;AAC5BqB,cAAAA,QAAQ,CAACC,mBAAT,CAA6B,WAA7B,EAA0CJ,WAAW,CAACC,WAAtD,CAAA,CAAA;AACAE,cAAAA,QAAQ,CAACC,mBAAT,CAA6B,SAA7B,EAAwCJ,WAAW,CAACE,SAApD,CAAA,CAAA;AACAH,cAAAA,KAAK,CAACjB,CAAC,CAACM,OAAH,CAAL,CAAA;AACD,aAAA;WANH,CAAA;UA6BA,MAAMiB,kBAAkB,GAAGC,qBAAqB,EAC5C,GAAA;AAAEC,YAAAA,OAAO,EAAE,KAAA;AAAX,WAD4C,GAE5C,KAFJ,CAAA;;AAIA,UAAA,IAAIvB,iBAAiB,CAACF,CAAD,CAArB,EAA0B,CAA1B,MACO;YACLqB,QAAQ,CAACK,gBAAT,CACE,WADF,EAEER,WAAW,CAACC,WAFd,EAGEI,kBAHF,CAAA,CAAA;YAKAF,QAAQ,CAACK,gBAAT,CACE,SADF,EAEER,WAAW,CAACE,SAFd,EAGEG,kBAHF,CAAA,CAAA;AAKD,WAAA;;AAEDtE,UAAAA,KAAK,CAAC2D,mBAAN,CAA0BC,GAAG,KAAK,EAChC,GAAGA,GAD6B;AAEhCzE,YAAAA,WAAW,EAAEkE,OAFmB;YAGhCjE,SAHgC;AAIhCC,YAAAA,WAAW,EAAE,CAJmB;AAKhCC,YAAAA,eAAe,EAAE,CALe;YAMhCE,iBANgC;YAOhCD,gBAAgB,EAAEe,MAAM,CAACI,EAAAA;AAPO,WAAL,CAA7B,CAAA,CAAA;SApIF,CAAA;AA8ID,OAAA;KA3KH,CAAA;GA9EsC;EA6PxCgE,WAAW,EACT1E,KADW,IAEc;IACzB,OAAO;AACL0B,MAAAA,eAAe,EAAEiD,OAAO,IAAI3E,KAAK,CAAC+B,OAAN,CAAc7B,oBAAlB,IAAIF,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAC+B,OAAN,CAAc7B,oBAAd,CAAqCyE,OAArC,CADvB;AAELhB,MAAAA,mBAAmB,EAAEgB,OAAO,IAC1B3E,KAAK,CAAC+B,OAAN,CAAc3B,wBADY,IAC1BJ,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAC+B,OAAN,CAAc3B,wBAAd,CAAyCuE,OAAzC,CAHG;MAILC,iBAAiB,EAAEC,YAAY,IAAI;AAAA,QAAA,IAAA,qBAAA,CAAA;;AACjC7E,QAAAA,KAAK,CAAC0B,eAAN,CACEmD,YAAY,GAAG,EAAH,GAAQ7E,CAAAA,qBAAAA,GAAAA,KAAK,CAAC8E,YAAN,CAAmBjF,YAA3B,oCAA2C,EADzD,CAAA,CAAA;OALG;MASLkF,mBAAmB,EAAEF,YAAY,IAAI;AAAA,QAAA,IAAA,sBAAA,CAAA;;AACnC7E,QAAAA,KAAK,CAAC2D,mBAAN,CACEkB,YAAY,GACR3F,+BAA+B,EADvB,GAERc,CAAAA,sBAAAA,GAAAA,KAAK,CAAC8E,YAAN,CAAmBhF,gBAFX,KAAA,IAAA,GAAA,sBAAA,GAGNZ,+BAA+B,EAJvC,CAAA,CAAA;OAVG;AAiBL8F,MAAAA,YAAY,EAAE,MAAA;AAAA,QAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;;AAAA,QAAA,OAAA,CAAA,qBAAA,GAAA,CAAA,sBAAA,GACZhF,KAAK,CAACiF,eAAN,EAAwB,CAAA,CAAxB,CADY,KACZ,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAA4BtC,OAA5B,CAAoCuC,MAApC,CAA2C,CAAC9C,GAAD,EAAMD,MAAN,KAAiB;AAC1D,UAAA,OAAOC,GAAG,GAAGD,MAAM,CAAC5B,OAAP,EAAb,CAAA;AACD,SAFD,EAEG,CAFH,CADY,KAAA,IAAA,GAAA,qBAAA,GAGH,CAHG,CAAA;OAjBT;AAqBL4E,MAAAA,gBAAgB,EAAE,MAAA;AAAA,QAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;;AAAA,QAAA,OAAA,CAAA,qBAAA,GAAA,CAAA,sBAAA,GAChBnF,KAAK,CAACoF,mBAAN,EAA4B,CAAA,CAA5B,CADgB,KAChB,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAAgCzC,OAAhC,CAAwCuC,MAAxC,CAA+C,CAAC9C,GAAD,EAAMD,MAAN,KAAiB;AAC9D,UAAA,OAAOC,GAAG,GAAGD,MAAM,CAAC5B,OAAP,EAAb,CAAA;AACD,SAFD,EAEG,CAFH,CADgB,KAAA,IAAA,GAAA,qBAAA,GAGP,CAHO,CAAA;OArBb;AAyBL8E,MAAAA,kBAAkB,EAAE,MAAA;AAAA,QAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;;AAAA,QAAA,OAAA,CAAA,qBAAA,GAAA,CAAA,sBAAA,GAClBrF,KAAK,CAACsF,qBAAN,EAA8B,CAAA,CAA9B,CADkB,KAClB,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAAkC3C,OAAlC,CAA0CuC,MAA1C,CAAiD,CAAC9C,GAAD,EAAMD,MAAN,KAAiB;AAChE,UAAA,OAAOC,GAAG,GAAGD,MAAM,CAAC5B,OAAP,EAAb,CAAA;AACD,SAFD,EAEG,CAFH,CADkB,KAAA,IAAA,GAAA,qBAAA,GAGT,CAHS,CAAA;OAzBf;AA6BLgF,MAAAA,iBAAiB,EAAE,MAAA;AAAA,QAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;;AAAA,QAAA,OAAA,CAAA,qBAAA,GAAA,CAAA,sBAAA,GACjBvF,KAAK,CAACwF,oBAAN,EAA6B,CAAA,CAA7B,CADiB,KACjB,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAAiC7C,OAAjC,CAAyCuC,MAAzC,CAAgD,CAAC9C,GAAD,EAAMD,MAAN,KAAiB;AAC/D,UAAA,OAAOC,GAAG,GAAGD,MAAM,CAAC5B,OAAP,EAAb,CAAA;AACD,SAFD,EAEG,CAFH,CADiB,KAAA,IAAA,GAAA,qBAAA,GAGR,CAHQ,CAAA;AAAA,OAAA;KA7BrB,CAAA;AAkCD,GAAA;AAlSuC,EAAnC;AAqSP,IAAIkF,gBAAgC,GAAG,IAAvC,CAAA;AACO,SAASlB,qBAAT,GAAiC;AACtC,EAAA,IAAI,OAAOkB,gBAAP,KAA4B,SAAhC,EAA2C,OAAOA,gBAAP,CAAA;EAE3C,IAAIC,SAAS,GAAG,KAAhB,CAAA;;EACA,IAAI;AACF,IAAA,MAAM3D,OAAO,GAAG;AACd,MAAA,IAAIyC,OAAJ,GAAc;AACZkB,QAAAA,SAAS,GAAG,IAAZ,CAAA;AACA,QAAA,OAAO,KAAP,CAAA;AACD,OAAA;;KAJH,CAAA;;AAOA,IAAA,MAAMC,IAAI,GAAG,MAAM,EAAnB,CAAA;;AAEAC,IAAAA,MAAM,CAACnB,gBAAP,CAAwB,MAAxB,EAAgCkB,IAAhC,EAAsC5D,OAAtC,CAAA,CAAA;AACA6D,IAAAA,MAAM,CAACvB,mBAAP,CAA2B,MAA3B,EAAmCsB,IAAnC,CAAA,CAAA;GAXF,CAYE,OAAOE,GAAP,EAAY;AACZH,IAAAA,SAAS,GAAG,KAAZ,CAAA;AACD,GAAA;;AACDD,EAAAA,gBAAgB,GAAGC,SAAnB,CAAA;AACA,EAAA,OAAOD,gBAAP,CAAA;AACD,CAAA;;AAED,SAASxC,iBAAT,CAA2BF,CAA3B,EAAwD;AACtD,EAAA,OAAQA,CAAD,CAAkB+C,IAAlB,KAA2B,YAAlC,CAAA;AACD;;;;;;"}
1
+ {"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { RowData, Column, Header, OnChangeFn, Table, Updater } from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { ColumnPinningPosition } from './Pinning'\n\n//\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizingState\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnSizingState = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingInstance = {\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: (defaultState?: boolean) => void\n resetHeaderSizeInfo: (defaultState?: boolean) => void\n getTotalSize: () => number\n getLeftTotalSize: () => number\n getCenterTotalSize: () => number\n getRightTotalSize: () => number\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n size?: number\n minSize?: number\n maxSize?: number\n}\n\nexport type ColumnSizingColumn = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getResizeHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n}\n\nconst getDefaultColumnSizingInfoState = (): ColumnSizingInfoState => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n})\n\nexport const ColumnSizing: TableFeature = {\n getDefaultColumnDef: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (state): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingColumn => {\n return {\n getSize: () => {\n const columnSize = table.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultColumnSizing.minSize,\n columnSize ?? column.columnDef.size ?? defaultColumnSizing.size\n ),\n column.columnDef.maxSize ?? defaultColumnSizing.maxSize\n )\n },\n getStart: position => {\n const columns = !position\n ? table.getVisibleLeafColumns()\n : position === 'left'\n ? table.getLeftVisibleLeafColumns()\n : table.getRightVisibleLeafColumns()\n\n const index = columns.findIndex(d => d.id === column.id)\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1]!\n\n return (\n prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize()\n )\n }\n\n return 0\n },\n resetSize: () => {\n table.setColumnSizing(({ [column.id]: _, ...rest }) => {\n return rest\n })\n },\n getCanResize: () => {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (table.options.enableColumnResizing ?? true)\n )\n },\n getIsResizing: () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id\n },\n }\n },\n\n createHeader: <TData extends RowData, TValue>(\n header: Header<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingHeader => {\n return {\n getSize: () => {\n let sum = 0\n\n const recurse = (header: Header<TData, TValue>) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getSize() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader =\n header.headerGroup.headers[header.index - 1]!\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize()\n }\n\n return 0\n },\n getResizeHandler: () => {\n const column = table.getColumn(header.column.id)\n const canResize = column.getCanResize()\n\n return (e: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(e as any).persist?.()\n\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const startSize = header.getSize()\n\n const columnSizingStart: [string, number][] = header\n ? header\n .getLeafHeaders()\n .map(d => [d.column.id, d.column.getSize()])\n : [[column.id, column.getSize()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0]!.clientX)\n : (e as MouseEvent).clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizingState = {}\n\n table.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerSize + headerSize * deltaPercentage, 0) * 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n table.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]?.clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n document.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported\n )\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingInstance => {\n return {\n setColumnSizing: updater => table.options.onColumnSizingChange?.(updater),\n setColumnSizingInfo: updater =>\n table.options.onColumnSizingInfoChange?.(updater),\n resetColumnSizing: defaultState => {\n table.setColumnSizing(\n defaultState ? {} : table.initialState.columnSizing ?? {}\n )\n },\n resetHeaderSizeInfo: defaultState => {\n table.setColumnSizingInfo(\n defaultState\n ? getDefaultColumnSizingInfoState()\n : table.initialState.columnSizingInfo ??\n getDefaultColumnSizingInfoState()\n )\n },\n getTotalSize: () =>\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getLeftTotalSize: () =>\n table.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getCenterTotalSize: () =>\n table.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getRightTotalSize: () =>\n table.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n }\n },\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","getDefaultColumnSizingInfoState","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","getDefaultOptions","table","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","createColumn","column","getSize","columnSize","getState","id","Math","min","max","columnDef","getStart","position","columns","getVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","index","findIndex","d","prevSiblingColumn","resetSize","setColumnSizing","_","rest","getCanResize","enableResizing","options","enableColumnResizing","getIsResizing","createHeader","header","sum","recurse","subHeaders","length","forEach","prevSiblingHeader","headerGroup","headers","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","getLeafHeaders","map","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","setColumnSizingInfo","old","columnId","headerSize","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","passiveIfSupported","passiveEventSupported","passive","addEventListener","createTable","updater","resetColumnSizing","defaultState","initialState","resetHeaderSizeInfo","getTotalSize","getHeaderGroups","reduce","getLeftTotalSize","getLeftHeaderGroups","getCenterTotalSize","getCenterHeaderGroups","getRightTotalSize","getRightHeaderGroups","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
@@ -15,6 +15,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
15
15
  var utils = require('../utils.js');
16
16
 
17
17
  //
18
+
18
19
  const Expanding = {
19
20
  getInitialState: state => {
20
21
  return {
@@ -33,20 +34,15 @@ const Expanding = {
33
34
  let queued = false;
34
35
  return {
35
36
  _autoResetExpanded: () => {
36
- var _ref, _table$options$autoRe;
37
-
38
37
  if (!registered) {
39
38
  table._queue(() => {
40
39
  registered = true;
41
40
  });
42
-
43
41
  return;
44
42
  }
45
-
46
- if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {
43
+ if (table.options.autoResetAll ?? table.options.autoResetExpanded ?? !table.options.manualExpanding) {
47
44
  if (queued) return;
48
45
  queued = true;
49
-
50
46
  table._queue(() => {
51
47
  table.resetExpanded();
52
48
  queued = false;
@@ -55,16 +51,15 @@ const Expanding = {
55
51
  },
56
52
  setExpanded: updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater),
57
53
  toggleAllRowsExpanded: expanded => {
58
- if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {
54
+ if (expanded ?? !table.getIsAllRowsExpanded()) {
59
55
  table.setExpanded(true);
60
56
  } else {
61
57
  table.setExpanded({});
62
58
  }
63
59
  },
64
60
  resetExpanded: defaultState => {
65
- var _table$initialState$e, _table$initialState;
66
-
67
- table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});
61
+ var _table$initialState;
62
+ table.setExpanded(defaultState ? {} : ((_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) ?? {});
68
63
  },
69
64
  getCanSomeRowsExpand: () => {
70
65
  return table.getRowModel().flatRows.some(row => row.getCanExpand());
@@ -80,22 +75,22 @@ const Expanding = {
80
75
  return expanded === true || Object.values(expanded).some(Boolean);
81
76
  },
82
77
  getIsAllRowsExpanded: () => {
83
- const expanded = table.getState().expanded; // If expanded is true, save some cycles and return true
78
+ const expanded = table.getState().expanded;
84
79
 
80
+ // If expanded is true, save some cycles and return true
85
81
  if (typeof expanded === 'boolean') {
86
82
  return expanded === true;
87
83
  }
88
-
89
84
  if (!Object.keys(expanded).length) {
90
85
  return false;
91
- } // If any row is not expanded, return false
92
-
86
+ }
93
87
 
94
- if (table.getRowModel().flatRows.some(row => row.getIsExpanded())) {
88
+ // If any row is not expanded, return false
89
+ if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {
95
90
  return false;
96
- } // They must all be expanded :shrug:
97
-
91
+ }
98
92
 
93
+ // They must all be expanded :shrug:
99
94
  return true;
100
95
  },
101
96
  getExpandedDepth: () => {
@@ -112,11 +107,9 @@ const Expanding = {
112
107
  if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {
113
108
  table._getExpandedRowModel = table.options.getExpandedRowModel(table);
114
109
  }
115
-
116
110
  if (table.options.manualExpanding || !table._getExpandedRowModel) {
117
111
  return table.getPreExpandedRowModel();
118
112
  }
119
-
120
113
  return table._getExpandedRowModel();
121
114
  }
122
115
  };
@@ -125,11 +118,8 @@ const Expanding = {
125
118
  return {
126
119
  toggleExpanded: expanded => {
127
120
  table.setExpanded(old => {
128
- var _expanded;
129
-
130
121
  const exists = old === true ? true : !!(old != null && old[row.id]);
131
122
  let oldExpanded = {};
132
-
133
123
  if (old === true) {
134
124
  Object.keys(table.getRowModel().rowsById).forEach(rowId => {
135
125
  oldExpanded[rowId] = true;
@@ -137,15 +127,13 @@ const Expanding = {
137
127
  } else {
138
128
  oldExpanded = old;
139
129
  }
140
-
141
- expanded = (_expanded = expanded) != null ? _expanded : !exists;
142
-
130
+ expanded = expanded ?? !exists;
143
131
  if (!exists && expanded) {
144
- return { ...oldExpanded,
132
+ return {
133
+ ...oldExpanded,
145
134
  [row.id]: true
146
135
  };
147
136
  }
148
-
149
137
  if (exists && !expanded) {
150
138
  const {
151
139
  [row.id]: _,
@@ -153,20 +141,16 @@ const Expanding = {
153
141
  } = oldExpanded;
154
142
  return rest;
155
143
  }
156
-
157
144
  return old;
158
145
  });
159
146
  },
160
147
  getIsExpanded: () => {
161
- var _table$options$getIsR;
162
-
163
148
  const expanded = table.getState().expanded;
164
- return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));
149
+ return !!((table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) ?? (expanded === true || expanded != null && expanded[row.id]));
165
150
  },
166
151
  getCanExpand: () => {
167
- var _table$options$getRow, _table$options$enable, _row$subRows;
168
-
169
- return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);
152
+ var _row$subRows;
153
+ return (table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) ?? ((table.options.enableExpanding ?? true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length));
170
154
  },
171
155
  getToggleExpandedHandler: () => {
172
156
  const canExpand = row.getCanExpand();
@@ -1 +1 @@
1
- {"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, Updater, RowData } from '../types'\nimport { makeStateUpdater } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport type ExpandedTableState = {\n expanded: ExpandedState\n}\n\nexport type ExpandedRow = {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedHandler: () => () => void\n}\n\nexport type ExpandedOptions<TData extends RowData> = {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (table: Table<any>) => () => RowModel<any>\n getIsRowExpanded?: (row: Row<TData>) => boolean\n getRowCanExpand?: (row: Row<TData>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ExpandedInstance<TData extends RowData> = {\n _autoResetExpanded: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: (defaultState?: boolean) => void\n getCanSomeRowsExpand: () => boolean\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TData>\n _getExpandedRowModel?: () => RowModel<TData>\n getPreExpandedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedOptions<TData> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetExpanded: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetExpanded()\n queued = false\n })\n }\n },\n setExpanded: updater => table.options.onExpandedChange?.(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !table.getIsAllRowsExpanded()) {\n table.setExpanded(true)\n } else {\n table.setExpanded({})\n }\n },\n resetExpanded: defaultState => {\n table.setExpanded(\n defaultState ? {} : table.initialState?.expanded ?? {}\n )\n },\n getCanSomeRowsExpand: () => {\n return table.getRowModel().flatRows.some(row => row.getCanExpand())\n },\n getToggleAllRowsExpandedHandler: () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table.toggleAllRowsExpanded()\n }\n },\n getIsSomeRowsExpanded: () => {\n const expanded = table.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = table.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => row.getIsExpanded())) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n table.getState().expanded === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getPreExpandedRowModel: () => table.getSortedRowModel(),\n getExpandedRowModel: () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table)\n }\n\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel()\n }\n\n return table._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded => {\n table.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n getIsExpanded: () => {\n const expanded = table.getState().expanded\n\n return !!(\n table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n },\n getCanExpand: () => {\n return (\n table.options.getRowCanExpand?.(row) ??\n ((table.options.enableExpanding ?? true) && !!row.subRows?.length)\n )\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand()\n\n return () => {\n if (!canExpand) return\n row.toggleExpanded()\n }\n },\n }\n },\n}\n"],"names":["Expanding","getInitialState","state","expanded","getDefaultOptions","table","onExpandedChange","makeStateUpdater","paginateExpandedRows","createTable","registered","queued","_autoResetExpanded","_queue","options","autoResetAll","autoResetExpanded","manualExpanding","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","defaultState","initialState","getCanSomeRowsExpand","getRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","keys","length","getIsExpanded","getExpandedDepth","maxDepth","rowIds","rowsById","forEach","id","splitId","split","Math","max","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","old","exists","oldExpanded","rowId","_","rest","getIsRowExpanded","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":"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"}
1
+ {"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, Updater, RowData } from '../types'\nimport { makeStateUpdater } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport type ExpandedTableState = {\n expanded: ExpandedState\n}\n\nexport type ExpandedRow = {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedHandler: () => () => void\n}\n\nexport type ExpandedOptions<TData extends RowData> = {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (table: Table<any>) => () => RowModel<any>\n getIsRowExpanded?: (row: Row<TData>) => boolean\n getRowCanExpand?: (row: Row<TData>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ExpandedInstance<TData extends RowData> = {\n _autoResetExpanded: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: (defaultState?: boolean) => void\n getCanSomeRowsExpand: () => boolean\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TData>\n _getExpandedRowModel?: () => RowModel<TData>\n getPreExpandedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedOptions<TData> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetExpanded: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetExpanded()\n queued = false\n })\n }\n },\n setExpanded: updater => table.options.onExpandedChange?.(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !table.getIsAllRowsExpanded()) {\n table.setExpanded(true)\n } else {\n table.setExpanded({})\n }\n },\n resetExpanded: defaultState => {\n table.setExpanded(\n defaultState ? {} : table.initialState?.expanded ?? {}\n )\n },\n getCanSomeRowsExpand: () => {\n return table.getRowModel().flatRows.some(row => row.getCanExpand())\n },\n getToggleAllRowsExpandedHandler: () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table.toggleAllRowsExpanded()\n }\n },\n getIsSomeRowsExpanded: () => {\n const expanded = table.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = table.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n table.getState().expanded === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getPreExpandedRowModel: () => table.getSortedRowModel(),\n getExpandedRowModel: () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table)\n }\n\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel()\n }\n\n return table._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded => {\n table.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n getIsExpanded: () => {\n const expanded = table.getState().expanded\n\n return !!(\n table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n },\n getCanExpand: () => {\n return (\n table.options.getRowCanExpand?.(row) ??\n ((table.options.enableExpanding ?? true) && !!row.subRows?.length)\n )\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand()\n\n return () => {\n if (!canExpand) return\n row.toggleExpanded()\n }\n },\n }\n },\n}\n"],"names":["Expanding","getInitialState","state","expanded","getDefaultOptions","table","onExpandedChange","makeStateUpdater","paginateExpandedRows","createTable","registered","queued","_autoResetExpanded","_queue","options","autoResetAll","autoResetExpanded","manualExpanding","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","defaultState","initialState","getCanSomeRowsExpand","getRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","keys","length","getIsExpanded","getExpandedDepth","maxDepth","rowIds","rowsById","forEach","id","splitId","split","Math","max","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","old","exists","oldExpanded","rowId","_","rest","getIsRowExpanded","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":"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"}