@tanstack/table-core 8.5.13 → 8.5.16
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.
- package/build/cjs/aggregationFns.js +0 -15
- package/build/cjs/aggregationFns.js.map +1 -1
- package/build/cjs/columnHelper.js +10 -2
- package/build/cjs/columnHelper.js.map +1 -1
- package/build/cjs/core/cell.js +2 -9
- package/build/cjs/core/cell.js.map +1 -1
- package/build/cjs/core/column.js +9 -27
- package/build/cjs/core/column.js.map +1 -1
- package/build/cjs/core/headers.js +45 -129
- package/build/cjs/core/headers.js.map +1 -1
- package/build/cjs/core/row.js +4 -21
- package/build/cjs/core/row.js.map +1 -1
- package/build/cjs/core/table.js +26 -73
- package/build/cjs/core/table.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +56 -67
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +18 -34
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +19 -55
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +9 -26
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Ordering.js +14 -13
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +20 -43
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +26 -66
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +44 -74
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js +25 -50
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +14 -32
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterFns.js +3 -28
- package/build/cjs/filterFns.js.map +1 -1
- package/build/cjs/sortingFns.js +24 -31
- package/build/cjs/sortingFns.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js +7 -19
- package/build/cjs/utils/filterRowsUtils.js.map +1 -1
- package/build/cjs/utils/getCoreRowModel.js +12 -18
- package/build/cjs/utils/getCoreRowModel.js.map +1 -1
- package/build/cjs/utils/getExpandedRowModel.js +2 -12
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedMinMaxValues.js +1 -11
- package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
- package/build/cjs/utils/getFacetedRowModel.js +1 -9
- package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedUniqueValues.js +2 -12
- package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -1
- package/build/cjs/utils/getFilteredRowModel.js +14 -34
- package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
- package/build/cjs/utils/getGroupedRowModel.js +25 -35
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/cjs/utils/getPaginationRowModel.js +1 -11
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
- package/build/cjs/utils/getSortedRowModel.js +8 -23
- package/build/cjs/utils/getSortedRowModel.js.map +1 -1
- package/build/cjs/utils.js +11 -14
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +452 -993
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +44 -34
- package/build/stats-react.json +371 -371
- package/build/umd/index.development.js +452 -991
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/features/ColumnSizing.ts +11 -1
- package/src/features/Expanding.ts +1 -1
|
@@ -20,37 +20,31 @@ const sum = (columnId, _leafRows, childRows) => {
|
|
|
20
20
|
return sum + (typeof nextValue === 'number' ? nextValue : 0);
|
|
21
21
|
}, 0);
|
|
22
22
|
};
|
|
23
|
-
|
|
24
23
|
const min = (columnId, _leafRows, childRows) => {
|
|
25
24
|
let min;
|
|
26
25
|
childRows.forEach(row => {
|
|
27
26
|
const value = row.getValue(columnId);
|
|
28
|
-
|
|
29
27
|
if (value != null && (min > value || min === undefined && value >= value)) {
|
|
30
28
|
min = value;
|
|
31
29
|
}
|
|
32
30
|
});
|
|
33
31
|
return min;
|
|
34
32
|
};
|
|
35
|
-
|
|
36
33
|
const max = (columnId, _leafRows, childRows) => {
|
|
37
34
|
let max;
|
|
38
35
|
childRows.forEach(row => {
|
|
39
36
|
const value = row.getValue(columnId);
|
|
40
|
-
|
|
41
37
|
if (value != null && (max < value || max === undefined && value >= value)) {
|
|
42
38
|
max = value;
|
|
43
39
|
}
|
|
44
40
|
});
|
|
45
41
|
return max;
|
|
46
42
|
};
|
|
47
|
-
|
|
48
43
|
const extent = (columnId, _leafRows, childRows) => {
|
|
49
44
|
let min;
|
|
50
45
|
let max;
|
|
51
46
|
childRows.forEach(row => {
|
|
52
47
|
const value = row.getValue(columnId);
|
|
53
|
-
|
|
54
48
|
if (value != null) {
|
|
55
49
|
if (min === undefined) {
|
|
56
50
|
if (value >= value) min = max = value;
|
|
@@ -62,13 +56,11 @@ const extent = (columnId, _leafRows, childRows) => {
|
|
|
62
56
|
});
|
|
63
57
|
return [min, max];
|
|
64
58
|
};
|
|
65
|
-
|
|
66
59
|
const mean = (columnId, leafRows) => {
|
|
67
60
|
let count = 0;
|
|
68
61
|
let sum = 0;
|
|
69
62
|
leafRows.forEach(row => {
|
|
70
63
|
let value = row.getValue(columnId);
|
|
71
|
-
|
|
72
64
|
if (value != null && (value = +value) >= value) {
|
|
73
65
|
++count, sum += value;
|
|
74
66
|
}
|
|
@@ -76,17 +68,14 @@ const mean = (columnId, leafRows) => {
|
|
|
76
68
|
if (count) return sum / count;
|
|
77
69
|
return;
|
|
78
70
|
};
|
|
79
|
-
|
|
80
71
|
const median = (columnId, leafRows) => {
|
|
81
72
|
if (!leafRows.length) {
|
|
82
73
|
return;
|
|
83
74
|
}
|
|
84
|
-
|
|
85
75
|
let min = 0;
|
|
86
76
|
let max = 0;
|
|
87
77
|
leafRows.forEach(row => {
|
|
88
78
|
let value = row.getValue(columnId);
|
|
89
|
-
|
|
90
79
|
if (typeof value === 'number') {
|
|
91
80
|
min = Math.min(min, value);
|
|
92
81
|
max = Math.max(max, value);
|
|
@@ -94,19 +83,15 @@ const median = (columnId, leafRows) => {
|
|
|
94
83
|
});
|
|
95
84
|
return (min + max) / 2;
|
|
96
85
|
};
|
|
97
|
-
|
|
98
86
|
const unique = (columnId, leafRows) => {
|
|
99
87
|
return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());
|
|
100
88
|
};
|
|
101
|
-
|
|
102
89
|
const uniqueCount = (columnId, leafRows) => {
|
|
103
90
|
return new Set(leafRows.map(d => d.getValue(columnId))).size;
|
|
104
91
|
};
|
|
105
|
-
|
|
106
92
|
const count = (_columnId, leafRows) => {
|
|
107
93
|
return leafRows.length;
|
|
108
94
|
};
|
|
109
|
-
|
|
110
95
|
const aggregationFns = {
|
|
111
96
|
sum,
|
|
112
97
|
min,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregationFns.js","sources":["../../src/aggregationFns.ts"],"sourcesContent":["import { AggregationFn } from './features/Grouping'\n\nconst sum: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId)\n return sum + (typeof nextValue === 'number' ? nextValue : 0)\n }, 0)\n}\n\nconst min: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let min: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue<number>(columnId)\n\n if (\n value != null &&\n (min! > value || (min === undefined && value >= value))\n ) {\n min = value\n }\n })\n\n return min\n}\n\nconst max: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let max: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue<number>(columnId)\n if (\n value != null &&\n (max! < value || (max === undefined && value >= value))\n ) {\n max = value\n }\n })\n\n return max\n}\n\nconst extent: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let min: number | undefined\n let max: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue<number>(columnId)\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value\n } else {\n if (min > value) min = value\n if (max! < value) max = value\n }\n }\n })\n\n return [min, max]\n}\n\nconst mean: AggregationFn<any> = (columnId, leafRows) => {\n let count = 0\n let sum = 0\n\n leafRows.forEach(row => {\n let value = row.getValue<number>(columnId)\n if (value != null && (value = +value) >= value) {\n ++count, (sum += value)\n }\n })\n\n if (count) return sum / count\n\n return\n}\n\nconst median: AggregationFn<any> = (columnId, leafRows) => {\n if (!leafRows.length) {\n return\n }\n\n let min = 0\n let max = 0\n\n leafRows.forEach(row => {\n let value = row.getValue(columnId)\n if (typeof value === 'number') {\n min = Math.min(min, value)\n max = Math.max(max, value)\n }\n })\n\n return (min + max) / 2\n}\n\nconst unique: AggregationFn<any> = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values())\n}\n\nconst uniqueCount: AggregationFn<any> = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size\n}\n\nconst count: AggregationFn<any> = (_columnId, leafRows) => {\n return leafRows.length\n}\n\nexport const aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count,\n}\n\nexport type BuiltInAggregationFn = keyof typeof aggregationFns\n"],"names":["sum","columnId","_leafRows","childRows","reduce","next","nextValue","getValue","min","forEach","row","value","undefined","max","extent","mean","leafRows","count","median","length","Math","unique","Array","from","Set","map","d","values","uniqueCount","size","_columnId","aggregationFns"],"mappings":";;;;;;;;;;;;;;AAEA,MAAMA,GAAuB,GAAG,CAACC,
|
|
1
|
+
{"version":3,"file":"aggregationFns.js","sources":["../../src/aggregationFns.ts"],"sourcesContent":["import { AggregationFn } from './features/Grouping'\n\nconst sum: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId)\n return sum + (typeof nextValue === 'number' ? nextValue : 0)\n }, 0)\n}\n\nconst min: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let min: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue<number>(columnId)\n\n if (\n value != null &&\n (min! > value || (min === undefined && value >= value))\n ) {\n min = value\n }\n })\n\n return min\n}\n\nconst max: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let max: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue<number>(columnId)\n if (\n value != null &&\n (max! < value || (max === undefined && value >= value))\n ) {\n max = value\n }\n })\n\n return max\n}\n\nconst extent: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let min: number | undefined\n let max: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue<number>(columnId)\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value\n } else {\n if (min > value) min = value\n if (max! < value) max = value\n }\n }\n })\n\n return [min, max]\n}\n\nconst mean: AggregationFn<any> = (columnId, leafRows) => {\n let count = 0\n let sum = 0\n\n leafRows.forEach(row => {\n let value = row.getValue<number>(columnId)\n if (value != null && (value = +value) >= value) {\n ++count, (sum += value)\n }\n })\n\n if (count) return sum / count\n\n return\n}\n\nconst median: AggregationFn<any> = (columnId, leafRows) => {\n if (!leafRows.length) {\n return\n }\n\n let min = 0\n let max = 0\n\n leafRows.forEach(row => {\n let value = row.getValue(columnId)\n if (typeof value === 'number') {\n min = Math.min(min, value)\n max = Math.max(max, value)\n }\n })\n\n return (min + max) / 2\n}\n\nconst unique: AggregationFn<any> = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values())\n}\n\nconst uniqueCount: AggregationFn<any> = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size\n}\n\nconst count: AggregationFn<any> = (_columnId, leafRows) => {\n return leafRows.length\n}\n\nexport const aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count,\n}\n\nexport type BuiltInAggregationFn = keyof typeof aggregationFns\n"],"names":["sum","columnId","_leafRows","childRows","reduce","next","nextValue","getValue","min","forEach","row","value","undefined","max","extent","mean","leafRows","count","median","length","Math","unique","Array","from","Set","map","d","values","uniqueCount","size","_columnId","aggregationFns"],"mappings":"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"}
|
|
@@ -35,24 +35,32 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
35
35
|
// }
|
|
36
36
|
// }
|
|
37
37
|
// }
|
|
38
|
+
|
|
38
39
|
// const test: DeepKeys<Person> = 'nested.foo.0.bar'
|
|
39
40
|
// const test2: DeepKeys<Person> = 'nested.bar'
|
|
41
|
+
|
|
40
42
|
// const helper = createColumnHelper<Person>()
|
|
43
|
+
|
|
41
44
|
// helper.accessor('nested.foo', {
|
|
42
45
|
// cell: info => info.getValue(),
|
|
43
46
|
// })
|
|
47
|
+
|
|
44
48
|
// helper.accessor('nested.foo.0.bar', {
|
|
45
49
|
// cell: info => info.getValue(),
|
|
46
50
|
// })
|
|
51
|
+
|
|
47
52
|
// helper.accessor('nested.bar', {
|
|
48
53
|
// cell: info => info.getValue(),
|
|
49
54
|
// })
|
|
55
|
+
|
|
50
56
|
function createColumnHelper() {
|
|
51
57
|
return {
|
|
52
58
|
accessor: (accessor, column) => {
|
|
53
|
-
return typeof accessor === 'function' ? {
|
|
59
|
+
return typeof accessor === 'function' ? {
|
|
60
|
+
...column,
|
|
54
61
|
accessorFn: accessor
|
|
55
|
-
} : {
|
|
62
|
+
} : {
|
|
63
|
+
...column,
|
|
56
64
|
accessorKey: accessor
|
|
57
65
|
};
|
|
58
66
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnHelper.js","sources":["../../src/columnHelper.ts"],"sourcesContent":["import {\n AccessorFn,\n ColumnDef,\n DisplayColumnDef,\n GroupColumnDef,\n IdentifiedColumnDef,\n RowData,\n} from './types'\nimport { DeepKeys, DeepValue, RequiredKeys } from './utils'\n\n// type Person = {\n// firstName: string\n// lastName: string\n// age: number\n// visits: number\n// status: string\n// progress: number\n// createdAt: Date\n// nested: {\n// foo: [\n// {\n// bar: 'bar'\n// }\n// ]\n// bar: { subBar: boolean }[]\n// baz: {\n// foo: 'foo'\n// bar: {\n// baz: 'baz'\n// }\n// }\n// }\n// }\n\n// const test: DeepKeys<Person> = 'nested.foo.0.bar'\n// const test2: DeepKeys<Person> = 'nested.bar'\n\n// const helper = createColumnHelper<Person>()\n\n// helper.accessor('nested.foo', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.foo.0.bar', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.bar', {\n// cell: info => info.getValue(),\n// })\n\nexport type ColumnHelper<TData extends RowData> = {\n accessor: <\n TAccessor extends AccessorFn<TData> | DeepKeys<TData>,\n TValue extends TAccessor extends AccessorFn<TData, infer TReturn>\n ? TReturn\n : TAccessor extends DeepKeys<TData>\n ? DeepValue<TData, TAccessor>\n : never\n >(\n accessor: TAccessor,\n column: TAccessor extends AccessorFn<TData>\n ? DisplayColumnDef<TData, TValue>\n : IdentifiedColumnDef<TData, TValue>\n ) => ColumnDef<TData, TValue>\n display: (column: DisplayColumnDef<TData>) => ColumnDef<TData, unknown>\n group: (column: GroupColumnDef<TData>) => ColumnDef<TData, unknown>\n}\n\nexport function createColumnHelper<\n TData extends RowData\n>(): ColumnHelper<TData> {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function'\n ? ({\n ...column,\n accessorFn: accessor,\n } as any)\n : {\n ...column,\n accessorKey: accessor,\n }\n },\n display: column => column as ColumnDef<TData, unknown>,\n group: column => column as ColumnDef<TData, unknown>,\n }\n}\n"],"names":["createColumnHelper","accessor","column","accessorFn","accessorKey","display","group"],"mappings":";;;;;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA
|
|
1
|
+
{"version":3,"file":"columnHelper.js","sources":["../../src/columnHelper.ts"],"sourcesContent":["import {\n AccessorFn,\n ColumnDef,\n DisplayColumnDef,\n GroupColumnDef,\n IdentifiedColumnDef,\n RowData,\n} from './types'\nimport { DeepKeys, DeepValue, RequiredKeys } from './utils'\n\n// type Person = {\n// firstName: string\n// lastName: string\n// age: number\n// visits: number\n// status: string\n// progress: number\n// createdAt: Date\n// nested: {\n// foo: [\n// {\n// bar: 'bar'\n// }\n// ]\n// bar: { subBar: boolean }[]\n// baz: {\n// foo: 'foo'\n// bar: {\n// baz: 'baz'\n// }\n// }\n// }\n// }\n\n// const test: DeepKeys<Person> = 'nested.foo.0.bar'\n// const test2: DeepKeys<Person> = 'nested.bar'\n\n// const helper = createColumnHelper<Person>()\n\n// helper.accessor('nested.foo', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.foo.0.bar', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.bar', {\n// cell: info => info.getValue(),\n// })\n\nexport type ColumnHelper<TData extends RowData> = {\n accessor: <\n TAccessor extends AccessorFn<TData> | DeepKeys<TData>,\n TValue extends TAccessor extends AccessorFn<TData, infer TReturn>\n ? TReturn\n : TAccessor extends DeepKeys<TData>\n ? DeepValue<TData, TAccessor>\n : never\n >(\n accessor: TAccessor,\n column: TAccessor extends AccessorFn<TData>\n ? DisplayColumnDef<TData, TValue>\n : IdentifiedColumnDef<TData, TValue>\n ) => ColumnDef<TData, TValue>\n display: (column: DisplayColumnDef<TData>) => ColumnDef<TData, unknown>\n group: (column: GroupColumnDef<TData>) => ColumnDef<TData, unknown>\n}\n\nexport function createColumnHelper<\n TData extends RowData\n>(): ColumnHelper<TData> {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function'\n ? ({\n ...column,\n accessorFn: accessor,\n } as any)\n : {\n ...column,\n accessorKey: accessor,\n }\n },\n display: column => column as ColumnDef<TData, unknown>,\n group: column => column as ColumnDef<TData, unknown>,\n }\n}\n"],"names":["createColumnHelper","accessor","column","accessorFn","accessorKey","display","group"],"mappings":";;;;;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAoBO,SAASA,kBAAkB,GAET;EACvB,OAAO;AACLC,IAAAA,QAAQ,EAAE,CAACA,QAAQ,EAAEC,MAAM,KAAK;AAC9B,MAAA,OAAO,OAAOD,QAAQ,KAAK,UAAU,GAChC;AACC,QAAA,GAAGC,MAAM;AACTC,QAAAA,UAAU,EAAEF,QAAAA;AACd,OAAC,GACD;AACE,QAAA,GAAGC,MAAM;AACTE,QAAAA,WAAW,EAAEH,QAAAA;OACd,CAAA;KACN;IACDI,OAAO,EAAEH,MAAM,IAAIA,MAAmC;IACtDI,KAAK,EAAEJ,MAAM,IAAIA,MAAAA;GAClB,CAAA;AACH;;;;"}
|
package/build/cjs/core/cell.js
CHANGED
|
@@ -15,14 +15,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
15
15
|
var utils = require('../utils.js');
|
|
16
16
|
|
|
17
17
|
function createCell(table, row, column, columnId) {
|
|
18
|
-
const getRenderValue = () =>
|
|
19
|
-
var _cell$getValue;
|
|
20
|
-
|
|
21
|
-
return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : table.options.renderFallbackValue;
|
|
22
|
-
};
|
|
23
|
-
|
|
18
|
+
const getRenderValue = () => cell.getValue() ?? table.options.renderFallbackValue;
|
|
24
19
|
const cell = {
|
|
25
|
-
id: row.id
|
|
20
|
+
id: `${row.id}_${column.id}`,
|
|
26
21
|
row,
|
|
27
22
|
column,
|
|
28
23
|
getValue: () => row.getValue(columnId),
|
|
@@ -39,11 +34,9 @@ function createCell(table, row, column, columnId) {
|
|
|
39
34
|
debug: () => table.options.debugAll
|
|
40
35
|
})
|
|
41
36
|
};
|
|
42
|
-
|
|
43
37
|
table._features.forEach(feature => {
|
|
44
38
|
Object.assign(cell, feature.createCell == null ? void 0 : feature.createCell(cell, column, row, table));
|
|
45
39
|
}, {});
|
|
46
|
-
|
|
47
40
|
return cell;
|
|
48
41
|
}
|
|
49
42
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell.js","sources":["../../../src/core/cell.ts"],"sourcesContent":["import { RowData, Cell, Column, Row, Table } from '../types'\nimport { Getter, memo } from '../utils'\n\nexport type CellContext<TData extends RowData, TValue> = {\n table: Table<TData>\n column: Column<TData, TValue>\n row: Row<TData>\n cell: Cell<TData, TValue>\n getValue: Getter<TValue>\n renderValue: Getter<TValue | null>\n}\n\nexport type CoreCell<TData extends RowData, TValue> = {\n id: string\n getValue: CellContext<TData, TValue>['getValue']\n renderValue: CellContext<TData, TValue>['renderValue']\n row: Row<TData>\n column: Column<TData, TValue>\n getContext: () => CellContext<TData, TValue>\n}\n\nexport function createCell<TData extends RowData, TValue>(\n table: Table<TData>,\n row: Row<TData>,\n column: Column<TData, TValue>,\n columnId: string\n) {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n const cell: CoreCell<TData, TValue> = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: memo(\n () => [table, column, row, cell],\n (table, column, row, cell) => ({\n table,\n column,\n row,\n cell: cell as Cell<TData, TValue>,\n getValue: cell.getValue,\n renderValue: cell.renderValue,\n }),\n {\n key: process.env.NODE_ENV === 'development' && 'cell.getContext',\n debug: () => table.options.debugAll,\n }\n ),\n }\n\n table._features.forEach(feature => {\n Object.assign(\n cell,\n feature.createCell?.(\n cell as Cell<TData, TValue>,\n column,\n row as Row<TData>,\n table\n )\n )\n }, {})\n\n return cell as Cell<TData, TValue>\n}\n"],"names":["createCell","table","row","column","columnId","getRenderValue","cell","getValue","options","renderFallbackValue","id","renderValue","getContext","memo","key","process","env","NODE_ENV","debug","debugAll","_features","forEach","feature","Object","assign"],"mappings":";;;;;;;;;;;;;;;;AAqBO,SAASA,
|
|
1
|
+
{"version":3,"file":"cell.js","sources":["../../../src/core/cell.ts"],"sourcesContent":["import { RowData, Cell, Column, Row, Table } from '../types'\nimport { Getter, memo } from '../utils'\n\nexport type CellContext<TData extends RowData, TValue> = {\n table: Table<TData>\n column: Column<TData, TValue>\n row: Row<TData>\n cell: Cell<TData, TValue>\n getValue: Getter<TValue>\n renderValue: Getter<TValue | null>\n}\n\nexport type CoreCell<TData extends RowData, TValue> = {\n id: string\n getValue: CellContext<TData, TValue>['getValue']\n renderValue: CellContext<TData, TValue>['renderValue']\n row: Row<TData>\n column: Column<TData, TValue>\n getContext: () => CellContext<TData, TValue>\n}\n\nexport function createCell<TData extends RowData, TValue>(\n table: Table<TData>,\n row: Row<TData>,\n column: Column<TData, TValue>,\n columnId: string\n) {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n const cell: CoreCell<TData, TValue> = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: memo(\n () => [table, column, row, cell],\n (table, column, row, cell) => ({\n table,\n column,\n row,\n cell: cell as Cell<TData, TValue>,\n getValue: cell.getValue,\n renderValue: cell.renderValue,\n }),\n {\n key: process.env.NODE_ENV === 'development' && 'cell.getContext',\n debug: () => table.options.debugAll,\n }\n ),\n }\n\n table._features.forEach(feature => {\n Object.assign(\n cell,\n feature.createCell?.(\n cell as Cell<TData, TValue>,\n column,\n row as Row<TData>,\n table\n )\n )\n }, {})\n\n return cell as Cell<TData, TValue>\n}\n"],"names":["createCell","table","row","column","columnId","getRenderValue","cell","getValue","options","renderFallbackValue","id","renderValue","getContext","memo","key","process","env","NODE_ENV","debug","debugAll","_features","forEach","feature","Object","assign"],"mappings":";;;;;;;;;;;;;;;;AAqBO,SAASA,UAAU,CACxBC,KAAmB,EACnBC,GAAe,EACfC,MAA6B,EAC7BC,QAAgB,EAChB;AACA,EAAA,MAAMC,cAAc,GAAG,MACrBC,IAAI,CAACC,QAAQ,EAAE,IAAIN,KAAK,CAACO,OAAO,CAACC,mBAAmB,CAAA;AAEtD,EAAA,MAAMH,IAA6B,GAAG;IACpCI,EAAE,EAAG,GAAER,GAAG,CAACQ,EAAG,CAAGP,CAAAA,EAAAA,MAAM,CAACO,EAAG,CAAC,CAAA;IAC5BR,GAAG;IACHC,MAAM;AACNI,IAAAA,QAAQ,EAAE,MAAML,GAAG,CAACK,QAAQ,CAACH,QAAQ,CAAC;AACtCO,IAAAA,WAAW,EAAEN,cAAc;IAC3BO,UAAU,EAAEC,UAAI,CACd,MAAM,CAACZ,KAAK,EAAEE,MAAM,EAAED,GAAG,EAAEI,IAAI,CAAC,EAChC,CAACL,KAAK,EAAEE,MAAM,EAAED,GAAG,EAAEI,IAAI,MAAM;MAC7BL,KAAK;MACLE,MAAM;MACND,GAAG;AACHI,MAAAA,IAAI,EAAEA,IAA2B;MACjCC,QAAQ,EAAED,IAAI,CAACC,QAAQ;MACvBI,WAAW,EAAEL,IAAI,CAACK,WAAAA;AACpB,KAAC,CAAC,EACF;MACEG,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,iBAAiB;AAChEC,MAAAA,KAAK,EAAE,MAAMjB,KAAK,CAACO,OAAO,CAACW,QAAAA;KAC5B,CAAA;GAEJ,CAAA;AAEDlB,EAAAA,KAAK,CAACmB,SAAS,CAACC,OAAO,CAACC,OAAO,IAAI;IACjCC,MAAM,CAACC,MAAM,CACXlB,IAAI,EACJgB,OAAO,CAACtB,UAAU,IAAlBsB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAACtB,UAAU,CAChBM,IAAI,EACJH,MAAM,EACND,GAAG,EACHD,KAAK,CACN,CACF,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,OAAOK,IAAI,CAAA;AACb;;;;"}
|
package/build/cjs/core/column.js
CHANGED
|
@@ -15,17 +15,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
15
15
|
var utils = require('../utils.js');
|
|
16
16
|
|
|
17
17
|
function createColumn(table, columnDef, depth, parent) {
|
|
18
|
-
var _ref, _resolvedColumnDef$id;
|
|
19
|
-
|
|
20
18
|
const defaultColumn = table._getDefaultColumnDef();
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
const resolvedColumnDef = {
|
|
20
|
+
...defaultColumn,
|
|
23
21
|
...columnDef
|
|
24
22
|
};
|
|
25
23
|
const accessorKey = resolvedColumnDef.accessorKey;
|
|
26
|
-
let id =
|
|
24
|
+
let id = resolvedColumnDef.id ?? (accessorKey ? accessorKey.replace('.', '_') : undefined) ?? (typeof resolvedColumnDef.header === 'string' ? resolvedColumnDef.header : undefined);
|
|
27
25
|
let accessorFn;
|
|
28
|
-
|
|
29
26
|
if (resolvedColumnDef.accessorFn) {
|
|
30
27
|
accessorFn = resolvedColumnDef.accessorFn;
|
|
31
28
|
} else if (accessorKey) {
|
|
@@ -33,28 +30,23 @@ function createColumn(table, columnDef, depth, parent) {
|
|
|
33
30
|
if (accessorKey.includes('.')) {
|
|
34
31
|
accessorFn = originalRow => {
|
|
35
32
|
let result = originalRow;
|
|
36
|
-
|
|
37
33
|
for (const key of accessorKey.split('.')) {
|
|
38
34
|
result = result[key];
|
|
39
35
|
}
|
|
40
|
-
|
|
41
36
|
return result;
|
|
42
37
|
};
|
|
43
38
|
} else {
|
|
44
39
|
accessorFn = originalRow => originalRow[resolvedColumnDef.accessorKey];
|
|
45
40
|
}
|
|
46
41
|
}
|
|
47
|
-
|
|
48
42
|
if (!id) {
|
|
49
43
|
if (process.env.NODE_ENV !== 'production') {
|
|
50
|
-
throw new Error(resolvedColumnDef.accessorFn ?
|
|
44
|
+
throw new Error(resolvedColumnDef.accessorFn ? `Columns require an id when using an accessorFn` : `Columns require an id when using a non-string header`);
|
|
51
45
|
}
|
|
52
|
-
|
|
53
46
|
throw new Error();
|
|
54
47
|
}
|
|
55
|
-
|
|
56
48
|
let column = {
|
|
57
|
-
id:
|
|
49
|
+
id: `${String(id)}`,
|
|
58
50
|
accessorFn,
|
|
59
51
|
parent: parent,
|
|
60
52
|
depth,
|
|
@@ -62,38 +54,28 @@ function createColumn(table, columnDef, depth, parent) {
|
|
|
62
54
|
columns: [],
|
|
63
55
|
getFlatColumns: utils.memo(() => [true], () => {
|
|
64
56
|
var _column$columns;
|
|
65
|
-
|
|
66
57
|
return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];
|
|
67
58
|
}, {
|
|
68
59
|
key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',
|
|
69
|
-
debug: () =>
|
|
70
|
-
var _table$options$debugA;
|
|
71
|
-
|
|
72
|
-
return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugColumns;
|
|
73
|
-
}
|
|
60
|
+
debug: () => table.options.debugAll ?? table.options.debugColumns
|
|
74
61
|
}),
|
|
75
62
|
getLeafColumns: utils.memo(() => [table._getOrderColumnsFn()], orderColumns => {
|
|
76
63
|
var _column$columns2;
|
|
77
|
-
|
|
78
64
|
if ((_column$columns2 = column.columns) != null && _column$columns2.length) {
|
|
79
65
|
let leafColumns = column.columns.flatMap(column => column.getLeafColumns());
|
|
80
66
|
return orderColumns(leafColumns);
|
|
81
67
|
}
|
|
82
|
-
|
|
83
68
|
return [column];
|
|
84
69
|
}, {
|
|
85
70
|
key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',
|
|
86
|
-
debug: () =>
|
|
87
|
-
var _table$options$debugA2;
|
|
88
|
-
|
|
89
|
-
return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugColumns;
|
|
90
|
-
}
|
|
71
|
+
debug: () => table.options.debugAll ?? table.options.debugColumns
|
|
91
72
|
})
|
|
92
73
|
};
|
|
93
74
|
column = table._features.reduce((obj, feature) => {
|
|
94
75
|
return Object.assign(obj, feature.createColumn == null ? void 0 : feature.createColumn(column, table));
|
|
95
|
-
}, column);
|
|
76
|
+
}, column);
|
|
96
77
|
|
|
78
|
+
// Yes, we have to convert table to uknown, because we know more than the compiler here.
|
|
97
79
|
return column;
|
|
98
80
|
}
|
|
99
81
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.js","sources":["../../../src/core/column.ts"],"sourcesContent":["import { TaggedTemplateExpression } from '@babel/types'\nimport {\n Column,\n Table,\n AccessorFn,\n ColumnDef,\n ColumnDefTemplate,\n RowData,\n ColumnMeta,\n ColumnDefResolved,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type CoreColumn<TData extends RowData, TValue> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TData, TValue>\n columnDef: ColumnDef<TData, TValue>\n columns: Column<TData, TValue>[]\n parent?: Column<TData, TValue>\n getFlatColumns: () => Column<TData, TValue>[]\n getLeafColumns: () => Column<TData, TValue>[]\n}\n\nexport function createColumn<TData extends RowData, TValue>(\n table: Table<TData>,\n columnDef: ColumnDef<TData, TValue>,\n depth: number,\n parent?: Column<TData, TValue>\n) {\n const defaultColumn = table._getDefaultColumnDef()\n\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef,\n } as ColumnDefResolved<TData>\n\n const accessorKey = resolvedColumnDef.accessorKey\n\n let id =\n resolvedColumnDef.id ??\n (accessorKey ? accessorKey.replace('.', '_') : undefined) ??\n (typeof resolvedColumnDef.header === 'string'\n ? resolvedColumnDef.header\n : undefined)\n\n let accessorFn: AccessorFn<TData> | undefined\n\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = (originalRow: TData) => {\n let result = originalRow as Record<string, any>\n\n for (const key of accessorKey.split('.')) {\n result = result[key]\n }\n\n return result\n }\n } else {\n accessorFn = (originalRow: TData) =>\n (originalRow as any)[resolvedColumnDef.accessorKey]\n }\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n resolvedColumnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TData, any> = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef: resolvedColumnDef as ColumnDef<TData, any>,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TData, TValue>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [table._getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TData, TValue>]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n\n column = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, table))\n }, column)\n\n // Yes, we have to convert table to uknown, because we know more than the compiler here.\n return column as Column<TData, TValue>\n}\n"],"names":["createColumn","table","columnDef","depth","parent","defaultColumn","_getDefaultColumnDef","resolvedColumnDef","accessorKey","id","replace","undefined","header","accessorFn","includes","originalRow","result","key","split","process","env","NODE_ENV","Error","column","String","columns","getFlatColumns","memo","flatMap","d","debug","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","_features","reduce","obj","feature","Object","assign"],"mappings":";;;;;;;;;;;;;;;;AAwBO,SAASA,
|
|
1
|
+
{"version":3,"file":"column.js","sources":["../../../src/core/column.ts"],"sourcesContent":["import { TaggedTemplateExpression } from '@babel/types'\nimport {\n Column,\n Table,\n AccessorFn,\n ColumnDef,\n ColumnDefTemplate,\n RowData,\n ColumnMeta,\n ColumnDefResolved,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type CoreColumn<TData extends RowData, TValue> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TData, TValue>\n columnDef: ColumnDef<TData, TValue>\n columns: Column<TData, TValue>[]\n parent?: Column<TData, TValue>\n getFlatColumns: () => Column<TData, TValue>[]\n getLeafColumns: () => Column<TData, TValue>[]\n}\n\nexport function createColumn<TData extends RowData, TValue>(\n table: Table<TData>,\n columnDef: ColumnDef<TData, TValue>,\n depth: number,\n parent?: Column<TData, TValue>\n) {\n const defaultColumn = table._getDefaultColumnDef()\n\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef,\n } as ColumnDefResolved<TData>\n\n const accessorKey = resolvedColumnDef.accessorKey\n\n let id =\n resolvedColumnDef.id ??\n (accessorKey ? accessorKey.replace('.', '_') : undefined) ??\n (typeof resolvedColumnDef.header === 'string'\n ? resolvedColumnDef.header\n : undefined)\n\n let accessorFn: AccessorFn<TData> | undefined\n\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = (originalRow: TData) => {\n let result = originalRow as Record<string, any>\n\n for (const key of accessorKey.split('.')) {\n result = result[key]\n }\n\n return result\n }\n } else {\n accessorFn = (originalRow: TData) =>\n (originalRow as any)[resolvedColumnDef.accessorKey]\n }\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n resolvedColumnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TData, any> = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef: resolvedColumnDef as ColumnDef<TData, any>,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TData, TValue>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [table._getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TData, TValue>]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n\n column = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, table))\n }, column)\n\n // Yes, we have to convert table to uknown, because we know more than the compiler here.\n return column as Column<TData, TValue>\n}\n"],"names":["createColumn","table","columnDef","depth","parent","defaultColumn","_getDefaultColumnDef","resolvedColumnDef","accessorKey","id","replace","undefined","header","accessorFn","includes","originalRow","result","key","split","process","env","NODE_ENV","Error","column","String","columns","getFlatColumns","memo","flatMap","d","debug","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","_features","reduce","obj","feature","Object","assign"],"mappings":"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"}
|