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

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 (126) hide show
  1. package/build/cjs/aggregationFns.js +25 -37
  2. package/build/cjs/aggregationFns.js.map +1 -1
  3. package/build/cjs/core.js +167 -46
  4. package/build/cjs/core.js.map +1 -1
  5. package/build/cjs/createTable.js +24 -40
  6. package/build/cjs/createTable.js.map +1 -1
  7. package/build/cjs/features/Cells.js +28 -34
  8. package/build/cjs/features/Cells.js.map +1 -1
  9. package/build/cjs/features/ColumnSizing.js +90 -107
  10. package/build/cjs/features/ColumnSizing.js.map +1 -1
  11. package/build/cjs/features/Columns.js +52 -79
  12. package/build/cjs/features/Columns.js.map +1 -1
  13. package/build/cjs/features/Expanding.js +48 -57
  14. package/build/cjs/features/Expanding.js.map +1 -1
  15. package/build/cjs/features/Filters.js +96 -191
  16. package/build/cjs/features/Filters.js.map +1 -1
  17. package/build/cjs/features/Grouping.js +52 -70
  18. package/build/cjs/features/Grouping.js.map +1 -1
  19. package/build/cjs/features/Headers.js +109 -165
  20. package/build/cjs/features/Headers.js.map +1 -1
  21. package/build/cjs/features/Ordering.js +30 -42
  22. package/build/cjs/features/Ordering.js.map +1 -1
  23. package/build/cjs/features/Pagination.js +63 -71
  24. package/build/cjs/features/Pagination.js.map +1 -1
  25. package/build/cjs/features/Pinning.js +65 -121
  26. package/build/cjs/features/Pinning.js.map +1 -1
  27. package/build/cjs/features/RowSelection.js +92 -111
  28. package/build/cjs/features/RowSelection.js.map +1 -1
  29. package/build/cjs/features/Rows.js +32 -22
  30. package/build/cjs/features/Rows.js.map +1 -1
  31. package/build/cjs/features/Sorting.js +49 -68
  32. package/build/cjs/features/Sorting.js.map +1 -1
  33. package/build/cjs/features/Visibility.js +43 -87
  34. package/build/cjs/features/Visibility.js.map +1 -1
  35. package/build/cjs/filterFns.js +48 -72
  36. package/build/cjs/filterFns.js.map +1 -1
  37. package/build/cjs/index.js +13 -13
  38. package/build/cjs/sortingFns.js +21 -21
  39. package/build/cjs/sortingFns.js.map +1 -1
  40. package/build/cjs/utils/filterRowsUtils.js +49 -55
  41. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  42. package/build/cjs/utils/getCoreRowModel.js +98 -0
  43. package/build/cjs/utils/getCoreRowModel.js.map +1 -0
  44. package/build/cjs/utils/getExpandedRowModel.js +17 -21
  45. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  46. package/build/cjs/utils/getFacetedMinMaxValues.js +48 -0
  47. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -0
  48. package/build/cjs/utils/getFacetedRowModel.js +50 -0
  49. package/build/cjs/utils/getFacetedRowModel.js.map +1 -0
  50. package/build/cjs/utils/getFacetedUniqueValues.js +48 -0
  51. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -0
  52. package/build/cjs/utils/getFilteredRowModel.js +130 -0
  53. package/build/cjs/utils/getFilteredRowModel.js.map +1 -0
  54. package/build/cjs/utils/getGroupedRowModel.js +126 -136
  55. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  56. package/build/cjs/utils/getPaginationRowModel.js +39 -39
  57. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  58. package/build/cjs/utils/getSortedRowModel.js +112 -0
  59. package/build/cjs/utils/getSortedRowModel.js.map +1 -0
  60. package/build/cjs/utils.js +36 -207
  61. package/build/cjs/utils.js.map +1 -1
  62. package/build/esm/index.js +1729 -2313
  63. package/build/esm/index.js.map +1 -1
  64. package/build/stats-html.html +1 -1
  65. package/build/stats-react.json +421 -481
  66. package/build/types/core.d.ts +3 -5
  67. package/build/types/features/Cells.d.ts +1 -1
  68. package/build/types/features/Columns.d.ts +1 -1
  69. package/build/types/features/Filters.d.ts +10 -5
  70. package/build/types/features/Grouping.d.ts +4 -3
  71. package/build/types/features/Rows.d.ts +4 -3
  72. package/build/types/index.d.ts +6 -4
  73. package/build/types/types.d.ts +3 -13
  74. package/build/types/utils/filterRowsUtils.d.ts +3 -3
  75. package/build/types/utils/getCoreRowModel.d.ts +2 -0
  76. package/build/types/utils/getFacetedMinMaxValues.d.ts +2 -0
  77. package/build/types/utils/getFacetedRowModel.d.ts +2 -0
  78. package/build/types/utils/getFacetedUniqueValues.d.ts +2 -0
  79. package/build/types/utils/{getCoreRowModelSync.d.ts → getFilteredRowModel.d.ts} +1 -1
  80. package/build/types/utils/getGroupedRowModel.d.ts +1 -1
  81. package/build/types/utils/getSortedRowModel.d.ts +2 -0
  82. package/build/types/utils.d.ts +1 -17
  83. package/build/umd/index.development.js +1730 -2316
  84. package/build/umd/index.development.js.map +1 -1
  85. package/build/umd/index.production.js +1 -1
  86. package/build/umd/index.production.js.map +1 -1
  87. package/package.json +1 -1
  88. package/src/core.ts +197 -45
  89. package/src/features/Cells.ts +7 -11
  90. package/src/features/ColumnSizing.ts +6 -5
  91. package/src/features/Columns.ts +4 -8
  92. package/src/features/Filters.ts +95 -156
  93. package/src/features/Grouping.ts +16 -20
  94. package/src/features/Rows.ts +21 -6
  95. package/src/features/Sorting.ts +2 -2
  96. package/src/filterFns.ts +9 -9
  97. package/src/index.ts +12 -4
  98. package/src/sortingFns.ts +11 -11
  99. package/src/types.ts +3 -16
  100. package/src/utils/filterRowsUtils.ts +47 -68
  101. package/src/utils/{getCoreRowModelSync.ts → getCoreRowModel.ts} +2 -8
  102. package/src/utils/getFacetedMinMaxValues.ts +37 -0
  103. package/src/utils/getFacetedRowModel.ts +50 -0
  104. package/src/utils/getFacetedUniqueValues.ts +37 -0
  105. package/src/utils/{getFilteredRowModelSync.ts → getFilteredRowModel.ts} +29 -20
  106. package/src/utils/getGroupedRowModel.ts +52 -61
  107. package/src/utils/{getSortedRowModelSync.ts → getSortedRowModel.ts} +3 -3
  108. package/src/utils.ts +28 -236
  109. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
  110. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  111. package/build/cjs/utils/getCoreRowModelAsync.js +0 -125
  112. package/build/cjs/utils/getCoreRowModelAsync.js.map +0 -1
  113. package/build/cjs/utils/getCoreRowModelSync.js +0 -102
  114. package/build/cjs/utils/getCoreRowModelSync.js.map +0 -1
  115. package/build/cjs/utils/getFilteredRowModelSync.js +0 -125
  116. package/build/cjs/utils/getFilteredRowModelSync.js.map +0 -1
  117. package/build/cjs/utils/getSortedRowModelSync.js +0 -118
  118. package/build/cjs/utils/getSortedRowModelSync.js.map +0 -1
  119. package/build/types/utils/getCoreRowModelAsync.d.ts +0 -4
  120. package/build/types/utils/getFilteredRowModelAsync.d.ts +0 -4
  121. package/build/types/utils/getFilteredRowModelSync.d.ts +0 -2
  122. package/build/types/utils/getSortedRowModelAsync.d.ts +0 -13
  123. package/build/types/utils/getSortedRowModelSync.d.ts +0 -2
  124. package/src/utils/getCoreRowModelAsync.ts +0 -104
  125. package/src/utils/getFilteredRowModelAsync.ts +0 -157
  126. package/src/utils/getSortedRowModelAsync.ts +0 -200
