@tanstack/table-core 8.0.0-alpha.9 → 8.0.0-beta.0

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 (186) hide show
  1. package/build/cjs/aggregationFns.js +120 -0
  2. package/build/cjs/aggregationFns.js.map +1 -0
  3. package/build/cjs/core/cell.js +40 -0
  4. package/build/cjs/core/cell.js.map +1 -0
  5. package/build/cjs/core/column.js +88 -0
  6. package/build/cjs/core/column.js.map +1 -0
  7. package/build/cjs/core/headers.js +403 -0
  8. package/build/cjs/core/headers.js.map +1 -0
  9. package/build/cjs/core/instance.js +255 -0
  10. package/build/cjs/core/instance.js.map +1 -0
  11. package/build/cjs/core/row.js +77 -0
  12. package/build/cjs/core/row.js.map +1 -0
  13. package/build/cjs/createTable.js +36 -29
  14. package/build/cjs/createTable.js.map +1 -1
  15. package/build/cjs/features/ColumnSizing.js +157 -189
  16. package/build/cjs/features/ColumnSizing.js.map +1 -1
  17. package/build/cjs/features/Expanding.js +103 -155
  18. package/build/cjs/features/Expanding.js.map +1 -1
  19. package/build/cjs/features/Filters.js +155 -304
  20. package/build/cjs/features/Filters.js.map +1 -1
  21. package/build/cjs/features/Grouping.js +97 -157
  22. package/build/cjs/features/Grouping.js.map +1 -1
  23. package/build/cjs/features/Ordering.js +30 -41
  24. package/build/cjs/features/Ordering.js.map +1 -1
  25. package/build/cjs/features/Pagination.js +102 -105
  26. package/build/cjs/features/Pagination.js.map +1 -1
  27. package/build/cjs/features/Pinning.js +131 -89
  28. package/build/cjs/features/Pinning.js.map +1 -1
  29. package/build/cjs/features/RowSelection.js +138 -267
  30. package/build/cjs/features/RowSelection.js.map +1 -1
  31. package/build/cjs/features/Sorting.js +82 -167
  32. package/build/cjs/features/Sorting.js.map +1 -1
  33. package/build/cjs/features/Visibility.js +69 -115
  34. package/build/cjs/features/Visibility.js.map +1 -1
  35. package/build/cjs/filterFns.js +107 -0
  36. package/build/cjs/filterFns.js.map +1 -0
  37. package/build/cjs/index.js +36 -23
  38. package/build/cjs/index.js.map +1 -1
  39. package/build/cjs/sortingFns.js +124 -0
  40. package/build/cjs/sortingFns.js.map +1 -0
  41. package/build/cjs/utils/filterRowsUtils.js +117 -0
  42. package/build/cjs/utils/filterRowsUtils.js.map +1 -0
  43. package/build/cjs/utils/getCoreRowModel.js +79 -0
  44. package/build/cjs/utils/getCoreRowModel.js.map +1 -0
  45. package/build/cjs/utils/getExpandedRowModel.js +57 -0
  46. package/build/cjs/utils/getExpandedRowModel.js.map +1 -0
  47. package/build/cjs/utils/getFacetedMinMaxValues.js +54 -0
  48. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -0
  49. package/build/cjs/utils/getFacetedRowModel.js +50 -0
  50. package/build/cjs/utils/getFacetedRowModel.js.map +1 -0
  51. package/build/cjs/utils/getFacetedUniqueValues.js +48 -0
  52. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -0
  53. package/build/cjs/utils/getFilteredRowModel.js +139 -0
  54. package/build/cjs/utils/getFilteredRowModel.js.map +1 -0
  55. package/build/cjs/utils/getGroupedRowModel.js +161 -0
  56. package/build/cjs/utils/getGroupedRowModel.js.map +1 -0
  57. package/build/cjs/utils/getPaginationRowModel.js +61 -0
  58. package/build/cjs/utils/getPaginationRowModel.js.map +1 -0
  59. package/build/cjs/utils/getSortedRowModel.js +110 -0
  60. package/build/cjs/utils/getSortedRowModel.js.map +1 -0
  61. package/build/cjs/utils.js +38 -107
  62. package/build/cjs/utils.js.map +1 -1
  63. package/build/esm/index.js +2976 -3853
  64. package/build/esm/index.js.map +1 -1
  65. package/build/stats-html.html +1 -1
  66. package/build/stats-react.json +586 -408
  67. package/build/types/aggregationFns.d.ts +13 -0
  68. package/build/types/core/cell.d.ts +9 -0
  69. package/build/types/core/column.d.ts +40 -0
  70. package/build/types/core/headers.d.ts +46 -0
  71. package/build/types/core/instance.d.ts +57 -0
  72. package/build/types/core/row.d.ts +15 -0
  73. package/build/types/createTable.d.ts +47 -26
  74. package/build/types/features/ColumnSizing.d.ts +32 -44
  75. package/build/types/features/Expanding.d.ts +15 -26
  76. package/build/types/features/Filters.d.ts +64 -63
  77. package/build/types/features/Grouping.d.ts +32 -46
  78. package/build/types/features/Ordering.d.ts +7 -10
  79. package/build/types/features/Pagination.d.ts +16 -15
  80. package/build/types/features/Pinning.d.ts +16 -17
  81. package/build/types/features/RowSelection.d.ts +13 -33
  82. package/build/types/features/Sorting.d.ts +25 -44
  83. package/build/types/features/Visibility.d.ts +16 -25
  84. package/build/types/filterFns.d.ts +13 -0
  85. package/build/types/index.d.ts +16 -10
  86. package/build/types/sortingFns.d.ts +11 -0
  87. package/build/types/types.d.ts +37 -122
  88. package/build/types/utils/filterRowsUtils.d.ts +4 -0
  89. package/build/types/utils/getCoreRowModel.d.ts +2 -0
  90. package/build/types/utils/getExpandedRowModel.d.ts +7 -0
  91. package/build/types/utils/getFacetedMinMaxValues.d.ts +2 -0
  92. package/build/types/utils/getFacetedRowModel.d.ts +2 -0
  93. package/build/types/utils/getFacetedUniqueValues.d.ts +2 -0
  94. package/build/types/utils/getFilteredRowModel.d.ts +2 -0
  95. package/build/types/utils/getGroupedRowModel.d.ts +2 -0
  96. package/build/types/utils/getPaginationRowModel.d.ts +4 -0
  97. package/build/types/utils/getSortedRowModel.d.ts +2 -0
  98. package/build/types/utils.d.ts +7 -11
  99. package/build/umd/index.development.js +3024 -3893
  100. package/build/umd/index.development.js.map +1 -1
  101. package/build/umd/index.production.js +1 -1
  102. package/build/umd/index.production.js.map +1 -1
  103. package/package.json +9 -10
  104. package/src/.DS_Store +0 -0
  105. package/src/aggregationFns.ts +123 -0
  106. package/src/core/cell.ts +48 -0
  107. package/src/core/column.ts +147 -0
  108. package/src/core/headers.ts +575 -0
  109. package/src/core/instance.ts +361 -0
  110. package/src/core/row.ts +85 -0
  111. package/src/createTable.ts +188 -0
  112. package/src/features/ColumnSizing.ts +170 -185
  113. package/src/features/Expanding.ts +122 -194
  114. package/src/features/Filters.ts +301 -381
  115. package/src/features/Grouping.ts +160 -220
  116. package/src/features/Ordering.ts +24 -25
  117. package/src/features/Pagination.ts +90 -73
  118. package/src/features/Pinning.ts +186 -63
  119. package/src/features/RowSelection.ts +107 -245
  120. package/src/features/Sorting.ts +127 -225
  121. package/src/features/Visibility.ts +116 -132
  122. package/src/filterFns.ts +135 -0
  123. package/src/index.ts +29 -0
  124. package/src/{sortTypes.ts → sortingFns.ts} +63 -85
  125. package/src/types.ts +62 -168
  126. package/src/utils/filterRowsUtils.ts +112 -0
  127. package/src/utils/getCoreRowModel.ts +84 -0
  128. package/src/utils/getExpandedRowModel.ts +54 -0
  129. package/src/utils/getFacetedMinMaxValues.ts +40 -0
  130. package/src/utils/getFacetedRowModel.ts +50 -0
  131. package/src/utils/getFacetedUniqueValues.ts +37 -0
  132. package/src/utils/getFilteredRowModel.ts +159 -0
  133. package/src/utils/getGroupedRowModel.ts +175 -0
  134. package/src/utils/getPaginationRowModel.ts +48 -0
  135. package/src/utils/getSortedRowModel.ts +116 -0
  136. package/src/utils.ts +126 -0
  137. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
  138. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  139. package/build/cjs/aggregationTypes.js +0 -130
  140. package/build/cjs/aggregationTypes.js.map +0 -1
  141. package/build/cjs/core.js +0 -545
  142. package/build/cjs/core.js.map +0 -1
  143. package/build/cjs/features/Headers.js +0 -630
  144. package/build/cjs/features/Headers.js.map +0 -1
  145. package/build/cjs/filterTypes.js +0 -172
  146. package/build/cjs/filterTypes.js.map +0 -1
  147. package/build/cjs/sortTypes.js +0 -122
  148. package/build/cjs/sortTypes.js.map +0 -1
  149. package/build/cjs/types.js +0 -22
  150. package/build/cjs/types.js.map +0 -1
  151. package/build/cjs/utils/columnFilterRowsFn.js +0 -131
  152. package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
  153. package/build/cjs/utils/expandRowsFn.js +0 -38
  154. package/build/cjs/utils/expandRowsFn.js.map +0 -1
  155. package/build/cjs/utils/globalFilterRowsFn.js +0 -101
  156. package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
  157. package/build/cjs/utils/groupRowsFn.js +0 -155
  158. package/build/cjs/utils/groupRowsFn.js.map +0 -1
  159. package/build/cjs/utils/paginateRowsFn.js +0 -44
  160. package/build/cjs/utils/paginateRowsFn.js.map +0 -1
  161. package/build/cjs/utils/sortRowsFn.js +0 -94
  162. package/build/cjs/utils/sortRowsFn.js.map +0 -1
  163. package/build/types/aggregationTypes.d.ts +0 -22
  164. package/build/types/core.d.ts +0 -105
  165. package/build/types/features/Headers.d.ts +0 -43
  166. package/build/types/filterTypes.d.ts +0 -50
  167. package/build/types/sortTypes.d.ts +0 -18
  168. package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
  169. package/build/types/utils/expandRowsFn.d.ts +0 -2
  170. package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
  171. package/build/types/utils/groupRowsFn.d.ts +0 -2
  172. package/build/types/utils/paginateRowsFn.d.ts +0 -2
  173. package/build/types/utils/sortRowsFn.d.ts +0 -2
  174. package/src/aggregationTypes.ts +0 -115
  175. package/src/core.tsx +0 -763
  176. package/src/createTable.tsx +0 -137
  177. package/src/features/Headers.ts +0 -747
  178. package/src/filterTypes.ts +0 -188
  179. package/src/index.tsx +0 -23
  180. package/src/utils/columnFilterRowsFn.ts +0 -113
  181. package/src/utils/expandRowsFn.ts +0 -30
  182. package/src/utils/globalFilterRowsFn.ts +0 -89
  183. package/src/utils/groupRowsFn.ts +0 -170
  184. package/src/utils/paginateRowsFn.ts +0 -28
  185. package/src/utils/sortRowsFn.ts +0 -95
  186. package/src/utils.tsx +0 -221
