@tanstack/react-table 0.0.1-alpha.9 → 8.0.0-alpha.3

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 (129) hide show
  1. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +112 -0
  2. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  3. package/build/cjs/aggregationTypes.js +130 -0
  4. package/build/cjs/aggregationTypes.js.map +1 -0
  5. package/build/cjs/core.js +552 -0
  6. package/build/cjs/core.js.map +1 -0
  7. package/build/cjs/createTable.js +108 -0
  8. package/build/cjs/createTable.js.map +1 -0
  9. package/build/cjs/features/ColumnSizing.js +317 -0
  10. package/build/cjs/features/ColumnSizing.js.map +1 -0
  11. package/build/cjs/features/Expanding.js +255 -0
  12. package/build/cjs/features/Expanding.js.map +1 -0
  13. package/build/cjs/features/Filters.js +445 -0
  14. package/build/cjs/features/Filters.js.map +1 -0
  15. package/build/cjs/features/Grouping.js +249 -0
  16. package/build/cjs/features/Grouping.js.map +1 -0
  17. package/build/cjs/features/Headers.js +549 -0
  18. package/build/cjs/features/Headers.js.map +1 -0
  19. package/build/cjs/features/Ordering.js +86 -0
  20. package/build/cjs/features/Ordering.js.map +1 -0
  21. package/build/cjs/features/Pagination.js +194 -0
  22. package/build/cjs/features/Pagination.js.map +1 -0
  23. package/build/cjs/features/Pinning.js +149 -0
  24. package/build/cjs/features/Pinning.js.map +1 -0
  25. package/build/cjs/features/RowSelection.js +541 -0
  26. package/build/cjs/features/RowSelection.js.map +1 -0
  27. package/build/cjs/features/Sorting.js +327 -0
  28. package/build/cjs/features/Sorting.js.map +1 -0
  29. package/build/cjs/features/Visibility.js +166 -0
  30. package/build/cjs/features/Visibility.js.map +1 -0
  31. package/build/cjs/filterTypes.js +172 -0
  32. package/build/cjs/filterTypes.js.map +1 -0
  33. package/build/cjs/index.js +30 -0
  34. package/build/cjs/index.js.map +1 -0
  35. package/build/cjs/sortTypes.js +122 -0
  36. package/build/cjs/sortTypes.js.map +1 -0
  37. package/build/cjs/utils/columnFilterRowsFn.js +131 -0
  38. package/build/cjs/utils/columnFilterRowsFn.js.map +1 -0
  39. package/build/cjs/utils/expandRowsFn.js +38 -0
  40. package/build/cjs/utils/expandRowsFn.js.map +1 -0
  41. package/build/cjs/utils/globalFilterRowsFn.js +101 -0
  42. package/build/cjs/utils/globalFilterRowsFn.js.map +1 -0
  43. package/build/cjs/utils/groupRowsFn.js +155 -0
  44. package/build/cjs/utils/groupRowsFn.js.map +1 -0
  45. package/build/cjs/utils/sortRowsFn.js +94 -0
  46. package/build/cjs/utils/sortRowsFn.js.map +1 -0
  47. package/build/cjs/utils.js +146 -0
  48. package/build/cjs/utils.js.map +1 -0
  49. package/build/esm/index.js +4747 -0
  50. package/build/esm/index.js.map +1 -0
  51. package/build/stats-html.html +2689 -0
  52. package/build/stats-react.json +817 -0
  53. package/build/types/aggregationTypes.d.ts +22 -0
  54. package/build/types/core.d.ts +111 -0
  55. package/build/types/createTable.d.ts +53 -0
  56. package/build/types/features/ColumnSizing.d.ts +67 -0
  57. package/build/types/features/Expanding.d.ts +53 -0
  58. package/build/types/features/Filters.d.ts +98 -0
  59. package/build/types/features/Grouping.d.ts +82 -0
  60. package/build/types/features/Headers.d.ts +41 -0
  61. package/build/types/features/Ordering.d.ts +19 -0
  62. package/build/types/features/Pagination.d.ts +43 -0
  63. package/build/types/features/Pinning.d.ts +39 -0
  64. package/build/types/features/RowSelection.d.ts +66 -0
  65. package/build/types/features/Sorting.d.ts +78 -0
  66. package/build/types/features/Visibility.d.ts +47 -0
  67. package/build/types/filterTypes.d.ts +50 -0
  68. package/build/types/index.d.ts +7 -0
  69. package/build/types/sortTypes.d.ts +18 -0
  70. package/build/types/types.d.ts +127 -0
  71. package/build/types/utils/columnFilterRowsFn.d.ts +2 -0
  72. package/build/types/utils/expandRowsFn.d.ts +2 -0
  73. package/build/types/utils/globalFilterRowsFn.d.ts +2 -0
  74. package/build/types/utils/groupRowsFn.d.ts +2 -0
  75. package/build/types/utils/paginateRowsFn.d.ts +2 -0
  76. package/build/types/utils/sortRowsFn.d.ts +2 -0
  77. package/build/types/utils.d.ts +28 -0
  78. package/{dist/react-table.development.js → build/umd/index.development.js} +1617 -249
  79. package/build/umd/index.development.js.map +1 -0
  80. package/build/umd/index.production.js +12 -0
  81. package/build/umd/index.production.js.map +1 -0
  82. package/package.json +9 -94
  83. package/src/core.tsx +252 -264
  84. package/src/createTable.tsx +69 -9
  85. package/src/features/ColumnSizing.ts +453 -0
  86. package/src/features/Expanding.ts +27 -11
  87. package/src/features/Filters.ts +75 -20
  88. package/src/features/Grouping.ts +27 -12
  89. package/src/features/Headers.ts +55 -50
  90. package/src/features/Ordering.ts +2 -3
  91. package/src/features/Pagination.ts +314 -0
  92. package/src/features/Pinning.ts +3 -16
  93. package/src/features/RowSelection.ts +831 -0
  94. package/src/features/Sorting.ts +82 -22
  95. package/src/features/Visibility.ts +2 -4
  96. package/src/sortTypes.ts +1 -1
  97. package/src/types.ts +55 -9
  98. package/src/utils/columnFilterRowsFn.ts +5 -12
  99. package/src/utils/expandRowsFn.ts +2 -5
  100. package/src/utils/globalFilterRowsFn.ts +3 -10
  101. package/src/utils/groupRowsFn.ts +3 -5
  102. package/src/utils/paginateRowsFn.ts +34 -0
  103. package/src/utils/sortRowsFn.ts +5 -5
  104. package/src/utils.tsx +20 -6
  105. package/dist/react-table.development.js.map +0 -1
  106. package/dist/react-table.production.min.js +0 -2
  107. package/dist/react-table.production.min.js.map +0 -1
  108. package/lib/index.js +0 -65
  109. package/src/features/notest/useAbsoluteLayout.test.js +0 -152
  110. package/src/features/notest/useBlockLayout.test.js +0 -158
  111. package/src/features/notest/useColumnOrder.test.js +0 -186
  112. package/src/features/notest/useExpanded.test.js +0 -125
  113. package/src/features/notest/useFilters.test.js +0 -393
  114. package/src/features/notest/useFiltersAndRowSelect.test.js +0 -256
  115. package/src/features/notest/useFlexLayout.test.js +0 -152
  116. package/src/features/notest/useGroupBy.test.js +0 -259
  117. package/src/features/notest/usePagination.test.js +0 -231
  118. package/src/features/notest/useResizeColumns.test.js +0 -229
  119. package/src/features/notest/useRowSelect.test.js +0 -250
  120. package/src/features/notest/useRowState.test.js +0 -178
  121. package/src/features/tests/Visibility.test.tsx +0 -225
  122. package/src/features/tests/__snapshots__/Visibility.test.tsx.snap +0 -390
  123. package/src/features/tests/withSorting.notest.tsx +0 -341
  124. package/src/features/withColumnResizing.ts +0 -281
  125. package/src/features/withPagination.ts +0 -208
  126. package/src/features/withRowSelection.ts +0 -467
  127. package/src/test-utils/makeTestData.ts +0 -41
  128. package/src/tests/__snapshots__/core.test.tsx.snap +0 -148
  129. package/src/tests/core.test.tsx +0 -241