@@ -12,58 +12,49 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
16
15
  var utils = require('../utils.js');
17
16
 
18
17
  //
19
- var Columns = {
20
- createInstance: function createInstance(instance) {
18
+ const Columns = {
19
+ createInstance: instance => {
21
20
  return {
22
- getDefaultColumn: utils.memo(function () {
23
- return [instance.options.defaultColumn];
24
- }, function (defaultColumn) {
21
+ getDefaultColumn: utils.memo(() => [instance.options.defaultColumn], defaultColumn => {
25
22
  var _defaultColumn;
26
23
 
27
24
  defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};
28
- return _rollupPluginBabelHelpers["extends"]({
29
- header: function header(props) {
30
- return props.header.column.id;
31
- },
32
- footer: function footer(props) {
33
- return props.header.column.id;
25
+ return {
26
+ header: props => props.header.column.id,
27
+ footer: props => props.header.column.id,
28
+ cell: props => {
29
+ var _props$getValue$toStr, _props$getValue$toStr2, _props$getValue;
30
+
31
+ return (_props$getValue$toStr = (_props$getValue$toStr2 = (_props$getValue = props.getValue()).toString) == null ? void 0 : _props$getValue$toStr2.call(_props$getValue)) != null ? _props$getValue$toStr : null;
34
32
  },
35
- cell: function cell(_ref) {
36
- var _ref$value = _ref.value,
37
- value = _ref$value === void 0 ? '' : _ref$value;
38
- return typeof value === 'boolean' ? value.toString() : value;
39
- }
40
- }, instance._features.reduce(function (obj, feature) {
41
- return Object.assign(obj, feature.getDefaultColumn == null ? void 0 : feature.getDefaultColumn());
42
- }, {}), defaultColumn);
33
+ ...instance._features.reduce((obj, feature) => {
34
+ return Object.assign(obj, feature.getDefaultColumn == null ? void 0 : feature.getDefaultColumn());
35
+ }, {}),
36
+ ...defaultColumn
37
+ };
43
38
  }, {
44
- debug: function debug() {
39
+ debug: () => {
45
40
  var _instance$options$deb;
46
41
 
47
42
  return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugColumns;
48
43
  },
49
44
  key: process.env.NODE_ENV === 'development' && 'getDefaultColumn'
50
45
  }),
51
- getColumnDefs: function getColumnDefs() {
52
- return instance.options.columns;
53
- },
54
- createColumn: function createColumn(columnDef, depth, parent) {
55
- var _ref2, _columnDef$id;
46
+ getColumnDefs: () => instance.options.columns,
47
+ createColumn: (columnDef, depth, parent) => {
48
+ var _ref, _columnDef$id;
56
49
 
57
- var defaultColumn = instance.getDefaultColumn();
58
- var id = (_ref2 = (_columnDef$id = columnDef.id) != null ? _columnDef$id : columnDef.accessorKey) != null ? _ref2 : typeof columnDef.header === 'string' ? columnDef.header : undefined;
59
- var accessorFn;
50
+ const defaultColumn = instance.getDefaultColumn();
51
+ let id = (_ref = (_columnDef$id = columnDef.id) != null ? _columnDef$id : columnDef.accessorKey) != null ? _ref : typeof columnDef.header === 'string' ? columnDef.header : undefined;
52
+ let accessorFn;
60
53
 
61
54
  if (columnDef.accessorFn) {
62
55
  accessorFn = columnDef.accessorFn;
63
56
  } else if (columnDef.accessorKey) {
64
- accessorFn = function accessorFn(originalRow) {
65
- return originalRow[columnDef.accessorKey];
66
- };
57
+ accessorFn = originalRow => originalRow[columnDef.accessorKey];
67
58
  }
68
59
 
69
60
  if (!id) {
@@ -74,69 +65,59 @@ var Columns = {
74
65
  throw new Error();
75
66
  }
76
67
 
77
- var column = _rollupPluginBabelHelpers["extends"]({}, defaultColumn, columnDef, {
68
+ let column = { ...defaultColumn,
69
+ ...columnDef,
78
70
  id: "" + id,
79
- accessorFn: accessorFn,
71
+ accessorFn,
80
72
  parent: parent,
81
- depth: depth,
82
- columnDef: columnDef,
73
+ depth,
74
+ columnDef,
83
75
  columnDefType: columnDef.columnDefType,
84
76
  columns: [],
85
- getFlatColumns: utils.memo(function () {
86
- return [true];
87
- }, function () {
77
+ getFlatColumns: utils.memo(() => [true], () => {
88
78
  var _column$columns;
89
79
 
90
- return [column].concat((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(function (d) {
91
- return d.getFlatColumns();
92
- }));
80
+ return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];
93
81
  }, {
94
82
  key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',
95
- debug: function debug() {
83
+ debug: () => {
96
84
  var _instance$options$deb2;
97
85
 
98
86
  return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugColumns;
99
87
  }
100
88
  }),
101
- getLeafColumns: utils.memo(function () {
102
- return [instance._getOrderColumnsFn()];
103
- }, function (orderColumns) {
89
+ getLeafColumns: utils.memo(() => [instance._getOrderColumnsFn()], orderColumns => {
104
90
  var _column$columns2;
105
91
 
106
92
  if ((_column$columns2 = column.columns) != null && _column$columns2.length) {
107
- var leafColumns = column.columns.flatMap(function (column) {
108
- return column.getLeafColumns();
109
- });
93
+ let leafColumns = column.columns.flatMap(column => column.getLeafColumns());
110
94
  return orderColumns(leafColumns);
111
95
  }
112
96
 
113
97
  return [column];
114
98
  }, {
115
99
  key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',
116
- debug: function debug() {
100
+ debug: () => {
117
101
  var _instance$options$deb3;
118
102
 
119
103
  return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugColumns;
120
104
  }
121
105
  })
122
- });
123
-
124
- column = instance._features.reduce(function (obj, feature) {
106
+ };
107
+ column = instance._features.reduce((obj, feature) => {
125
108
  return Object.assign(obj, feature.createColumn == null ? void 0 : feature.createColumn(column, instance));
126
109
  }, column); // Yes, we have to convert instance to uknown, because we know more than the compiler here.
127
110
 
128
111
  return column;
129
112
  },
130
- getAllColumns: utils.memo(function () {
131
- return [instance.getColumnDefs()];
132
- }, function (columnDefs) {
133
- var recurseColumns = function recurseColumns(columnDefs, parent, depth) {
113
+ getAllColumns: utils.memo(() => [instance.getColumnDefs()], columnDefs => {
114
+ const recurseColumns = function (columnDefs, parent, depth) {
134
115
  if (depth === void 0) {
135
116
  depth = 0;
136
117
  }
137
118
 
138
- return columnDefs.map(function (columnDef) {
139
- var column = instance.createColumn(columnDef, depth, parent);
119
+ return columnDefs.map(columnDef => {
120
+ const column = instance.createColumn(columnDef, depth, parent);
140
121
  column.columns = columnDef.columns ? recurseColumns(columnDef.columns, column, depth + 1) : [];
141
122
  return column;
142
123
  });
@@ -145,58 +126,50 @@ var Columns = {
145
126
  return recurseColumns(columnDefs);
146
127
  }, {
147
128
  key: process.env.NODE_ENV === 'development' && 'getAllColumns',
148
- debug: function debug() {
129
+ debug: () => {
149
130
  var _instance$options$deb4;
150
131
 
151
132
  return (_instance$options$deb4 = instance.options.debugAll) != null ? _instance$options$deb4 : instance.options.debugColumns;
152
133
  }
153
134
  }),
154
- getAllFlatColumns: utils.memo(function () {
155
- return [instance.getAllColumns()];
156
- }, function (allColumns) {
157
- return allColumns.flatMap(function (column) {
135
+ getAllFlatColumns: utils.memo(() => [instance.getAllColumns()], allColumns => {
136
+ return allColumns.flatMap(column => {
158
137
  return column.getFlatColumns();
159
138
  });
160
139
  }, {
161
140
  key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',
162
- debug: function debug() {
141
+ debug: () => {
163
142
  var _instance$options$deb5;
164
143
 
165
144
  return (_instance$options$deb5 = instance.options.debugAll) != null ? _instance$options$deb5 : instance.options.debugColumns;
166
145
  }
167
146
  }),
168
- getAllFlatColumnsById: utils.memo(function () {
169
- return [instance.getAllFlatColumns()];
170
- }, function (flatColumns) {
171
- return flatColumns.reduce(function (acc, column) {
147
+ getAllFlatColumnsById: utils.memo(() => [instance.getAllFlatColumns()], flatColumns => {
148
+ return flatColumns.reduce((acc, column) => {
172
149
  acc[column.id] = column;
173
150
  return acc;
174
151
  }, {});
175
152
  }, {
176
153
  key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',
177
- debug: function debug() {
154
+ debug: () => {
178
155
  var _instance$options$deb6;
179
156
 
180
157
  return (_instance$options$deb6 = instance.options.debugAll) != null ? _instance$options$deb6 : instance.options.debugColumns;
181
158
  }
182
159
  }),
183
- getAllLeafColumns: utils.memo(function () {
184
- return [instance.getAllColumns(), instance._getOrderColumnsFn()];
185
- }, function (allColumns, orderColumns) {
186
- var leafColumns = allColumns.flatMap(function (column) {
187
- return column.getLeafColumns();
188
- });
160
+ getAllLeafColumns: utils.memo(() => [instance.getAllColumns(), instance._getOrderColumnsFn()], (allColumns, orderColumns) => {
161
+ let leafColumns = allColumns.flatMap(column => column.getLeafColumns());
189
162
  return orderColumns(leafColumns);
190
163
  }, {
191
164
  key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',
192
- debug: function debug() {
165
+ debug: () => {
193
166
  var _instance$options$deb7;
194
167
 
195
168
  return (_instance$options$deb7 = instance.options.debugAll) != null ? _instance$options$deb7 : instance.options.debugColumns;
196
169
  }
197
170
  }),
198
- getColumn: function getColumn(columnId) {
199
- var column = instance.getAllFlatColumnsById()[columnId];
171
+ getColumn: columnId => {
172
+ const column = instance.getAllFlatColumnsById()[columnId];
200
173
 
201
174
  if (!column) {
202
175
  if (process.env.NODE_ENV !== 'production') {
@@ -1 +1 @@
1
- {"version":3,"file":"Columns.js","sources":["../../../src/features/Columns.ts"],"sourcesContent":["import {\n Cell,\n Column,\n Header,\n TableGenerics,\n TableInstance,\n Row,\n AccessorFn,\n ColumnDef,\n Renderable,\n HeaderRenderProps,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type CoreColumnDefType = 'data' | 'display' | 'group'\n\nexport type CoreColumnDef<TGenerics extends TableGenerics> = {\n id: string\n accessorKey?: string & keyof TGenerics['Row']\n accessorFn?: AccessorFn<TGenerics['Row']>\n columns?: ColumnDef<TGenerics>[]\n header?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n footer?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n cell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n value: TGenerics['Value']\n }\n >\n meta?: TGenerics['ColumnMeta']\n}\n\nexport type CoreColumn<TGenerics extends TableGenerics> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TGenerics['Row']>\n columnDef: ColumnDef<TGenerics>\n columnDefType: CoreColumnDefType\n columns: Column<TGenerics>[]\n parent?: Column<TGenerics>\n getFlatColumns: () => Column<TGenerics>[]\n getLeafColumns: () => Column<TGenerics>[]\n}\n\nexport type ColumnsOptions<TGenerics extends TableGenerics> = {\n columns: ColumnDef<TGenerics>[]\n defaultColumn?: Partial<ColumnDef<TGenerics>>\n}\n\nexport type ColumnsInstance<TGenerics extends TableGenerics> = {\n getDefaultColumn: () => Partial<ColumnDef<TGenerics>>\n getColumnDefs: () => ColumnDef<TGenerics>[]\n createColumn: (\n columnDef: ColumnDef<TGenerics>,\n depth: number,\n parent?: Column<TGenerics>\n ) => Column<TGenerics>\n getAllColumns: () => Column<TGenerics>[]\n getAllFlatColumns: () => Column<TGenerics>[]\n getAllFlatColumnsById: () => Record<string, Column<TGenerics>>\n getAllLeafColumns: () => Column<TGenerics>[]\n getColumn: (columnId: string) => Column<TGenerics>\n}\n\n//\n\nexport const Columns = {\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnsInstance<TGenerics> => {\n return {\n getDefaultColumn: memo(\n () => [instance.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<ColumnDef<TGenerics>>\n\n return {\n header: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n footer: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n cell: ({ value = '' }: { value: any }): JSX.Element =>\n typeof value === 'boolean' ? value.toString() : value,\n ...instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumn?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TGenerics>>\n },\n {\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumn',\n }\n ),\n\n getColumnDefs: () => instance.options.columns,\n\n createColumn: (\n columnDef: ColumnDef<TGenerics> & { columnDefType?: CoreColumnDefType },\n depth: number,\n parent\n ) => {\n const defaultColumn = instance.getDefaultColumn()\n\n let id =\n columnDef.id ??\n columnDef.accessorKey ??\n (typeof columnDef.header === 'string' ? columnDef.header : undefined)\n\n let accessorFn: AccessorFn<TGenerics['Row']> | undefined\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn\n } else if (columnDef.accessorKey) {\n accessorFn = (originalRow?: TGenerics['Row']) =>\n (originalRow as any)[columnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n columnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TGenerics> = {\n ...defaultColumn,\n ...columnDef,\n id: `${id}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef,\n columnDefType: columnDef.columnDefType as CoreColumnDefType,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TGenerics>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'column.getFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [instance._getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TGenerics>]\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'column.getLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n\n column = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, instance))\n }, column)\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return column as Column<TGenerics>\n },\n\n getAllColumns: memo(\n () => [instance.getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TGenerics>[],\n parent?: Column<TGenerics>,\n depth = 0\n ): Column<TGenerics>[] => {\n return columnDefs.map(columnDef => {\n const column = instance.createColumn(columnDef, depth, parent)\n\n column.columns = columnDef.columns\n ? recurseColumns(columnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [instance.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumnsById: memo(\n () => [instance.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TGenerics>>)\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [instance.getAllColumns(), instance._getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column =>\n column.getLeafColumns()\n )\n return orderColumns(leafColumns)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = instance.getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Table] Column with id ${columnId} does not exist.`)\n }\n throw new Error()\n }\n\n return column\n },\n }\n },\n}\n"],"names":["Columns","createInstance","instance","getDefaultColumn","memo","options","defaultColumn","_extends","header","props","column","id","footer","cell","value","toString","_features","reduce","obj","feature","Object","assign","debug","debugAll","debugColumns","key","process","env","NODE_ENV","getColumnDefs","columns","createColumn","columnDef","depth","parent","accessorKey","undefined","accessorFn","originalRow","Error","columnDefType","getFlatColumns","flatMap","d","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","getAllColumns","columnDefs","recurseColumns","map","getAllFlatColumns","allColumns","getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","getColumn","columnId","console","warn"],"mappings":"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"}
1
+ {"version":3,"file":"Columns.js","sources":["../../../src/features/Columns.ts"],"sourcesContent":["import {\n Cell,\n Column,\n Header,\n TableGenerics,\n TableInstance,\n Row,\n AccessorFn,\n ColumnDef,\n Renderable,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type CoreColumnDefType = 'data' | 'display' | 'group'\n\nexport type CoreColumnDef<TGenerics extends TableGenerics> = {\n id: string\n accessorKey?: string & keyof TGenerics['Row']\n accessorFn?: AccessorFn<TGenerics['Row']>\n columns?: ColumnDef<TGenerics>[]\n header?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n footer?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n cell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n getValue: () => TGenerics['Value']\n }\n >\n meta?: TGenerics['ColumnMeta']\n}\n\nexport type CoreColumn<TGenerics extends TableGenerics> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TGenerics['Row']>\n columnDef: ColumnDef<TGenerics>\n columnDefType: CoreColumnDefType\n columns: Column<TGenerics>[]\n parent?: Column<TGenerics>\n getFlatColumns: () => Column<TGenerics>[]\n getLeafColumns: () => Column<TGenerics>[]\n}\n\nexport type ColumnsOptions<TGenerics extends TableGenerics> = {\n columns: ColumnDef<TGenerics>[]\n defaultColumn?: Partial<ColumnDef<TGenerics>>\n}\n\nexport type ColumnsInstance<TGenerics extends TableGenerics> = {\n getDefaultColumn: () => Partial<ColumnDef<TGenerics>>\n getColumnDefs: () => ColumnDef<TGenerics>[]\n createColumn: (\n columnDef: ColumnDef<TGenerics>,\n depth: number,\n parent?: Column<TGenerics>\n ) => Column<TGenerics>\n getAllColumns: () => Column<TGenerics>[]\n getAllFlatColumns: () => Column<TGenerics>[]\n getAllFlatColumnsById: () => Record<string, Column<TGenerics>>\n getAllLeafColumns: () => Column<TGenerics>[]\n getColumn: (columnId: string) => Column<TGenerics>\n}\n\n//\n\nexport const Columns = {\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnsInstance<TGenerics> => {\n return {\n getDefaultColumn: memo(\n () => [instance.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<ColumnDef<TGenerics>>\n\n return {\n header: props => props.header.column.id,\n footer: props => props.header.column.id,\n cell: props => props.getValue().toString?.() ?? null,\n ...instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumn?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TGenerics>>\n },\n {\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumn',\n }\n ),\n\n getColumnDefs: () => instance.options.columns,\n\n createColumn: (\n columnDef: ColumnDef<TGenerics> & { columnDefType?: CoreColumnDefType },\n depth: number,\n parent\n ) => {\n const defaultColumn = instance.getDefaultColumn()\n\n let id =\n columnDef.id ??\n columnDef.accessorKey ??\n (typeof columnDef.header === 'string' ? columnDef.header : undefined)\n\n let accessorFn: AccessorFn<TGenerics['Row']> | undefined\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn\n } else if (columnDef.accessorKey) {\n accessorFn = (originalRow?: TGenerics['Row']) =>\n (originalRow as any)[columnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n columnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TGenerics> = {\n ...defaultColumn,\n ...columnDef,\n id: `${id}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef,\n columnDefType: columnDef.columnDefType as CoreColumnDefType,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TGenerics>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'column.getFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [instance._getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TGenerics>]\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'column.getLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n\n column = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, instance))\n }, column)\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return column as Column<TGenerics>\n },\n\n getAllColumns: memo(\n () => [instance.getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TGenerics>[],\n parent?: Column<TGenerics>,\n depth = 0\n ): Column<TGenerics>[] => {\n return columnDefs.map(columnDef => {\n const column = instance.createColumn(columnDef, depth, parent)\n\n column.columns = columnDef.columns\n ? recurseColumns(columnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [instance.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumnsById: memo(\n () => [instance.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TGenerics>>)\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [instance.getAllColumns(), instance._getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column =>\n column.getLeafColumns()\n )\n return orderColumns(leafColumns)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = instance.getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Table] Column with id ${columnId} does not exist.`)\n }\n throw new Error()\n }\n\n return column\n },\n }\n },\n}\n"],"names":["Columns","createInstance","instance","getDefaultColumn","memo","options","defaultColumn","header","props","column","id","footer","cell","getValue","toString","_features","reduce","obj","feature","Object","assign","debug","debugAll","debugColumns","key","process","env","NODE_ENV","getColumnDefs","columns","createColumn","columnDef","depth","parent","accessorKey","undefined","accessorFn","originalRow","Error","columnDefType","getFlatColumns","flatMap","d","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","getAllColumns","columnDefs","recurseColumns","map","getAllFlatColumns","allColumns","getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","getColumn","columnId","console","warn"],"mappings":"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"}
@@ -12,17 +12,17 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
16
15
  var utils = require('../utils.js');
17
16
 
18
17
  //
19
- var Expanding = {
20
- getInitialState: function getInitialState(state) {
21
- return _rollupPluginBabelHelpers["extends"]({
22
- expanded: {}
23
- }, state);
18
+ const Expanding = {
19
+ getInitialState: state => {
20
+ return {
21
+ expanded: {},
22
+ ...state
23
+ };
24
24
  },
25
- getDefaultOptions: function getDefaultOptions(instance) {
25
+ getDefaultOptions: instance => {
26
26
  return {
27
27
  onExpandedChange: utils.makeStateUpdater('expanded', instance),
28
28
  autoResetExpanded: true,
@@ -30,10 +30,10 @@ var Expanding = {
30
30
  paginateExpandedRows: true
31
31
  };
32
32
  },
33
- createInstance: function createInstance(instance) {
34
- var registered = false;
33
+ createInstance: instance => {
34
+ let registered = false;
35
35
  return {
36
- _autoResetExpanded: function _autoResetExpanded() {
36
+ _autoResetExpanded: () => {
37
37
  if (!registered) {
38
38
  registered = true;
39
39
  return;
@@ -47,66 +47,58 @@ var Expanding = {
47
47
  instance.resetExpanded();
48
48
  }
49
49
  },
50
- setExpanded: function setExpanded(updater) {
51
- return instance.options.onExpandedChange == null ? void 0 : instance.options.onExpandedChange(updater);
52
- },
53
- toggleAllRowsExpanded: function toggleAllRowsExpanded(expanded) {
50
+ setExpanded: updater => instance.options.onExpandedChange == null ? void 0 : instance.options.onExpandedChange(updater),
51
+ toggleAllRowsExpanded: expanded => {
54
52
  if (expanded != null ? expanded : !instance.getIsAllRowsExpanded()) {
55
53
  instance.setExpanded(true);
56
54
  } else {
57
55
  instance.setExpanded({});
58
56
  }
59
57
  },
60
- resetExpanded: function resetExpanded() {
58
+ resetExpanded: () => {
61
59
  var _instance$initialStat, _instance$initialStat2;
62
60
 
63
61
  instance.setExpanded((_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.expanded) != null ? _instance$initialStat : {});
64
62
  },
65
- getCanSomeRowsExpand: function getCanSomeRowsExpand() {
66
- return instance.getRowModel().flatRows.some(function (row) {
67
- return row.getCanExpand();
68
- });
63
+ getCanSomeRowsExpand: () => {
64
+ return instance.getRowModel().flatRows.some(row => row.getCanExpand());
69
65
  },
70
- getToggleAllRowsExpandedHandler: function getToggleAllRowsExpandedHandler() {
71
- return function (e) {
66
+ getToggleAllRowsExpandedHandler: () => {
67
+ return e => {
72
68
  e.persist == null ? void 0 : e.persist();
73
69
  instance.toggleAllRowsExpanded();
74
70
  };
75
71
  },
76
- getIsSomeRowsExpanded: function getIsSomeRowsExpanded() {
77
- var expanded = instance.getState().expanded;
72
+ getIsSomeRowsExpanded: () => {
73
+ const expanded = instance.getState().expanded;
78
74
  return expanded === true || Object.values(expanded).some(Boolean);
79
75
  },
80
- getIsAllRowsExpanded: function getIsAllRowsExpanded() {
81
- var expanded = instance.getState().expanded; // If expanded is true, save some cycles and return true
76
+ getIsAllRowsExpanded: () => {
77
+ const expanded = instance.getState().expanded; // If expanded is true, save some cycles and return true
82
78
 
83
79
  if (expanded === true) {
84
80
  return true;
85
81
  } // If any row is not expanded, return false
86
82
 
87
83
 
88
- if (instance.getRowModel().flatRows.some(function (row) {
89
- return row.getIsExpanded();
90
- })) {
84
+ if (instance.getRowModel().flatRows.some(row => row.getIsExpanded())) {
91
85
  return false;
92
86
  } // They must all be expanded :shrug:
93
87
 
94
88
 
95
89
  return true;
96
90
  },
97
- getExpandedDepth: function getExpandedDepth() {
98
- var maxDepth = 0;
99
- var rowIds = instance.getState().expanded === true ? Object.keys(instance.getRowModel().rowsById) : Object.keys(instance.getState().expanded);
100
- rowIds.forEach(function (id) {
101
- var splitId = id.split('.');
91
+ getExpandedDepth: () => {
92
+ let maxDepth = 0;
93
+ const rowIds = instance.getState().expanded === true ? Object.keys(instance.getRowModel().rowsById) : Object.keys(instance.getState().expanded);
94
+ rowIds.forEach(id => {
95
+ const splitId = id.split('.');
102
96
  maxDepth = Math.max(maxDepth, splitId.length);
103
97
  });
104
98
  return maxDepth;
105
99
  },
106
- getPreExpandedRowModel: function getPreExpandedRowModel() {
107
- return instance.getGroupedRowModel();
108
- },
109
- getExpandedRowModel: function getExpandedRowModel() {
100
+ getPreExpandedRowModel: () => instance.getGroupedRowModel(),
101
+ getExpandedRowModel: () => {
110
102
  if (!instance._getExpandedRowModel && instance.options.getExpandedRowModel) {
111
103
  instance._getExpandedRowModel = instance.options.getExpandedRowModel(instance);
112
104
  }
@@ -119,17 +111,17 @@ var Expanding = {
119
111
  }
120
112
  };
121
113
  },
122
- createRow: function createRow(row, instance) {
114
+ createRow: (row, instance) => {
123
115
  return {
124
- toggleExpanded: function toggleExpanded(expanded) {
125
- instance.setExpanded(function (old) {
116
+ toggleExpanded: expanded => {
117
+ instance.setExpanded(old => {
126
118
  var _expanded;
127
119
 
128
- var exists = old === true ? true : !!(old != null && old[row.id]);
129
- var oldExpanded = {};
120
+ const exists = old === true ? true : !!(old != null && old[row.id]);
121
+ let oldExpanded = {};
130
122
 
131
123
  if (old === true) {
132
- Object.keys(instance.getRowModel().rowsById).forEach(function (rowId) {
124
+ Object.keys(instance.getRowModel().rowsById).forEach(rowId => {
133
125
  oldExpanded[rowId] = true;
134
126
  });
135
127
  } else {
@@ -139,37 +131,36 @@ var Expanding = {
139
131
  expanded = (_expanded = expanded) != null ? _expanded : !exists;
140
132
 
141
133
  if (!exists && expanded) {
142
- var _extends2;
143
-
144
- return _rollupPluginBabelHelpers["extends"]({}, oldExpanded, (_extends2 = {}, _extends2[row.id] = true, _extends2));
134
+ return { ...oldExpanded,
135
+ [row.id]: true
136
+ };
145
137
  }
146
138
 
147
139
  if (exists && !expanded) {
148
- var _oldExpanded = oldExpanded,
149
- _row$id = row.id;
150
- _oldExpanded[_row$id];
151
- var rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(_oldExpanded, [_row$id].map(_rollupPluginBabelHelpers.toPropertyKey));
152
-
140
+ const {
141
+ [row.id]: _,
142
+ ...rest
143
+ } = oldExpanded;
153
144
  return rest;
154
145
  }
155
146
 
156
147
  return old;
157
148
  });
158
149
  },
159
- getIsExpanded: function getIsExpanded() {
150
+ getIsExpanded: () => {
160
151
  var _instance$options$get;
161
152
 
162
- var expanded = instance.getState().expanded;
153
+ const expanded = instance.getState().expanded;
163
154
  return !!((_instance$options$get = instance.options.getIsRowExpanded == null ? void 0 : instance.options.getIsRowExpanded(row)) != null ? _instance$options$get : expanded === true || (expanded == null ? void 0 : expanded[row.id]));
164
155
  },
165
- getCanExpand: function getCanExpand() {
156
+ getCanExpand: () => {
166
157
  var _instance$options$get2, _instance$options$ena, _row$subRows;
167
158
 
168
159
  return ((_instance$options$get2 = instance.options.getRowCanExpand == null ? void 0 : instance.options.getRowCanExpand(row)) != null ? _instance$options$get2 : true) && ((_instance$options$ena = instance.options.enableExpanding) != null ? _instance$options$ena : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);
169
160
  },
170
- getToggleExpandedHandler: function getToggleExpandedHandler() {
171
- var canExpand = row.getCanExpand();
172
- return function () {
161
+ getToggleExpandedHandler: () => {
162
+ const canExpand = row.getCanExpand();
163
+ return () => {
173
164
  if (!canExpand) return;
174
165
  row.toggleExpanded();
175
166
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport {\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n Updater,\n TableFeature,\n} from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { Rows } from './Rows'\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<TGenerics extends TableGenerics> = {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n expandSubRows?: boolean\n getIsRowExpanded?: (row: Row<TGenerics>) => boolean\n getRowCanExpand?: (row: Row<TGenerics>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ExpandedInstance<TGenerics extends TableGenerics> = {\n _autoResetExpanded: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: () => void\n getCanSomeRowsExpand: () => boolean\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TGenerics>\n _getExpandedRowModel?: () => RowModel<TGenerics>\n getPreExpandedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedOptions<TGenerics> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', instance),\n autoResetExpanded: true,\n expandSubRows: true,\n paginateExpandedRows: true,\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedInstance<TGenerics> => {\n let registered = false\n\n return {\n _autoResetExpanded: () => {\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 => instance.options.onExpandedChange?.(updater),\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.initialState?.expanded ?? {})\n },\n getCanSomeRowsExpand: () => {\n return instance.getRowModel().flatRows.some(row => row.getCanExpand())\n },\n getToggleAllRowsExpandedHandler: () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n instance.toggleAllRowsExpanded()\n }\n },\n getIsSomeRowsExpanded: () => {\n const expanded = instance.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\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 (instance.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 instance.getState().expanded === true\n ? Object.keys(instance.getRowModel().rowsById)\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 getPreExpandedRowModel: () => instance.getGroupedRowModel(),\n getExpandedRowModel: () => {\n if (\n !instance._getExpandedRowModel &&\n instance.options.getExpandedRowModel\n ) {\n instance._getExpandedRowModel =\n instance.options.getExpandedRowModel(instance)\n }\n\n if (\n instance.options.manualExpanding ||\n !instance._getExpandedRowModel\n ) {\n return instance.getPreExpandedRowModel()\n }\n\n return instance._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded => {\n instance.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(instance.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 = instance.getState().expanded\n\n return !!(\n instance.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n },\n getCanExpand: () => {\n return (\n (instance.options.getRowCanExpand?.(row) ?? true) &&\n (instance.options.enableExpanding ?? true) &&\n !!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","_extends","expanded","getDefaultOptions","instance","onExpandedChange","makeStateUpdater","autoResetExpanded","expandSubRows","paginateExpandedRows","createInstance","registered","_autoResetExpanded","options","autoResetAll","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","initialState","getCanSomeRowsExpand","getRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","getIsExpanded","getExpandedDepth","maxDepth","rowIds","keys","rowsById","forEach","id","splitId","split","Math","max","length","getPreExpandedRowModel","getGroupedRowModel","getExpandedRowModel","_getExpandedRowModel","manualExpanding","createRow","toggleExpanded","old","exists","oldExpanded","rowId","rest","_objectWithoutPropertiesLoose","_toPropertyKey","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 {\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n Updater,\n TableFeature,\n} from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { Rows } from './Rows'\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<TGenerics extends TableGenerics> = {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n expandSubRows?: boolean\n getIsRowExpanded?: (row: Row<TGenerics>) => boolean\n getRowCanExpand?: (row: Row<TGenerics>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ExpandedInstance<TGenerics extends TableGenerics> = {\n _autoResetExpanded: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: () => void\n getCanSomeRowsExpand: () => boolean\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TGenerics>\n _getExpandedRowModel?: () => RowModel<TGenerics>\n getPreExpandedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedOptions<TGenerics> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', instance),\n autoResetExpanded: true,\n expandSubRows: true,\n paginateExpandedRows: true,\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedInstance<TGenerics> => {\n let registered = false\n\n return {\n _autoResetExpanded: () => {\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 => instance.options.onExpandedChange?.(updater),\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.initialState?.expanded ?? {})\n },\n getCanSomeRowsExpand: () => {\n return instance.getRowModel().flatRows.some(row => row.getCanExpand())\n },\n getToggleAllRowsExpandedHandler: () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n instance.toggleAllRowsExpanded()\n }\n },\n getIsSomeRowsExpanded: () => {\n const expanded = instance.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\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 (instance.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 instance.getState().expanded === true\n ? Object.keys(instance.getRowModel().rowsById)\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 getPreExpandedRowModel: () => instance.getGroupedRowModel(),\n getExpandedRowModel: () => {\n if (\n !instance._getExpandedRowModel &&\n instance.options.getExpandedRowModel\n ) {\n instance._getExpandedRowModel =\n instance.options.getExpandedRowModel(instance)\n }\n\n if (\n instance.options.manualExpanding ||\n !instance._getExpandedRowModel\n ) {\n return instance.getPreExpandedRowModel()\n }\n\n return instance._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded => {\n instance.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(instance.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 = instance.getState().expanded\n\n return !!(\n instance.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n },\n getCanExpand: () => {\n return (\n (instance.options.getRowCanExpand?.(row) ?? true) &&\n (instance.options.enableExpanding ?? true) &&\n !!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","instance","onExpandedChange","makeStateUpdater","autoResetExpanded","expandSubRows","paginateExpandedRows","createInstance","registered","_autoResetExpanded","options","autoResetAll","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","initialState","getCanSomeRowsExpand","getRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","getIsExpanded","getExpandedDepth","maxDepth","rowIds","keys","rowsById","forEach","id","splitId","split","Math","max","length","getPreExpandedRowModel","getGroupedRowModel","getExpandedRowModel","_getExpandedRowModel","manualExpanding","createRow","toggleExpanded","old","exists","oldExpanded","rowId","_","rest","getIsRowExpanded","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":"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"}