@tanstack/table-core 9.0.0-beta.50 → 9.0.0-beta.52

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 (110) hide show
  1. package/dist/features/column-grouping/createGroupedRowModel.cjs +22 -14
  2. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  3. package/dist/features/column-grouping/createGroupedRowModel.d.cts +1 -1
  4. package/dist/features/column-grouping/createGroupedRowModel.d.ts +1 -1
  5. package/dist/features/column-grouping/createGroupedRowModel.js +21 -13
  6. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  7. package/dist/features/{aggregation → row-aggregation}/aggregationFns.cjs +93 -48
  8. package/dist/features/row-aggregation/aggregationFns.cjs.map +1 -0
  9. package/dist/features/{aggregation → row-aggregation}/aggregationFns.d.cts +2 -2
  10. package/dist/features/{aggregation → row-aggregation}/aggregationFns.d.ts +2 -2
  11. package/dist/features/{aggregation → row-aggregation}/aggregationFns.js +82 -37
  12. package/dist/features/row-aggregation/aggregationFns.js.map +1 -0
  13. package/dist/features/row-aggregation/rowAggregationFeature.cjs +36 -0
  14. package/dist/features/row-aggregation/rowAggregationFeature.cjs.map +1 -0
  15. package/dist/features/row-aggregation/rowAggregationFeature.d.cts +10 -0
  16. package/dist/features/row-aggregation/rowAggregationFeature.d.ts +10 -0
  17. package/dist/features/{aggregation/aggregationFeature.js → row-aggregation/rowAggregationFeature.js} +8 -11
  18. package/dist/features/row-aggregation/rowAggregationFeature.js.map +1 -0
  19. package/dist/features/{aggregation/aggregationFeature.types.cjs → row-aggregation/rowAggregationFeature.types.cjs} +2 -2
  20. package/dist/features/row-aggregation/rowAggregationFeature.types.cjs.map +1 -0
  21. package/dist/features/{aggregation/aggregationFeature.types.d.cts → row-aggregation/rowAggregationFeature.types.d.cts} +8 -8
  22. package/dist/features/{aggregation/aggregationFeature.types.d.ts → row-aggregation/rowAggregationFeature.types.d.ts} +8 -8
  23. package/dist/features/{aggregation/aggregationFeature.types.js → row-aggregation/rowAggregationFeature.types.js} +2 -2
  24. package/dist/features/row-aggregation/rowAggregationFeature.types.js.map +1 -0
  25. package/dist/features/{aggregation/aggregationFeature.utils.cjs → row-aggregation/rowAggregationFeature.utils.cjs} +37 -6
  26. package/dist/features/row-aggregation/rowAggregationFeature.utils.cjs.map +1 -0
  27. package/dist/features/{aggregation/aggregationFeature.utils.d.cts → row-aggregation/rowAggregationFeature.utils.d.cts} +18 -4
  28. package/dist/features/{aggregation/aggregationFeature.utils.d.ts → row-aggregation/rowAggregationFeature.utils.d.ts} +18 -4
  29. package/dist/features/{aggregation/aggregationFeature.utils.js → row-aggregation/rowAggregationFeature.utils.js} +37 -7
  30. package/dist/features/row-aggregation/rowAggregationFeature.utils.js.map +1 -0
  31. package/dist/features/stockFeatures.cjs +2 -2
  32. package/dist/features/stockFeatures.cjs.map +1 -1
  33. package/dist/features/stockFeatures.d.cts +2 -2
  34. package/dist/features/stockFeatures.d.ts +2 -2
  35. package/dist/features/stockFeatures.js +2 -2
  36. package/dist/features/stockFeatures.js.map +1 -1
  37. package/dist/index.cjs +5 -5
  38. package/dist/index.d.cts +4 -4
  39. package/dist/index.d.ts +4 -4
  40. package/dist/index.js +4 -4
  41. package/dist/static-functions.cjs +9 -8
  42. package/dist/static-functions.d.cts +2 -2
  43. package/dist/static-functions.d.ts +2 -2
  44. package/dist/static-functions.js +2 -2
  45. package/dist/types/Cell.d.cts +2 -2
  46. package/dist/types/Cell.d.ts +2 -2
  47. package/dist/types/Column.d.cts +2 -2
  48. package/dist/types/Column.d.ts +2 -2
  49. package/dist/types/ColumnDef.d.cts +2 -2
  50. package/dist/types/ColumnDef.d.ts +2 -2
  51. package/dist/types/Row.d.cts +2 -2
  52. package/dist/types/Row.d.ts +2 -2
  53. package/dist/types/RowModelFns.d.cts +2 -2
  54. package/dist/types/RowModelFns.d.ts +2 -2
  55. package/dist/types/TableFeatures.d.cts +2 -2
  56. package/dist/types/TableFeatures.d.ts +2 -2
  57. package/dist/types/TableOptions.d.cts +3 -3
  58. package/dist/types/TableOptions.d.ts +3 -3
  59. package/dist/worker/initTableWorker.cjs.map +1 -1
  60. package/dist/worker/initTableWorker.js.map +1 -1
  61. package/package.json +1 -1
  62. package/skills/aggregation/SKILL.md +6 -6
  63. package/skills/api-not-found/SKILL.md +1 -1
  64. package/skills/client-vs-server/SKILL.md +1 -1
  65. package/skills/column-faceting/SKILL.md +1 -1
  66. package/skills/column-filtering/SKILL.md +1 -1
  67. package/skills/column-ordering/SKILL.md +1 -1
  68. package/skills/column-pinning/SKILL.md +1 -1
  69. package/skills/column-resizing/SKILL.md +1 -1
  70. package/skills/column-sizing/SKILL.md +1 -1
  71. package/skills/column-visibility/SKILL.md +1 -1
  72. package/skills/core/SKILL.md +1 -1
  73. package/skills/custom-features/SKILL.md +1 -1
  74. package/skills/expanding/SKILL.md +1 -1
  75. package/skills/global-filtering/SKILL.md +1 -1
  76. package/skills/grouping/SKILL.md +1 -1
  77. package/skills/migrate-v8-to-v9/SKILL.md +8 -8
  78. package/skills/pagination/SKILL.md +1 -1
  79. package/skills/row-pinning/SKILL.md +1 -1
  80. package/skills/row-selection/SKILL.md +1 -1
  81. package/skills/sorting/SKILL.md +1 -1
  82. package/skills/table-features/SKILL.md +5 -5
  83. package/skills/typescript/SKILL.md +1 -1
  84. package/src/features/column-grouping/createGroupedRowModel.ts +49 -12
  85. package/src/features/{aggregation → row-aggregation}/aggregationFns.ts +81 -43
  86. package/src/features/{aggregation/aggregationFeature.ts → row-aggregation/rowAggregationFeature.ts} +5 -9
  87. package/src/features/{aggregation/aggregationFeature.types.ts → row-aggregation/rowAggregationFeature.types.ts} +6 -6
  88. package/src/features/{aggregation/aggregationFeature.utils.ts → row-aggregation/rowAggregationFeature.utils.ts} +61 -4
  89. package/src/features/stockFeatures.ts +3 -3
  90. package/src/index.ts +4 -4
  91. package/src/static-functions.ts +1 -1
  92. package/src/types/Cell.ts +2 -2
  93. package/src/types/Column.ts +2 -2
  94. package/src/types/ColumnDef.ts +2 -2
  95. package/src/types/Row.ts +2 -2
  96. package/src/types/RowModelFns.ts +2 -2
  97. package/src/types/TableFeatures.ts +2 -2
  98. package/src/types/TableOptions.ts +3 -3
  99. package/src/worker/initTableWorker.ts +1 -1
  100. package/dist/features/aggregation/aggregationFeature.cjs +0 -39
  101. package/dist/features/aggregation/aggregationFeature.cjs.map +0 -1
  102. package/dist/features/aggregation/aggregationFeature.d.cts +0 -10
  103. package/dist/features/aggregation/aggregationFeature.d.ts +0 -10
  104. package/dist/features/aggregation/aggregationFeature.js.map +0 -1
  105. package/dist/features/aggregation/aggregationFeature.types.cjs.map +0 -1
  106. package/dist/features/aggregation/aggregationFeature.types.js.map +0 -1
  107. package/dist/features/aggregation/aggregationFeature.utils.cjs.map +0 -1
  108. package/dist/features/aggregation/aggregationFeature.utils.js.map +0 -1
  109. package/dist/features/aggregation/aggregationFns.cjs.map +0 -1
  110. package/dist/features/aggregation/aggregationFns.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  const require_utils = require('../../utils.cjs');
2
2
 
3
- //#region src/features/aggregation/aggregationFeature.utils.ts
3
+ //#region src/features/row-aggregation/rowAggregationFeature.utils.ts
4
4
  function isAggregationFnDef(value) {
5
5
  return !!value && typeof value === "object" && "aggregate" in value;
6
6
  }
@@ -34,6 +34,34 @@ function normalizeAggregationRows(rows, maxDepth = 0) {
34
34
  for (let i = 0; i < rows.length; i++) visit(rows[i], 0);
35
35
  return result;
36
36
  }
