@tanstack/table-core 8.5.15 → 8.5.17

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 +0 -3
  6. package/build/cjs/core/cell.js.map +1 -1
  7. package/build/cjs/core/column.js +7 -12
  8. package/build/cjs/core/column.js.map +1 -1
  9. package/build/cjs/core/headers.js +18 -30
  10. package/build/cjs/core/headers.js.map +1 -1
  11. package/build/cjs/core/row.js +0 -5
  12. package/build/cjs/core/row.js.map +1 -1
  13. package/build/cjs/core/table.js +13 -30
  14. package/build/cjs/core/table.js.map +1 -1
  15. package/build/cjs/features/ColumnSizing.js +33 -32
  16. package/build/cjs/features/ColumnSizing.js.map +1 -1
  17. package/build/cjs/features/Expanding.js +9 -19
  18. package/build/cjs/features/Expanding.js.map +1 -1
  19. package/build/cjs/features/Filters.js +6 -34
  20. package/build/cjs/features/Filters.js.map +1 -1
  21. package/build/cjs/features/Grouping.js +1 -16
  22. package/build/cjs/features/Grouping.js.map +1 -1
  23. package/build/cjs/features/Ordering.js +13 -10
  24. package/build/cjs/features/Ordering.js.map +1 -1
  25. package/build/cjs/features/Pagination.js +11 -22
  26. package/build/cjs/features/Pagination.js.map +1 -1
  27. package/build/cjs/features/Pinning.js +5 -11
  28. package/build/cjs/features/Pinning.js.map +1 -1
  29. package/build/cjs/features/RowSelection.js +35 -39
  30. package/build/cjs/features/RowSelection.js.map +1 -1
  31. package/build/cjs/features/Sorting.js +14 -29
  32. package/build/cjs/features/Sorting.js.map +1 -1
  33. package/build/cjs/features/Visibility.js +5 -5
  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 +11 -13
  42. package/build/cjs/utils/getCoreRowModel.js.map +1 -1
  43. package/build/cjs/utils/getExpandedRowModel.js +0 -6
  44. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  45. package/build/cjs/utils/getFacetedMinMaxValues.js +0 -6
  46. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
  47. package/build/cjs/utils/getFacetedRowModel.js +0 -4
  48. package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
  49. package/build/cjs/utils/getFacetedUniqueValues.js +0 -4
  50. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -1
  51. package/build/cjs/utils/getFilteredRowModel.js +8 -20
  52. package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
  53. package/build/cjs/utils/getGroupedRowModel.js +21 -25
  54. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  55. package/build/cjs/utils/getPaginationRowModel.js +0 -6
  56. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  57. package/build/cjs/utils/getSortedRowModel.js +6 -15
  58. package/build/cjs/utils/getSortedRowModel.js.map +1 -1
  59. package/build/cjs/utils.js +7 -13
  60. package/build/cjs/utils.js.map +1 -1
  61. package/build/esm/index.js +267 -504
  62. package/build/esm/index.js.map +1 -1
  63. package/build/stats-html.html +51 -41
  64. package/build/stats-react.json +369 -369
  65. package/build/umd/index.development.js +267 -502
  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/core/column.ts +5 -0
  71. package/src/features/ColumnSizing.ts +11 -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;