@@ -0,0 +1,255 @@
1
+ /**
2
+ * table-core
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 utils = require('../utils.js');
16
+ var column = require('./column.js');
17
+ var headers = require('./headers.js');
18
+ var ColumnSizing = require('../features/ColumnSizing.js');
19
+ var Expanding = require('../features/Expanding.js');
20
+ var Filters = require('../features/Filters.js');
21
+ var Grouping = require('../features/Grouping.js');
22
+ var Ordering = require('../features/Ordering.js');
23
+ var Pagination = require('../features/Pagination.js');
24
+ var Pinning = require('../features/Pinning.js');
25
+ var RowSelection = require('../features/RowSelection.js');
26
+ var Sorting = require('../features/Sorting.js');
27
+ var Visibility = require('../features/Visibility.js');
28
+
29
+ const features = [headers.Headers, Visibility.Visibility, Ordering.Ordering, Pinning.Pinning, Filters.Filters, Sorting.Sorting, Grouping.Grouping, Expanding.Expanding, Pagination.Pagination, RowSelection.RowSelection, ColumnSizing.ColumnSizing]; //
30
+
31
+ function createTableInstance(options) {
32
+ var _options$initialState;
33
+
34
+ if (options.debugAll || options.debugTable) {
35
+ console.info('Creating Table Instance...');
36
+ }
37
+
38
+ let instance = {
39
+ _features: features
40
+ };
41
+
42
+ const defaultOptions = instance._features.reduce((obj, feature) => {
43
+ return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(instance));
44
+ }, {});
45
+
46
+ const mergeOptions = options => {
47
+ if (instance.options.mergeOptions) {
48
+ return instance.options.mergeOptions(defaultOptions, options);
49
+ }
50
+
51
+ return { ...defaultOptions,
52
+ ...options
53
+ };
54
+ };
55
+
56
+ const coreInitialState = {};
57
+ let initialState = { ...coreInitialState,
58
+ ...((_options$initialState = options.initialState) != null ? _options$initialState : {})
59
+ };
60
+
61
+ instance._features.forEach(feature => {
62
+ var _feature$getInitialSt;
63
+
64
+ initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;
65
+ });
66
+
67
+ const queued = [];
68
+ let queuedTimeout = false;
69
+ const coreInstance = {
70
+ _features: features,
71
+ options: { ...defaultOptions,
72
+ ...options
73
+ },
74
+ initialState,
75
+ _queue: cb => {
76
+ queued.push(cb);
77
+
78
+ if (!queuedTimeout) {
79
+ queuedTimeout = true; // Schedule a microtask to run the queued callbacks after
80
+ // the current call stack (render, etc) has finished.
81
+
82
+ Promise.resolve().then(() => {
83
+ while (queued.length) {
84
+ queued.shift()();
85
+ }
86
+
87
+ queuedTimeout = false;
88
+ }).catch(error => setTimeout(() => {
89
+ throw error;
90
+ }));
91
+ }
92
+ },
93
+ reset: () => {
94
+ instance.setState(instance.initialState);
95
+ },
96
+ setOptions: updater => {
97
+ const newOptions = utils.functionalUpdate(updater, instance.options);
98
+ instance.options = mergeOptions(newOptions);
99
+ },
100
+ _render: (template, props) => {
101
+ if (typeof instance.options.render === 'function') {
102
+ return instance.options.render(template, props);
103
+ }
104
+
105
+ if (typeof template === 'function') {
106
+ return template(props);
107
+ }
108
+
109
+ return template;
110
+ },
111
+ getState: () => {
112
+ return instance.options.state;
113
+ },
114
+ setState: updater => {
115
+ instance.options.onStateChange == null ? void 0 : instance.options.onStateChange(updater);
116
+ },
117
+ _getRowId: (row, index, parent) => {
118
+ var _instance$options$get;
119
+
120
+ return (_instance$options$get = instance.options.getRowId == null ? void 0 : instance.options.getRowId(row, index, parent)) != null ? _instance$options$get : "" + (parent ? [parent.id, index].join('.') : index);
121
+ },
122
+ getCoreRowModel: () => {
123
+ if (!instance._getCoreRowModel) {
124
+ instance._getCoreRowModel = instance.options.getCoreRowModel(instance);
125
+ }
126
+
127
+ return instance._getCoreRowModel();
128
+ },
129
+ // The final calls start at the bottom of the model,
130
+ // expanded rows, which then work their way up
131
+ getRowModel: () => {
132
+ return instance.getPaginationRowModel();
133
+ },
134
+ getRow: id => {
135
+ const row = instance.getRowModel().rowsById[id];
136
+
137
+ if (!row) {
138
+ if (process.env.NODE_ENV !== 'production') {
139
+ throw new Error("getRow expected an ID, but got " + id);
140
+ }
141
+
142
+ throw new Error();
143
+ }
144
+
145
+ return row;
146
+ },
147
+ _getDefaultColumnDef: utils.memo(() => [instance.options.defaultColumn], defaultColumn => {
148
+ var _defaultColumn;
149
+
150
+ defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};
151
+ return {
152
+ header: props => props.header.column.id,
153
+ footer: props => props.header.column.id,
154
+ cell: props => {
155
+ var _props$getValue$toStr, _props$getValue$toStr2, _props$getValue;
156
+
157
+ 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;
158
+ },
159
+ ...instance._features.reduce((obj, feature) => {
160
+ return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());
161
+ }, {}),
162
+ ...defaultColumn
163
+ };
164
+ }, {
165
+ debug: () => {
166
+ var _instance$options$deb;
167
+
168
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugColumns;
169
+ },
170
+ key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef'
171
+ }),
172
+ _getColumnDefs: () => instance.options.columns,
173
+ getAllColumns: utils.memo(() => [instance._getColumnDefs()], columnDefs => {
174
+ const recurseColumns = function (columnDefs, parent, depth) {
175
+ if (depth === void 0) {
176
+ depth = 0;
177
+ }
178
+
179
+ return columnDefs.map(columnDef => {
180
+ const column$1 = column.createColumn(instance, columnDef, depth, parent);
181
+ column$1.columns = columnDef.columns ? recurseColumns(columnDef.columns, column$1, depth + 1) : [];
182
+ return column$1;
183
+ });
184
+ };
185
+
186
+ return recurseColumns(columnDefs);
187
+ }, {
188
+ key: process.env.NODE_ENV === 'development' && 'getAllColumns',
189
+ debug: () => {
190
+ var _instance$options$deb2;
191
+
192
+ return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugColumns;
193
+ }
194
+ }),
195
+ getAllFlatColumns: utils.memo(() => [instance.getAllColumns()], allColumns => {
196
+ return allColumns.flatMap(column => {
197
+ return column.getFlatColumns();
198
+ });
199
+ }, {
200
+ key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',
201
+ debug: () => {
202
+ var _instance$options$deb3;
203
+
204
+ return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugColumns;
205
+ }
206
+ }),
207
+ _getAllFlatColumnsById: utils.memo(() => [instance.getAllFlatColumns()], flatColumns => {
208
+ return flatColumns.reduce((acc, column) => {
209
+ acc[column.id] = column;
210
+ return acc;
211
+ }, {});
212
+ }, {
213
+ key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',
214
+ debug: () => {
215
+ var _instance$options$deb4;
216
+
217
+ return (_instance$options$deb4 = instance.options.debugAll) != null ? _instance$options$deb4 : instance.options.debugColumns;
218
+ }
219
+ }),
220
+ getAllLeafColumns: utils.memo(() => [instance.getAllColumns(), instance._getOrderColumnsFn()], (allColumns, orderColumns) => {
221
+ let leafColumns = allColumns.flatMap(column => column.getLeafColumns());
222
+ return orderColumns(leafColumns);
223
+ }, {
224
+ key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',
225
+ debug: () => {
226
+ var _instance$options$deb5;
227
+
228
+ return (_instance$options$deb5 = instance.options.debugAll) != null ? _instance$options$deb5 : instance.options.debugColumns;
229
+ }
230
+ }),
231
+ getColumn: columnId => {
232
+ const column = instance._getAllFlatColumnsById()[columnId];
233
+
234
+ if (!column) {
235
+ if (process.env.NODE_ENV !== 'production') {
236
+ console.warn("[Table] Column with id " + columnId + " does not exist.");
237
+ }
238
+
239
+ throw new Error();
240
+ }
241
+
242
+ return column;
243
+ }
244
+ };
245
+ Object.assign(instance, coreInstance);
246
+
247
+ instance._features.forEach(feature => {
248
+ return Object.assign(instance, feature.createInstance == null ? void 0 : feature.createInstance(instance));
249
+ });
250
+
251
+ return instance;
252
+ }
253
+
254
+ exports.createTableInstance = createTableInstance;
255
+ //# sourceMappingURL=instance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance.js","sources":["../../../src/core/instance.ts"],"sourcesContent":["import { flattenBy, functionalUpdate, memo, RequiredKeys } from '../utils'\n\nimport {\n Updater,\n TableOptionsResolved,\n TableState,\n TableInstance,\n Renderable,\n TableGenerics,\n InitialTableState,\n Row,\n Column,\n RowModel,\n ColumnDef,\n} from '../types'\n\n//\nimport { createColumn } from './column'\nimport { Headers } from './headers'\n//\n\nimport { ColumnSizing } from '../features/ColumnSizing'\nimport { Expanding } from '../features/Expanding'\nimport { Filters } from '../features/Filters'\nimport { Grouping } from '../features/Grouping'\nimport { Ordering } from '../features/Ordering'\nimport { Pagination } from '../features/Pagination'\nimport { Pinning } from '../features/Pinning'\nimport { RowSelection } from '../features/RowSelection'\nimport { Sorting } from '../features/Sorting'\nimport { Visibility } from '../features/Visibility'\n\nexport type TableFeature = {\n getDefaultOptions?: (instance: any) => any\n getInitialState?: (initialState?: InitialTableState) => any\n createInstance?: (instance: any) => any\n getDefaultColumnDef?: () => any\n createColumn?: (column: any, instance: any) => any\n createHeader?: (column: any, instance: any) => any\n createCell?: (cell: any, column: any, row: any, instance: any) => any\n createRow?: (row: any, instance: any) => any\n}\n\nconst features = [\n Headers,\n Visibility,\n Ordering,\n Pinning,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n Pagination,\n RowSelection,\n ColumnSizing,\n] as const\n\n//\n\nexport type CoreTableState = {}\n\nexport type CoreOptions<TGenerics extends TableGenerics> = {\n data: TGenerics['Row'][]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n render: TGenerics['Renderer']\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n initialState?: InitialTableState\n autoResetAll?: boolean\n mergeOptions?: <T>(defaultOptions: T, options: Partial<T>) => T\n meta?: TGenerics['TableMeta']\n getCoreRowModel: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n getSubRows?: (\n originalRow: TGenerics['Row'],\n index: number\n ) => undefined | TGenerics['Row'][]\n getRowId?: (\n originalRow: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n columns: ColumnDef<TGenerics>[]\n defaultColumn?: Partial<ColumnDef<TGenerics>>\n}\n\nexport type CoreInstance<TGenerics extends TableGenerics> = {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<TableOptionsResolved<TGenerics>, 'state'>\n setOptions: (newOptions: Updater<TableOptionsResolved<TGenerics>>) => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n _features: readonly TableFeature[]\n _queue: (cb: () => void) => void\n _render: <TProps>(\n template: Renderable<TGenerics, TProps>,\n props: TProps\n ) => string | null | TGenerics['Rendered']\n _getRowId: (\n _: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n getCoreRowModel: () => RowModel<TGenerics>\n _getCoreRowModel?: () => RowModel<TGenerics>\n getRowModel: () => RowModel<TGenerics>\n getRow: (id: string) => Row<TGenerics>\n _getDefaultColumnDef: () => Partial<ColumnDef<TGenerics>>\n _getColumnDefs: () => ColumnDef<TGenerics>[]\n _getAllFlatColumnsById: () => Record<string, Column<TGenerics>>\n getAllColumns: () => Column<TGenerics>[]\n getAllFlatColumns: () => Column<TGenerics>[]\n getAllLeafColumns: () => Column<TGenerics>[]\n getColumn: (columnId: string) => Column<TGenerics>\n}\n\nexport function createTableInstance<TGenerics extends TableGenerics>(\n options: TableOptionsResolved<TGenerics>\n): TableInstance<TGenerics> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let instance = { _features: features } as unknown as TableInstance<TGenerics>\n\n const defaultOptions = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(instance))\n }, {}) as TableOptionsResolved<TGenerics>\n\n const mergeOptions = (options: TableOptionsResolved<TGenerics>) => {\n if (instance.options.mergeOptions) {\n return instance.options.mergeOptions(defaultOptions, options)\n }\n\n return {\n ...defaultOptions,\n ...options,\n }\n }\n\n const coreInitialState: CoreTableState = {}\n\n let initialState = {\n ...coreInitialState,\n ...(options.initialState ?? {}),\n } as TableState\n\n instance._features.forEach(feature => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n\n const queued: (() => void)[] = []\n let queuedTimeout = false\n\n const coreInstance: CoreInstance<TGenerics> = {\n _features: features,\n options: {\n ...defaultOptions,\n ...options,\n },\n initialState,\n _queue: cb => {\n queued.push(cb)\n\n if (!queuedTimeout) {\n queuedTimeout = true\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve()\n .then(() => {\n while (queued.length) {\n queued.shift()!()\n }\n queuedTimeout = false\n })\n .catch(error =>\n setTimeout(() => {\n throw error\n })\n )\n }\n },\n reset: () => {\n instance.setState(instance.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, instance.options)\n instance.options = mergeOptions(newOptions)\n },\n _render: (template, props) => {\n if (typeof instance.options.render === 'function') {\n return instance.options.render(template, props)\n }\n\n if (typeof template === 'function') {\n return (template as Function)(props)\n }\n\n return template\n },\n\n getState: () => {\n return instance.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n instance.options.onStateChange?.(updater)\n },\n\n _getRowId: (\n row: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) =>\n instance.options.getRowId?.(row, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getCoreRowModel: () => {\n if (!instance._getCoreRowModel) {\n instance._getCoreRowModel = instance.options.getCoreRowModel(instance)\n }\n\n return instance._getCoreRowModel()\n },\n\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return instance.getPaginationRowModel()\n },\n getRow: (id: string) => {\n const row = instance.getRowModel().rowsById[id]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`)\n }\n throw new Error()\n }\n\n return row\n },\n _getDefaultColumnDef: 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.getDefaultColumnDef?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TGenerics>>\n },\n {\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef',\n }\n ),\n\n _getColumnDefs: () => instance.options.columns,\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 = createColumn(instance, 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: () => 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: () => 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: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => 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 => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => 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 Object.assign(instance, coreInstance)\n\n instance._features.forEach(feature => {\n return Object.assign(instance, feature.createInstance?.(instance))\n })\n\n return instance\n}\n"],"names":["features","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","createTableInstance","options","debugAll","debugTable","console","info","instance","_features","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","mergeOptions","coreInitialState","initialState","forEach","getInitialState","queued","queuedTimeout","coreInstance","_queue","cb","push","Promise","resolve","then","length","shift","catch","error","setTimeout","reset","setState","setOptions","updater","newOptions","functionalUpdate","_render","template","props","render","getState","state","onStateChange","_getRowId","row","index","parent","getRowId","id","join","getCoreRowModel","_getCoreRowModel","getRowModel","getPaginationRowModel","getRow","rowsById","process","env","NODE_ENV","Error","_getDefaultColumnDef","memo","defaultColumn","header","column","footer","cell","getValue","toString","getDefaultColumnDef","debug","debugColumns","key","_getColumnDefs","columns","getAllColumns","columnDefs","recurseColumns","depth","map","columnDef","createColumn","getAllFlatColumns","allColumns","flatMap","getFlatColumns","_getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","_getOrderColumnsFn","orderColumns","leafColumns","getLeafColumns","getColumn","columnId","warn","createInstance"],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * table-core
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 utils = require('../utils.js');
16
+ var cell = require('./cell.js');
17
+
18
+ const createRow = (instance, id, original, rowIndex, depth, subRows) => {
19
+ let row = {
20
+ id,
21
+ index: rowIndex,
22
+ original,
23
+ depth,
24
+ _valuesCache: {},
25
+ getValue: columnId => {
26
+ if (row._valuesCache.hasOwnProperty(columnId)) {
27
+ return row._valuesCache[columnId];
28
+ }
29
+
30
+ const column = instance.getColumn(columnId);
31
+
32
+ if (!column.accessorFn) {
33
+ return undefined;
34
+ }
35
+
36
+ row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);
37
+ return row._valuesCache[columnId];
38
+ },
39
+ subRows: subRows != null ? subRows : [],
40
+ getLeafRows: () => utils.flattenBy(row.subRows, d => d.subRows),
41
+ getAllCells: utils.memo(() => [instance.getAllLeafColumns()], leafColumns => {
42
+ return leafColumns.map(column => {
43
+ return cell.createCell(instance, row, column, column.id);
44
+ });
45
+ }, {
46
+ key: process.env.NODE_ENV === 'development' && 'row.getAllCells',
47
+ debug: () => {
48
+ var _instance$options$deb;
49
+
50
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugRows;
51
+ }
52
+ }),
53
+ _getAllCellsByColumnId: utils.memo(() => [row.getAllCells()], allCells => {
54
+ return allCells.reduce((acc, cell) => {
55
+ acc[cell.column.id] = cell;
56
+ return acc;
57
+ }, {});
58
+ }, {
59
+ key: process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',
60
+ debug: () => {
61
+ var _instance$options$deb2;
62
+
63
+ return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugRows;
64
+ }
65
+ })
66
+ };
67
+
68
+ for (let i = 0; i < instance._features.length; i++) {
69
+ const feature = instance._features[i];
70
+ Object.assign(row, feature == null ? void 0 : feature.createRow == null ? void 0 : feature.createRow(row, instance));
71
+ }
72
+
73
+ return row;
74
+ };
75
+
76
+ exports.createRow = createRow;
77
+ //# sourceMappingURL=row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row.js","sources":["../../../src/core/row.ts"],"sourcesContent":["import { Cell, Row, TableGenerics, TableInstance } from '../types'\nimport { flattenBy, memo } from '../utils'\nimport { createCell } from './cell'\n\nexport type CoreRow<TGenerics extends TableGenerics> = {\n id: string\n index: number\n original?: TGenerics['Row']\n depth: number\n _valuesCache: Record<string, any>\n getValue: (columnId: string) => any\n subRows: Row<TGenerics>[]\n getLeafRows: () => Row<TGenerics>[]\n originalSubRows?: TGenerics['Row'][]\n getAllCells: () => Cell<TGenerics>[]\n _getAllCellsByColumnId: () => Record<string, Cell<TGenerics>>\n}\n\nexport const createRow = <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>,\n id: string,\n original: TGenerics['Row'] | undefined,\n rowIndex: number,\n depth: number,\n subRows?: Row<TGenerics>[]\n): Row<TGenerics> => {\n let row: CoreRow<TGenerics> = {\n id,\n index: rowIndex,\n original,\n depth,\n _valuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n const column = instance.getColumn(columnId)\n\n if (!column.accessorFn) {\n return undefined\n }\n\n row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex)\n\n return row._valuesCache[columnId]\n },\n subRows: subRows ?? [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getAllCells: memo(\n () => [instance.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return createCell(instance, row as Row<TGenerics>, column, column.id)\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n\n _getAllCellsByColumnId: memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell\n return acc\n }, {} as Record<string, Cell<TGenerics>>)\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n }\n\n for (let i = 0; i < instance._features.length; i++) {\n const feature = instance._features[i]\n Object.assign(row, feature?.createRow?.(row, instance))\n }\n\n return row as Row<TGenerics>\n}\n"],"names":["createRow","instance","id","original","rowIndex","depth","subRows","row","index","_valuesCache","getValue","columnId","hasOwnProperty","column","getColumn","accessorFn","undefined","getLeafRows","flattenBy","d","getAllCells","memo","getAllLeafColumns","leafColumns","map","createCell","key","process","env","NODE_ENV","debug","options","debugAll","debugRows","_getAllCellsByColumnId","allCells","reduce","acc","cell","i","_features","length","feature","Object","assign"],"mappings":"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"}
@@ -12,54 +12,61 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
16
-
15
+ //
17
16
  function createTableFactory(opts) {
18
- return function () {
19
- return _createTable(undefined, undefined, opts);
20
- };
21
- }
22
- function createTable() {
23
- return _createTable();
24
- }
17
+ return () => createTable(undefined, undefined, opts);
18
+ } // A lot of returns in here are `as any` for a reason. Unless you
19
+ // can find a better way to do this, then don't worry about them
25
20
 
26
- function _createTable(_, __, __options) {
27
- return {
28
- __options: __options || {},
29
- createColumns: function createColumns(columns) {
30
- return columns;
21
+ function createTable(_, __, options) {
22
+ const table = {
23
+ generics: undefined,
24
+ options: options != null ? options : {
25
+ render: (() => {
26
+ throw new Error('');
27
+ })()
31
28
  },
32
- createDisplayColumn: function createDisplayColumn(column) {
33
- return column;
34
- },
35
- createGroup: function createGroup(column) {
36
- return column;
37
- },
38
- createDataColumn: function createDataColumn(accessor, column) {
39
- column = _rollupPluginBabelHelpers["extends"]({}, column, {
29
+ // setGenerics: () => table as any,
30
+ setRowType: () => table,
31
+ setTableMetaType: () => table,
32
+ setColumnMetaType: () => table,
33
+ setFilterMetaType: () => table,
34
+ setOptions: newOptions => createTable(_, __, { ...options,
35
+ ...newOptions
36
+ }),
37
+ createDisplayColumn: column => ({ ...column,
38
+ columnDefType: 'display'
39
+ }),
40
+ createGroup: column => ({ ...column,
41
+ columnDefType: 'group'
42
+ }),
43
+ createDataColumn: (accessor, column) => {
44
+ column = { ...column,
45
+ columnDefType: 'data',
40
46
  id: column.id
41
- });
47
+ };
42
48
 
43
49
  if (typeof accessor === 'string') {
44
50
  var _column$id;
45
51
 
46
- return _rollupPluginBabelHelpers["extends"]({}, column, {
52
+ return { ...column,
47
53
  id: (_column$id = column.id) != null ? _column$id : accessor,
48
54
  accessorKey: accessor
49
- });
55
+ };
50
56
  }
51
57
 
52
58
  if (typeof accessor === 'function') {
53
- return _rollupPluginBabelHelpers["extends"]({}, column, {
59
+ return { ...column,
54
60
  accessorFn: accessor
55
- });
61
+ };
56
62
  }
57
63
 
58
64
  throw new Error('Invalid accessor');
59
- }
65
+ },
66
+ createOptions: options => options
60
67
  };
68
+ return table;
61
69
  }
62
70
 
63
- exports.createTable = createTable;
64
71
  exports.createTableFactory = createTableFactory;
65
72
  //# sourceMappingURL=createTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createTable.js","sources":["../../src/createTable.tsx"],"sourcesContent":["import { CustomFilterTypes } from './features/Filters'\nimport { CustomAggregationTypes } from './features/Grouping'\nimport { CustomSortingTypes } from './features/Sorting'\nimport {\n ColumnDef,\n AccessorFn,\n DefaultGenerics,\n PartialGenerics,\n _NonGenerated,\n} from './types'\nimport { Overwrite, PartialKeys } from './utils'\n\nexport type CreatTableFactory<TGenerics extends Partial<DefaultGenerics>> = <\n TRow\n>() => TableFactory<Overwrite<TGenerics, { Row: TRow }>>\n\nexport type CreateTableFactoryOptions<\n TFilterFns extends CustomFilterTypes<any>,\n TSortingFns extends CustomSortingTypes<any>,\n TAggregationFns extends CustomAggregationTypes<any>\n> = {\n filterFns?: TFilterFns\n sortingFns?: TSortingFns\n aggregationFns?: TAggregationFns\n}\n\nexport function createTableFactory<\n TFilterFns extends CustomFilterTypes<any>,\n TSortingFns extends CustomSortingTypes<any>,\n TAggregationFns extends CustomAggregationTypes<any>\n>(\n opts: CreateTableFactoryOptions<TFilterFns, TSortingFns, TAggregationFns>\n): CreatTableFactory<\n Overwrite<\n PartialGenerics,\n {\n FilterFns: TFilterFns\n SortingFns: TSortingFns\n AggregationFns: TAggregationFns\n }\n >\n> {\n return () => _createTable(undefined, undefined, opts)\n}\n\nexport type TableFactory<TGenerics extends Partial<DefaultGenerics>> = {\n __options: CreateTableFactoryOptions<any, any, any>\n createColumns: (columns: ColumnDef<TGenerics>[]) => ColumnDef<TGenerics>[]\n createGroup: (\n column: Overwrite<\n | Overwrite<\n _NonGenerated<ColumnDef<TGenerics>>,\n {\n header: string\n id?: string\n }\n >\n | Overwrite<\n _NonGenerated<ColumnDef<TGenerics>>,\n {\n id: string\n header?: string | ColumnDef<TGenerics>['header']\n }\n >,\n { accessorFn?: never; accessorKey?: never }\n >\n ) => ColumnDef<TGenerics>\n createDisplayColumn: (\n column: PartialKeys<\n _NonGenerated<ColumnDef<TGenerics>>,\n 'accessorFn' | 'accessorKey'\n >\n ) => ColumnDef<TGenerics>\n createDataColumn: <\n TAccessor extends AccessorFn<TGenerics['Row']> | keyof TGenerics['Row']\n >(\n accessor: TAccessor,\n column: Overwrite<\n TAccessor extends (...args: any[]) => any\n ? // Accessor Fn\n _NonGenerated<ColumnDef<TGenerics>>\n : TAccessor extends keyof TGenerics['Row']\n ? // Accessor Key\n Overwrite<\n _NonGenerated<ColumnDef<TGenerics>>,\n {\n id?: string\n }\n >\n : never,\n {\n accessorFn?: never\n accessorKey?: never\n }\n >\n ) => ColumnDef<TGenerics>\n}\n\nexport function createTable<TRow>() {\n return _createTable<Overwrite<PartialGenerics, { Row: TRow }>>()\n}\n\nfunction _createTable<TGenerics extends PartialGenerics>(\n _?: undefined,\n __?: undefined,\n __options?: CreateTableFactoryOptions<any, any, any>\n): TableFactory<TGenerics> {\n return {\n __options: __options || {},\n createColumns: columns => columns,\n createDisplayColumn: column => column as any,\n createGroup: column => column as any,\n createDataColumn: (accessor, column): any => {\n column = {\n ...column,\n id: column.id,\n }\n\n if (typeof accessor === 'string') {\n return {\n ...column,\n id: column.id ?? accessor,\n accessorKey: accessor,\n }\n }\n\n if (typeof accessor === 'function') {\n return {\n ...column,\n accessorFn: accessor,\n }\n }\n\n throw new Error('Invalid accessor')\n },\n }\n}\n"],"names":["createTableFactory","opts","_createTable","undefined","createTable","_","__","__options","createColumns","columns","createDisplayColumn","column","createGroup","createDataColumn","accessor","id","accessorKey","accessorFn","Error"],"mappings":";;;;;;;;;;;;;;;;AA0BO,SAASA,kBAAT,CAKLC,IALK,EAeL;AACA,SAAO;AAAA,WAAMC,YAAY,CAACC,SAAD,EAAYA,SAAZ,EAAuBF,IAAvB,CAAlB;AAAA,GAAP;AACD;AAuDM,SAASG,WAAT,GAA6B;AAClC,SAAOF,YAAY,EAAnB;AACD;;AAED,SAASA,YAAT,CACEG,CADF,EAEEC,EAFF,EAGEC,SAHF,EAI2B;AACzB,SAAO;AACLA,IAAAA,SAAS,EAAEA,SAAS,IAAI,EADnB;AAELC,IAAAA,aAAa,EAAE,uBAAAC,OAAO;AAAA,aAAIA,OAAJ;AAAA,KAFjB;AAGLC,IAAAA,mBAAmB,EAAE,6BAAAC,MAAM;AAAA,aAAIA,MAAJ;AAAA,KAHtB;AAILC,IAAAA,WAAW,EAAE,qBAAAD,MAAM;AAAA,aAAIA,MAAJ;AAAA,KAJd;AAKLE,IAAAA,gBAAgB,EAAE,0BAACC,QAAD,EAAWH,MAAX,EAA2B;AAC3CA,MAAAA,MAAM,4CACDA,MADC;AAEJI,QAAAA,EAAE,EAAEJ,MAAM,CAACI;AAFP,QAAN;;AAKA,UAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC;AAAA;;AAChC,wDACKH,MADL;AAEEI,UAAAA,EAAE,gBAAEJ,MAAM,CAACI,EAAT,yBAAeD,QAFnB;AAGEE,UAAAA,WAAW,EAAEF;AAHf;AAKD;;AAED,UAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,wDACKH,MADL;AAEEM,UAAAA,UAAU,EAAEH;AAFd;AAID;;AAED,YAAM,IAAII,KAAJ,CAAU,kBAAV,CAAN;AACD;AA3BI,GAAP;AA6BD;;;;;"}
1
+ {"version":3,"file":"createTable.js","sources":["../../src/createTable.ts"],"sourcesContent":["import { CustomFilterFns, FilterFn } from './features/Filters'\nimport { AggregationFn, CustomAggregationFns } from './features/Grouping'\nimport { CustomSortingFns, SortingFn } from './features/Sorting'\nimport {\n ColumnDef,\n AccessorFn,\n AnyRender,\n TableGenerics,\n TableOptionsResolved,\n TableOptions,\n} from './types'\nimport { IfDefined, Overwrite } from './utils'\n\nexport type TableFactory<TGenerics extends TableGenerics> =\n () => Table<TGenerics>\n\nexport type CreateTableOptions<\n TRender extends AnyRender,\n TFilterFns extends CustomFilterFns<any>,\n TSortingFns extends CustomSortingFns<any>,\n TAggregationFns extends CustomAggregationFns<any>,\n TGenerics extends TableGenerics\n> = Partial<\n {\n render?: TRender\n filterFns?: TFilterFns\n sortingFns?: TSortingFns\n aggregationFns?: TAggregationFns\n } & Omit<\n TableOptionsResolved<TGenerics>,\n 'filterFns' | 'sortingFns' | 'aggregationFns'\n >\n>\n\nexport type Table<TGenerics extends TableGenerics> = {\n generics: TGenerics\n options: Partial<TableOptionsResolved<TGenerics>>\n // setGenerics: <T extends TableGenerics>() => Table<T>\n setRowType: <TRow>() => Table<Overwrite<TGenerics, { Row: TRow }>>\n setTableMetaType: <TTableMeta>() => Table<\n Overwrite<TGenerics, { TableMeta: TTableMeta }>\n >\n setColumnMetaType: <TColumnMeta>() => Table<\n Overwrite<TGenerics, { ColumnMeta: TColumnMeta }>\n >\n setFilterMetaType: <TFilterMeta>() => Table<\n Overwrite<TGenerics, { FilterMeta: TFilterMeta }>\n >\n setOptions: <\n TFilterFns extends Record<string, FilterFn<TGenerics>>,\n TSortingFns extends Record<string, SortingFn<TGenerics>>,\n TAggregationFns extends Record<string, AggregationFn<TGenerics>>\n >(\n options: CreateTableOptions<\n any,\n TFilterFns,\n TSortingFns,\n TAggregationFns,\n TGenerics\n >\n ) => Table<\n Overwrite<\n TGenerics,\n {\n FilterFns: IfDefined<TFilterFns, TGenerics['FilterFns']>\n SortingFns: IfDefined<TSortingFns, TGenerics['SortingFns']>\n AggregationFns: IfDefined<TAggregationFns, TGenerics['AggregationFns']>\n }\n >\n >\n createGroup: (\n column: Overwrite<\n | Overwrite<\n ColumnDef<any>,\n {\n header: string\n id?: string\n }\n >\n | Overwrite<\n ColumnDef<any>,\n {\n id: string\n header?: string | ((...any: any) => any)\n }\n >,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createDisplayColumn: (\n column: Omit<ColumnDef<TGenerics>, 'columns'>\n ) => ColumnDef<TGenerics>\n createDataColumn: <\n TAccessor extends AccessorFn<TGenerics['Row']> | keyof TGenerics['Row']\n >(\n accessor: TAccessor,\n column: Overwrite<\n TAccessor extends (...args: any[]) => any\n ? // Accessor Fn\n ColumnDef<Overwrite<TGenerics, { Value: ReturnType<TAccessor> }>>\n : TAccessor extends keyof TGenerics['Row']\n ? // Accessor Key\n Overwrite<\n ColumnDef<\n Overwrite<TGenerics, { Value: TGenerics['Row'][TAccessor] }>\n >,\n {\n id?: string\n }\n >\n : never,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createOptions: (options: TableOptions<TGenerics>) => TableOptions<TGenerics>\n}\n\n//\n\nexport function createTableFactory<TRenderer extends AnyRender>(opts: {\n render: TRenderer\n}): () => Table<{ Renderer: TRenderer; Rendered: ReturnType<TRenderer> }> {\n return () => createTable(undefined, undefined, opts)\n}\n\n// A lot of returns in here are `as any` for a reason. Unless you\n// can find a better way to do this, then don't worry about them\nfunction createTable<TGenerics extends TableGenerics>(\n _?: undefined,\n __?: undefined,\n options?: CreateTableOptions<any, any, any, any, TGenerics>\n): Table<TGenerics> {\n const table: Table<TGenerics> = {\n generics: undefined!,\n options: options ?? {\n render: (() => {\n throw new Error('')\n })(),\n },\n // setGenerics: () => table as any,\n setRowType: () => table as any,\n setTableMetaType: () => table as any,\n setColumnMetaType: () => table as any,\n setFilterMetaType: () => table as any,\n setOptions: newOptions =>\n createTable(_, __, {\n ...options,\n ...newOptions,\n } as any),\n createDisplayColumn: column => ({ ...column, columnDefType: 'display' }),\n createGroup: column => ({ ...column, columnDefType: 'group' } as any),\n createDataColumn: (accessor, column): any => {\n column = {\n ...column,\n columnDefType: 'data',\n id: column.id,\n }\n\n if (typeof accessor === 'string') {\n return {\n ...column,\n id: column.id ?? accessor,\n accessorKey: accessor,\n }\n }\n\n if (typeof accessor === 'function') {\n return {\n ...column,\n accessorFn: accessor,\n }\n }\n\n throw new Error('Invalid accessor')\n },\n createOptions: options => options,\n }\n\n return table\n}\n"],"names":["createTableFactory","opts","createTable","undefined","_","__","options","table","generics","render","Error","setRowType","setTableMetaType","setColumnMetaType","setFilterMetaType","setOptions","newOptions","createDisplayColumn","column","columnDefType","createGroup","createDataColumn","accessor","id","accessorKey","accessorFn","createOptions"],"mappings":";;;;;;;;;;;;;;AA6HA;AAEO,SAASA,kBAAT,CAAyDC,IAAzD,EAEmE;AACxE,EAAO,OAAA,MAAMC,WAAW,CAACC,SAAD,EAAYA,SAAZ,EAAuBF,IAAvB,CAAxB,CAAA;AACD;AAGD;;AACA,SAASC,WAAT,CACEE,CADF,EAEEC,EAFF,EAGEC,OAHF,EAIoB;AAClB,EAAA,MAAMC,KAAuB,GAAG;AAC9BC,IAAAA,QAAQ,EAAEL,SADoB;AAE9BG,IAAAA,OAAO,EAAEA,OAAF,IAAA,IAAA,GAAEA,OAAF,GAAa;AAClBG,MAAAA,MAAM,EAAE,CAAC,MAAM;AACb,QAAA,MAAM,IAAIC,KAAJ,CAAU,EAAV,CAAN,CAAA;AACD,OAFO,GAAA;AADU,KAFU;AAO9B;AACAC,IAAAA,UAAU,EAAE,MAAMJ,KARY;AAS9BK,IAAAA,gBAAgB,EAAE,MAAML,KATM;AAU9BM,IAAAA,iBAAiB,EAAE,MAAMN,KAVK;AAW9BO,IAAAA,iBAAiB,EAAE,MAAMP,KAXK;AAY9BQ,IAAAA,UAAU,EAAEC,UAAU,IACpBd,WAAW,CAACE,CAAD,EAAIC,EAAJ,EAAQ,EACjB,GAAGC,OADc;AAEjB,MAAGU,GAAAA,UAAAA;AAFc,KAAR,CAbiB;AAiB9BC,IAAAA,mBAAmB,EAAEC,MAAM,KAAK,EAAE,GAAGA,MAAL;AAAaC,MAAAA,aAAa,EAAE,SAAA;AAA5B,KAAL,CAjBG;AAkB9BC,IAAAA,WAAW,EAAEF,MAAM,KAAK,EAAE,GAAGA,MAAL;AAAaC,MAAAA,aAAa,EAAE,OAAA;AAA5B,KAAL,CAlBW;AAmB9BE,IAAAA,gBAAgB,EAAE,CAACC,QAAD,EAAWJ,MAAX,KAA2B;AAC3CA,MAAAA,MAAM,GAAG,EACP,GAAGA,MADI;AAEPC,QAAAA,aAAa,EAAE,MAFR;AAGPI,QAAAA,EAAE,EAAEL,MAAM,CAACK,EAAAA;AAHJ,OAAT,CAAA;;AAMA,MAAA,IAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC;AAAA,QAAA,IAAA,UAAA,CAAA;;AAChC,QAAO,OAAA,EACL,GAAGJ,MADE;AAELK,UAAAA,EAAE,EAAEL,CAAAA,UAAAA,GAAAA,MAAM,CAACK,EAAT,yBAAeD,QAFZ;AAGLE,UAAAA,WAAW,EAAEF,QAAAA;AAHR,SAAP,CAAA;AAKD,OAAA;;AAED,MAAA,IAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,QAAO,OAAA,EACL,GAAGJ,MADE;AAELO,UAAAA,UAAU,EAAEH,QAAAA;AAFP,SAAP,CAAA;AAID,OAAA;;AAED,MAAA,MAAM,IAAIZ,KAAJ,CAAU,kBAAV,CAAN,CAAA;AACD,KA1C6B;AA2C9BgB,IAAAA,aAAa,EAAEpB,OAAO,IAAIA,OAAAA;AA3CI,GAAhC,CAAA;AA8CA,EAAA,OAAOC,KAAP,CAAA;AACD;;;;"}