@@ -0,0 +1,255 @@
1
+ /**
2
+ * react-table
3
+ *
4
+ * Copyright (c) TanStack
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE.md file in the root directory of this source tree.
8
+ *
9
+ * @license MIT
10
+ */
11
+ 'use strict';
12
+
13
+ Object.defineProperty(exports, '__esModule', { value: true });
14
+
15
+ var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
16
+ var utils = require('../utils.js');
17
+
18
+ //
19
+ function getInitialState() {
20
+ return {
21
+ expanded: {}
22
+ };
23
+ }
24
+ function getDefaultOptions(instance) {
25
+ return {
26
+ onExpandedChange: utils.makeStateUpdater('expanded', instance),
27
+ autoResetExpanded: true,
28
+ getIsRowExpanded: function getIsRowExpanded(row) {
29
+ return !!(row == null ? void 0 : row.original).expanded;
30
+ },
31
+ expandSubRows: true,
32
+ paginateExpandedRows: true
33
+ };
34
+ }
35
+ function getInstance(instance) {
36
+ var registered = false;
37
+ return {
38
+ _notifyExpandedReset: function _notifyExpandedReset() {
39
+ if (!registered) {
40
+ registered = true;
41
+ return;
42
+ }
43
+
44
+ if (instance.options.autoResetAll === false) {
45
+ return;
46
+ }
47
+
48
+ if (instance.options.autoResetAll === true || instance.options.autoResetExpanded) {
49
+ instance.resetExpanded();
50
+ }
51
+ },
52
+ setExpanded: function setExpanded(updater) {
53
+ return instance.options.onExpandedChange == null ? void 0 : instance.options.onExpandedChange(updater, utils.functionalUpdate(updater, instance.getState().expanded));
54
+ },
55
+ toggleRowExpanded: function toggleRowExpanded(rowId, expanded) {
56
+ if (!rowId) return;
57
+ instance.setExpanded(function (old) {
58
+ var _old, _expanded;
59
+
60
+ if (old === void 0) {
61
+ old = {};
62
+ }
63
+
64
+ var exists = old === true ? true : !!((_old = old) != null && _old[rowId]);
65
+ var oldExpanded = {};
66
+
67
+ if (old === true) {
68
+ Object.keys(instance.getRowsById()).forEach(function (rowId) {
69
+ oldExpanded[rowId] = true;
70
+ });
71
+ } else {
72
+ oldExpanded = old;
73
+ }
74
+
75
+ expanded = (_expanded = expanded) != null ? _expanded : !exists;
76
+
77
+ if (!exists && expanded) {
78
+ var _extends2;
79
+
80
+ return _rollupPluginBabelHelpers["extends"]({}, oldExpanded, (_extends2 = {}, _extends2[rowId] = true, _extends2));
81
+ }
82
+
83
+ if (exists && !expanded) {
84
+ var _oldExpanded = oldExpanded;
85
+ _oldExpanded[rowId];
86
+ var rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(_oldExpanded, [rowId].map(_rollupPluginBabelHelpers.toPropertyKey));
87
+
88
+ return rest;
89
+ }
90
+
91
+ return old;
92
+ });
93
+ },
94
+ toggleAllRowsExpanded: function toggleAllRowsExpanded(expanded) {
95
+ if (expanded != null ? expanded : !instance.getIsAllRowsExpanded()) {
96
+ instance.setExpanded(true);
97
+ } else {
98
+ instance.setExpanded({});
99
+ }
100
+ },
101
+ resetExpanded: function resetExpanded() {
102
+ var _instance$options$ini, _instance$options, _instance$options$ini2;
103
+
104
+ instance.setExpanded((_instance$options$ini = (_instance$options = instance.options) == null ? void 0 : (_instance$options$ini2 = _instance$options.initialState) == null ? void 0 : _instance$options$ini2.expanded) != null ? _instance$options$ini : {});
105
+ },
106
+ getIsRowExpanded: function getIsRowExpanded(rowId) {
107
+ var _instance$options$get;
108
+
109
+ var row = instance.getRow(rowId);
110
+
111
+ if (!row) {
112
+ if (process.env.NODE_ENV !== 'production') {
113
+ console.warn("[ReactTable] getIsRowExpanded: no row found with id " + rowId);
114
+ }
115
+
116
+ throw new Error();
117
+ }
118
+
119
+ var expanded = instance.getState().expanded;
120
+ return !!((_instance$options$get = instance.options.getIsRowExpanded == null ? void 0 : instance.options.getIsRowExpanded(row)) != null ? _instance$options$get : expanded || (expanded == null ? void 0 : expanded[rowId]));
121
+ },
122
+ getRowCanExpand: function getRowCanExpand(rowId) {
123
+ var _ref, _ref2, _instance$options$get2, _row$subRows;
124
+
125
+ var row = instance.getRow(rowId);
126
+
127
+ if (!row) {
128
+ if (process.env.NODE_ENV !== 'production') {
129
+ console.warn("[ReactTable] getRowCanExpand: no row found with id " + rowId);
130
+ }
131
+
132
+ throw new Error();
133
+ }
134
+
135
+ return (_ref = (_ref2 = (_instance$options$get2 = instance.options.getRowCanExpand == null ? void 0 : instance.options.getRowCanExpand(row)) != null ? _instance$options$get2 : instance.options.enableExpanded) != null ? _ref2 : instance.options.defaultCanExpand) != null ? _ref : !!((_row$subRows = row.subRows) != null && _row$subRows.length);
136
+ },
137
+ getToggleExpandedProps: function getToggleExpandedProps(rowId, userProps) {
138
+ var row = instance.getRow(rowId);
139
+
140
+ if (!row) {
141
+ return;
142
+ }
143
+
144
+ var canExpand = instance.getRowCanExpand(rowId);
145
+ var initialProps = {
146
+ title: canExpand ? 'Toggle Expanded' : undefined,
147
+ onClick: canExpand ? function (e) {
148
+ e.persist();
149
+ instance.toggleRowExpanded(rowId);
150
+ } : undefined
151
+ };
152
+ return utils.propGetter(initialProps, userProps);
153
+ },
154
+ getToggleAllRowsExpandedProps: function getToggleAllRowsExpandedProps(userProps) {
155
+ var initialProps = {
156
+ title: 'Toggle All Expanded',
157
+ onClick: function onClick(e) {
158
+ e.persist();
159
+ instance.toggleAllRowsExpanded();
160
+ }
161
+ };
162
+ return utils.propGetter(initialProps, userProps);
163
+ },
164
+ getIsAllRowsExpanded: function getIsAllRowsExpanded() {
165
+ var expanded = instance.getState().expanded; // If expanded is true, save some cycles and return true
166
+
167
+ if (expanded === true) {
168
+ return true;
169
+ } // If any row is not expanded, return false
170
+
171
+
172
+ if (Object.keys(instance.getRowsById()).some(function (id) {
173
+ return !instance.getIsRowExpanded(id);
174
+ })) {
175
+ return false;
176
+ } // They must all be expanded :shrug:
177
+
178
+
179
+ return true;
180
+ },
181
+ getExpandedDepth: function getExpandedDepth() {
182
+ var maxDepth = 0;
183
+ var rowIds = instance.getState().expanded === true ? Object.keys(instance.getRowsById()) : Object.keys(instance.getState().expanded);
184
+ rowIds.forEach(function (id) {
185
+ var splitId = id.split('.');
186
+ maxDepth = Math.max(maxDepth, splitId.length);
187
+ });
188
+ return maxDepth;
189
+ },
190
+ getExpandedRowModel: utils.memo(function () {
191
+ return [instance.getState().expanded, instance.getGroupedRowModel(), instance.options.expandRowsFn, instance.options.paginateExpandedRows];
192
+ }, function (expanded, rowModel, expandRowsFn, paginateExpandedRows) {
193
+ if (!expandRowsFn || // Do not expand if rows are not included in pagination
194
+ !paginateExpandedRows || !Object.keys(expanded != null ? expanded : {}).length) {
195
+ return rowModel;
196
+ }
197
+
198
+ if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Expanding...');
199
+ return expandRowsFn(instance, rowModel);
200
+ }, {
201
+ key: 'getExpandedRowModel',
202
+ debug: instance.options.debug,
203
+ onChange: function onChange() {
204
+ return instance._notifyPageIndexReset();
205
+ }
206
+ }),
207
+ getPreExpandedRows: function getPreExpandedRows() {
208
+ return instance.getGroupedRowModel().rows;
209
+ },
210
+ getPreExpandedFlatRows: function getPreExpandedFlatRows() {
211
+ return instance.getGroupedRowModel().flatRows;
212
+ },
213
+ getPreExpandedRowsById: function getPreExpandedRowsById() {
214
+ return instance.getGroupedRowModel().rowsById;
215
+ },
216
+ getExpandedRows: function getExpandedRows() {
217
+ return instance.getExpandedRowModel().rows;
218
+ },
219
+ getExpandedFlatRows: function getExpandedFlatRows() {
220
+ return instance.getExpandedRowModel().flatRows;
221
+ },
222
+ getExpandedRowsById: function getExpandedRowsById() {
223
+ return instance.getExpandedRowModel().rowsById;
224
+ }
225
+ };
226
+ }
227
+ function createRow(row, instance) {
228
+ return {
229
+ toggleExpanded: function toggleExpanded(expanded) {
230
+ return void instance.toggleRowExpanded(row.id, expanded);
231
+ },
232
+ getIsExpanded: function getIsExpanded() {
233
+ return instance.getIsRowExpanded(row.id);
234
+ },
235
+ getCanExpand: function getCanExpand() {
236
+ return row.subRows && !!row.subRows.length;
237
+ },
238
+ getToggleExpandedProps: function getToggleExpandedProps(userProps) {
239
+ var initialProps = {
240
+ title: 'Toggle Row Expanded',
241
+ onClick: function onClick(e) {
242
+ e.stopPropagation();
243
+ instance.toggleRowExpanded(row.id);
244
+ }
245
+ };
246
+ return utils.propGetter(initialProps, userProps);
247
+ }
248
+ };
249
+ }
250
+
251
+ exports.createRow = createRow;
252
+ exports.getDefaultOptions = getDefaultOptions;
253
+ exports.getInitialState = getInitialState;
254
+ exports.getInstance = getInstance;
255
+ //# sourceMappingURL=Expanding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { MouseEvent, TouchEvent } from 'react'\nimport { RowModel } from '..'\nimport {\n Getter,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\n Row,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } 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 getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n}\n\nexport type ExpandedOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanded?: boolean\n expandRowsFn?: (\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n rowModel: RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n expandSubRows?: boolean\n defaultCanExpand?: boolean\n getIsRowExpanded?: (\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => boolean\n getRowCanExpand?: (\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ToggleExpandedProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type ExpandedInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n _notifyExpandedReset: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleRowExpanded: (rowId: string, expanded?: boolean) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: () => void\n getRowCanExpand: (rowId: string) => boolean\n getIsRowExpanded: (rowId: string) => boolean\n getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getToggleAllRowsExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPreExpandedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreExpandedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreExpandedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getExpandedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getExpandedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getExpandedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\n//\n\nexport function getInitialState(): ExpandedTableState {\n return {\n expanded: {},\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ExpandedOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n onExpandedChange: makeStateUpdater('expanded', instance),\n autoResetExpanded: true,\n getIsRowExpanded: row => !!(row?.original as { expanded?: any }).expanded,\n expandSubRows: true,\n paginateExpandedRows: true,\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ExpandedInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n let registered = false\n\n return {\n _notifyExpandedReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetExpanded\n ) {\n instance.resetExpanded()\n }\n },\n setExpanded: updater =>\n instance.options.onExpandedChange?.(\n updater,\n functionalUpdate(updater, instance.getState().expanded)\n ),\n toggleRowExpanded: (rowId, expanded) => {\n if (!rowId) return\n\n instance.setExpanded((old = {}) => {\n const exists = old === true ? true : !!old?.[rowId]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(instance.getRowsById()).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 [rowId]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [rowId]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !instance.getIsAllRowsExpanded()) {\n instance.setExpanded(true)\n } else {\n instance.setExpanded({})\n }\n },\n resetExpanded: () => {\n instance.setExpanded(instance.options?.initialState?.expanded ?? {})\n },\n getIsRowExpanded: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[ReactTable] getIsRowExpanded: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n const expanded = instance.getState().expanded\n\n return !!(\n instance.options.getIsRowExpanded?.(row) ??\n (expanded || expanded?.[rowId])\n )\n },\n getRowCanExpand: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[ReactTable] getRowCanExpand: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n return (\n instance.options.getRowCanExpand?.(row) ??\n instance.options.enableExpanded ??\n instance.options.defaultCanExpand ??\n !!row.subRows?.length\n )\n },\n getToggleExpandedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n return\n }\n\n const canExpand = instance.getRowCanExpand(rowId)\n\n const initialProps: ToggleExpandedProps = {\n title: canExpand ? 'Toggle Expanded' : undefined,\n onClick: canExpand\n ? (e: MouseEvent | TouchEvent) => {\n e.persist()\n instance.toggleRowExpanded(rowId)\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n getToggleAllRowsExpandedProps: userProps => {\n const initialProps: ToggleExpandedProps = {\n title: 'Toggle All Expanded',\n onClick: (e: MouseEvent | TouchEvent) => {\n e.persist()\n instance.toggleAllRowsExpanded()\n },\n }\n\n return propGetter(initialProps, userProps)\n },\n getIsAllRowsExpanded: () => {\n const expanded = instance.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\n\n // If any row is not expanded, return false\n if (\n Object.keys(instance.getRowsById()).some(\n id => !instance.getIsRowExpanded(id)\n )\n ) {\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 instance.getState().expanded === true\n ? Object.keys(instance.getRowsById())\n : Object.keys(instance.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 getExpandedRowModel: memo(\n () => [\n instance.getState().expanded,\n instance.getGroupedRowModel(),\n instance.options.expandRowsFn,\n instance.options.paginateExpandedRows,\n ],\n (expanded, rowModel, expandRowsFn, paginateExpandedRows) => {\n if (\n !expandRowsFn ||\n // Do not expand if rows are not included in pagination\n !paginateExpandedRows ||\n !Object.keys(expanded ?? {}).length\n ) {\n return rowModel\n }\n\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Expanding...')\n\n return expandRowsFn(instance, rowModel)\n },\n {\n key: 'getExpandedRowModel',\n debug: instance.options.debug,\n onChange: () => instance._notifyPageIndexReset(),\n }\n ),\n\n getPreExpandedRows: () => instance.getGroupedRowModel().rows,\n getPreExpandedFlatRows: () => instance.getGroupedRowModel().flatRows,\n getPreExpandedRowsById: () => instance.getGroupedRowModel().rowsById,\n getExpandedRows: () => instance.getExpandedRowModel().rows,\n getExpandedFlatRows: () => instance.getExpandedRowModel().flatRows,\n getExpandedRowsById: () => instance.getExpandedRowModel().rowsById,\n }\n}\n\nexport function createRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ExpandedRow {\n return {\n toggleExpanded: expanded =>\n void instance.toggleRowExpanded(row.id, expanded),\n getIsExpanded: () => instance.getIsRowExpanded(row.id),\n getCanExpand: () => row.subRows && !!row.subRows.length,\n getToggleExpandedProps: userProps => {\n const initialProps: ToggleExpandedProps = {\n title: 'Toggle Row Expanded',\n onClick: (e: MouseEvent | TouchEvent) => {\n e.stopPropagation()\n instance.toggleRowExpanded(row.id)\n },\n }\n return propGetter(initialProps, userProps)\n },\n }\n}\n"],"names":["getInitialState","expanded","getDefaultOptions","instance","onExpandedChange","makeStateUpdater","autoResetExpanded","getIsRowExpanded","row","original","expandSubRows","paginateExpandedRows","getInstance","registered","_notifyExpandedReset","options","autoResetAll","resetExpanded","setExpanded","updater","functionalUpdate","getState","toggleRowExpanded","rowId","old","exists","oldExpanded","Object","keys","getRowsById","forEach","rest","toggleAllRowsExpanded","getIsAllRowsExpanded","initialState","getRow","process","env","NODE_ENV","console","warn","Error","getRowCanExpand","enableExpanded","defaultCanExpand","subRows","length","getToggleExpandedProps","userProps","canExpand","initialProps","title","undefined","onClick","e","persist","propGetter","getToggleAllRowsExpandedProps","some","id","getExpandedDepth","maxDepth","rowIds","splitId","split","Math","max","getExpandedRowModel","memo","getGroupedRowModel","expandRowsFn","rowModel","debug","info","key","onChange","_notifyPageIndexReset","getPreExpandedRows","rows","getPreExpandedFlatRows","flatRows","getPreExpandedRowsById","rowsById","getExpandedRows","getExpandedFlatRows","getExpandedRowsById","createRow","toggleExpanded","getIsExpanded","getCanExpand","stopPropagation"],"mappings":"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"}