37
+ /**
38
+ * Frontier selection for rows that are distinct nodes of a single row tree —
39
+ * the row models the table builds itself. Skips `normalizeAggregationRows`'
40
+ * duplicate-id guard (disjoint subtrees cannot revisit a row) and returns
41
+ * `rows` unchanged when no row descends, so the default `maxDepth: 0` case
42
+ * costs nothing per aggregation.
43
+ */
44
+ function normalizeUniqueAggregationRows(rows, maxDepth = 0) {
45
+ const normalizedMaxDepth = resolveMaxAggregationDepth(maxDepth);
46
+ let needsDescent = false;
47
+ if (normalizedMaxDepth > 0) {
48
+ for (let i = 0; i < rows.length; i++) if (rows[i].subRows.length) {
49
+ needsDescent = true;
50
+ break;
51
+ }
52
+ }
53
+ if (!needsDescent) return rows;
54
+ const result = [];
55
+ const visit = (row, depth) => {
56
+ if (row.subRows.length && depth < normalizedMaxDepth) {
57
+ for (let i = 0; i < row.subRows.length; i++) visit(row.subRows[i], depth + 1);
58
+ return;
59
+ }
60
+ result.push(row);
61
+ };
62
+ for (let i = 0; i < rows.length; i++) visit(rows[i], 0);
63
+ return result;
64
+ }
37
65
  function getAutoAggregationFnName(value) {
38
66
  if (typeof value === "number") return "sum";
39
67
  if (value instanceof Date && !Number.isNaN(value.getTime())) return "extent";
@@ -116,13 +144,14 @@ function getSubRowResult(subRowValue, isMultiple, id) {
116
144
  }
117
145
  /** Executes every configured aggregation over a depth-selected row frontier. */
118
146
  function aggregateColumnValue(args) {
119
- const { subRows, column, groupingRow, rows } = args;
147
+ const { subRows, column, groupingRow, rows, uniqueRows } = args;
120
148
  const internalColumn = column;
121
149
  const maxDepth = resolveMaxAggregationDepth(args.maxDepth ?? internalColumn.columnDef.maxAggregationDepth);
122
- const aggregationRows = normalizeAggregationRows(rows, maxDepth);
150
+ const aggregationRows = uniqueRows ? normalizeUniqueAggregationRows(rows, maxDepth) : normalizeAggregationRows(rows, maxDepth);
123
151
  const entries = column_getAggregationFns(internalColumn);
124
152
  const isMultiple = Array.isArray(internalColumn.columnDef.aggregationFn);
125
153
  const canMerge = !!subRows?.length && subRows.every((row) => !!row.groupingColumnId && row.groupingColumnId !== column.id);
154
+ const getValue = (row) => row.getValue(column.id);
126
155
  const execute = (entry) => {
127
156
  const definition = entry.aggregationFn;
128
157
  if (!definition) return void 0;
@@ -130,7 +159,7 @@ function aggregateColumnValue(args) {
130
159
  ...subRows ? { subRows } : {},
131
160
  column,
132
161
  columnId: column.id,
133
- getValue: (row) => row.getValue(column.id),
162
+ getValue,
134
163
  ...groupingRow ? { groupingRow } : {},
135
164
  maxDepth,
136
165
  rows: aggregationRows,
@@ -176,7 +205,8 @@ function column_getAggregationValue(column, options) {
176
205
  const value = aggregateColumnValue({
177
206
  column,
178
207
  maxDepth: resolvedMaxDepth,
179
- rows: model.rows
208
+ rows: model.rows,
209
+ uniqueRows: true
180
210
  });
181
211
  column._aggregationValueCache = {
182
212
  aggregationFnOption,
@@ -209,4 +239,5 @@ exports.column_getAggregationValue = column_getAggregationValue;
209
239
  exports.column_getAutoAggregationFn = column_getAutoAggregationFn;
210
240
  exports.formatAggregatedCellValue = formatAggregatedCellValue;
211
241
  exports.normalizeAggregationRows = normalizeAggregationRows;
212
- //# sourceMappingURL=aggregationFeature.utils.cjs.map
242
+ exports.normalizeUniqueAggregationRows = normalizeUniqueAggregationRows;
243
+ //# sourceMappingURL=rowAggregationFeature.utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rowAggregationFeature.utils.cjs","names":["makeObjectMap","hasOwn"],"sources":["../../../src/features/row-aggregation/rowAggregationFeature.utils.ts"],"sourcesContent":["import { hasOwn, makeObjectMap } from '../../utils'\nimport type { Cell } from '../../types/Cell'\nimport type { Column, Column_Internal } from '../../types/Column'\nimport type { Row } from '../../types/Row'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { CellData, RowData } from '../../types/type-utils'\nimport type {\n AggregationContext,\n AggregationFnDef,\n AggregationFnDescriptor,\n AggregationFnRef,\n AggregationValueOptions,\n ColumnAggregationValue,\n ResolvedAggregationFn,\n} from './rowAggregationFeature.types'\n\ninterface AggregationCacheEntry {\n aggregationFnOption: unknown\n dependency: unknown\n maxDepth: number\n registry: unknown\n value: unknown\n}\n\ninterface ResolvedAggregationFnsCacheEntry<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n coreRowModel: unknown\n option: unknown\n registry: unknown\n value: ReadonlyArray<ResolvedAggregationFn<TFeatures, TData>>\n}\n\nfunction isAggregationFnDef(value: unknown): value is AggregationFnDef {\n return !!value && typeof value === 'object' && 'aggregate' in value\n}\n\nfunction isAggregationFnDescriptor(\n value: unknown,\n): value is AggregationFnDescriptor<any, any> {\n return (\n !!value &&\n typeof value === 'object' &&\n 'id' in value &&\n 'aggregationFn' in value\n )\n}\n\nfunction warn(message: string) {\n if (process.env.NODE_ENV === 'development') {\n console.warn(message)\n }\n}\n\nfunction resolveMaxAggregationDepth(maxDepth: number | undefined) {\n return maxDepth === undefined || Number.isNaN(maxDepth)\n ? 0\n : Math.max(0, Math.floor(maxDepth))\n}\n\n/**\n * Selects unique rows at a maximum relative depth in encounter order.\n * Branches that end before the requested depth contribute their deepest row.\n */\nexport function normalizeAggregationRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n rows: ReadonlyArray<Row<TFeatures, TData>>,\n maxDepth = 0,\n): Array<Row<TFeatures, TData>> {\n const result: Array<Row<TFeatures, TData>> = []\n const seen = new Set<string>()\n const normalizedMaxDepth = resolveMaxAggregationDepth(maxDepth)\n\n const visit = (row: Row<TFeatures, TData>, depth: number) => {\n if (row.subRows.length && depth < normalizedMaxDepth) {\n for (let i = 0; i < row.subRows.length; i++) {\n visit(row.subRows[i]!, depth + 1)\n }\n return\n }\n\n if (!seen.has(row.id)) {\n seen.add(row.id)\n result.push(row)\n }\n }\n\n for (let i = 0; i < rows.length; i++) {\n visit(rows[i]!, 0)\n }\n\n return result\n}\n\n/**\n * Frontier selection for rows that are distinct nodes of a single row tree —\n * the row models the table builds itself. Skips `normalizeAggregationRows`'\n * duplicate-id guard (disjoint subtrees cannot revisit a row) and returns\n * `rows` unchanged when no row descends, so the default `maxDepth: 0` case\n * costs nothing per aggregation.\n */\nexport function normalizeUniqueAggregationRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n rows: ReadonlyArray<Row<TFeatures, TData>>,\n maxDepth = 0,\n): ReadonlyArray<Row<TFeatures, TData>> {\n const normalizedMaxDepth = resolveMaxAggregationDepth(maxDepth)\n\n let needsDescent = false\n if (normalizedMaxDepth > 0) {\n for (let i = 0; i < rows.length; i++) {\n if (rows[i]!.subRows.length) {\n needsDescent = true\n break\n }\n }\n }\n if (!needsDescent) return rows\n\n const result: Array<Row<TFeatures, TData>> = []\n\n const visit = (row: Row<TFeatures, TData>, depth: number) => {\n if (row.subRows.length && depth < normalizedMaxDepth) {\n for (let i = 0; i < row.subRows.length; i++) {\n visit(row.subRows[i]!, depth + 1)\n }\n return\n }\n result.push(row)\n }\n\n for (let i = 0; i < rows.length; i++) {\n visit(rows[i]!, 0)\n }\n\n return result\n}\n\nfunction getAutoAggregationFnName(\n value: unknown,\n): 'extent' | 'sum' | undefined {\n if (typeof value === 'number') {\n return 'sum'\n }\n\n if (value instanceof Date && !Number.isNaN(value.getTime())) {\n return 'extent'\n }\n\n return undefined\n}\n\n/** Resolves the `sum` or `extent` definition inferred from the first core row. */\nexport function column_getAutoAggregationFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const value = column.table.getCoreRowModel().flatRows[0]?.getValue(column.id)\n\n const name = getAutoAggregationFnName(value)\n if (!name) return undefined\n\n const aggregationFn = column.table._rowModelFns.aggregationFns?.[name]\n\n if (!aggregationFn) {\n warn(\n `aggregationFn '${name}' (auto) for column '${column.id}' is not registered`,\n )\n }\n\n return aggregationFn\n}\n\nfunction resolveAggregationFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n column: Column_Internal<TFeatures, TData, any>,\n ref: AggregationFnRef<TFeatures, TData, any, any>,\n): AggregationFnDef<TFeatures, TData, any, any> | undefined {\n if (isAggregationFnDef(ref)) return ref as any\n if (ref === 'auto') return column_getAutoAggregationFn(column)\n\n const aggregationFn =\n column.table._rowModelFns.aggregationFns?.[ref as string]\n if (!aggregationFn) {\n warn(\n `aggregationFn '${String(ref)}' for column '${column.id}' is not registered`,\n )\n }\n return aggregationFn\n}\n\n/** Resolves and validates a column's scalar or multiple aggregation option. */\nexport function column_getAggregationFns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n): ReadonlyArray<ResolvedAggregationFn<TFeatures, TData>> {\n const option = column.columnDef.aggregationFn\n const registry = column.table._rowModelFns.aggregationFns\n const coreRowModel = column.table.getCoreRowModel()\n const previous = (column as any)._resolvedAggregationFnsCache as\n | ResolvedAggregationFnsCacheEntry<TFeatures, TData>\n | undefined\n\n if (\n previous &&\n previous.option === option &&\n previous.registry === registry &&\n previous.coreRowModel === coreRowModel\n ) {\n return previous.value\n }\n\n const finish = (\n value: ReadonlyArray<ResolvedAggregationFn<TFeatures, TData>>,\n ) => {\n ;(column as any)._resolvedAggregationFnsCache = {\n coreRowModel,\n option,\n registry,\n value,\n } satisfies ResolvedAggregationFnsCacheEntry<TFeatures, TData>\n return value\n }\n\n if (option == null) return finish([])\n\n if (!Array.isArray(option)) {\n return finish([\n {\n aggregationFn: resolveAggregationFn(column, option as any),\n id: typeof option === 'string' ? option : undefined,\n },\n ])\n }\n\n const ids = makeObjectMap<number>()\n for (let i = 0; i < option.length; i++) {\n const item = option[i]\n const id =\n typeof item === 'string'\n ? item\n : isAggregationFnDescriptor(item)\n ? item.id\n : undefined\n if (id !== undefined) ids[id] = (ids[id] ?? 0) + 1\n }\n\n const resolved: Array<ResolvedAggregationFn<TFeatures, TData>> = []\n\n for (let i = 0; i < option.length; i++) {\n const item = option[i]\n const id =\n typeof item === 'string'\n ? item\n : isAggregationFnDescriptor(item)\n ? item.id\n : undefined\n\n if (id === undefined) {\n warn(\n `aggregationFn at index ${i} for column '${column.id}' needs a stable id`,\n )\n resolved.push({ aggregationFn: undefined, id: undefined })\n continue\n }\n\n if (ids[id]! > 1) {\n warn(`aggregationFn id '${id}' for column '${column.id}' is duplicated`)\n resolved.push({ aggregationFn: undefined, id })\n continue\n }\n\n const ref = isAggregationFnDescriptor(item) ? item.aggregationFn : item\n resolved.push({\n aggregationFn: resolveAggregationFn(column, ref),\n id,\n })\n }\n\n return finish(resolved)\n}\n\nfunction getSubRowResult(\n subRowValue: unknown,\n isMultiple: boolean,\n id: string | undefined,\n) {\n if (!isMultiple) return subRowValue\n if (!id || !subRowValue || typeof subRowValue !== 'object') return undefined\n return hasOwn(subRowValue, id)\n ? (subRowValue as Record<string, unknown>)[id]\n : undefined\n}\n\n/** Executes every configured aggregation over a depth-selected row frontier. */\nexport function aggregateColumnValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(args: {\n maxDepth?: number\n subRows?: ReadonlyArray<Row<TFeatures, TData>>\n column: Column<TFeatures, TData, unknown>\n groupingRow?: Row<TFeatures, TData>\n rows: ReadonlyArray<Row<TFeatures, TData>>\n /**\n * Marks `rows` as distinct nodes of a single row tree (rows the table's own\n * row models produced), enabling frontier selection without the\n * duplicate-id guard. Caller-supplied row arrays must omit this.\n */\n uniqueRows?: boolean\n}): unknown {\n const { subRows, column, groupingRow, rows, uniqueRows } = args\n const internalColumn = column as Column_Internal<TFeatures, TData, unknown>\n const maxDepth = resolveMaxAggregationDepth(\n args.maxDepth ?? internalColumn.columnDef.maxAggregationDepth,\n )\n const aggregationRows = uniqueRows\n ? normalizeUniqueAggregationRows(rows, maxDepth)\n : normalizeAggregationRows(rows, maxDepth)\n const entries = column_getAggregationFns(internalColumn)\n const isMultiple = Array.isArray(internalColumn.columnDef.aggregationFn)\n const canMerge =\n !!subRows?.length &&\n subRows.every(\n (row) =>\n !!(row as any).groupingColumnId &&\n (row as any).groupingColumnId !== column.id,\n )\n\n const getValue = (row: Row<TFeatures, TData>) => row.getValue(column.id)\n\n const execute = (entry: ResolvedAggregationFn<TFeatures, TData>) => {\n const definition = entry.aggregationFn\n if (!definition) return undefined\n\n const context: AggregationContext<TFeatures, TData, unknown> = {\n ...(subRows ? { subRows } : {}),\n column,\n columnId: column.id,\n getValue,\n ...(groupingRow ? { groupingRow } : {}),\n maxDepth,\n rows: aggregationRows,\n table: column.table as any,\n }\n\n if (canMerge && definition.merge) {\n return definition.merge({\n ...context,\n subRowResults: subRows.map((row) =>\n getSubRowResult(row.getValue(column.id), isMultiple, entry.id),\n ),\n subRows,\n })\n }\n\n return definition.aggregate(context)\n }\n\n if (!isMultiple) {\n return entries[0] ? execute(entries[0]) : undefined\n }\n\n const result = makeObjectMap<unknown>()\n for (let i = 0; i < entries.length; i++) {\n const entry = entries[i]!\n if (entry.id !== undefined) {\n result[entry.id] = execute(entry)\n }\n }\n return result\n}\n\n/** Implements `column.getAggregationValue(options?)` and its default cache. */\nexport function column_getAggregationValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n options?: AggregationValueOptions<TFeatures, TData>,\n): ColumnAggregationValue<TFeatures> {\n const rows = options?.rows\n const resolvedMaxDepth = resolveMaxAggregationDepth(\n options?.maxDepth ?? column.columnDef.maxAggregationDepth,\n )\n const providedResult = column.columnDef.getAggregationValue?.({\n column: column as any,\n maxDepth: resolvedMaxDepth,\n rows,\n table: column.table as any,\n })\n\n if (providedResult) return providedResult.value as any\n if (column.table.options.manualAggregation) return undefined\n\n if (rows !== undefined) {\n return aggregateColumnValue({\n column: column as any,\n maxDepth: resolvedMaxDepth,\n rows,\n }) as any\n }\n\n const model = column.table.getPreGroupedRowModel()\n const previous = (column as any)._aggregationValueCache as\n | AggregationCacheEntry\n | undefined\n const registry = column.table._rowModelFns.aggregationFns\n const aggregationFnOption = column.columnDef.aggregationFn\n\n if (\n previous &&\n previous.dependency === model &&\n previous.maxDepth === resolvedMaxDepth &&\n previous.registry === registry &&\n previous.aggregationFnOption === aggregationFnOption\n ) {\n return previous.value as any\n }\n\n const value = aggregateColumnValue({\n column: column as any,\n maxDepth: resolvedMaxDepth,\n rows: model.rows,\n uniqueRows: true,\n })\n ;(column as any)._aggregationValueCache = {\n aggregationFnOption,\n dependency: model,\n maxDepth: resolvedMaxDepth,\n registry,\n value,\n } satisfies AggregationCacheEntry\n return value as any\n}\n\n/** Implements `cell.getIsAggregated()` for synthetic grouped rows. */\nexport function cell_getIsAggregated<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(cell: Cell<TFeatures, TData, TValue>) {\n const groupingColumnId = (cell.row as any).groupingColumnId as\n | string\n | undefined\n if (!groupingColumnId || groupingColumnId === cell.column.id) return false\n\n const grouping = (cell.column.table as any).atoms.grouping?.get?.() as\n | Array<string>\n | undefined\n if (grouping?.includes(cell.column.id)) return false\n\n return column_getAggregationFns(cell.column as any).some(\n (entry) => !!entry.aggregationFn,\n )\n}\n\n/** Formats the default scalar or keyed aggregated-cell representation. */\nexport function formatAggregatedCellValue(\n value: unknown,\n option: unknown,\n): string | null {\n if (value == null) return null\n\n if (Array.isArray(option) && typeof value === 'object') {\n const entries = Object.keys(value)\n return entries\n .map(\n (key) => `${key}: ${String((value as Record<string, unknown>)[key])}`,\n )\n .join(', ')\n }\n\n return String(value)\n}\n"],"mappings":"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"}
@@ -1,16 +1,24 @@
1
1
  import { CellData, RowData } from "../../types/type-utils.cjs";
2
- import { AggregationFnDef, AggregationValueOptions, ColumnAggregationValue, ResolvedAggregationFn } from "./aggregationFeature.types.cjs";
2
+ import { AggregationFnDef, AggregationValueOptions, ColumnAggregationValue, ResolvedAggregationFn } from "./rowAggregationFeature.types.cjs";
3
3
  import { Cell } from "../../types/Cell.cjs";
4
4
  import { Row } from "../../types/Row.cjs";
5
5
  import { Column } from "../../types/Column.cjs";
6
6
  import { TableFeatures } from "../../types/TableFeatures.cjs";
7
7
 
8
- //#region src/features/aggregation/aggregationFeature.utils.d.ts
8
+ //#region src/features/row-aggregation/rowAggregationFeature.utils.d.ts
9
9
  /**
10
10
  * Selects unique rows at a maximum relative depth in encounter order.
11
11
  * Branches that end before the requested depth contribute their deepest row.
12
12
  */
13
13
  declare function normalizeAggregationRows<TFeatures extends TableFeatures, TData extends RowData>(rows: ReadonlyArray<Row<TFeatures, TData>>, maxDepth?: number): Array<Row<TFeatures, TData>>;
14
+ /**
15
+ * Frontier selection for rows that are distinct nodes of a single row tree —
16
+ * the row models the table builds itself. Skips `normalizeAggregationRows`'
17
+ * duplicate-id guard (disjoint subtrees cannot revisit a row) and returns
18
+ * `rows` unchanged when no row descends, so the default `maxDepth: 0` case
19
+ * costs nothing per aggregation.
20
+ */
21
+ declare function normalizeUniqueAggregationRows<TFeatures extends TableFeatures, TData extends RowData>(rows: ReadonlyArray<Row<TFeatures, TData>>, maxDepth?: number): ReadonlyArray<Row<TFeatures, TData>>;
14
22
  /** Resolves the `sum` or `extent` definition inferred from the first core row. */
15
23
  declare function column_getAutoAggregationFn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): AggregationFnDef<TFeatures, TData, any, any> | undefined;
16
24
  /** Resolves and validates a column's scalar or multiple aggregation option. */
@@ -22,6 +30,12 @@ declare function aggregateColumnValue<TFeatures extends TableFeatures, TData ext
22
30
  column: Column<TFeatures, TData, unknown>;
23
31
  groupingRow?: Row<TFeatures, TData>;
24
32
  rows: ReadonlyArray<Row<TFeatures, TData>>;
33
+ /**
34
+ * Marks `rows` as distinct nodes of a single row tree (rows the table's own
35
+ * row models produced), enabling frontier selection without the
36
+ * duplicate-id guard. Caller-supplied row arrays must omit this.
37
+ */
38
+ uniqueRows?: boolean;
25
39
  }): unknown;
26
40
  /** Implements `column.getAggregationValue(options?)` and its default cache. */
27
41
  declare function column_getAggregationValue<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>, options?: AggregationValueOptions<TFeatures, TData>): ColumnAggregationValue<TFeatures>;
@@ -30,5 +44,5 @@ declare function cell_getIsAggregated<TFeatures extends TableFeatures, TData ext
30
44
  /** Formats the default scalar or keyed aggregated-cell representation. */
31
45
  declare function formatAggregatedCellValue(value: unknown, option: unknown): string | null;
32
46
  //#endregion
33
- export { aggregateColumnValue, cell_getIsAggregated, column_getAggregationFns, column_getAggregationValue, column_getAutoAggregationFn, formatAggregatedCellValue, normalizeAggregationRows };
34
- //# sourceMappingURL=aggregationFeature.utils.d.cts.map
47
+ export { aggregateColumnValue, cell_getIsAggregated, column_getAggregationFns, column_getAggregationValue, column_getAutoAggregationFn, formatAggregatedCellValue, normalizeAggregationRows, normalizeUniqueAggregationRows };
48
+ //# sourceMappingURL=rowAggregationFeature.utils.d.cts.map
@@ -1,16 +1,24 @@
1
1
  import { CellData, RowData } from "../../types/type-utils.js";
2
- import { AggregationFnDef, AggregationValueOptions, ColumnAggregationValue, ResolvedAggregationFn } from "./aggregationFeature.types.js";
2
+ import { AggregationFnDef, AggregationValueOptions, ColumnAggregationValue, ResolvedAggregationFn } from "./rowAggregationFeature.types.js";
3
3
  import { Cell } from "../../types/Cell.js";
4
4
  import { Row } from "../../types/Row.js";
5
5
  import { Column } from "../../types/Column.js";
6
6
  import { TableFeatures } from "../../types/TableFeatures.js";
7
7
 
8
- //#region src/features/aggregation/aggregationFeature.utils.d.ts
8
+ //#region src/features/row-aggregation/rowAggregationFeature.utils.d.ts
9
9
  /**
10
10
  * Selects unique rows at a maximum relative depth in encounter order.
11
11
  * Branches that end before the requested depth contribute their deepest row.
12
12
  */
13
13
  declare function normalizeAggregationRows<TFeatures extends TableFeatures, TData extends RowData>(rows: ReadonlyArray<Row<TFeatures, TData>>, maxDepth?: number): Array<Row<TFeatures, TData>>;
14
+ /**
15
+ * Frontier selection for rows that are distinct nodes of a single row tree —
16
+ * the row models the table builds itself. Skips `normalizeAggregationRows`'
17
+ * duplicate-id guard (disjoint subtrees cannot revisit a row) and returns
18
+ * `rows` unchanged when no row descends, so the default `maxDepth: 0` case
19
+ * costs nothing per aggregation.
20
+ */
21
+ declare function normalizeUniqueAggregationRows<TFeatures extends TableFeatures, TData extends RowData>(rows: ReadonlyArray<Row<TFeatures, TData>>, maxDepth?: number): ReadonlyArray<Row<TFeatures, TData>>;
14
22
  /** Resolves the `sum` or `extent` definition inferred from the first core row. */
15
23
  declare function column_getAutoAggregationFn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): AggregationFnDef<TFeatures, TData, any, any> | undefined;
16
24
  /** Resolves and validates a column's scalar or multiple aggregation option. */
@@ -22,6 +30,12 @@ declare function aggregateColumnValue<TFeatures extends TableFeatures, TData ext
22
30
  column: Column<TFeatures, TData, unknown>;
23
31
  groupingRow?: Row<TFeatures, TData>;
24
32
  rows: ReadonlyArray<Row<TFeatures, TData>>;
33
+ /**
34
+ * Marks `rows` as distinct nodes of a single row tree (rows the table's own
35
+ * row models produced), enabling frontier selection without the
36
+ * duplicate-id guard. Caller-supplied row arrays must omit this.
37
+ */
38
+ uniqueRows?: boolean;
25
39
  }): unknown;
