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

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/aggregationFns.ts +123 -0
  105. package/src/core/cell.ts +48 -0
  106. package/src/core/column.ts +147 -0
  107. package/src/core/headers.ts +575 -0
  108. package/src/core/instance.ts +359 -0
  109. package/src/core/row.ts +85 -0
  110. package/src/createTable.ts +188 -0
  111. package/src/features/ColumnSizing.ts +170 -185
  112. package/src/features/Expanding.ts +120 -194
  113. package/src/features/Filters.ts +299 -381
  114. package/src/features/Grouping.ts +158 -220
  115. package/src/features/Ordering.ts +24 -25
  116. package/src/features/Pagination.ts +88 -73
  117. package/src/features/Pinning.ts +186 -63
  118. package/src/features/RowSelection.ts +107 -245
  119. package/src/features/Sorting.ts +125 -225
  120. package/src/features/Visibility.ts +116 -132
  121. package/src/filterFns.ts +135 -0
  122. package/src/index.ts +29 -0
  123. package/src/{sortTypes.ts → sortingFns.ts} +63 -85
  124. package/src/types.ts +62 -168
  125. package/src/utils/filterRowsUtils.ts +112 -0
  126. package/src/utils/getCoreRowModel.ts +84 -0
  127. package/src/utils/getExpandedRowModel.ts +54 -0
  128. package/src/utils/getFacetedMinMaxValues.ts +40 -0
  129. package/src/utils/getFacetedRowModel.ts +50 -0
  130. package/src/utils/getFacetedUniqueValues.ts +37 -0
  131. package/src/utils/getFilteredRowModel.ts +159 -0
  132. package/src/utils/getGroupedRowModel.ts +175 -0
  133. package/src/utils/getPaginationRowModel.ts +48 -0
  134. package/src/utils/getSortedRowModel.ts +116 -0
  135. package/src/utils.ts +126 -0
  136. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
  137. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  138. package/build/cjs/aggregationTypes.js +0 -130
  139. package/build/cjs/aggregationTypes.js.map +0 -1
  140. package/build/cjs/core.js +0 -545
  141. package/build/cjs/core.js.map +0 -1
  142. package/build/cjs/features/Headers.js +0 -630
  143. package/build/cjs/features/Headers.js.map +0 -1
  144. package/build/cjs/filterTypes.js +0 -172
  145. package/build/cjs/filterTypes.js.map +0 -1
  146. package/build/cjs/sortTypes.js +0 -122
  147. package/build/cjs/sortTypes.js.map +0 -1
  148. package/build/cjs/types.js +0 -22
  149. package/build/cjs/types.js.map +0 -1
  150. package/build/cjs/utils/columnFilterRowsFn.js +0 -131
  151. package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
  152. package/build/cjs/utils/expandRowsFn.js +0 -38
  153. package/build/cjs/utils/expandRowsFn.js.map +0 -1
  154. package/build/cjs/utils/globalFilterRowsFn.js +0 -101
  155. package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
  156. package/build/cjs/utils/groupRowsFn.js +0 -155
  157. package/build/cjs/utils/groupRowsFn.js.map +0 -1
  158. package/build/cjs/utils/paginateRowsFn.js +0 -44
  159. package/build/cjs/utils/paginateRowsFn.js.map +0 -1
  160. package/build/cjs/utils/sortRowsFn.js +0 -94
  161. package/build/cjs/utils/sortRowsFn.js.map +0 -1
  162. package/build/types/aggregationTypes.d.ts +0 -22
  163. package/build/types/core.d.ts +0 -105
  164. package/build/types/features/Headers.d.ts +0 -43
  165. package/build/types/filterTypes.d.ts +0 -50
  166. package/build/types/sortTypes.d.ts +0 -18
  167. package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
  168. package/build/types/utils/expandRowsFn.d.ts +0 -2
  169. package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
  170. package/build/types/utils/groupRowsFn.d.ts +0 -2
  171. package/build/types/utils/paginateRowsFn.d.ts +0 -2
  172. package/build/types/utils/sortRowsFn.d.ts +0 -2
  173. package/src/.DS_Store +0 -0
  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,120 @@
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
+ const sum = (columnId, _leafRows, childRows) => {
16
+ // It's faster to just add the aggregations together instead of
17
+ // process leaf nodes individually
18
+ return childRows.reduce((sum, next) => sum + (typeof next === 'number' ? next : 0), 0);
19
+ };
20
+
21
+ const min = (columnId, _leafRows, childRows) => {
22
+ let min;
23
+ childRows.forEach(row => {
24
+ const value = row.getValue(columnId);
25
+
26
+ if (value != null && (min > value || min === undefined && value >= value)) {
27
+ min = value;
28
+ }
29
+ });
30
+ return min;
31
+ };
32
+
33
+ const max = (columnId, _leafRows, childRows) => {
34
+ let max;
35
+ childRows.forEach(row => {
36
+ const value = row.getValue(columnId);
37
+
38
+ if (value != null && (max < value || max === undefined && value >= value)) {
39
+ max = value;
40
+ }
41
+ });
42
+ return max;
43
+ };
44
+
45
+ const extent = (columnId, _leafRows, childRows) => {
46
+ let min;
47
+ let max;
48
+ childRows.forEach(row => {
49
+ const value = row.getValue(columnId);
50
+
51
+ if (value != null) {
52
+ if (min === undefined) {
53
+ if (value >= value) min = max = value;
54
+ } else {
55
+ if (min > value) min = value;
56
+ if (max < value) max = value;
57
+ }
58
+ }
59
+ });
60
+ return [min, max];
61
+ };
62
+
63
+ const mean = (columnId, leafRows) => {
64
+ let count = 0;
65
+ let sum = 0;
66
+ leafRows.forEach(row => {
67
+ let value = row.getValue(columnId);
68
+
69
+ if (value != null && (value = +value) >= value) {
70
+ ++count, sum += value;
71
+ }
72
+ });
73
+ if (count) return sum / count;
74
+ return;
75
+ };
76
+
77
+ const median = (columnId, leafRows) => {
78
+ if (!leafRows.length) {
79
+ return;
80
+ }
81
+
82
+ let min = 0;
83
+ let max = 0;
84
+ leafRows.forEach(row => {
85
+ let value = row.getValue(columnId);
86
+
87
+ if (typeof value === 'number') {
88
+ min = Math.min(min, value);
89
+ max = Math.max(max, value);
90
+ }
91
+ });
92
+ return (min + max) / 2;
93
+ };
94
+
95
+ const unique = (columnId, leafRows) => {
96
+ return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());
97
+ };
98
+
99
+ const uniqueCount = (columnId, leafRows) => {
100
+ return new Set(leafRows.map(d => d.getValue(columnId))).size;
101
+ };
102
+
103
+ const count = (_columnId, leafRows) => {
104
+ return leafRows.length;
105
+ };
106
+
107
+ const aggregationFns = {
108
+ sum,
109
+ min,
110
+ max,
111
+ extent,
112
+ mean,
113
+ median,
114
+ unique,
115
+ uniqueCount,
116
+ count
117
+ };
118
+
119
+ exports.aggregationFns = aggregationFns;
120
+ //# sourceMappingURL=aggregationFns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregationFns.js","sources":["../../src/aggregationFns.ts"],"sourcesContent":["import { AggregationFn } from './features/Grouping'\n\nconst sum: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce(\n (sum: number, next: unknown) => sum + (typeof next === 'number' ? next : 0),\n 0\n )\n}\n\nconst min: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let min: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue(columnId)\n\n if (\n value != null &&\n (min! > value || (min === undefined && value >= value))\n ) {\n min = value\n }\n })\n\n return min\n}\n\nconst max: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let max: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue(columnId)\n if (\n value != null &&\n (max! < value || (max === undefined && value >= value))\n ) {\n max = value\n }\n })\n\n return max\n}\n\nconst extent: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let min: number | undefined\n let max: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue(columnId)\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value\n } else {\n if (min > value) min = value\n if (max! < value) max = value\n }\n }\n })\n\n return [min, max]\n}\n\nconst mean: AggregationFn<any> = (columnId, leafRows) => {\n let count = 0\n let sum = 0\n\n leafRows.forEach(row => {\n let value = row.getValue(columnId)\n if (value != null && (value = +value) >= value) {\n ++count, (sum += value)\n }\n })\n\n if (count) return sum / count\n\n return\n}\n\nconst median: AggregationFn<any> = (columnId, leafRows) => {\n if (!leafRows.length) {\n return\n }\n\n let min = 0\n let max = 0\n\n leafRows.forEach(row => {\n let value = row.getValue(columnId)\n if (typeof value === 'number') {\n min = Math.min(min, value)\n max = Math.max(max, value)\n }\n })\n\n return (min + max) / 2\n}\n\nconst unique: AggregationFn<any> = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values())\n}\n\nconst uniqueCount: AggregationFn<any> = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size\n}\n\nconst count: AggregationFn<any> = (_columnId, leafRows) => {\n return leafRows.length\n}\n\nexport const aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count,\n}\n\nexport type BuiltInAggregationFn = keyof typeof aggregationFns\n"],"names":["sum","columnId","_leafRows","childRows","reduce","next","min","forEach","row","value","getValue","undefined","max","extent","mean","leafRows","count","median","length","Math","unique","Array","from","Set","map","d","values","uniqueCount","size","_columnId","aggregationFns"],"mappings":"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"}
@@ -0,0 +1,40 @@
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
+ function createCell(instance, row, column, columnId) {
16
+ const cell = {
17
+ id: row.id + "_" + column.id,
18
+ row,
19
+ column,
20
+ getValue: () => row.getValue(columnId),
21
+ renderCell: () => {
22
+ return column.columnDef.cell ? instance._render(column.columnDef.cell, {
23
+ instance,
24
+ column,
25
+ row,
26
+ cell: cell,
27
+ getValue: cell.getValue
28
+ }) : null;
29
+ }
30
+ };
31
+
32
+ instance._features.forEach(feature => {
33
+ Object.assign(cell, feature.createCell == null ? void 0 : feature.createCell(cell, column, row, instance));
34
+ }, {});
35
+
36
+ return cell;
37
+ }
38
+
39
+ exports.createCell = createCell;
40
+ //# sourceMappingURL=cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cell.js","sources":["../../../src/core/cell.ts"],"sourcesContent":["import { Cell, Column, Row, TableGenerics, TableInstance } from '../types'\n\nexport type CoreCell<TGenerics extends TableGenerics> = {\n id: string\n getValue: () => TGenerics['Value']\n row: Row<TGenerics>\n column: Column<TGenerics>\n renderCell: () => string | null | TGenerics['Rendered']\n}\n\nexport function createCell<TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>,\n row: Row<TGenerics>,\n column: Column<TGenerics>,\n columnId: string\n) {\n const cell: CoreCell<TGenerics> = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderCell: () => {\n return column.columnDef.cell\n ? instance._render(column.columnDef.cell, {\n instance,\n column,\n row,\n cell: cell as Cell<TGenerics>,\n getValue: cell.getValue,\n })\n : null\n },\n }\n\n instance._features.forEach(feature => {\n Object.assign(\n cell,\n feature.createCell?.(\n cell as Cell<TGenerics>,\n column,\n row as Row<TGenerics>,\n instance\n )\n )\n }, {})\n\n return cell as Cell<TGenerics>\n}\n"],"names":["createCell","instance","row","column","columnId","cell","id","getValue","renderCell","columnDef","_render","_features","forEach","feature","Object","assign"],"mappings":";;;;;;;;;;;;;;AAUO,SAASA,UAAT,CACLC,QADK,EAELC,GAFK,EAGLC,MAHK,EAILC,QAJK,EAKL;AACA,EAAA,MAAMC,IAAyB,GAAG;AAChCC,IAAAA,EAAE,EAAKJ,GAAG,CAACI,EAAT,GAAeH,GAAAA,GAAAA,MAAM,CAACG,EADQ;AAEhCJ,IAAAA,GAFgC;AAGhCC,IAAAA,MAHgC;AAIhCI,IAAAA,QAAQ,EAAE,MAAML,GAAG,CAACK,QAAJ,CAAaH,QAAb,CAJgB;AAKhCI,IAAAA,UAAU,EAAE,MAAM;AAChB,MAAA,OAAOL,MAAM,CAACM,SAAP,CAAiBJ,IAAjB,GACHJ,QAAQ,CAACS,OAAT,CAAiBP,MAAM,CAACM,SAAP,CAAiBJ,IAAlC,EAAwC;AACtCJ,QAAAA,QADsC;AAEtCE,QAAAA,MAFsC;AAGtCD,QAAAA,GAHsC;AAItCG,QAAAA,IAAI,EAAEA,IAJgC;AAKtCE,QAAAA,QAAQ,EAAEF,IAAI,CAACE,QAAAA;AALuB,OAAxC,CADG,GAQH,IARJ,CAAA;AASD,KAAA;AAf+B,GAAlC,CAAA;;AAkBAN,EAAAA,QAAQ,CAACU,SAAT,CAAmBC,OAAnB,CAA2BC,OAAO,IAAI;AACpCC,IAAAA,MAAM,CAACC,MAAP,CACEV,IADF,EAEEQ,OAAO,CAACb,UAFV,IAAA,IAAA,GAAA,KAAA,CAAA,GAEEa,OAAO,CAACb,UAAR,CACEK,IADF,EAEEF,MAFF,EAGED,GAHF,EAIED,QAJF,CAFF,CAAA,CAAA;AASD,GAVD,EAUG,EAVH,CAAA,CAAA;;AAYA,EAAA,OAAOI,IAAP,CAAA;AACD;;;;"}
@@ -0,0 +1,88 @@
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
+
17
+ function createColumn(instance, columnDef, depth, parent) {
18
+ var _ref, _columnDef$id;
19
+
20
+ const defaultColumn = instance._getDefaultColumnDef();
21
+
22
+ columnDef = { ...defaultColumn,
23
+ ...columnDef
24
+ };
25
+ let id = (_ref = (_columnDef$id = columnDef.id) != null ? _columnDef$id : columnDef.accessorKey) != null ? _ref : typeof columnDef.header === 'string' ? columnDef.header : undefined;
26
+ let accessorFn;
27
+
28
+ if (columnDef.accessorFn) {
29
+ accessorFn = columnDef.accessorFn;
30
+ } else if (columnDef.accessorKey) {
31
+ accessorFn = originalRow => originalRow[columnDef.accessorKey];
32
+ }
33
+
34
+ if (!id) {
35
+ if (process.env.NODE_ENV !== 'production') {
36
+ throw new Error(columnDef.accessorFn ? "Columns require an id when using an accessorFn" : "Columns require an id when using a non-string header");
37
+ }
38
+
39
+ throw new Error();
40
+ }
41
+
42
+ let column = {
43
+ id: "" + id,
44
+ accessorFn,
45
+ parent: parent,
46
+ depth,
47
+ columnDef,
48
+ columnDefType: columnDef.columnDefType,
49
+ columns: [],
50
+ getFlatColumns: utils.memo(() => [true], () => {
51
+ var _column$columns;
52
+
53
+ return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];
54
+ }, {
55
+ key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',
56
+ debug: () => {
57
+ var _instance$options$deb;
58
+
59
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugColumns;
60
+ }
61
+ }),
62
+ getLeafColumns: utils.memo(() => [instance._getOrderColumnsFn()], orderColumns => {
63
+ var _column$columns2;
64
+
65
+ if ((_column$columns2 = column.columns) != null && _column$columns2.length) {
66
+ let leafColumns = column.columns.flatMap(column => column.getLeafColumns());
67
+ return orderColumns(leafColumns);
68
+ }
69
+
70
+ return [column];
71
+ }, {
72
+ key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',
73
+ debug: () => {
74
+ var _instance$options$deb2;
75
+
76
+ return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugColumns;
77
+ }
78
+ })
79
+ };
80
+ column = instance._features.reduce((obj, feature) => {
81
+ return Object.assign(obj, feature.createColumn == null ? void 0 : feature.createColumn(column, instance));
82
+ }, column); // Yes, we have to convert instance to uknown, because we know more than the compiler here.
83
+
84
+ return column;
85
+ }
86
+
87
+ exports.createColumn = createColumn;
88
+ //# sourceMappingURL=column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column.js","sources":["../../../src/core/column.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 function createColumn<TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>,\n columnDef: ColumnDef<TGenerics> & { columnDefType?: CoreColumnDefType },\n depth: number,\n parent?: Column<TGenerics>\n) {\n const defaultColumn = instance._getDefaultColumnDef()\n\n columnDef = {\n ...defaultColumn,\n ...columnDef,\n }\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 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: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => 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: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => 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"],"names":["createColumn","instance","columnDef","depth","parent","defaultColumn","_getDefaultColumnDef","id","accessorKey","header","undefined","accessorFn","originalRow","process","env","NODE_ENV","Error","column","columnDefType","columns","getFlatColumns","memo","flatMap","d","key","debug","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","_features","reduce","obj","feature","Object","assign"],"mappings":"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"}