@@ -57,12 +56,10 @@ const ColumnSizing = {
57
56
  getStart: position => {
58
57
  const columns = !position ? table.getVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();
59
58
  const index = columns.findIndex(d => d.id === column.id);
60
-
61
59
  if (index > 0) {
62
60
  const prevSiblingColumn = columns[index - 1];
63
61
  return prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize();
64
62
  }
65
-
66
63
  return 0;
67
64
  },
68
65
  resetSize: () => {
@@ -86,7 +83,6 @@ const ColumnSizing = {
86
83
  return {
87
84
  getSize: () => {
88
85
  let sum = 0;
89
-
90
86
  const recurse = header => {
91
87
  if (header.subHeaders.length) {
92
88
  header.subHeaders.forEach(recurse);
@@ -94,7 +90,6 @@ const ColumnSizing = {
94
90
  sum += header.column.getSize() ?? 0;
95
91
  }
96
92
  };
97
-
98
93
  recurse(header);
99
94
  return sum;
100
95
  },
@@ -103,7 +98,6 @@ const ColumnSizing = {
103
98
  const prevSiblingHeader = header.headerGroup.headers[header.index - 1];
104
99
  return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();
105
100
  }
106
-
107
101
  return 0;
108
102
  },
109
103
  getResizeHandler: () => {
@@ -114,23 +108,19 @@ const ColumnSizing = {
114
108
  return;
115
109
  }
116
110
  e.persist == null ? void 0 : e.persist();
117
-
118
111
  if (isTouchStartEvent(e)) {
119
112
  // lets not respond to multiple touches (e.g. 2 or 3 fingers)
120
113
  if (e.touches && e.touches.length > 1) {
121
114
  return;
122
115
  }
123
116
  }
124
-
125
117
  const startSize = header.getSize();
126
118
  const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];
127
119
  const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;
128
-
129
120
  const updateOffset = (eventType, clientXPos) => {
130
121
  if (typeof clientXPos !== 'number') {
131
122
  return;
132
123
  }
133
-
134
124
  let newColumnSizing = {};
135
125
  table.setColumnSizingInfo(old => {
136
126
  const deltaOffset = clientXPos - ((old == null ? void 0 : old.startOffset) ?? 0);
@@ -139,24 +129,24 @@ const ColumnSizing = {
139
129
  let [columnId, headerSize] = _ref2;
140
130
  newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;
141
131
  });
142
- return { ...old,
132
+ return {
133
+ ...old,
143
134
  deltaOffset,
144
135
  deltaPercentage
145
136
  };
146
137
  });
147
-
148
138
  if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {
149
- table.setColumnSizing(old => ({ ...old,
139
+ table.setColumnSizing(old => ({
140
+ ...old,
150
141
  ...newColumnSizing
151
142
  }));
152
143
  }
153
144
  };
154
-
155
145
  const onMove = clientXPos => updateOffset('move', clientXPos);
156
-
157
146
  const onEnd = clientXPos => {
158
147
  updateOffset('end', clientXPos);
159
- table.setColumnSizingInfo(old => ({ ...old,
148
+ table.setColumnSizingInfo(old => ({
149
+ ...old,
160
150
  isResizingColumn: false,
161
151
  startOffset: null,
162
152
  startSize: null,
@@ -165,7 +155,6 @@ const ColumnSizing = {
165
155
  columnSizingStart: []
166
156
  }));
167
157
  };
168
-
169
158
  const mouseEvents = {
170
159
  moveHandler: e => onMove(e.clientX),
171
160
  upHandler: e => {
@@ -174,16 +163,38 @@ const ColumnSizing = {
174
163
  onEnd(e.clientX);
175
164
  }
176
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
+ };
177
186
  const passiveIfSupported = passiveEventSupported() ? {
178
187
  passive: false
179
188
  } : false;
180
-
181
- if (isTouchStartEvent(e)) ; else {
189
+ if (isTouchStartEvent(e)) {
190
+ document.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);
191
+ document.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);
192
+ } else {
182
193
  document.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);
183
194
  document.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);
184
195
  }
185
-
186
- table.setColumnSizingInfo(old => ({ ...old,
196
+ table.setColumnSizingInfo(old => ({
197
+ ...old,
187
198
  startOffset: clientX,
188
199
  startSize,
189
200
  deltaOffset: 0,
@@ -207,28 +218,24 @@ const ColumnSizing = {
207
218
  },
208
219
  getTotalSize: () => {
209
220
  var _table$getHeaderGroup;
210
-
211
221
  return ((_table$getHeaderGroup = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup.headers.reduce((sum, header) => {
212
222
  return sum + header.getSize();
213
223
  }, 0)) ?? 0;
214
224
  },
215
225
  getLeftTotalSize: () => {
216
226
  var _table$getLeftHeaderG;
217
-
218
227
  return ((_table$getLeftHeaderG = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG.headers.reduce((sum, header) => {
219
228
  return sum + header.getSize();
220
229
  }, 0)) ?? 0;
221
230
  },
222
231
  getCenterTotalSize: () => {
223
232
  var _table$getCenterHeade;
224
-
225
233
  return ((_table$getCenterHeade = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade.headers.reduce((sum, header) => {
226
234
  return sum + header.getSize();
227
235
  }, 0)) ?? 0;
228
236
  },
229
237
  getRightTotalSize: () => {
230
238
  var _table$getRightHeader;
231
-
232
239
  return ((_table$getRightHeader = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader.headers.reduce((sum, header) => {
233
240
  return sum + header.getSize();
234
241
  }, 0)) ?? 0;
@@ -240,28 +247,22 @@ let passiveSupported = null;
240
247
  function passiveEventSupported() {
241
248
  if (typeof passiveSupported === 'boolean') return passiveSupported;
242
249
  let supported = false;
243
-
244
250
  try {
245
251
  const options = {
246
252
  get passive() {
247
253
  supported = true;
248
254
  return false;
249
255
  }
250
-
251
256
  };
252
-
253
257
  const noop = () => {};
254
-
255
258
  window.addEventListener('test', noop, options);
256
259
  window.removeEventListener('test', noop);
257
260
  } catch (err) {
258
261
  supported = false;
259
262
  }
260
-
261
263
  passiveSupported = supported;
262
264
  return passiveSupported;
263
265
  }
264
-
265
266
  function isTouchStartEvent(e) {
266
267
  return e.type === 'touchstart';
267
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":"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"}
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 {
@@ -37,14 +38,11 @@ const Expanding = {
37
38
  table._queue(() => {
38
39
  registered = true;
39
40
  });
40
-
41
41
  return;
42
42
  }
43
-
44
43
  if (table.options.autoResetAll ?? table.options.autoResetExpanded ?? !table.options.manualExpanding) {
45
44
  if (queued) return;
46
45
  queued = true;
47
-
48
46
  table._queue(() => {
49
47
  table.resetExpanded();
50
48
  queued = false;
@@ -61,7 +59,6 @@ const Expanding = {
61
59
  },
62
60
  resetExpanded: defaultState => {
63
61
  var _table$initialState;
64
-
65
62
  table.setExpanded(defaultState ? {} : ((_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) ?? {});
66
63
  },
67
64
  getCanSomeRowsExpand: () => {
@@ -78,22 +75,22 @@ const Expanding = {
78
75
  return expanded === true || Object.values(expanded).some(Boolean);
79
76
  },
80
77
  getIsAllRowsExpanded: () => {
81
- const expanded = table.getState().expanded; // If expanded is true, save some cycles and return true
78
+ const expanded = table.getState().expanded;
82
79
 
80
+ // If expanded is true, save some cycles and return true
83
81
  if (typeof expanded === 'boolean') {
84
82
  return expanded === true;
85
83
  }
86
-
87
84
  if (!Object.keys(expanded).length) {
88
85
  return false;
89
- } // If any row is not expanded, return false
90
-
86
+ }
91
87
 
88
+ // If any row is not expanded, return false
92
89
  if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {
93
90
  return false;
94
- } // They must all be expanded :shrug:
95
-
91
+ }
96
92
 
93
+ // They must all be expanded :shrug:
97
94
  return true;
98
95
  },
99
96
  getExpandedDepth: () => {
@@ -110,11 +107,9 @@ const Expanding = {
110
107
  if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {
111
108
  table._getExpandedRowModel = table.options.getExpandedRowModel(table);
112
109
  }
113
-
114
110
  if (table.options.manualExpanding || !table._getExpandedRowModel) {
115
111
  return table.getPreExpandedRowModel();
116
112
  }
117
-
118
113
  return table._getExpandedRowModel();
119
114
  }
120
115
  };
@@ -125,7 +120,6 @@ const Expanding = {
125
120
  table.setExpanded(old => {
126
121
  const exists = old === true ? true : !!(old != null && old[row.id]);
127
122
  let oldExpanded = {};
128
-
129
123
  if (old === true) {
130
124
  Object.keys(table.getRowModel().rowsById).forEach(rowId => {
131
125
  oldExpanded[rowId] = true;
@@ -133,15 +127,13 @@ const Expanding = {
133
127
  } else {
134
128
  oldExpanded = old;
135
129
  }
136
-
137
130
  expanded = expanded ?? !exists;
138
-
139
131
  if (!exists && expanded) {
140
- return { ...oldExpanded,
132
+ return {
133
+ ...oldExpanded,
141
134
  [row.id]: true
142
135
  };
143
136
  }
144
-
145
137
  if (exists && !expanded) {
146
138
  const {
147
139
  [row.id]: _,
@@ -149,7 +141,6 @@ const Expanding = {
149
141
  } = oldExpanded;
150
142
  return rest;
151
143
  }
152
-
153
144
  return old;
154
145
  });
155
146
  },
@@ -159,7 +150,6 @@ const Expanding = {
159
150
  },
160
151
  getCanExpand: () => {
161
152
  var _row$subRows;
162
-
163
153
  return (table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) ?? ((table.options.enableExpanding ?? true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length));
164
154
  },
165
155
  getToggleExpandedHandler: () => {
@@ -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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"}