26
40
  /** Implements `column.getAggregationValue(options?)` and its default cache. */
27
41
  declare function column_getAggregationValue<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>, options?: AggregationValueOptions<TFeatures, TData>): ColumnAggregationValue<TFeatures>;
@@ -30,5 +44,5 @@ declare function cell_getIsAggregated<TFeatures extends TableFeatures, TData ext
30
44
  /** Formats the default scalar or keyed aggregated-cell representation. */
31
45
  declare function formatAggregatedCellValue(value: unknown, option: unknown): string | null;
32
46
  //#endregion
33
- export { aggregateColumnValue, cell_getIsAggregated, column_getAggregationFns, column_getAggregationValue, column_getAutoAggregationFn, formatAggregatedCellValue, normalizeAggregationRows };
34
- //# sourceMappingURL=aggregationFeature.utils.d.ts.map
47
+ export { aggregateColumnValue, cell_getIsAggregated, column_getAggregationFns, column_getAggregationValue, column_getAutoAggregationFn, formatAggregatedCellValue, normalizeAggregationRows, normalizeUniqueAggregationRows };
48
+ //# sourceMappingURL=rowAggregationFeature.utils.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import { hasOwn, makeObjectMap } from "../../utils.js";
2
2
 
3
- //#region src/features/aggregation/aggregationFeature.utils.ts
3
+ //#region src/features/row-aggregation/rowAggregationFeature.utils.ts
4
4
  function isAggregationFnDef(value) {
5
5
  return !!value && typeof value === "object" && "aggregate" in value;
6
6
  }
@@ -34,6 +34,34 @@ function normalizeAggregationRows(rows, maxDepth = 0) {
34
34
  for (let i = 0; i < rows.length; i++) visit(rows[i], 0);
35
35
  return result;
36
36
  }
37
+ /**
38
+ * Frontier selection for rows that are distinct nodes of a single row tree —
39
+ * the row models the table builds itself. Skips `normalizeAggregationRows`'
40
+ * duplicate-id guard (disjoint subtrees cannot revisit a row) and returns
41
+ * `rows` unchanged when no row descends, so the default `maxDepth: 0` case
42
+ * costs nothing per aggregation.
43
+ */
44
+ function normalizeUniqueAggregationRows(rows, maxDepth = 0) {
45
+ const normalizedMaxDepth = resolveMaxAggregationDepth(maxDepth);
46
+ let needsDescent = false;
47
+ if (normalizedMaxDepth > 0) {
48
+ for (let i = 0; i < rows.length; i++) if (rows[i].subRows.length) {
49
+ needsDescent = true;
50
+ break;
51
+ }
52
+ }
53
+ if (!needsDescent) return rows;
54
+ const result = [];
55
+ const visit = (row, depth) => {
56
+ if (row.subRows.length && depth < normalizedMaxDepth) {
57
+ for (let i = 0; i < row.subRows.length; i++) visit(row.subRows[i], depth + 1);
58
+ return;
59
+ }
60
+ result.push(row);
61
+ };
62
+ for (let i = 0; i < rows.length; i++) visit(rows[i], 0);
63
+ return result;
64
+ }
37
65
  function getAutoAggregationFnName(value) {
38
66
  if (typeof value === "number") return "sum";
39
67
  if (value instanceof Date && !Number.isNaN(value.getTime())) return "extent";
@@ -116,13 +144,14 @@ function getSubRowResult(subRowValue, isMultiple, id) {
116
144
  }
117
145
  /** Executes every configured aggregation over a depth-selected row frontier. */
118
146
  function aggregateColumnValue(args) {
119
- const { subRows, column, groupingRow, rows } = args;
147
+ const { subRows, column, groupingRow, rows, uniqueRows } = args;
120
148
  const internalColumn = column;
121
149
  const maxDepth = resolveMaxAggregationDepth(args.maxDepth ?? internalColumn.columnDef.maxAggregationDepth);
122
- const aggregationRows = normalizeAggregationRows(rows, maxDepth);
150
+ const aggregationRows = uniqueRows ? normalizeUniqueAggregationRows(rows, maxDepth) : normalizeAggregationRows(rows, maxDepth);
123
151
  const entries = column_getAggregationFns(internalColumn);
124
152
  const isMultiple = Array.isArray(internalColumn.columnDef.aggregationFn);
125
153
  const canMerge = !!subRows?.length && subRows.every((row) => !!row.groupingColumnId && row.groupingColumnId !== column.id);
154
+ const getValue = (row) => row.getValue(column.id);
126
155
  const execute = (entry) => {
127
156
  const definition = entry.aggregationFn;
128
157
  if (!definition) return void 0;
@@ -130,7 +159,7 @@ function aggregateColumnValue(args) {
130
159
  ...subRows ? { subRows } : {},
131
160
  column,
132
161
  columnId: column.id,
133
- getValue: (row) => row.getValue(column.id),
162
+ getValue,
134
163
  ...groupingRow ? { groupingRow } : {},
135
164
  maxDepth,
136
165
  rows: aggregationRows,
@@ -176,7 +205,8 @@ function column_getAggregationValue(column, options) {
176
205
  const value = aggregateColumnValue({
177
206
  column,
178
207
  maxDepth: resolvedMaxDepth,
179
- rows: model.rows
208
+ rows: model.rows,
209
+ uniqueRows: true
180
210
  });
181
211
  column._aggregationValueCache = {
182
212
  aggregationFnOption,
@@ -202,5 +232,5 @@ function formatAggregatedCellValue(value, option) {
202
232
  }
203
233
 
204
234
  //#endregion
205
- export { aggregateColumnValue, cell_getIsAggregated, column_getAggregationFns, column_getAggregationValue, column_getAutoAggregationFn, formatAggregatedCellValue, normalizeAggregationRows };
206
- //# sourceMappingURL=aggregationFeature.utils.js.map
235
+ export { aggregateColumnValue, cell_getIsAggregated, column_getAggregationFns, column_getAggregationValue, column_getAutoAggregationFn, formatAggregatedCellValue, normalizeAggregationRows, normalizeUniqueAggregationRows };
236
+ //# sourceMappingURL=rowAggregationFeature.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rowAggregationFeature.utils.js","names":[],"sources":["../../../src/features/row-aggregation/rowAggregationFeature.utils.ts"],"sourcesContent":["import { hasOwn, makeObjectMap } from '../../utils'\nimport type { Cell } from '../../types/Cell'\nimport type { Column, Column_Internal } from '../../types/Column'\nimport type { Row } from '../../types/Row'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { CellData, RowData } from '../../types/type-utils'\nimport type {\n AggregationContext,\n AggregationFnDef,\n AggregationFnDescriptor,\n AggregationFnRef,\n AggregationValueOptions,\n ColumnAggregationValue,\n ResolvedAggregationFn,\n} from './rowAggregationFeature.types'\n\ninterface AggregationCacheEntry {\n aggregationFnOption: unknown\n dependency: unknown\n maxDepth: number\n registry: unknown\n value: unknown\n}\n\ninterface ResolvedAggregationFnsCacheEntry<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n coreRowModel: unknown\n option: unknown\n registry: unknown\n value: ReadonlyArray<ResolvedAggregationFn<TFeatures, TData>>\n}\n\nfunction isAggregationFnDef(value: unknown): value is AggregationFnDef {\n return !!value && typeof value === 'object' && 'aggregate' in value\n}\n\nfunction isAggregationFnDescriptor(\n value: unknown,\n): value is AggregationFnDescriptor<any, any> {\n return (\n !!value &&\n typeof value === 'object' &&\n 'id' in value &&\n 'aggregationFn' in value\n )\n}\n\nfunction warn(message: string) {\n if (process.env.NODE_ENV === 'development') {\n console.warn(message)\n }\n}\n\nfunction resolveMaxAggregationDepth(maxDepth: number | undefined) {\n return maxDepth === undefined || Number.isNaN(maxDepth)\n ? 0\n : Math.max(0, Math.floor(maxDepth))\n}\n\n/**\n * Selects unique rows at a maximum relative depth in encounter order.\n * Branches that end before the requested depth contribute their deepest row.\n */\nexport function normalizeAggregationRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n rows: ReadonlyArray<Row<TFeatures, TData>>,\n maxDepth = 0,\n): Array<Row<TFeatures, TData>> {\n const result: Array<Row<TFeatures, TData>> = []\n const seen = new Set<string>()\n const normalizedMaxDepth = resolveMaxAggregationDepth(maxDepth)\n\n const visit = (row: Row<TFeatures, TData>, depth: number) => {\n if (row.subRows.length && depth < normalizedMaxDepth) {\n for (let i = 0; i < row.subRows.length; i++) {\n visit(row.subRows[i]!, depth + 1)\n }\n return\n }\n\n if (!seen.has(row.id)) {\n seen.add(row.id)\n result.push(row)\n }\n }\n\n for (let i = 0; i < rows.length; i++) {\n visit(rows[i]!, 0)\n }\n\n return result\n}\n\n/**\n * Frontier selection for rows that are distinct nodes of a single row tree —\n * the row models the table builds itself. Skips `normalizeAggregationRows`'\n * duplicate-id guard (disjoint subtrees cannot revisit a row) and returns\n * `rows` unchanged when no row descends, so the default `maxDepth: 0` case\n * costs nothing per aggregation.\n */\nexport function normalizeUniqueAggregationRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n rows: ReadonlyArray<Row<TFeatures, TData>>,\n maxDepth = 0,\n): ReadonlyArray<Row<TFeatures, TData>> {\n const normalizedMaxDepth = resolveMaxAggregationDepth(maxDepth)\n\n let needsDescent = false\n if (normalizedMaxDepth > 0) {\n for (let i = 0; i < rows.length; i++) {\n if (rows[i]!.subRows.length) {\n needsDescent = true\n break\n }\n }\n }\n if (!needsDescent) return rows\n\n const result: Array<Row<TFeatures, TData>> = []\n\n const visit = (row: Row<TFeatures, TData>, depth: number) => {\n if (row.subRows.length && depth < normalizedMaxDepth) {\n for (let i = 0; i < row.subRows.length; i++) {\n visit(row.subRows[i]!, depth + 1)\n }\n return\n }\n result.push(row)\n }\n\n for (let i = 0; i < rows.length; i++) {\n visit(rows[i]!, 0)\n }\n\n return result\n}\n\nfunction getAutoAggregationFnName(\n value: unknown,\n): 'extent' | 'sum' | undefined {\n if (typeof value === 'number') {\n return 'sum'\n }\n\n if (value instanceof Date && !Number.isNaN(value.getTime())) {\n return 'extent'\n }\n\n return undefined\n}\n\n/** Resolves the `sum` or `extent` definition inferred from the first core row. */\nexport function column_getAutoAggregationFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const value = column.table.getCoreRowModel().flatRows[0]?.getValue(column.id)\n\n const name = getAutoAggregationFnName(value)\n if (!name) return undefined\n\n const aggregationFn = column.table._rowModelFns.aggregationFns?.[name]\n\n if (!aggregationFn) {\n warn(\n `aggregationFn '${name}' (auto) for column '${column.id}' is not registered`,\n )\n }\n\n return aggregationFn\n}\n\nfunction resolveAggregationFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n column: Column_Internal<TFeatures, TData, any>,\n ref: AggregationFnRef<TFeatures, TData, any, any>,\n): AggregationFnDef<TFeatures, TData, any, any> | undefined {\n if (isAggregationFnDef(ref)) return ref as any\n if (ref === 'auto') return column_getAutoAggregationFn(column)\n\n const aggregationFn =\n column.table._rowModelFns.aggregationFns?.[ref as string]\n if (!aggregationFn) {\n warn(\n `aggregationFn '${String(ref)}' for column '${column.id}' is not registered`,\n )\n }\n return aggregationFn\n}\n\n/** Resolves and validates a column's scalar or multiple aggregation option. */\nexport function column_getAggregationFns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n): ReadonlyArray<ResolvedAggregationFn<TFeatures, TData>> {\n const option = column.columnDef.aggregationFn\n const registry = column.table._rowModelFns.aggregationFns\n const coreRowModel = column.table.getCoreRowModel()\n const previous = (column as any)._resolvedAggregationFnsCache as\n | ResolvedAggregationFnsCacheEntry<TFeatures, TData>\n | undefined\n\n if (\n previous &&\n previous.option === option &&\n previous.registry === registry &&\n previous.coreRowModel === coreRowModel\n ) {\n return previous.value\n }\n\n const finish = (\n value: ReadonlyArray<ResolvedAggregationFn<TFeatures, TData>>,\n ) => {\n ;(column as any)._resolvedAggregationFnsCache = {\n coreRowModel,\n option,\n registry,\n value,\n } satisfies ResolvedAggregationFnsCacheEntry<TFeatures, TData>\n return value\n }\n\n if (option == null) return finish([])\n\n if (!Array.isArray(option)) {\n return finish([\n {\n aggregationFn: resolveAggregationFn(column, option as any),\n id: typeof option === 'string' ? option : undefined,\n },\n ])\n }\n\n const ids = makeObjectMap<number>()\n for (let i = 0; i < option.length; i++) {\n const item = option[i]\n const id =\n typeof item === 'string'\n ? item\n : isAggregationFnDescriptor(item)\n ? item.id\n : undefined\n if (id !== undefined) ids[id] = (ids[id] ?? 0) + 1\n }\n\n const resolved: Array<ResolvedAggregationFn<TFeatures, TData>> = []\n\n for (let i = 0; i < option.length; i++) {\n const item = option[i]\n const id =\n typeof item === 'string'\n ? item\n : isAggregationFnDescriptor(item)\n ? item.id\n : undefined\n\n if (id === undefined) {\n warn(\n `aggregationFn at index ${i} for column '${column.id}' needs a stable id`,\n )\n resolved.push({ aggregationFn: undefined, id: undefined })\n continue\n }\n\n if (ids[id]! > 1) {\n warn(`aggregationFn id '${id}' for column '${column.id}' is duplicated`)\n resolved.push({ aggregationFn: undefined, id })\n continue\n }\n\n const ref = isAggregationFnDescriptor(item) ? item.aggregationFn : item\n resolved.push({\n aggregationFn: resolveAggregationFn(column, ref),\n id,\n })\n }\n\n return finish(resolved)\n}\n\nfunction getSubRowResult(\n subRowValue: unknown,\n isMultiple: boolean,\n id: string | undefined,\n) {\n if (!isMultiple) return subRowValue\n if (!id || !subRowValue || typeof subRowValue !== 'object') return undefined\n return hasOwn(subRowValue, id)\n ? (subRowValue as Record<string, unknown>)[id]\n : undefined\n}\n\n/** Executes every configured aggregation over a depth-selected row frontier. */\nexport function aggregateColumnValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(args: {\n maxDepth?: number\n subRows?: ReadonlyArray<Row<TFeatures, TData>>\n column: Column<TFeatures, TData, unknown>\n groupingRow?: Row<TFeatures, TData>\n rows: ReadonlyArray<Row<TFeatures, TData>>\n /**\n * Marks `rows` as distinct nodes of a single row tree (rows the table's own\n * row models produced), enabling frontier selection without the\n * duplicate-id guard. Caller-supplied row arrays must omit this.\n */\n uniqueRows?: boolean\n}): unknown {\n const { subRows, column, groupingRow, rows, uniqueRows } = args\n const internalColumn = column as Column_Internal<TFeatures, TData, unknown>\n const maxDepth = resolveMaxAggregationDepth(\n args.maxDepth ?? internalColumn.columnDef.maxAggregationDepth,\n )\n const aggregationRows = uniqueRows\n ? normalizeUniqueAggregationRows(rows, maxDepth)\n : normalizeAggregationRows(rows, maxDepth)\n const entries = column_getAggregationFns(internalColumn)\n const isMultiple = Array.isArray(internalColumn.columnDef.aggregationFn)\n const canMerge =\n !!subRows?.length &&\n subRows.every(\n (row) =>\n !!(row as any).groupingColumnId &&\n (row as any).groupingColumnId !== column.id,\n )\n\n const getValue = (row: Row<TFeatures, TData>) => row.getValue(column.id)\n\n const execute = (entry: ResolvedAggregationFn<TFeatures, TData>) => {\n const definition = entry.aggregationFn\n if (!definition) return undefined\n\n const context: AggregationContext<TFeatures, TData, unknown> = {\n ...(subRows ? { subRows } : {}),\n column,\n columnId: column.id,\n getValue,\n ...(groupingRow ? { groupingRow } : {}),\n maxDepth,\n rows: aggregationRows,\n table: column.table as any,\n }\n\n if (canMerge && definition.merge) {\n return definition.merge({\n ...context,\n subRowResults: subRows.map((row) =>\n getSubRowResult(row.getValue(column.id), isMultiple, entry.id),\n ),\n subRows,\n })\n }\n\n return definition.aggregate(context)\n }\n\n if (!isMultiple) {\n return entries[0] ? execute(entries[0]) : undefined\n }\n\n const result = makeObjectMap<unknown>()\n for (let i = 0; i < entries.length; i++) {\n const entry = entries[i]!\n if (entry.id !== undefined) {\n result[entry.id] = execute(entry)\n }\n }\n return result\n}\n\n/** Implements `column.getAggregationValue(options?)` and its default cache. */\nexport function column_getAggregationValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n options?: AggregationValueOptions<TFeatures, TData>,\n): ColumnAggregationValue<TFeatures> {\n const rows = options?.rows\n const resolvedMaxDepth = resolveMaxAggregationDepth(\n options?.maxDepth ?? column.columnDef.maxAggregationDepth,\n )\n const providedResult = column.columnDef.getAggregationValue?.({\n column: column as any,\n maxDepth: resolvedMaxDepth,\n rows,\n table: column.table as any,\n })\n\n if (providedResult) return providedResult.value as any\n if (column.table.options.manualAggregation) return undefined\n\n if (rows !== undefined) {\n return aggregateColumnValue({\n column: column as any,\n maxDepth: resolvedMaxDepth,\n rows,\n }) as any\n }\n\n const model = column.table.getPreGroupedRowModel()\n const previous = (column as any)._aggregationValueCache as\n | AggregationCacheEntry\n | undefined\n const registry = column.table._rowModelFns.aggregationFns\n const aggregationFnOption = column.columnDef.aggregationFn\n\n if (\n previous &&\n previous.dependency === model &&\n previous.maxDepth === resolvedMaxDepth &&\n previous.registry === registry &&\n previous.aggregationFnOption === aggregationFnOption\n ) {\n return previous.value as any\n }\n\n const value = aggregateColumnValue({\n column: column as any,\n maxDepth: resolvedMaxDepth,\n rows: model.rows,\n uniqueRows: true,\n })\n ;(column as any)._aggregationValueCache = {\n aggregationFnOption,\n dependency: model,\n maxDepth: resolvedMaxDepth,\n registry,\n value,\n } satisfies AggregationCacheEntry\n return value as any\n}\n\n/** Implements `cell.getIsAggregated()` for synthetic grouped rows. */\nexport function cell_getIsAggregated<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(cell: Cell<TFeatures, TData, TValue>) {\n const groupingColumnId = (cell.row as any).groupingColumnId as\n | string\n | undefined\n if (!groupingColumnId || groupingColumnId === cell.column.id) return false\n\n const grouping = (cell.column.table as any).atoms.grouping?.get?.() as\n | Array<string>\n | undefined\n if (grouping?.includes(cell.column.id)) return false\n\n return column_getAggregationFns(cell.column as any).some(\n (entry) => !!entry.aggregationFn,\n )\n}\n\n/** Formats the default scalar or keyed aggregated-cell representation. */\nexport function formatAggregatedCellValue(\n value: unknown,\n option: unknown,\n): string | null {\n if (value == null) return null\n\n if (Array.isArray(option) && typeof value === 'object') {\n const entries = Object.keys(value)\n return entries\n .map(\n (key) => `${key}: ${String((value as Record<string, unknown>)[key])}`,\n )\n .join(', ')\n }\n\n return String(value)\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  const require_columnFacetingFeature = require('./column-faceting/columnFacetingFeature.cjs');
2
- const require_aggregationFeature = require('./aggregation/aggregationFeature.cjs');
2
+ const require_rowAggregationFeature = require('./row-aggregation/rowAggregationFeature.cjs');
3
3
  const require_columnFilteringFeature = require('./column-filtering/columnFilteringFeature.cjs');
4
4
  const require_columnGroupingFeature = require('./column-grouping/columnGroupingFeature.cjs');
5
5
  const require_columnOrderingFeature = require('./column-ordering/columnOrderingFeature.cjs');
@@ -21,7 +21,7 @@ const require_rowSortingFeature = require('./row-sorting/rowSortingFeature.cjs')
21
21
  * Use individual feature exports for tree-shaking, or this aggregate when a table should include every built-in feature.
22
22
  */
23
23
  const stockFeatures = {
24
- aggregationFeature: require_aggregationFeature.aggregationFeature,
24
+ rowAggregationFeature: require_rowAggregationFeature.rowAggregationFeature,
25
25
  columnFacetingFeature: require_columnFacetingFeature.columnFacetingFeature,
26
26
  columnFilteringFeature: require_columnFilteringFeature.columnFilteringFeature,
27
27
  columnGroupingFeature: require_columnGroupingFeature.columnGroupingFeature,
@@ -1 +1 @@
1
- {"version":3,"file":"stockFeatures.cjs","names":[],"sources":["../../src/features/stockFeatures.ts"],"sourcesContent":["import { columnFacetingFeature } from './column-faceting/columnFacetingFeature'\nimport { aggregationFeature } from './aggregation/aggregationFeature'\nimport { columnFilteringFeature } from './column-filtering/columnFilteringFeature'\nimport { columnGroupingFeature } from './column-grouping/columnGroupingFeature'\nimport { columnOrderingFeature } from './column-ordering/columnOrderingFeature'\nimport { columnPinningFeature } from './column-pinning/columnPinningFeature'\nimport { columnResizingFeature } from './column-resizing/columnResizingFeature'\nimport { columnSizingFeature } from './column-sizing/columnSizingFeature'\nimport { columnVisibilityFeature } from './column-visibility/columnVisibilityFeature'\nimport { globalFilteringFeature } from './global-filtering/globalFilteringFeature'\nimport { rowExpandingFeature } from './row-expanding/rowExpandingFeature'\nimport { rowPaginationFeature } from './row-pagination/rowPaginationFeature'\nimport { rowPinningFeature } from './row-pinning/rowPinningFeature'\nimport { rowSelectionFeature } from './row-selection/rowSelectionFeature'\nimport { rowSortingFeature } from './row-sorting/rowSortingFeature'\n\nexport interface StockFeatures {\n aggregationFeature: typeof aggregationFeature\n columnFacetingFeature: typeof columnFacetingFeature\n columnFilteringFeature: typeof columnFilteringFeature\n columnGroupingFeature: typeof columnGroupingFeature\n columnOrderingFeature: typeof columnOrderingFeature\n columnPinningFeature: typeof columnPinningFeature\n columnResizingFeature: typeof columnResizingFeature\n columnSizingFeature: typeof columnSizingFeature\n columnVisibilityFeature: typeof columnVisibilityFeature\n globalFilteringFeature: typeof globalFilteringFeature\n rowExpandingFeature: typeof rowExpandingFeature\n rowPaginationFeature: typeof rowPaginationFeature\n rowPinningFeature: typeof rowPinningFeature\n rowSelectionFeature: typeof rowSelectionFeature\n rowSortingFeature: typeof rowSortingFeature\n}\n\n/**\n * The complete set of stock optional table features.\n *\n * Use individual feature exports for tree-shaking, or this aggregate when a table should include every built-in feature.\n */\nexport const stockFeatures: StockFeatures = {\n aggregationFeature,\n columnFacetingFeature,\n columnFilteringFeature,\n columnGroupingFeature,\n columnOrderingFeature,\n columnPinningFeature,\n columnResizingFeature,\n columnSizingFeature,\n columnVisibilityFeature,\n globalFilteringFeature,\n rowExpandingFeature,\n rowPaginationFeature,\n rowPinningFeature,\n rowSelectionFeature,\n rowSortingFeature,\n} as const\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAa,gBAA+B;CAC1C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF"}
1
+ {"version":3,"file":"stockFeatures.cjs","names":[],"sources":["../../src/features/stockFeatures.ts"],"sourcesContent":["import { columnFacetingFeature } from './column-faceting/columnFacetingFeature'\nimport { rowAggregationFeature } from './row-aggregation/rowAggregationFeature'\nimport { columnFilteringFeature } from './column-filtering/columnFilteringFeature'\nimport { columnGroupingFeature } from './column-grouping/columnGroupingFeature'\nimport { columnOrderingFeature } from './column-ordering/columnOrderingFeature'\nimport { columnPinningFeature } from './column-pinning/columnPinningFeature'\nimport { columnResizingFeature } from './column-resizing/columnResizingFeature'\nimport { columnSizingFeature } from './column-sizing/columnSizingFeature'\nimport { columnVisibilityFeature } from './column-visibility/columnVisibilityFeature'\nimport { globalFilteringFeature } from './global-filtering/globalFilteringFeature'\nimport { rowExpandingFeature } from './row-expanding/rowExpandingFeature'\nimport { rowPaginationFeature } from './row-pagination/rowPaginationFeature'\nimport { rowPinningFeature } from './row-pinning/rowPinningFeature'\nimport { rowSelectionFeature } from './row-selection/rowSelectionFeature'\nimport { rowSortingFeature } from './row-sorting/rowSortingFeature'\n\nexport interface StockFeatures {\n rowAggregationFeature: typeof rowAggregationFeature\n columnFacetingFeature: typeof columnFacetingFeature\n columnFilteringFeature: typeof columnFilteringFeature\n columnGroupingFeature: typeof columnGroupingFeature\n columnOrderingFeature: typeof columnOrderingFeature\n columnPinningFeature: typeof columnPinningFeature\n columnResizingFeature: typeof columnResizingFeature\n columnSizingFeature: typeof columnSizingFeature\n columnVisibilityFeature: typeof columnVisibilityFeature\n globalFilteringFeature: typeof globalFilteringFeature\n rowExpandingFeature: typeof rowExpandingFeature\n rowPaginationFeature: typeof rowPaginationFeature\n rowPinningFeature: typeof rowPinningFeature\n rowSelectionFeature: typeof rowSelectionFeature\n rowSortingFeature: typeof rowSortingFeature\n}\n\n/**\n * The complete set of stock optional table features.\n *\n * Use individual feature exports for tree-shaking, or this aggregate when a table should include every built-in feature.\n */\nexport const stockFeatures: StockFeatures = {\n rowAggregationFeature,\n columnFacetingFeature,\n columnFilteringFeature,\n columnGroupingFeature,\n columnOrderingFeature,\n columnPinningFeature,\n columnResizingFeature,\n columnSizingFeature,\n columnVisibilityFeature,\n globalFilteringFeature,\n rowExpandingFeature,\n rowPaginationFeature,\n rowPinningFeature,\n rowSelectionFeature,\n rowSortingFeature,\n} as const\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAa,gBAA+B;CAC1C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF"}
@@ -1,5 +1,5 @@
1
1
  import { columnFacetingFeature } from "./column-faceting/columnFacetingFeature.cjs";
2
- import { aggregationFeature } from "./aggregation/aggregationFeature.cjs";
2
+ import { rowAggregationFeature } from "./row-aggregation/rowAggregationFeature.cjs";
3
3
  import { columnFilteringFeature } from "./column-filtering/columnFilteringFeature.cjs";
4
4
  import { columnGroupingFeature } from "./column-grouping/columnGroupingFeature.cjs";
5
5
  import { columnOrderingFeature } from "./column-ordering/columnOrderingFeature.cjs";
@@ -16,7 +16,7 @@ import { rowSortingFeature } from "./row-sorting/rowSortingFeature.cjs";
16
16
 
17
17
  //#region src/features/stockFeatures.d.ts
18
18
  interface StockFeatures {
19
- aggregationFeature: typeof aggregationFeature;
19
+ rowAggregationFeature: typeof rowAggregationFeature;
20
20
  columnFacetingFeature: typeof columnFacetingFeature;
21
21
  columnFilteringFeature: typeof columnFilteringFeature;
22
22
  columnGroupingFeature: typeof columnGroupingFeature;
@@ -1,5 +1,5 @@
1
1
  import { columnFacetingFeature } from "./column-faceting/columnFacetingFeature.js";
2
- import { aggregationFeature } from "./aggregation/aggregationFeature.js";
2
+ import { rowAggregationFeature } from "./row-aggregation/rowAggregationFeature.js";
3
3
  import { columnFilteringFeature } from "./column-filtering/columnFilteringFeature.js";
4
4
  import { columnGroupingFeature } from "./column-grouping/columnGroupingFeature.js";
5
5
  import { columnOrderingFeature } from "./column-ordering/columnOrderingFeature.js";
@@ -16,7 +16,7 @@ import { rowSortingFeature } from "./row-sorting/rowSortingFeature.js";
16
16
 
17
17
  //#region src/features/stockFeatures.d.ts
18
18
  interface StockFeatures {
19
- aggregationFeature: typeof aggregationFeature;
19
+ rowAggregationFeature: typeof rowAggregationFeature;
20
20
  columnFacetingFeature: typeof columnFacetingFeature;
21
21
  columnFilteringFeature: typeof columnFilteringFeature;
22
22
  columnGroupingFeature: typeof columnGroupingFeature;
@@ -1,5 +1,5 @@
1
1
  import { columnFacetingFeature } from "./column-faceting/columnFacetingFeature.js";
2
- import { aggregationFeature } from "./aggregation/aggregationFeature.js";
2
+ import { rowAggregationFeature } from "./row-aggregation/rowAggregationFeature.js";
3
3
  import { columnFilteringFeature } from "./column-filtering/columnFilteringFeature.js";
4
4
  import { columnGroupingFeature } from "./column-grouping/columnGroupingFeature.js";
5
5
  import { columnOrderingFeature } from "./column-ordering/columnOrderingFeature.js";
@@ -21,7 +21,7 @@ import { rowSortingFeature } from "./row-sorting/rowSortingFeature.js";
21
21
  * Use individual feature exports for tree-shaking, or this aggregate when a table should include every built-in feature.
22
22
  */
23
23
  const stockFeatures = {
24
- aggregationFeature,
24
+ rowAggregationFeature,
25
25
  columnFacetingFeature,
26
26
  columnFilteringFeature,
27
27
  columnGroupingFeature,
@@ -1 +1 @@
1
- {"version":3,"file":"stockFeatures.js","names":[],"sources":["../../src/features/stockFeatures.ts"],"sourcesContent":["import { columnFacetingFeature } from './column-faceting/columnFacetingFeature'\nimport { aggregationFeature } from './aggregation/aggregationFeature'\nimport { columnFilteringFeature } from './column-filtering/columnFilteringFeature'\nimport { columnGroupingFeature } from './column-grouping/columnGroupingFeature'\nimport { columnOrderingFeature } from './column-ordering/columnOrderingFeature'\nimport { columnPinningFeature } from './column-pinning/columnPinningFeature'\nimport { columnResizingFeature } from './column-resizing/columnResizingFeature'\nimport { columnSizingFeature } from './column-sizing/columnSizingFeature'\nimport { columnVisibilityFeature } from './column-visibility/columnVisibilityFeature'\nimport { globalFilteringFeature } from './global-filtering/globalFilteringFeature'\nimport { rowExpandingFeature } from './row-expanding/rowExpandingFeature'\nimport { rowPaginationFeature } from './row-pagination/rowPaginationFeature'\nimport { rowPinningFeature } from './row-pinning/rowPinningFeature'\nimport { rowSelectionFeature } from './row-selection/rowSelectionFeature'\nimport { rowSortingFeature } from './row-sorting/rowSortingFeature'\n\nexport interface StockFeatures {\n aggregationFeature: typeof aggregationFeature\n columnFacetingFeature: typeof columnFacetingFeature\n columnFilteringFeature: typeof columnFilteringFeature\n columnGroupingFeature: typeof columnGroupingFeature\n columnOrderingFeature: typeof columnOrderingFeature\n columnPinningFeature: typeof columnPinningFeature\n columnResizingFeature: typeof columnResizingFeature\n columnSizingFeature: typeof columnSizingFeature\n columnVisibilityFeature: typeof columnVisibilityFeature\n globalFilteringFeature: typeof globalFilteringFeature\n rowExpandingFeature: typeof rowExpandingFeature\n rowPaginationFeature: typeof rowPaginationFeature\n rowPinningFeature: typeof rowPinningFeature\n rowSelectionFeature: typeof rowSelectionFeature\n rowSortingFeature: typeof rowSortingFeature\n}\n\n/**\n * The complete set of stock optional table features.\n *\n * Use individual feature exports for tree-shaking, or this aggregate when a table should include every built-in feature.\n */\nexport const stockFeatures: StockFeatures = {\n aggregationFeature,\n columnFacetingFeature,\n columnFilteringFeature,\n columnGroupingFeature,\n columnOrderingFeature,\n columnPinningFeature,\n columnResizingFeature,\n columnSizingFeature,\n columnVisibilityFeature,\n globalFilteringFeature,\n rowExpandingFeature,\n rowPaginationFeature,\n rowPinningFeature,\n rowSelectionFeature,\n rowSortingFeature,\n} as const\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAa,gBAA+B;CAC1C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF"}
1
+ {"version":3,"file":"stockFeatures.js","names":[],"sources":["../../src/features/stockFeatures.ts"],"sourcesContent":["import { columnFacetingFeature } from './column-faceting/columnFacetingFeature'\nimport { rowAggregationFeature } from './row-aggregation/rowAggregationFeature'\nimport { columnFilteringFeature } from './column-filtering/columnFilteringFeature'\nimport { columnGroupingFeature } from './column-grouping/columnGroupingFeature'\nimport { columnOrderingFeature } from './column-ordering/columnOrderingFeature'\nimport { columnPinningFeature } from './column-pinning/columnPinningFeature'\nimport { columnResizingFeature } from './column-resizing/columnResizingFeature'\nimport { columnSizingFeature } from './column-sizing/columnSizingFeature'\nimport { columnVisibilityFeature } from './column-visibility/columnVisibilityFeature'\nimport { globalFilteringFeature } from './global-filtering/globalFilteringFeature'\nimport { rowExpandingFeature } from './row-expanding/rowExpandingFeature'\nimport { rowPaginationFeature } from './row-pagination/rowPaginationFeature'\nimport { rowPinningFeature } from './row-pinning/rowPinningFeature'\nimport { rowSelectionFeature } from './row-selection/rowSelectionFeature'\nimport { rowSortingFeature } from './row-sorting/rowSortingFeature'\n\nexport interface StockFeatures {\n rowAggregationFeature: typeof rowAggregationFeature\n columnFacetingFeature: typeof columnFacetingFeature\n columnFilteringFeature: typeof columnFilteringFeature\n columnGroupingFeature: typeof columnGroupingFeature\n columnOrderingFeature: typeof columnOrderingFeature\n columnPinningFeature: typeof columnPinningFeature\n columnResizingFeature: typeof columnResizingFeature\n columnSizingFeature: typeof columnSizingFeature\n columnVisibilityFeature: typeof columnVisibilityFeature\n globalFilteringFeature: typeof globalFilteringFeature\n rowExpandingFeature: typeof rowExpandingFeature\n rowPaginationFeature: typeof rowPaginationFeature\n rowPinningFeature: typeof rowPinningFeature\n rowSelectionFeature: typeof rowSelectionFeature\n rowSortingFeature: typeof rowSortingFeature\n}\n\n/**\n * The complete set of stock optional table features.\n *\n * Use individual feature exports for tree-shaking, or this aggregate when a table should include every built-in feature.\n */\nexport const stockFeatures: StockFeatures = {\n rowAggregationFeature,\n columnFacetingFeature,\n columnFilteringFeature,\n columnGroupingFeature,\n columnOrderingFeature,\n columnPinningFeature,\n columnResizingFeature,\n columnSizingFeature,\n columnVisibilityFeature,\n globalFilteringFeature,\n rowExpandingFeature,\n rowPaginationFeature,\n rowPinningFeature,\n rowSelectionFeature,\n rowSortingFeature,\n} as const\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAa,gBAA+B;CAC1C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF"}
package/dist/index.cjs CHANGED
@@ -19,7 +19,7 @@ const require_tableFeatures = require('./helpers/tableFeatures.cjs');
19
19
  const require_tableOptions = require('./helpers/tableOptions.cjs');
20
20
  const require_constructTable = require('./core/table/constructTable.cjs');
21
21
  const require_columnFacetingFeature = require('./features/column-faceting/columnFacetingFeature.cjs');
22
- const require_aggregationFeature = require('./features/aggregation/aggregationFeature.cjs');
22
+ const require_rowAggregationFeature = require('./features/row-aggregation/rowAggregationFeature.cjs');
23
23
  const require_columnFilteringFeature = require('./features/column-filtering/columnFilteringFeature.cjs');
24
24
  const require_columnGroupingFeature = require('./features/column-grouping/columnGroupingFeature.cjs');
25
25
  const require_columnOrderingFeature = require('./features/column-ordering/columnOrderingFeature.cjs');
@@ -36,8 +36,8 @@ const require_rowSelectionFeature = require('./features/row-selection/rowSelecti
36
36
  const require_sortFns = require('./features/row-sorting/sortFns.cjs');
37
37
  const require_rowSortingFeature = require('./features/row-sorting/rowSortingFeature.cjs');
38
38
  const require_stockFeatures = require('./features/stockFeatures.cjs');
39
- const require_aggregationFeature_types = require('./features/aggregation/aggregationFeature.types.cjs');
40
- const require_aggregationFns = require('./features/aggregation/aggregationFns.cjs');
39
+ const require_rowAggregationFeature_types = require('./features/row-aggregation/rowAggregationFeature.types.cjs');
40
+ const require_aggregationFns = require('./features/row-aggregation/aggregationFns.cjs');
41
41
  const require_createFacetedMinMaxValues = require('./features/column-faceting/createFacetedMinMaxValues.cjs');
42
42
  const require_createFacetedRowModel = require('./features/column-faceting/createFacetedRowModel.cjs');
43
43
  const require_createFacetedUniqueValues = require('./features/column-faceting/createFacetedUniqueValues.cjs');
@@ -47,7 +47,6 @@ const require_createExpandedRowModel = require('./features/row-expanding/createE
47
47
  const require_createPaginatedRowModel = require('./features/row-pagination/createPaginatedRowModel.cjs');
48
48
  const require_createSortedRowModel = require('./features/row-sorting/createSortedRowModel.cjs');
49
49
 
50
- exports.aggregationFeature = require_aggregationFeature.aggregationFeature;
51
50
  exports.aggregationFn_count = require_aggregationFns.aggregationFn_count;
52
51
  exports.aggregationFn_extent = require_aggregationFns.aggregationFn_extent;
53
52
  exports.aggregationFn_first = require_aggregationFns.aggregationFn_first;
@@ -73,7 +72,7 @@ exports.columnPinningFeature = require_columnPinningFeature.columnPinningFeature
73
72
  exports.columnResizingFeature = require_columnResizingFeature.columnResizingFeature;
74
73
  exports.columnSizingFeature = require_columnSizingFeature.columnSizingFeature;
75
74
  exports.columnVisibilityFeature = require_columnVisibilityFeature.columnVisibilityFeature;
76
- exports.constructAggregationFn = require_aggregationFeature_types.constructAggregationFn;
75
+ exports.constructAggregationFn = require_rowAggregationFeature_types.constructAggregationFn;
77
76
  exports.constructCell = require_constructCell.constructCell;
78
77
  exports.constructColumn = require_constructColumn.constructColumn;
79
78
  exports.constructFilterFn = require_filterFns.constructFilterFn;
@@ -135,6 +134,7 @@ exports.makeStateUpdater = require_utils.makeStateUpdater;
135
134
  exports.memo = require_utils.memo;
136
135
  exports.metaHelper = require_metaHelper.metaHelper;
137
136
  exports.reSplitAlphaNumeric = require_sortFns.reSplitAlphaNumeric;
137
+ exports.rowAggregationFeature = require_rowAggregationFeature.rowAggregationFeature;
138
138
  exports.rowExpandingFeature = require_rowExpandingFeature.rowExpandingFeature;
139
139
  exports.rowPaginationFeature = require_rowPaginationFeature.rowPaginationFeature;
140
140
  exports.rowPinningFeature = require_rowPinningFeature.rowPinningFeature;
package/dist/index.d.cts CHANGED
@@ -8,7 +8,7 @@ import { coreTablesFeature } from "./core/table/coreTablesFeature.cjs";
8
8
  import { CoreFeatures, coreFeatures } from "./core/coreFeatures.cjs";
9
9
  import { BuiltInFilterFn, constructFilterFn, filterFn_arrHas, filterFn_arrIncludes, filterFn_arrIncludesAll, filterFn_arrIncludesSome, filterFn_between, filterFn_betweenInclusive, filterFn_empty, filterFn_endsWith, filterFn_equals, filterFn_equalsString, filterFn_equalsStringSensitive, filterFn_greaterThan, filterFn_greaterThanOrEqualTo, filterFn_inDateRange, filterFn_inNumberRange, filterFn_includesString, filterFn_includesStringSensitive, filterFn_lessThan, filterFn_lessThanOrEqualTo, filterFn_notEmpty, filterFn_startsWith, filterFn_weakEquals, filterFns } from "./features/column-filtering/filterFns.cjs";
10
10
  import { CachedRowModel_Grouped, Cell_ColumnGrouping, ColumnDef_ColumnGrouping, ColumnDefaultOptions, Column_ColumnGrouping, GroupingColumnMode, GroupingState, Row_ColumnGrouping, TableOptions_ColumnGrouping, TableState_ColumnGrouping, Table_ColumnGrouping, Table_RowModels_Grouped } from "./features/column-grouping/columnGroupingFeature.types.cjs";
11
- import { BuiltInAggregationFn, aggregationFn_count, aggregationFn_extent, aggregationFn_first, aggregationFn_last, aggregationFn_max, aggregationFn_mean, aggregationFn_median, aggregationFn_min, aggregationFn_sum, aggregationFn_unique, aggregationFn_uniqueCount, aggregationFns } from "./features/aggregation/aggregationFns.cjs";
11
+ import { BuiltInAggregationFn, aggregationFn_count, aggregationFn_extent, aggregationFn_first, aggregationFn_last, aggregationFn_max, aggregationFn_mean, aggregationFn_median, aggregationFn_min, aggregationFn_sum, aggregationFn_unique, aggregationFn_uniqueCount, aggregationFns } from "./features/row-aggregation/aggregationFns.cjs";
12
12
  import { CellContext, Cell_Cell, Cell_CoreProperties, TableOptions_Cell } from "./core/cells/coreCellsFeature.types.cjs";
13
13
  import { HeaderGroup, HeaderGroup_Core } from "./types/HeaderGroup.cjs";
14
14
  import { ColumnDef_ColumnPinning, ColumnPinningDefaultOptions, ColumnPinningPosition, ColumnPinningState, Column_ColumnPinning, Row_ColumnPinning, TableOptions_ColumnPinning, TableState_ColumnPinning, Table_ColumnPinning } from "./features/column-pinning/columnPinningFeature.types.cjs";
@@ -20,7 +20,7 @@ import { ColumnDef_GlobalFiltering, Column_GlobalFiltering, TableOptions_GlobalF
20
20
  import { BuiltInSortFn, constructSortFn, reSplitAlphaNumeric, sortFn_alphanumeric, sortFn_alphanumericCaseSensitive, sortFn_basic, sortFn_datetime, sortFn_text, sortFn_textCaseSensitive, sortFns } from "./features/row-sorting/sortFns.cjs";
21
21
  import { CachedRowModel_Sorted, ColumnDef_RowSorting, ColumnSort, Column_RowSorting, CreatedSortFn, CustomSortFns, ExtractSortFnKeys, RowModelFns_RowSorting, SortDirection, SortFn, SortFnDef, SortFnOption, SortFns, SortingState, TableOptions_RowSorting, TableState_RowSorting, Table_RowModels_Sorted, Table_RowSorting } from "./features/row-sorting/rowSortingFeature.types.cjs";
22
22
  import { AccessorColumnDef, AccessorFn, AccessorFnColumnDef, AccessorFnColumnDefBase, AccessorKeyColumnDef, AccessorKeyColumnDefBase, ColumnDef, ColumnDefBase, ColumnDefBase_All, ColumnDefResolved, ColumnDefTemplate, ColumnDef_FeatureMap, ColumnMeta, DisplayColumnDef, ExtractColumnMeta, GroupColumnDef, IdIdentifier, IdentifiedColumnDef, StringHeaderIdentifier, StringOrTemplateHeader } from "./types/ColumnDef.cjs";
23
- import { AggregationContext, AggregationFnDef, AggregationFnDescriptor, AggregationFnListItem, AggregationFnOption, AggregationFnRef, AggregationFns, AggregationMergeContext, AggregationResult, AggregationResultOf, AggregationValueContext, AggregationValueOptions, AggregationValueResult, Cell_Aggregation, ColumnAggregationValue, ColumnDef_Aggregation, Column_Aggregation, CustomAggregationFns, ExtractAggregationFnKeys, ResolvedAggregationFn, RowModelFns_Aggregation, Row_Aggregation, TableOptions_Aggregation, constructAggregationFn } from "./features/aggregation/aggregationFeature.types.cjs";
23
+ import { AggregationContext, AggregationFnDef, AggregationFnDescriptor, AggregationFnListItem, AggregationFnOption, AggregationFnRef, AggregationFns, AggregationMergeContext, AggregationResult, AggregationResultOf, AggregationValueContext, AggregationValueOptions, AggregationValueResult, Cell_Aggregation, ColumnAggregationValue, ColumnDef_Aggregation, Column_Aggregation, CustomAggregationFns, ExtractAggregationFnKeys, ResolvedAggregationFn, RowModelFns_Aggregation, Row_Aggregation, TableOptions_Aggregation, constructAggregationFn } from "./features/row-aggregation/rowAggregationFeature.types.cjs";
24
24
  import { Cell, Cell_Core, Cell_FeatureMap } from "./types/Cell.cjs";
25
25
  import { ColumnDef_ColumnVisibility, ColumnVisibilityState, Column_ColumnVisibility, Row_ColumnVisibility, TableOptions_ColumnVisibility, TableState_ColumnVisibility, Table_ColumnVisibility, VisibilityDefaultOptions } from "./features/column-visibility/columnVisibilityFeature.types.cjs";
26
26
  import { CachedRowModel_Expanded, ExpandedState, ExpandedStateList, Row_RowExpanding, TableOptions_RowExpanding, TableState_RowExpanding, Table_RowExpanding, Table_RowModels_Expanded } from "./features/row-expanding/rowExpandingFeature.types.cjs";
@@ -42,7 +42,7 @@ import { Atoms, Atoms_All, BaseAtoms, BaseAtoms_All, ExternalAtoms, ExternalAtom
42
42
  import { Table, Table_Core, Table_FeatureMap } from "./types/Table.cjs";
43
43
  import { Column, Column_Core, Column_FeatureMap } from "./types/Column.cjs";
44
44
  import { columnFacetingFeature } from "./features/column-faceting/columnFacetingFeature.cjs";
45
- import { aggregationFeature } from "./features/aggregation/aggregationFeature.cjs";
45
+ import { rowAggregationFeature } from "./features/row-aggregation/rowAggregationFeature.cjs";
46
46
  import { columnFilteringFeature } from "./features/column-filtering/columnFilteringFeature.cjs";
47
47
  import { columnGroupingFeature } from "./features/column-grouping/columnGroupingFeature.cjs";
48
48
  import { columnOrderingFeature } from "./features/column-ordering/columnOrderingFeature.cjs";
@@ -78,4 +78,4 @@ import { createGroupedRowModel } from "./features/column-grouping/createGroupedR
78
78
  import { createExpandedRowModel, expandRows } from "./features/row-expanding/createExpandedRowModel.cjs";
79
79
  import { createPaginatedRowModel } from "./features/row-pagination/createPaginatedRowModel.cjs";
80
80
  import { createSortedRowModel } from "./features/row-sorting/createSortedRowModel.cjs";
81
- export { API, APIObject, AccessorColumnDef, AccessorFn, AccessorFnColumnDef, AccessorFnColumnDefBase, AccessorKeyColumnDef, AccessorKeyColumnDefBase, AggregationContext, AggregationFnDef, AggregationFnDescriptor, AggregationFnListItem, AggregationFnOption, AggregationFnRef, AggregationFns, AggregationMergeContext, AggregationResult, AggregationResultOf, AggregationValueContext, AggregationValueOptions, AggregationValueResult, Atoms, Atoms_All, BaseAtoms, BaseAtoms_All, BuiltInAggregationFn, BuiltInFilterFn, BuiltInSortFn, CachedRowModel_All, CachedRowModel_Core, CachedRowModel_Expanded, CachedRowModel_Faceted, CachedRowModel_Filtered, CachedRowModel_Grouped, CachedRowModel_Paginated, CachedRowModel_Sorted, CachedRowModels, CachedRowModels_FeatureMap, Cell, CellContext, CellData, Cell_Aggregation, Cell_Cell, Cell_ColumnGrouping, Cell_Core, Cell_CoreProperties, Cell_FeatureMap, Column, ColumnAggregationValue, ColumnDef, ColumnDefBase, ColumnDefBase_All, ColumnDefResolved, ColumnDefTemplate, ColumnDef_Aggregation, ColumnDef_ColumnFiltering, ColumnDef_ColumnGrouping, ColumnDef_ColumnPinning, ColumnDef_ColumnResizing, ColumnDef_ColumnSizing, ColumnDef_ColumnVisibility, ColumnDef_FeatureMap, ColumnDef_GlobalFiltering, ColumnDef_RowSorting, ColumnDefaultOptions, ColumnFilter, ColumnFilterAutoRemoveTestFn, ColumnFiltersState, ColumnHelper, ColumnIndexes, ColumnMeta, ColumnOffsets, ColumnOffsetsByPosition, ColumnOrderDefaultOptions, ColumnOrderState, ColumnPinningDefaultOptions, ColumnPinningPosition, ColumnPinningState, ColumnResizeDirection, ColumnResizeMode, ColumnResizingDefaultOptions, ColumnSizingDefaultOptions, ColumnSizingState, ColumnSort, ColumnVisibilityState, Column_Aggregation, Column_Column, Column_ColumnFaceting, Column_ColumnFiltering, Column_ColumnGrouping, Column_ColumnOrdering, Column_ColumnPinning, Column_ColumnResizing, Column_ColumnSizing, Column_ColumnVisibility, Column_Core, Column_CoreProperties, Column_FeatureMap, Column_GlobalFiltering, Column_RowSorting, CoreFeatures, CreatedFilterFn, CreatedSortFn, CustomAggregationFns, CustomFilterFns, CustomSortFns, DebugOptions, DeepKeys, DeepValue, DisplayColumnDef, ExpandedState, ExpandedStateList, ExternalAtoms, ExternalAtoms_All, ExtractAggregationFnKeys, ExtractColumnMeta, ExtractFeatureMapTypes, ExtractFilterFnKeys, ExtractFilterMeta, ExtractSortFnKeys, ExtractTableMeta, FeatureSlotPrereqs, FilterFn, FilterFnDef, FilterFnOption, FilterFns, FilterMeta, Getter, GroupColumnDef, GroupingColumnMode, GroupingState, Header, HeaderContext, HeaderGroup, HeaderGroup_Core, HeaderGroup_Header, Header_ColumnResizing, Header_ColumnSizing, Header_Core, Header_CoreProperties, Header_FeatureMap, Header_Header, IdIdentifier, IdentifiedColumnDef, IsAny, NoInfer, NonFeatureKeys, OnChangeFn, PaginationDefaultOptions, PaginationState, PartialKeys, Plugins, Prettify, PrototypeAPI, PrototypeAPIObject, RequiredKeys, ResolvedAggregationFn, ResolvedColumnFilter, Row, RowData, RowModel, RowModelFns, RowModelFns_Aggregation, RowModelFns_All, RowModelFns_ColumnFiltering, RowModelFns_Core, RowModelFns_FeatureMap, RowModelFns_RowSorting, RowPinningDefaultOptions, RowPinningPosition, RowPinningState, RowSelectionState, Row_Aggregation, Row_ColumnFiltering, Row_ColumnGrouping, Row_ColumnPinning, Row_ColumnVisibility, Row_Core, Row_CoreProperties, Row_FeatureMap, Row_Row, Row_RowExpanding, Row_RowPinning, Row_RowSelection, SortDirection, SortFn, SortFnDef, SortFnOption, SortFns, SortingState, StockFeatures, StringHeaderIdentifier, StringOrTemplateHeader, Table, TableFeature, TableFeatures, TableMeta, TableOptions, TableOptions_Aggregation, TableOptions_All, TableOptions_Cell, TableOptions_ColumnFiltering, TableOptions_ColumnGrouping, TableOptions_ColumnOrdering, TableOptions_ColumnPinning, TableOptions_ColumnResizing, TableOptions_ColumnSizing, TableOptions_ColumnVisibility, TableOptions_Columns, TableOptions_Core, TableOptions_FeatureMap, TableOptions_GlobalFiltering, TableOptions_RowExpanding, TableOptions_RowPagination, TableOptions_RowPinning, TableOptions_RowSelection, TableOptions_RowSorting, TableOptions_Rows, TableOptions_Table, TableState, TableState_All, TableState_ColumnFiltering, TableState_ColumnGrouping, TableState_ColumnOrdering, TableState_ColumnPinning, TableState_ColumnResizing, TableState_ColumnSizing, TableState_ColumnVisibility, TableState_FeatureMap, TableState_GlobalFiltering, TableState_RowExpanding, TableState_RowPagination, TableState_RowPinning, TableState_RowSelection, TableState_RowSorting, Table_ColumnFaceting, Table_ColumnFiltering, Table_ColumnGrouping, Table_ColumnOrdering, Table_ColumnPinning, Table_ColumnResizing, Table_ColumnSizing, Table_ColumnVisibility, Table_Columns, Table_Core, Table_CoreProperties, Table_FeatureMap, Table_GlobalFiltering, Table_Headers, Table_RowExpanding, Table_RowModels, Table_RowModels_Core, Table_RowModels_Expanded, Table_RowModels_Faceted, Table_RowModels_Filtered, Table_RowModels_Grouped, Table_RowModels_Paginated, Table_RowModels_Sorted, Table_RowPagination, Table_RowPinning, Table_RowSelection, Table_RowSorting, Table_Rows, Table_Table, ToggleSelectedOptions, TransformDataValueFn, TransformFilterValueFn, UnionToIntersection, Updater, ValidateFeatureSlots, VisibilityDefaultOptions, aggregationFeature, aggregationFn_count, aggregationFn_extent, aggregationFn_first, aggregationFn_last, aggregationFn_max, aggregationFn_mean, aggregationFn_median, aggregationFn_min, aggregationFn_sum, aggregationFn_unique, aggregationFn_uniqueCount, aggregationFns, assignPrototypeAPIs, assignTableAPIs, buildHeaderGroups, callMemoOrStaticFn, cloneState, columnFacetingFeature, columnFilteringFeature, columnGroupingFeature, columnOrderingFeature, columnPinningFeature, columnResizingFeature, columnResizingState, columnSizingFeature, columnVisibilityFeature, constructAggregationFn, constructCell, constructColumn, constructFilterFn, constructHeader, constructRow, constructSortFn, constructTable, copyInstancePropertiesWithoutMemos, coreCellsFeature, coreColumnsFeature, coreFeatures, coreHeadersFeature, coreRowModelsFeature, coreRowsFeature, coreTablesFeature, createColumnHelper, createCoreRowModel, createExpandedRowModel, createFacetedMinMaxValues, createFacetedRowModel, createFacetedUniqueValues, createFilteredRowModel, createGroupedRowModel, createPaginatedRowModel, createSortedRowModel, expandRows, filterFn_arrHas, filterFn_arrIncludes, filterFn_arrIncludesAll, filterFn_arrIncludesSome, filterFn_between, filterFn_betweenInclusive, filterFn_empty, filterFn_endsWith, filterFn_equals, filterFn_equalsString, filterFn_equalsStringSensitive, filterFn_greaterThan, filterFn_greaterThanOrEqualTo, filterFn_inDateRange, filterFn_inNumberRange, filterFn_includesString, filterFn_includesStringSensitive, filterFn_lessThan, filterFn_lessThanOrEqualTo, filterFn_notEmpty, filterFn_startsWith, filterFn_weakEquals, filterFns, flattenBy, functionalUpdate, getFunctionNameInfo, getInitialTableState, globalFilteringFeature, hasOwn, isFunction, makeObjectMap, makeStateUpdater, memo, metaHelper, reSplitAlphaNumeric, rowExpandingFeature, rowPaginationFeature, rowPinningFeature, rowSelectionFeature, rowSortingFeature, sortFn_alphanumeric, sortFn_alphanumericCaseSensitive, sortFn_basic, sortFn_datetime, sortFn_text, sortFn_textCaseSensitive, sortFns, stockFeatures, tableFeatures, tableMemo, tableOptions };
81
+ export { API, APIObject, AccessorColumnDef, AccessorFn, AccessorFnColumnDef, AccessorFnColumnDefBase, AccessorKeyColumnDef, AccessorKeyColumnDefBase, AggregationContext, AggregationFnDef, AggregationFnDescriptor, AggregationFnListItem, AggregationFnOption, AggregationFnRef, AggregationFns, AggregationMergeContext, AggregationResult, AggregationResultOf, AggregationValueContext, AggregationValueOptions, AggregationValueResult, Atoms, Atoms_All, BaseAtoms, BaseAtoms_All, BuiltInAggregationFn, BuiltInFilterFn, BuiltInSortFn, CachedRowModel_All, CachedRowModel_Core, CachedRowModel_Expanded, CachedRowModel_Faceted, CachedRowModel_Filtered, CachedRowModel_Grouped, CachedRowModel_Paginated, CachedRowModel_Sorted, CachedRowModels, CachedRowModels_FeatureMap, Cell, CellContext, CellData, Cell_Aggregation, Cell_Cell, Cell_ColumnGrouping, Cell_Core, Cell_CoreProperties, Cell_FeatureMap, Column, ColumnAggregationValue, ColumnDef, ColumnDefBase, ColumnDefBase_All, ColumnDefResolved, ColumnDefTemplate, ColumnDef_Aggregation, ColumnDef_ColumnFiltering, ColumnDef_ColumnGrouping, ColumnDef_ColumnPinning, ColumnDef_ColumnResizing, ColumnDef_ColumnSizing, ColumnDef_ColumnVisibility, ColumnDef_FeatureMap, ColumnDef_GlobalFiltering, ColumnDef_RowSorting, ColumnDefaultOptions, ColumnFilter, ColumnFilterAutoRemoveTestFn, ColumnFiltersState, ColumnHelper, ColumnIndexes, ColumnMeta, ColumnOffsets, ColumnOffsetsByPosition, ColumnOrderDefaultOptions, ColumnOrderState, ColumnPinningDefaultOptions, ColumnPinningPosition, ColumnPinningState, ColumnResizeDirection, ColumnResizeMode, ColumnResizingDefaultOptions, ColumnSizingDefaultOptions, ColumnSizingState, ColumnSort, ColumnVisibilityState, Column_Aggregation, Column_Column, Column_ColumnFaceting, Column_ColumnFiltering, Column_ColumnGrouping, Column_ColumnOrdering, Column_ColumnPinning, Column_ColumnResizing, Column_ColumnSizing, Column_ColumnVisibility, Column_Core, Column_CoreProperties, Column_FeatureMap, Column_GlobalFiltering, Column_RowSorting, CoreFeatures, CreatedFilterFn, CreatedSortFn, CustomAggregationFns, CustomFilterFns, CustomSortFns, DebugOptions, DeepKeys, DeepValue, DisplayColumnDef, ExpandedState, ExpandedStateList, ExternalAtoms, ExternalAtoms_All, ExtractAggregationFnKeys, ExtractColumnMeta, ExtractFeatureMapTypes, ExtractFilterFnKeys, ExtractFilterMeta, ExtractSortFnKeys, ExtractTableMeta, FeatureSlotPrereqs, FilterFn, FilterFnDef, FilterFnOption, FilterFns, FilterMeta, Getter, GroupColumnDef, GroupingColumnMode, GroupingState, Header, HeaderContext, HeaderGroup, HeaderGroup_Core, HeaderGroup_Header, Header_ColumnResizing, Header_ColumnSizing, Header_Core, Header_CoreProperties, Header_FeatureMap, Header_Header, IdIdentifier, IdentifiedColumnDef, IsAny, NoInfer, NonFeatureKeys, OnChangeFn, PaginationDefaultOptions, PaginationState, PartialKeys, Plugins, Prettify, PrototypeAPI, PrototypeAPIObject, RequiredKeys, ResolvedAggregationFn, ResolvedColumnFilter, Row, RowData, RowModel, RowModelFns, RowModelFns_Aggregation, RowModelFns_All, RowModelFns_ColumnFiltering, RowModelFns_Core, RowModelFns_FeatureMap, RowModelFns_RowSorting, RowPinningDefaultOptions, RowPinningPosition, RowPinningState, RowSelectionState, Row_Aggregation, Row_ColumnFiltering, Row_ColumnGrouping, Row_ColumnPinning, Row_ColumnVisibility, Row_Core, Row_CoreProperties, Row_FeatureMap, Row_Row, Row_RowExpanding, Row_RowPinning, Row_RowSelection, SortDirection, SortFn, SortFnDef, SortFnOption, SortFns, SortingState, StockFeatures, StringHeaderIdentifier, StringOrTemplateHeader, Table, TableFeature, TableFeatures, TableMeta, TableOptions, TableOptions_Aggregation, TableOptions_All, TableOptions_Cell, TableOptions_ColumnFiltering, TableOptions_ColumnGrouping, TableOptions_ColumnOrdering, TableOptions_ColumnPinning, TableOptions_ColumnResizing, TableOptions_ColumnSizing, TableOptions_ColumnVisibility, TableOptions_Columns, TableOptions_Core, TableOptions_FeatureMap, TableOptions_GlobalFiltering, TableOptions_RowExpanding, TableOptions_RowPagination, TableOptions_RowPinning, TableOptions_RowSelection, TableOptions_RowSorting, TableOptions_Rows, TableOptions_Table, TableState, TableState_All, TableState_ColumnFiltering, TableState_ColumnGrouping, TableState_ColumnOrdering, TableState_ColumnPinning, TableState_ColumnResizing, TableState_ColumnSizing, TableState_ColumnVisibility, TableState_FeatureMap, TableState_GlobalFiltering, TableState_RowExpanding, TableState_RowPagination, TableState_RowPinning, TableState_RowSelection, TableState_RowSorting, Table_ColumnFaceting, Table_ColumnFiltering, Table_ColumnGrouping, Table_ColumnOrdering, Table_ColumnPinning, Table_ColumnResizing, Table_ColumnSizing, Table_ColumnVisibility, Table_Columns, Table_Core, Table_CoreProperties, Table_FeatureMap, Table_GlobalFiltering, Table_Headers, Table_RowExpanding, Table_RowModels, Table_RowModels_Core, Table_RowModels_Expanded, Table_RowModels_Faceted, Table_RowModels_Filtered, Table_RowModels_Grouped, Table_RowModels_Paginated, Table_RowModels_Sorted, Table_RowPagination, Table_RowPinning, Table_RowSelection, Table_RowSorting, Table_Rows, Table_Table, ToggleSelectedOptions, TransformDataValueFn, TransformFilterValueFn, UnionToIntersection, Updater, ValidateFeatureSlots, VisibilityDefaultOptions, aggregationFn_count, aggregationFn_extent, aggregationFn_first, aggregationFn_last, aggregationFn_max, aggregationFn_mean, aggregationFn_median, aggregationFn_min, aggregationFn_sum, aggregationFn_unique, aggregationFn_uniqueCount, aggregationFns, assignPrototypeAPIs, assignTableAPIs, buildHeaderGroups, callMemoOrStaticFn, cloneState, columnFacetingFeature, columnFilteringFeature, columnGroupingFeature, columnOrderingFeature, columnPinningFeature, columnResizingFeature, columnResizingState, columnSizingFeature, columnVisibilityFeature, constructAggregationFn, constructCell, constructColumn, constructFilterFn, constructHeader, constructRow, constructSortFn, constructTable, copyInstancePropertiesWithoutMemos, coreCellsFeature, coreColumnsFeature, coreFeatures, coreHeadersFeature, coreRowModelsFeature, coreRowsFeature, coreTablesFeature, createColumnHelper, createCoreRowModel, createExpandedRowModel, createFacetedMinMaxValues, createFacetedRowModel, createFacetedUniqueValues, createFilteredRowModel, createGroupedRowModel, createPaginatedRowModel, createSortedRowModel, expandRows, filterFn_arrHas, filterFn_arrIncludes, filterFn_arrIncludesAll, filterFn_arrIncludesSome, filterFn_between, filterFn_betweenInclusive, filterFn_empty, filterFn_endsWith, filterFn_equals, filterFn_equalsString, filterFn_equalsStringSensitive, filterFn_greaterThan, filterFn_greaterThanOrEqualTo, filterFn_inDateRange, filterFn_inNumberRange, filterFn_includesString, filterFn_includesStringSensitive, filterFn_lessThan, filterFn_lessThanOrEqualTo, filterFn_notEmpty, filterFn_startsWith, filterFn_weakEquals, filterFns, flattenBy, functionalUpdate, getFunctionNameInfo, getInitialTableState, globalFilteringFeature, hasOwn, isFunction, makeObjectMap, makeStateUpdater, memo, metaHelper, reSplitAlphaNumeric, rowAggregationFeature, rowExpandingFeature, rowPaginationFeature, rowPinningFeature, rowSelectionFeature, rowSortingFeature, sortFn_alphanumeric, sortFn_alphanumericCaseSensitive, sortFn_basic, sortFn_datetime, sortFn_text, sortFn_textCaseSensitive, sortFns, stockFeatures, tableFeatures, tableMemo, tableOptions };