@tanstack/table-core 8.0.0-alpha.22 → 8.0.0-alpha.25
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/aggregationTypes.js +21 -19
- package/build/cjs/aggregationTypes.js.map +1 -1
- package/build/cjs/core.js +17 -29
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/createTable.js +2 -2
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +23 -8
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +1 -8
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +1 -1
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +1 -1
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Headers.js.map +1 -1
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +3 -3
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterTypes.js.map +1 -1
- package/build/cjs/sortTypes.js.map +1 -1
- package/build/cjs/utils/columnFilterRowsFn.js +20 -78
- package/build/cjs/utils/columnFilterRowsFn.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js +100 -0
- package/build/cjs/utils/filterRowsUtils.js.map +1 -0
- package/build/cjs/utils/globalFilterRowsFn.js +10 -62
- package/build/cjs/utils/globalFilterRowsFn.js.map +1 -1
- package/build/cjs/utils/groupRowsFn.js +15 -15
- package/build/cjs/utils/groupRowsFn.js.map +1 -1
- package/build/cjs/utils/sortRowsFn.js +1 -1
- package/build/cjs/utils/sortRowsFn.js.map +1 -1
- package/build/esm/index.js +2587 -2620
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +368 -335
- package/build/types/aggregationTypes.d.ts +9 -9
- package/build/types/core.d.ts +8 -13
- package/build/types/createTable.d.ts +4 -4
- package/build/types/features/ColumnSizing.d.ts +13 -8
- package/build/types/features/Expanding.d.ts +6 -6
- package/build/types/features/Filters.d.ts +15 -15
- package/build/types/features/Grouping.d.ts +16 -16
- package/build/types/features/Headers.d.ts +6 -6
- package/build/types/features/Ordering.d.ts +4 -4
- package/build/types/features/Pagination.d.ts +5 -5
- package/build/types/features/Pinning.d.ts +5 -5
- package/build/types/features/RowSelection.d.ts +8 -8
- package/build/types/features/Sorting.d.ts +12 -12
- package/build/types/features/Visibility.d.ts +6 -6
- package/build/types/filterTypes.d.ts +10 -10
- package/build/types/sortTypes.d.ts +7 -7
- package/build/types/types.d.ts +22 -13
- package/build/types/utils/filterRowsUtils.d.ts +3 -0
- package/build/types/utils/sortRowsQuicksortFn.d.ts +11 -0
- package/build/umd/index.development.js +2587 -2620
- 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/aggregationTypes.ts +23 -19
- package/src/core.tsx +29 -55
- package/src/createTable.tsx +17 -11
- package/src/features/ColumnSizing.ts +31 -7
- package/src/features/Expanding.ts +7 -15
- package/src/features/Filters.ts +15 -15
- package/src/features/Grouping.ts +19 -19
- package/src/features/Headers.ts +5 -5
- package/src/features/Ordering.ts +3 -3
- package/src/features/Pagination.ts +4 -4
- package/src/features/Pinning.ts +4 -4
- package/src/features/RowSelection.ts +9 -11
- package/src/features/Sorting.ts +11 -11
- package/src/features/Visibility.ts +5 -5
- package/src/filterTypes.ts +9 -9
- package/src/sortTypes.ts +6 -6
- package/src/types.ts +34 -25
- package/src/utils/columnFilterRowsFn.ts +12 -73
- package/src/utils/filterRowsUtils.ts +107 -0
- package/src/utils/globalFilterRowsFn.ts +10 -66
- package/src/utils/groupRowsFn.ts +15 -17
- package/src/utils/sortRowsFn.ts +6 -8
- package/src/utils/sortRowsQuicksortFn.ts +174 -0
|
@@ -26,18 +26,18 @@ var aggregationTypes = {
|
|
|
26
26
|
count: count
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
function sum(
|
|
29
|
+
function sum(_getLeafValues, getChildValues) {
|
|
30
30
|
// It's faster to just add the aggregations together instead of
|
|
31
31
|
// process leaf nodes individually
|
|
32
|
-
return
|
|
32
|
+
return getChildValues().reduce(function (sum, next) {
|
|
33
33
|
return sum + (typeof next === 'number' ? next : 0);
|
|
34
34
|
}, 0);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
function min(
|
|
37
|
+
function min(_getLeafValues, getChildValues) {
|
|
38
38
|
var min;
|
|
39
39
|
|
|
40
|
-
for (var _iterator = _rollupPluginBabelHelpers.createForOfIteratorHelperLoose(
|
|
40
|
+
for (var _iterator = _rollupPluginBabelHelpers.createForOfIteratorHelperLoose(getChildValues()), _step; !(_step = _iterator()).done;) {
|
|
41
41
|
var value = _step.value;
|
|
42
42
|
|
|
43
43
|
if (value != null && (min > value || min === undefined && value >= value)) {
|
|
@@ -48,10 +48,10 @@ function min(_leafValues, childValues) {
|
|
|
48
48
|
return min;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
function max(
|
|
51
|
+
function max(_getLeafValues, getChildValues) {
|
|
52
52
|
var max;
|
|
53
53
|
|
|
54
|
-
for (var _iterator2 = _rollupPluginBabelHelpers.createForOfIteratorHelperLoose(
|
|
54
|
+
for (var _iterator2 = _rollupPluginBabelHelpers.createForOfIteratorHelperLoose(getChildValues()), _step2; !(_step2 = _iterator2()).done;) {
|
|
55
55
|
var value = _step2.value;
|
|
56
56
|
|
|
57
57
|
if (value != null && (max < value || max === undefined && value >= value)) {
|
|
@@ -62,11 +62,11 @@ function max(_leafValues, childValues) {
|
|
|
62
62
|
return max;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
function extent(
|
|
65
|
+
function extent(_getLeafValues, getChildValues) {
|
|
66
66
|
var min;
|
|
67
67
|
var max;
|
|
68
68
|
|
|
69
|
-
for (var _iterator3 = _rollupPluginBabelHelpers.createForOfIteratorHelperLoose(
|
|
69
|
+
for (var _iterator3 = _rollupPluginBabelHelpers.createForOfIteratorHelperLoose(getChildValues()), _step3; !(_step3 = _iterator3()).done;) {
|
|
70
70
|
var value = _step3.value;
|
|
71
71
|
|
|
72
72
|
if (value != null) {
|
|
@@ -82,11 +82,11 @@ function extent(_leafValues, childValues) {
|
|
|
82
82
|
return [min, max];
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
function mean(
|
|
85
|
+
function mean(getLeafValues) {
|
|
86
86
|
var count = 0;
|
|
87
87
|
var sum = 0;
|
|
88
88
|
|
|
89
|
-
for (var _iterator4 = _rollupPluginBabelHelpers.createForOfIteratorHelperLoose(
|
|
89
|
+
for (var _iterator4 = _rollupPluginBabelHelpers.createForOfIteratorHelperLoose(getLeafValues()), _step4; !(_step4 = _iterator4()).done;) {
|
|
90
90
|
var value = _step4.value;
|
|
91
91
|
|
|
92
92
|
if (value != null && (value = +value) >= value) {
|
|
@@ -98,14 +98,16 @@ function mean(leafValues) {
|
|
|
98
98
|
return;
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
function median(
|
|
102
|
-
|
|
101
|
+
function median(getLeafValues) {
|
|
102
|
+
var leafValues = getLeafValues();
|
|
103
|
+
|
|
104
|
+
if (!leafValues.length) {
|
|
103
105
|
return;
|
|
104
106
|
}
|
|
105
107
|
|
|
106
108
|
var min = 0;
|
|
107
109
|
var max = 0;
|
|
108
|
-
|
|
110
|
+
leafValues.forEach(function (value) {
|
|
109
111
|
if (typeof value === 'number') {
|
|
110
112
|
min = Math.min(min, value);
|
|
111
113
|
max = Math.max(max, value);
|
|
@@ -114,16 +116,16 @@ function median(values) {
|
|
|
114
116
|
return (min + max) / 2;
|
|
115
117
|
}
|
|
116
118
|
|
|
117
|
-
function unique(
|
|
118
|
-
return Array.from(new Set(
|
|
119
|
+
function unique(getLeafValues) {
|
|
120
|
+
return Array.from(new Set(getLeafValues()).values());
|
|
119
121
|
}
|
|
120
122
|
|
|
121
|
-
function uniqueCount(
|
|
122
|
-
return new Set(
|
|
123
|
+
function uniqueCount(getLeafValues) {
|
|
124
|
+
return new Set(getLeafValues()).size;
|
|
123
125
|
}
|
|
124
126
|
|
|
125
|
-
function count(
|
|
126
|
-
return
|
|
127
|
+
function count(getLeafValues) {
|
|
128
|
+
return getLeafValues().length;
|
|
127
129
|
}
|
|
128
130
|
|
|
129
131
|
exports.aggregationTypes = aggregationTypes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregationTypes.js","sources":["../../src/aggregationTypes.ts"],"sourcesContent":["export const aggregationTypes = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count,\n}\n\nexport type BuiltInAggregationType = keyof typeof aggregationTypes\n\nfunction sum(
|
|
1
|
+
{"version":3,"file":"aggregationTypes.js","sources":["../../src/aggregationTypes.ts"],"sourcesContent":["export const aggregationTypes = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count,\n}\n\nexport type BuiltInAggregationType = keyof typeof aggregationTypes\n\nfunction sum(_getLeafValues: () => unknown[], getChildValues: () => unknown[]) {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return getChildValues().reduce(\n (sum: number, next: unknown) => sum + (typeof next === 'number' ? next : 0),\n 0\n )\n}\n\nfunction min(_getLeafValues: () => unknown[], getChildValues: () => unknown[]) {\n let min: number | undefined\n\n for (const value of getChildValues() as number[]) {\n if (\n value != null &&\n (min! > value || (min === undefined && value >= value))\n ) {\n min = value\n }\n }\n\n return min\n}\n\nfunction max(_getLeafValues: () => unknown[], getChildValues: () => unknown[]) {\n let max: number | undefined\n\n for (const value of getChildValues() as number[]) {\n if (\n value != null &&\n (max! < value || (max === undefined && value >= value))\n ) {\n max = value\n }\n }\n\n return max\n}\n\nfunction extent(\n _getLeafValues: () => unknown[],\n getChildValues: () => unknown[]\n) {\n let min: number | undefined\n let max: number | undefined\n\n for (const value of getChildValues() as number[]) {\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\nfunction mean(getLeafValues: () => unknown[]) {\n let count = 0\n let sum = 0\n\n for (let value of getLeafValues() as number[]) {\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\nfunction median(getLeafValues: () => unknown[]) {\n const leafValues = getLeafValues()\n if (!leafValues.length) {\n return\n }\n\n let min = 0\n let max = 0\n\n leafValues.forEach(value => {\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\nfunction unique<T>(getLeafValues: () => T[]) {\n return Array.from(new Set(getLeafValues()).values())\n}\n\nfunction uniqueCount(getLeafValues: () => unknown[]) {\n return new Set(getLeafValues()).size\n}\n\nfunction count(getLeafValues: () => unknown[]) {\n return getLeafValues().length\n}\n"],"names":["aggregationTypes","sum","min","max","extent","mean","median","unique","uniqueCount","count","_getLeafValues","getChildValues","reduce","next","value","undefined","getLeafValues","leafValues","length","forEach","Math","Array","from","Set","values","size"],"mappings":"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"}
|
package/build/cjs/core.js
CHANGED
|
@@ -14,19 +14,19 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
14
14
|
|
|
15
15
|
var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
|
|
16
16
|
var utils = require('./utils.js');
|
|
17
|
-
var
|
|
18
|
-
var
|
|
19
|
-
var Pinning = require('./features/Pinning.js');
|
|
20
|
-
var Headers = require('./features/Headers.js');
|
|
17
|
+
var ColumnSizing = require('./features/ColumnSizing.js');
|
|
18
|
+
var Expanding = require('./features/Expanding.js');
|
|
21
19
|
var Filters = require('./features/Filters.js');
|
|
22
|
-
var Sorting = require('./features/Sorting.js');
|
|
23
20
|
var Grouping = require('./features/Grouping.js');
|
|
24
|
-
var
|
|
25
|
-
var ColumnSizing = require('./features/ColumnSizing.js');
|
|
21
|
+
var Ordering = require('./features/Ordering.js');
|
|
26
22
|
var Pagination = require('./features/Pagination.js');
|
|
23
|
+
var Pinning = require('./features/Pinning.js');
|
|
27
24
|
var RowSelection = require('./features/RowSelection.js');
|
|
25
|
+
var Sorting = require('./features/Sorting.js');
|
|
26
|
+
var Visibility = require('./features/Visibility.js');
|
|
27
|
+
var Headers = require('./features/Headers.js');
|
|
28
28
|
|
|
29
|
-
var features = [Visibility.Visibility, Ordering.Ordering, Pinning.Pinning,
|
|
29
|
+
var features = [Headers.Headers, Visibility.Visibility, Ordering.Ordering, Pinning.Pinning, Filters.Filters, Sorting.Sorting, Grouping.Grouping, Expanding.Expanding, Pagination.Pagination, RowSelection.RowSelection, ColumnSizing.ColumnSizing];
|
|
30
30
|
function createTableInstance(options) {
|
|
31
31
|
var _options$initialState;
|
|
32
32
|
|
|
@@ -134,7 +134,7 @@ function createTableInstance(options) {
|
|
|
134
134
|
throw new Error();
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
var column = _rollupPluginBabelHelpers["extends"]({},
|
|
137
|
+
var column = _rollupPluginBabelHelpers["extends"]({}, defaultColumn, columnDef, {
|
|
138
138
|
id: "" + id,
|
|
139
139
|
accessorFn: accessorFn,
|
|
140
140
|
parent: parent,
|
|
@@ -270,18 +270,6 @@ function createTableInstance(options) {
|
|
|
270
270
|
|
|
271
271
|
return column;
|
|
272
272
|
},
|
|
273
|
-
getColumnWidth: function getColumnWidth(columnId) {
|
|
274
|
-
var _column$minWidth, _ref3, _column$maxWidth;
|
|
275
|
-
|
|
276
|
-
var column = instance.getColumn(columnId);
|
|
277
|
-
|
|
278
|
-
if (!column) {
|
|
279
|
-
throw new Error();
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
var columnSize = instance.getState().columnSizing[column.id];
|
|
283
|
-
return Math.min(Math.max((_column$minWidth = column.minWidth) != null ? _column$minWidth : ColumnSizing.defaultColumnSizing.minWidth, (_ref3 = columnSize != null ? columnSize : column.width) != null ? _ref3 : ColumnSizing.defaultColumnSizing.width), (_column$maxWidth = column.maxWidth) != null ? _column$maxWidth : ColumnSizing.defaultColumnSizing.maxWidth);
|
|
284
|
-
},
|
|
285
273
|
createCell: function createCell(row, column, value) {
|
|
286
274
|
var cell = {
|
|
287
275
|
id: row.id + "_" + column.id,
|
|
@@ -316,7 +304,11 @@ function createTableInstance(options) {
|
|
|
316
304
|
depth: depth,
|
|
317
305
|
values: values,
|
|
318
306
|
subRows: [],
|
|
319
|
-
|
|
307
|
+
getLeafRows: function getLeafRows() {
|
|
308
|
+
return utils.flattenBy(row.subRows, function (d) {
|
|
309
|
+
return d.subRows;
|
|
310
|
+
});
|
|
311
|
+
},
|
|
320
312
|
getRowProps: function getRowProps(userProps) {
|
|
321
313
|
return instance.getRowProps(row.id, userProps);
|
|
322
314
|
},
|
|
@@ -410,13 +402,9 @@ function createTableInstance(options) {
|
|
|
410
402
|
|
|
411
403
|
for (var _i = 0; _i < row.originalSubRows.length; _i++) {
|
|
412
404
|
accessRow(row.originalSubRows[_i], _i, depth + 1, subRows, row);
|
|
413
|
-
}
|
|
414
|
-
|
|
405
|
+
}
|
|
415
406
|
|
|
416
407
|
row.subRows = subRows;
|
|
417
|
-
row.leafRows = utils.flattenBy(subRows, function (d) {
|
|
418
|
-
return d.leafRows;
|
|
419
|
-
});
|
|
420
408
|
}
|
|
421
409
|
}
|
|
422
410
|
};
|
|
@@ -438,9 +426,9 @@ function createTableInstance(options) {
|
|
|
438
426
|
return (_instance$options$deb10 = instance.options.debugAll) != null ? _instance$options$deb10 : instance.options.debugTable;
|
|
439
427
|
},
|
|
440
428
|
onChange: function onChange() {
|
|
441
|
-
instance._notifyRowSelectionReset();
|
|
442
|
-
|
|
443
429
|
instance._notifyFiltersReset();
|
|
430
|
+
|
|
431
|
+
instance._notifyRowSelectionReset();
|
|
444
432
|
}
|
|
445
433
|
}),
|
|
446
434
|
// The final calls start at the bottom of the model,
|
package/build/cjs/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sources":["../../src/core.tsx"],"sourcesContent":["import {\n flattenBy,\n functionalUpdate,\n propGetter,\n memo,\n RequiredKeys,\n} from './utils'\n\nimport {\n Updater,\n PropGetterValue,\n Options,\n TableState,\n ColumnDef,\n Row,\n Column,\n Cell,\n Header,\n AccessorFn,\n HeaderRenderProps,\n TableProps,\n TableBodyProps,\n PropGetter,\n Getter,\n RowProps,\n CellProps,\n TableInstance,\n RowValues,\n PartialGenerics,\n CoreCell,\n Renderable,\n UseRenderer,\n} from './types'\n\nimport { Visibility } from './features/Visibility'\nimport { Ordering } from './features/Ordering'\nimport { Pinning } from './features/Pinning'\nimport { Headers } from './features/Headers'\nimport { Filters } from './features/Filters'\nimport { Sorting } from './features/Sorting'\nimport { Grouping } from './features/Grouping'\nimport { Expanding } from './features/Expanding'\nimport { ColumnSizing, defaultColumnSizing } from './features/ColumnSizing'\nimport { Pagination } from './features/Pagination'\nimport { RowSelection } from './features/RowSelection'\nimport { RowModel } from '.'\n\nconst features = [\n Visibility,\n Ordering,\n Pinning,\n Headers,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n ColumnSizing,\n Pagination,\n RowSelection,\n]\n\nexport type CoreOptions<TGenerics extends PartialGenerics> = {\n data: TGenerics['Row'][]\n columns: ColumnDef<TGenerics>[]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n render: TGenerics['Render']\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n defaultColumn?: Partial<ColumnDef<TGenerics>>\n initialState?: Partial<TableState>\n getSubRows?: (\n originalRow: TGenerics['Row'],\n index: number\n ) => TGenerics['Row'][]\n getRowId?: (\n originalRow: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n autoResetAll?: boolean\n}\n\nexport type TableCore<TGenerics extends PartialGenerics> = {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<Options<TGenerics>, 'state'>\n setOptions: (newOptions: Updater<Options<TGenerics>>) => void\n getRowId: (\n _: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n getDefaultColumn: () => Partial<ColumnDef<TGenerics>>\n getColumnDefs: () => ColumnDef<TGenerics>[]\n createColumn: (\n columnDef: ColumnDef<TGenerics>,\n depth: number,\n parent?: Column<TGenerics>\n ) => Column<TGenerics>\n getAllColumns: () => Column<TGenerics>[]\n getAllFlatColumns: () => Column<TGenerics>[]\n getAllFlatColumnsById: () => Record<string, Column<TGenerics>>\n getAllLeafColumns: () => Column<TGenerics>[]\n getColumn: (columnId: string) => Column<TGenerics>\n getColumnWidth: (columnId: string) => number\n getTotalWidth: () => number\n createCell: (\n row: Row<TGenerics>,\n column: Column<TGenerics>,\n value: any\n ) => Cell<TGenerics>\n createRow: (\n id: string,\n original: TGenerics['Row'] | undefined,\n rowIndex: number,\n depth: number,\n values: Record<string, any>\n ) => Row<TGenerics>\n getCoreRowModel: () => RowModel<TGenerics>\n getRowModel: () => RowModel<TGenerics>\n getRow: (id: string) => Row<TGenerics>\n getCell: (rowId: string, columnId: string) => Cell<TGenerics>\n getTableProps: PropGetter<TableProps>\n getTableBodyProps: PropGetter<TableBodyProps>\n getRowProps: <TGetter extends Getter<RowProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<RowProps, TGetter>\n getCellProps: <TGetter extends Getter<CellProps>>(\n rowId: string,\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<CellProps, TGetter>\n getTableWidth: () => number\n getLeftTableWidth: () => number\n getCenterTableWidth: () => number\n getRightTableWidth: () => number\n render: <TProps>(\n template: Renderable<TGenerics, TProps>,\n props: TProps\n ) => string | null | ReturnType<UseRenderer<TGenerics>>\n}\n\nexport type CoreRow<TGenerics extends PartialGenerics> = {\n id: string\n index: number\n original?: TGenerics['Row']\n depth: number\n values: RowValues\n leafRows: Row<TGenerics>[]\n subRows: Row<TGenerics>[]\n getRowProps: PropGetter<RowProps>\n originalSubRows?: TGenerics['Row'][]\n getAllCells: () => Cell<TGenerics>[]\n getAllCellsByColumnId: () => Record<string, Cell<TGenerics>>\n}\n\nexport type CoreColumnDef<TGenerics extends PartialGenerics> = {\n id: string\n accessorKey?: string & keyof TGenerics['Row']\n accessorFn?: AccessorFn<TGenerics['Row']>\n width?: number\n minWidth?: number\n maxWidth?: number\n columns?: ColumnDef<TGenerics>[]\n header?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n footer?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n cell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n value: TGenerics['Value']\n }\n >\n meta?: TGenerics['ColumnMeta']\n}\n// & GeneratedProperties<true>\n\nexport type CoreColumn<TGenerics extends PartialGenerics> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TGenerics['Row']>\n columnDef: ColumnDef<TGenerics>\n getWidth: () => number\n columns: Column<TGenerics>[]\n parent?: Column<TGenerics>\n getFlatColumns: () => Column<TGenerics>[]\n getLeafColumns: () => Column<TGenerics>[]\n}\n\nexport function createTableInstance<TGenerics extends PartialGenerics>(\n options: Options<TGenerics>\n): TableInstance<TGenerics> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let instance = {} as TableInstance<TGenerics>\n\n const defaultOptions = features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getDefaultOptions?.(instance))\n }, {})\n\n const buildOptions = (options: Options<TGenerics>) => ({\n ...defaultOptions,\n ...options,\n })\n\n instance.options = buildOptions(options)\n\n const initialState = {\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getInitialState?.())\n }, {}),\n ...(options.initialState ?? {}),\n } as TableState\n\n const finalInstance: TableInstance<TGenerics> = {\n ...instance,\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getInstance?.(instance))\n }, {}),\n initialState,\n reset: () => {\n instance.setState(instance.initialState)\n },\n setOptions: updater => {\n instance.options = buildOptions(\n functionalUpdate(updater, instance.options)\n )\n },\n render: (template, props) => {\n if (typeof instance.options.render === 'function') {\n return instance.options.render(template, props)\n }\n\n if (typeof template === 'function') {\n return (template as Function)(props)\n }\n\n return template\n },\n\n getRowId: (_: TGenerics['Row'], index: number, parent?: Row<TGenerics>) =>\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getState: () => {\n return instance.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n instance.options.onStateChange?.(updater)\n },\n\n getDefaultColumn: memo(\n () => [instance.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<ColumnDef<TGenerics>>\n\n return {\n header: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n footer: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n cell: ({ value = '' }: { value: any }): JSX.Element =>\n typeof value === 'boolean' ? value.toString() : value,\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getDefaultColumn?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TGenerics>>\n },\n {\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n key: 'getDefaultColumn',\n }\n ),\n\n getColumnDefs: () => instance.options.columns,\n\n createColumn: (columnDef, depth: number, parent) => {\n const defaultColumn = instance.getDefaultColumn()\n\n let id =\n columnDef.id ??\n columnDef.accessorKey ??\n (typeof columnDef.header === 'string' ? columnDef.header : undefined)\n\n let accessorFn: AccessorFn<TGenerics['Row']> | undefined\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn\n } else if (columnDef.accessorKey) {\n accessorFn = (originalRow?: TGenerics['Row']) =>\n (originalRow as any)[columnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n columnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TGenerics> = {\n ...defaultColumnSizing,\n ...defaultColumn,\n ...columnDef,\n id: `${id}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef,\n columns: [],\n getWidth: () => instance.getColumnWidth(column.id),\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TGenerics>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: 'column.getFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [instance.getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TGenerics>]\n },\n {\n key: 'column.getLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n\n column = features.reduce((obj, feature) => {\n return Object.assign(\n obj,\n (feature as any).createColumn?.(column, instance)\n )\n }, column)\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return column as Column<TGenerics>\n },\n\n getAllColumns: memo(\n () => [instance.getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TGenerics>[],\n parent?: Column<TGenerics>,\n depth = 0\n ): Column<TGenerics>[] => {\n return columnDefs.map(columnDef => {\n const column = instance.createColumn(columnDef, depth, parent)\n\n column.columns = columnDef.columns\n ? recurseColumns(columnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: 'getAllColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [instance.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: 'getAllFlatColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumnsById: memo(\n () => [instance.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TGenerics>>)\n },\n {\n key: 'getAllFlatColumnsById',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [instance.getAllColumns(), instance.getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: 'getAllLeafColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = instance.getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Table] Column with id ${columnId} does not exist.`)\n }\n throw new Error()\n }\n\n return column\n },\n\n getColumnWidth: (columnId: string) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const columnSize = instance.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.minWidth ?? defaultColumnSizing.minWidth,\n columnSize ?? column.width ?? defaultColumnSizing.width\n ),\n column.maxWidth ?? defaultColumnSizing.maxWidth\n )\n },\n\n createCell: (row, column, value) => {\n const cell: CoreCell<TGenerics> = {\n id: `${row.id}_${column.id}`,\n rowId: row.id,\n columnId: column.id,\n row,\n column,\n value,\n getCellProps: userProps =>\n instance.getCellProps(row.id, column.id, userProps)!,\n renderCell: () =>\n column.cell\n ? instance.render(column.cell, {\n instance,\n column,\n row,\n cell: cell as Cell<TGenerics>,\n value,\n })\n : null,\n }\n\n features.forEach(feature => {\n Object.assign(\n cell,\n (feature as any).createCell?.(\n cell as Cell<TGenerics>,\n column,\n row as Row<TGenerics>,\n instance\n )\n )\n }, {})\n\n return cell as Cell<TGenerics>\n },\n\n createRow: (id, original, rowIndex, depth, values) => {\n let row: CoreRow<TGenerics> = {\n id,\n index: rowIndex,\n original,\n depth,\n values,\n subRows: [],\n leafRows: [],\n getRowProps: userProps => instance.getRowProps(row.id, userProps)!,\n getAllCells: undefined!,\n getAllCellsByColumnId: undefined!,\n }\n\n row.getAllCells = memo(\n () => [instance.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return instance.createCell(\n row as Row<TGenerics>,\n column,\n row.values[column.id]\n )\n })\n },\n {\n key: process.env.NODE_ENV !== 'production' ? 'row.getAllCells' : '',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n )\n\n row.getAllCellsByColumnId = memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.columnId] = cell\n return acc\n }, {} as Record<string, Cell<TGenerics>>)\n },\n {\n key: 'row.getAllCellsByColumnId',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n )\n\n for (let i = 0; i < features.length; i++) {\n const feature = features[i]\n Object.assign(row, (feature as any).createRow?.(row, instance))\n }\n\n return row as Row<TGenerics>\n },\n\n getCoreRowModel: memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TGenerics>[]\n flatRows: Row<TGenerics>[]\n rowsById: Record<string, Row<TGenerics>>\n } => {\n // Access the row model using initial columns\n const rows: Row<TGenerics>[] = []\n const flatRows: Row<TGenerics>[] = []\n const rowsById: Record<string, Row<TGenerics>> = {}\n\n const leafColumns = instance.getAllLeafColumns()\n\n const accessRow = (\n originalRow: TGenerics['Row'],\n rowIndex: number,\n depth = 0,\n parentRows: Row<TGenerics>[],\n parent?: Row<TGenerics>\n ) => {\n const id = instance.getRowId(originalRow, rowIndex, parent)\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRowId expected an ID, but got ${id}`)\n }\n }\n\n const values: Record<string, any> = {}\n\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]\n if (column && column.accessorFn) {\n values[column.id] = column.accessorFn(originalRow, rowIndex)\n }\n }\n\n // Make the row\n const row = instance.createRow(\n id,\n originalRow,\n rowIndex,\n depth,\n values\n )\n\n // Push instance row into the parentRows array\n parentRows.push(row)\n // Keep track of every row in a flat array\n flatRows.push(row)\n // Also keep track of every row by its ID\n rowsById[id] = row\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n const originalSubRows = instance.options.getSubRows(\n originalRow,\n rowIndex\n )\n\n // Then recursively access them\n if (originalSubRows?.length) {\n row.originalSubRows = originalSubRows\n const subRows: Row<TGenerics>[] = []\n\n for (let i = 0; i < row.originalSubRows.length; i++) {\n accessRow(\n row.originalSubRows[i] as TGenerics['Row'],\n i,\n depth + 1,\n subRows,\n row\n )\n }\n // Keep the new subRows array on the row\n row.subRows = subRows\n row.leafRows = flattenBy(subRows, d => d.leafRows)\n }\n }\n }\n\n for (let i = 0; i < data.length; i++) {\n accessRow(data[i] as TGenerics['Row'], i, 0, rows)\n }\n\n return { rows, flatRows, rowsById }\n },\n {\n key: 'getRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._notifyRowSelectionReset()\n instance._notifyFiltersReset()\n },\n }\n ),\n\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return instance.getPaginationRowModel()\n },\n\n getRow: (id: string) => {\n const row = instance.getRowModel().rowsById[id]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`)\n }\n throw new Error()\n }\n\n return row\n },\n\n getCell: (rowId: string, columnId: string) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`[Table] could not find row with id ${rowId}`)\n }\n throw new Error()\n }\n\n const cell = row.getAllCellsByColumnId()[columnId]\n\n if (!cell) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `[Table] could not find cell ${columnId} in row ${rowId}`\n )\n }\n throw new Error()\n }\n\n return cell\n },\n\n getTableProps: userProps => {\n return propGetter(\n {\n role: 'table',\n },\n userProps\n )\n },\n\n getTableBodyProps: userProps => {\n return propGetter(\n {\n role: 'rowgroup',\n },\n userProps\n )\n },\n\n getRowProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n if (!row) {\n return\n }\n\n return propGetter(\n {\n key: row.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getCellProps: (rowId, columnId, userProps) => {\n const cell = instance.getCell(rowId, columnId)\n\n if (!cell) {\n return\n }\n\n return propGetter(\n {\n key: cell.id,\n role: 'gridcell',\n },\n userProps\n )\n },\n\n getTableWidth: () =>\n instance.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getLeftTableWidth: () =>\n instance.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getCenterTableWidth: () =>\n instance.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getRightTableWidth: () =>\n instance.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n }\n\n instance = Object.assign(instance, finalInstance)\n\n return instance\n}\n"],"names":["features","Visibility","Ordering","Pinning","Headers","Filters","Sorting","Grouping","Expanding","ColumnSizing","Pagination","RowSelection","createTableInstance","options","debugAll","debugTable","console","info","instance","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","buildOptions","initialState","getInitialState","finalInstance","getInstance","reset","setState","setOptions","updater","functionalUpdate","render","template","props","getRowId","_","index","parent","id","join","getState","state","onStateChange","getDefaultColumn","memo","defaultColumn","header","column","footer","cell","value","toString","debug","debugColumns","key","getColumnDefs","columns","createColumn","columnDef","depth","accessorKey","undefined","accessorFn","originalRow","process","env","NODE_ENV","Error","defaultColumnSizing","getWidth","getColumnWidth","getFlatColumns","flatMap","d","getLeafColumns","getOrderColumnsFn","orderColumns","length","leafColumns","getAllColumns","columnDefs","recurseColumns","map","getAllFlatColumns","allColumns","getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","getColumn","columnId","warn","columnSize","columnSizing","Math","min","max","minWidth","width","maxWidth","createCell","row","rowId","getCellProps","userProps","renderCell","forEach","createRow","original","rowIndex","values","subRows","leafRows","getRowProps","getAllCells","getAllCellsByColumnId","debugRows","allCells","i","getCoreRowModel","data","rows","flatRows","rowsById","accessRow","parentRows","push","getSubRows","originalSubRows","flattenBy","onChange","_notifyRowSelectionReset","_notifyFiltersReset","getRowModel","getPaginationRowModel","getRow","getCell","getTableProps","propGetter","role","getTableBodyProps","getTableWidth","getHeaderGroups","headers","sum","getLeftTableWidth","getLeftHeaderGroups","getCenterTableWidth","getCenterHeaderGroups","getRightTableWidth","getRightHeaderGroups"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sources":["../../src/core.tsx"],"sourcesContent":["import {\n flattenBy,\n functionalUpdate,\n propGetter,\n memo,\n RequiredKeys,\n} from './utils'\n\nimport {\n Updater,\n PropGetterValue,\n Options,\n TableState,\n ColumnDef,\n Row,\n Column,\n Cell,\n Header,\n AccessorFn,\n HeaderRenderProps,\n TableProps,\n TableBodyProps,\n PropGetter,\n Getter,\n RowProps,\n CellProps,\n TableInstance,\n RowValues,\n PartialGenerics,\n CoreCell,\n Renderable,\n UseRenderer,\n RowModel,\n TableFeature,\n AnyGenerics,\n} from './types'\n\nimport { ColumnSizing } from './features/ColumnSizing'\nimport { Expanding } from './features/Expanding'\nimport { Filters } from './features/Filters'\nimport { Grouping } from './features/Grouping'\nimport { Ordering } from './features/Ordering'\nimport { Pagination } from './features/Pagination'\nimport { Pinning } from './features/Pinning'\nimport { RowSelection } from './features/RowSelection'\nimport { Sorting } from './features/Sorting'\nimport { Visibility } from './features/Visibility'\nimport { Headers } from './features/Headers'\n\nconst features: TableFeature[] = [\n Headers,\n Visibility,\n Ordering,\n Pinning,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n Pagination,\n RowSelection,\n ColumnSizing,\n]\n\nexport type CoreOptions<TGenerics extends AnyGenerics> = {\n data: TGenerics['Row'][]\n columns: ColumnDef<TGenerics>[]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n render: TGenerics['Render']\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n defaultColumn?: Partial<ColumnDef<TGenerics>>\n initialState?: Partial<TableState>\n getSubRows?: (\n originalRow: TGenerics['Row'],\n index: number\n ) => TGenerics['Row'][]\n getRowId?: (\n originalRow: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n autoResetAll?: boolean\n}\n\nexport type TableCore<TGenerics extends AnyGenerics> = {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<Options<TGenerics>, 'state'>\n setOptions: (newOptions: Updater<Options<TGenerics>>) => void\n getRowId: (\n _: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n getDefaultColumn: () => Partial<ColumnDef<TGenerics>>\n getColumnDefs: () => ColumnDef<TGenerics>[]\n createColumn: (\n columnDef: ColumnDef<TGenerics>,\n depth: number,\n parent?: Column<TGenerics>\n ) => Column<TGenerics>\n getAllColumns: () => Column<TGenerics>[]\n getAllFlatColumns: () => Column<TGenerics>[]\n getAllFlatColumnsById: () => Record<string, Column<TGenerics>>\n getAllLeafColumns: () => Column<TGenerics>[]\n getColumn: (columnId: string) => Column<TGenerics>\n getTotalWidth: () => number\n createCell: (\n row: Row<TGenerics>,\n column: Column<TGenerics>,\n value: any\n ) => Cell<TGenerics>\n createRow: (\n id: string,\n original: TGenerics['Row'] | undefined,\n rowIndex: number,\n depth: number,\n values: Record<string, any>\n ) => Row<TGenerics>\n getCoreRowModel: () => RowModel<TGenerics>\n getRowModel: () => RowModel<TGenerics>\n getRow: (id: string) => Row<TGenerics>\n getCell: (rowId: string, columnId: string) => Cell<TGenerics>\n getTableProps: PropGetter<TableProps>\n getTableBodyProps: PropGetter<TableBodyProps>\n getRowProps: <TGetter extends Getter<RowProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<RowProps, TGetter>\n getCellProps: <TGetter extends Getter<CellProps>>(\n rowId: string,\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<CellProps, TGetter>\n getTableWidth: () => number\n getLeftTableWidth: () => number\n getCenterTableWidth: () => number\n getRightTableWidth: () => number\n render: <TProps>(\n template: Renderable<TGenerics, TProps>,\n props: TProps\n ) => string | null | ReturnType<UseRenderer<TGenerics>>\n}\n\nexport type CoreRow<TGenerics extends AnyGenerics> = {\n id: string\n index: number\n original?: TGenerics['Row']\n depth: number\n values: RowValues\n subRows: Row<TGenerics>[]\n getLeafRows: () => Row<TGenerics>[]\n getRowProps: PropGetter<RowProps>\n originalSubRows?: TGenerics['Row'][]\n getAllCells: () => Cell<TGenerics>[]\n getAllCellsByColumnId: () => Record<string, Cell<TGenerics>>\n}\n\nexport type CoreColumnDef<TGenerics extends AnyGenerics> = {\n id: string\n accessorKey?: string & keyof TGenerics['Row']\n accessorFn?: AccessorFn<TGenerics['Row']>\n columns?: ColumnDef<TGenerics>[]\n header?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n footer?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n cell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n value: TGenerics['Value']\n }\n >\n meta?: TGenerics['ColumnMeta']\n}\n// & GeneratedProperties<true>\n\nexport type CoreColumn<TGenerics extends AnyGenerics> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TGenerics['Row']>\n columnDef: ColumnDef<TGenerics>\n getWidth: () => number\n columns: Column<TGenerics>[]\n parent?: Column<TGenerics>\n getFlatColumns: () => Column<TGenerics>[]\n getLeafColumns: () => Column<TGenerics>[]\n}\n\nexport function createTableInstance<TGenerics extends AnyGenerics>(\n options: Options<TGenerics>\n): TableInstance<TGenerics> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let instance = {} as TableInstance<TGenerics>\n\n const defaultOptions = features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(instance))\n }, {})\n\n const buildOptions = (options: Options<TGenerics>) => ({\n ...defaultOptions,\n ...options,\n })\n\n instance.options = buildOptions(options)\n\n const initialState = {\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getInitialState?.())\n }, {}),\n ...(options.initialState ?? {}),\n } as TableState\n\n const finalInstance: TableInstance<TGenerics> = {\n ...instance,\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getInstance?.(instance))\n }, {}),\n initialState,\n reset: () => {\n instance.setState(instance.initialState)\n },\n setOptions: updater => {\n instance.options = buildOptions(\n functionalUpdate(updater, instance.options)\n )\n },\n render: (template, props) => {\n if (typeof instance.options.render === 'function') {\n return instance.options.render(template, props)\n }\n\n if (typeof template === 'function') {\n return (template as Function)(props)\n }\n\n return template\n },\n\n getRowId: (_: TGenerics['Row'], index: number, parent?: Row<TGenerics>) =>\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getState: () => {\n return instance.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n instance.options.onStateChange?.(updater)\n },\n\n getDefaultColumn: memo(\n () => [instance.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<ColumnDef<TGenerics>>\n\n return {\n header: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n footer: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n cell: ({ value = '' }: { value: any }): JSX.Element =>\n typeof value === 'boolean' ? value.toString() : value,\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumn?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TGenerics>>\n },\n {\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n key: 'getDefaultColumn',\n }\n ),\n\n getColumnDefs: () => instance.options.columns,\n\n createColumn: (columnDef, depth: number, parent) => {\n const defaultColumn = instance.getDefaultColumn()\n\n let id =\n columnDef.id ??\n columnDef.accessorKey ??\n (typeof columnDef.header === 'string' ? columnDef.header : undefined)\n\n let accessorFn: AccessorFn<TGenerics['Row']> | undefined\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn\n } else if (columnDef.accessorKey) {\n accessorFn = (originalRow?: TGenerics['Row']) =>\n (originalRow as any)[columnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n columnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TGenerics> = {\n ...defaultColumn,\n ...columnDef,\n id: `${id}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef,\n columns: [],\n getWidth: () => instance.getColumnWidth(column.id),\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TGenerics>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: 'column.getFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [instance.getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TGenerics>]\n },\n {\n key: 'column.getLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n\n column = features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, instance))\n }, column)\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return column as Column<TGenerics>\n },\n\n getAllColumns: memo(\n () => [instance.getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TGenerics>[],\n parent?: Column<TGenerics>,\n depth = 0\n ): Column<TGenerics>[] => {\n return columnDefs.map(columnDef => {\n const column = instance.createColumn(columnDef, depth, parent)\n\n column.columns = columnDef.columns\n ? recurseColumns(columnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: 'getAllColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [instance.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: 'getAllFlatColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumnsById: memo(\n () => [instance.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TGenerics>>)\n },\n {\n key: 'getAllFlatColumnsById',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [instance.getAllColumns(), instance.getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: 'getAllLeafColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = instance.getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Table] Column with id ${columnId} does not exist.`)\n }\n throw new Error()\n }\n\n return column\n },\n\n createCell: (row, column, value) => {\n const cell: CoreCell<TGenerics> = {\n id: `${row.id}_${column.id}`,\n rowId: row.id,\n columnId: column.id,\n row,\n column,\n value,\n getCellProps: userProps =>\n instance.getCellProps(row.id, column.id, userProps)!,\n renderCell: () =>\n column.cell\n ? instance.render(column.cell, {\n instance,\n column,\n row,\n cell: cell as Cell<TGenerics>,\n value,\n })\n : null,\n }\n\n features.forEach(feature => {\n Object.assign(\n cell,\n feature.createCell?.(\n cell as Cell<TGenerics>,\n column,\n row as Row<TGenerics>,\n instance\n )\n )\n }, {})\n\n return cell as Cell<TGenerics>\n },\n\n createRow: (id, original, rowIndex, depth, values) => {\n let row: CoreRow<TGenerics> = {\n id,\n index: rowIndex,\n original,\n depth,\n values,\n subRows: [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getRowProps: userProps => instance.getRowProps(row.id, userProps)!,\n getAllCells: undefined!,\n getAllCellsByColumnId: undefined!,\n }\n\n row.getAllCells = memo(\n () => [instance.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return instance.createCell(\n row as Row<TGenerics>,\n column,\n row.values[column.id]\n )\n })\n },\n {\n key: process.env.NODE_ENV !== 'production' ? 'row.getAllCells' : '',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n )\n\n row.getAllCellsByColumnId = memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.columnId] = cell\n return acc\n }, {} as Record<string, Cell<TGenerics>>)\n },\n {\n key: 'row.getAllCellsByColumnId',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n )\n\n for (let i = 0; i < features.length; i++) {\n const feature = features[i]\n Object.assign(row, feature.createRow?.(row, instance))\n }\n\n return row as Row<TGenerics>\n },\n\n getCoreRowModel: memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TGenerics>[]\n flatRows: Row<TGenerics>[]\n rowsById: Record<string, Row<TGenerics>>\n } => {\n // Access the row model using initial columns\n const rows: Row<TGenerics>[] = []\n const flatRows: Row<TGenerics>[] = []\n const rowsById: Record<string, Row<TGenerics>> = {}\n\n const leafColumns = instance.getAllLeafColumns()\n\n const accessRow = (\n originalRow: TGenerics['Row'],\n rowIndex: number,\n depth = 0,\n parentRows: Row<TGenerics>[],\n parent?: Row<TGenerics>\n ) => {\n const id = instance.getRowId(originalRow, rowIndex, parent)\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRowId expected an ID, but got ${id}`)\n }\n }\n\n const values: Record<string, any> = {}\n\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]\n if (column && column.accessorFn) {\n values[column.id] = column.accessorFn(originalRow, rowIndex)\n }\n }\n\n // Make the row\n const row = instance.createRow(\n id,\n originalRow,\n rowIndex,\n depth,\n values\n )\n\n // Push instance row into the parentRows array\n parentRows.push(row)\n // Keep track of every row in a flat array\n flatRows.push(row)\n // Also keep track of every row by its ID\n rowsById[id] = row\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n const originalSubRows = instance.options.getSubRows(\n originalRow,\n rowIndex\n )\n\n // Then recursively access them\n if (originalSubRows?.length) {\n row.originalSubRows = originalSubRows\n const subRows: Row<TGenerics>[] = []\n\n for (let i = 0; i < row.originalSubRows.length; i++) {\n accessRow(\n row.originalSubRows[i] as TGenerics['Row'],\n i,\n depth + 1,\n subRows,\n row\n )\n }\n row.subRows = subRows\n }\n }\n }\n\n for (let i = 0; i < data.length; i++) {\n accessRow(data[i] as TGenerics['Row'], i, 0, rows)\n }\n\n return { rows, flatRows, rowsById }\n },\n {\n key: 'getRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._notifyFiltersReset()\n instance._notifyRowSelectionReset()\n },\n }\n ),\n\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return instance.getPaginationRowModel()\n },\n\n getRow: (id: string) => {\n const row = instance.getRowModel().rowsById[id]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`)\n }\n throw new Error()\n }\n\n return row\n },\n\n getCell: (rowId: string, columnId: string) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`[Table] could not find row with id ${rowId}`)\n }\n throw new Error()\n }\n\n const cell = row.getAllCellsByColumnId()[columnId]\n\n if (!cell) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `[Table] could not find cell ${columnId} in row ${rowId}`\n )\n }\n throw new Error()\n }\n\n return cell\n },\n\n getTableProps: userProps => {\n return propGetter(\n {\n role: 'table',\n },\n userProps\n )\n },\n\n getTableBodyProps: userProps => {\n return propGetter(\n {\n role: 'rowgroup',\n },\n userProps\n )\n },\n\n getRowProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n if (!row) {\n return\n }\n\n return propGetter(\n {\n key: row.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getCellProps: (rowId, columnId, userProps) => {\n const cell = instance.getCell(rowId, columnId)\n\n if (!cell) {\n return\n }\n\n return propGetter(\n {\n key: cell.id,\n role: 'gridcell',\n },\n userProps\n )\n },\n\n getTableWidth: () =>\n instance.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getLeftTableWidth: () =>\n instance.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getCenterTableWidth: () =>\n instance.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getRightTableWidth: () =>\n instance.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n }\n\n instance = Object.assign(instance, finalInstance)\n\n return instance\n}\n"],"names":["features","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","createTableInstance","options","debugAll","debugTable","console","info","instance","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","buildOptions","initialState","getInitialState","finalInstance","getInstance","reset","setState","setOptions","updater","functionalUpdate","render","template","props","getRowId","_","index","parent","id","join","getState","state","onStateChange","getDefaultColumn","memo","defaultColumn","header","column","footer","cell","value","toString","debug","debugColumns","key","getColumnDefs","columns","createColumn","columnDef","depth","accessorKey","undefined","accessorFn","originalRow","process","env","NODE_ENV","Error","getWidth","getColumnWidth","getFlatColumns","flatMap","d","getLeafColumns","getOrderColumnsFn","orderColumns","length","leafColumns","getAllColumns","columnDefs","recurseColumns","map","getAllFlatColumns","allColumns","getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","getColumn","columnId","warn","createCell","row","rowId","getCellProps","userProps","renderCell","forEach","createRow","original","rowIndex","values","subRows","getLeafRows","flattenBy","getRowProps","getAllCells","getAllCellsByColumnId","debugRows","allCells","i","getCoreRowModel","data","rows","flatRows","rowsById","accessRow","parentRows","push","getSubRows","originalSubRows","onChange","_notifyFiltersReset","_notifyRowSelectionReset","getRowModel","getPaginationRowModel","getRow","getCell","getTableProps","propGetter","role","getTableBodyProps","getTableWidth","getHeaderGroups","headers","sum","getLeftTableWidth","getLeftHeaderGroups","getCenterTableWidth","getCenterHeaderGroups","getRightTableWidth","getRightHeaderGroups"],"mappings":"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"}
|
package/build/cjs/createTable.js
CHANGED
|
@@ -17,9 +17,9 @@ var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js
|
|
|
17
17
|
//
|
|
18
18
|
function init(opts) {
|
|
19
19
|
return {
|
|
20
|
-
createTableFactory: function createTableFactory(
|
|
20
|
+
createTableFactory: function createTableFactory(factoryOptions) {
|
|
21
21
|
return function () {
|
|
22
|
-
return _createTable(undefined, undefined, _rollupPluginBabelHelpers["extends"]({},
|
|
22
|
+
return _createTable(undefined, undefined, _rollupPluginBabelHelpers["extends"]({}, factoryOptions, opts));
|
|
23
23
|
};
|
|
24
24
|
},
|
|
25
25
|
createTable: function createTable() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTable.js","sources":["../../src/createTable.tsx"],"sourcesContent":["import { CustomFilterTypes } from './features/Filters'\nimport { CustomAggregationTypes } from './features/Grouping'\nimport { CustomSortingTypes } from './features/Sorting'\nimport {
|
|
1
|
+
{"version":3,"file":"createTable.js","sources":["../../src/createTable.tsx"],"sourcesContent":["import { CustomFilterTypes } from './features/Filters'\nimport { CustomAggregationTypes } from './features/Grouping'\nimport { CustomSortingTypes } from './features/Sorting'\nimport {\n ColumnDef,\n AccessorFn,\n PartialGenerics,\n AnyRender,\n AnyGenerics,\n} from './types'\nimport { Overwrite, PartialKeys } from './utils'\n\nexport type CreateTableFactory<TGenerics extends AnyGenerics> = <\n TSubGenerics extends {\n Row: any\n ColumnMeta?: object\n }\n>() => Table<\n Overwrite<\n TGenerics,\n { Row: TSubGenerics['Row']; ColumnMeta: TSubGenerics['ColumnMeta'] }\n >\n>\n\nexport type CreateTableFactoryOptions<\n TRender extends AnyRender,\n TFilterFns extends CustomFilterTypes<any>,\n TSortingFns extends CustomSortingTypes<any>,\n TAggregationFns extends CustomAggregationTypes<any>\n> = {\n render: TRender\n filterFns?: TFilterFns\n sortingFns?: TSortingFns\n aggregationFns?: TAggregationFns\n}\n\nexport type Table<TGenerics extends AnyGenerics> = {\n generics: TGenerics\n __options: CreateTableFactoryOptions<any, any, any, any>\n createColumns: <TColumnDef extends ColumnDef<any>>(\n columns: TColumnDef[]\n ) => TColumnDef[]\n createGroup: (\n column: Overwrite<\n | Overwrite<\n ColumnDef<any>,\n {\n header: string\n id?: string\n }\n >\n | Overwrite<\n ColumnDef<any>,\n {\n id: string\n header?: string | ((...any: any) => any)\n }\n >,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createDisplayColumn: (\n column: Overwrite<\n PartialKeys<ColumnDef<TGenerics>, 'accessorFn' | 'accessorKey'>,\n {\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createDataColumn: <\n TAccessor extends AccessorFn<TGenerics['Row']> | keyof TGenerics['Row']\n >(\n accessor: TAccessor,\n column: Overwrite<\n TAccessor extends (...args: any[]) => any\n ? // Accessor Fn\n ColumnDef<Overwrite<TGenerics, { Value: ReturnType<TAccessor> }>>\n : TAccessor extends keyof TGenerics['Row']\n ? // Accessor Key\n Overwrite<\n ColumnDef<\n Overwrite<TGenerics, { Value: TGenerics['Row'][TAccessor] }>\n >,\n {\n id?: string\n }\n >\n : never,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n}\n\ntype InitTable<TRender extends AnyRender> = {\n createTableFactory: <TGenerics extends AnyGenerics>(\n options: CreateTableFactoryOptions<TRender, any, any, any>\n ) => CreateTableFactory<Overwrite<TGenerics, { Render: TRender }>>\n createTable: CreateTableFactory<\n Overwrite<PartialGenerics, { Render: TRender }>\n >\n}\n\n//\n\nexport function init<TRender extends AnyRender>(opts: {\n render: TRender\n}): InitTable<TRender> {\n return {\n createTableFactory: factoryOptions => () =>\n _createTable(undefined, undefined, { ...factoryOptions, ...opts }),\n createTable: () => _createTable(undefined, undefined, opts),\n }\n}\n\nfunction _createTable<TGenerics extends AnyGenerics>(\n _: undefined,\n __: undefined,\n __options: CreateTableFactoryOptions<any, any, any, any>\n): Table<TGenerics> {\n return {\n generics: undefined!,\n __options: __options ?? {\n render: () => {\n throw new Error()\n },\n },\n createColumns: columns => columns,\n createDisplayColumn: column => column as any,\n createGroup: column => column as any,\n createDataColumn: (accessor, column): any => {\n column = {\n ...column,\n id: column.id,\n }\n\n if (typeof accessor === 'string') {\n return {\n ...column,\n id: column.id ?? accessor,\n accessorKey: accessor,\n }\n }\n\n if (typeof accessor === 'function') {\n return {\n ...column,\n accessorFn: accessor,\n }\n }\n\n throw new Error('Invalid accessor')\n },\n }\n}\n"],"names":["init","opts","createTableFactory","factoryOptions","_createTable","undefined","createTable","_","__","__options","generics","render","Error","createColumns","columns","createDisplayColumn","column","createGroup","createDataColumn","accessor","id","accessorKey","accessorFn"],"mappings":";;;;;;;;;;;;;;;;AA8GA;AAEO,SAASA,IAAT,CAAyCC,IAAzC,EAEgB;AACrB,SAAO;AACLC,IAAAA,kBAAkB,EAAE,4BAAAC,cAAc;AAAA,aAAI;AAAA,eACpCC,YAAY,CAACC,SAAD,EAAYA,SAAZ,2CAA4BF,cAA5B,EAA+CF,IAA/C,EADwB;AAAA,OAAJ;AAAA,KAD7B;AAGLK,IAAAA,WAAW,EAAE;AAAA,aAAMF,YAAY,CAACC,SAAD,EAAYA,SAAZ,EAAuBJ,IAAvB,CAAlB;AAAA;AAHR,GAAP;AAKD;;AAED,SAASG,YAAT,CACEG,CADF,EAEEC,EAFF,EAGEC,SAHF,EAIoB;AAClB,SAAO;AACLC,IAAAA,QAAQ,EAAEL,SADL;AAELI,IAAAA,SAAS,EAAEA,SAAF,WAAEA,SAAF,GAAe;AACtBE,MAAAA,MAAM,EAAE,kBAAM;AACZ,cAAM,IAAIC,KAAJ,EAAN;AACD;AAHqB,KAFnB;AAOLC,IAAAA,aAAa,EAAE,uBAAAC,OAAO;AAAA,aAAIA,OAAJ;AAAA,KAPjB;AAQLC,IAAAA,mBAAmB,EAAE,6BAAAC,MAAM;AAAA,aAAIA,MAAJ;AAAA,KARtB;AASLC,IAAAA,WAAW,EAAE,qBAAAD,MAAM;AAAA,aAAIA,MAAJ;AAAA,KATd;AAULE,IAAAA,gBAAgB,EAAE,0BAACC,QAAD,EAAWH,MAAX,EAA2B;AAC3CA,MAAAA,MAAM,4CACDA,MADC;AAEJI,QAAAA,EAAE,EAAEJ,MAAM,CAACI;AAFP,QAAN;;AAKA,UAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC;AAAA;;AAChC,wDACKH,MADL;AAEEI,UAAAA,EAAE,gBAAEJ,MAAM,CAACI,EAAT,yBAAeD,QAFnB;AAGEE,UAAAA,WAAW,EAAEF;AAHf;AAKD;;AAED,UAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,wDACKH,MADL;AAEEM,UAAAA,UAAU,EAAEH;AAFd;AAID;;AAED,YAAM,IAAIP,KAAJ,CAAU,kBAAV,CAAN;AACD;AAhCI,GAAP;AAkCD;;;;"}
|
|
@@ -22,6 +22,9 @@ var defaultColumnSizing = {
|
|
|
22
22
|
maxWidth: Number.MAX_SAFE_INTEGER
|
|
23
23
|
};
|
|
24
24
|
var ColumnSizing = {
|
|
25
|
+
getDefaultColumn: function getDefaultColumn() {
|
|
26
|
+
return defaultColumnSizing;
|
|
27
|
+
},
|
|
25
28
|
getInitialState: function getInitialState() {
|
|
26
29
|
return {
|
|
27
30
|
columnSizing: {},
|
|
@@ -44,6 +47,18 @@ var ColumnSizing = {
|
|
|
44
47
|
},
|
|
45
48
|
getInstance: function getInstance(instance) {
|
|
46
49
|
return {
|
|
50
|
+
getColumnWidth: function getColumnWidth(columnId) {
|
|
51
|
+
var _column$minWidth, _ref, _column$maxWidth;
|
|
52
|
+
|
|
53
|
+
var column = instance.getColumn(columnId);
|
|
54
|
+
|
|
55
|
+
if (!column) {
|
|
56
|
+
throw new Error();
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
var columnSize = instance.getState().columnSizing[column.id];
|
|
60
|
+
return Math.min(Math.max((_column$minWidth = column.minWidth) != null ? _column$minWidth : defaultColumnSizing.minWidth, (_ref = columnSize != null ? columnSize : column.width) != null ? _ref : defaultColumnSizing.width), (_column$maxWidth = column.maxWidth) != null ? _column$maxWidth : defaultColumnSizing.maxWidth);
|
|
61
|
+
},
|
|
47
62
|
setColumnSizing: function setColumnSizing(updater) {
|
|
48
63
|
return instance.options.onColumnSizingChange == null ? void 0 : instance.options.onColumnSizingChange(updater, utils.functionalUpdate(updater, instance.getState().columnSizing));
|
|
49
64
|
},
|
|
@@ -61,9 +76,9 @@ var ColumnSizing = {
|
|
|
61
76
|
instance.setColumnSizingInfo((_instance$initialStat2 = instance.initialState.columnSizingInfo) != null ? _instance$initialStat2 : {});
|
|
62
77
|
},
|
|
63
78
|
resetColumnSize: function resetColumnSize(columnId) {
|
|
64
|
-
instance.setColumnSizing(function (
|
|
65
|
-
|
|
66
|
-
var rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(
|
|
79
|
+
instance.setColumnSizing(function (_ref2) {
|
|
80
|
+
_ref2[columnId];
|
|
81
|
+
var rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(_ref2, [columnId].map(_rollupPluginBabelHelpers.toPropertyKey));
|
|
67
82
|
|
|
68
83
|
return rest;
|
|
69
84
|
});
|
|
@@ -82,7 +97,7 @@ var ColumnSizing = {
|
|
|
82
97
|
return instance.getColumnCanResize(header.column.id);
|
|
83
98
|
},
|
|
84
99
|
getColumnCanResize: function getColumnCanResize(columnId) {
|
|
85
|
-
var
|
|
100
|
+
var _ref3, _ref4, _column$enableResizin;
|
|
86
101
|
|
|
87
102
|
var column = instance.getColumn(columnId);
|
|
88
103
|
|
|
@@ -90,7 +105,7 @@ var ColumnSizing = {
|
|
|
90
105
|
throw new Error();
|
|
91
106
|
}
|
|
92
107
|
|
|
93
|
-
return (
|
|
108
|
+
return (_ref3 = (_ref4 = (_column$enableResizin = column.enableResizing) != null ? _column$enableResizin : instance.options.enableColumnResizing) != null ? _ref4 : column.defaultCanResize) != null ? _ref3 : true;
|
|
94
109
|
},
|
|
95
110
|
getColumnIsResizing: function getColumnIsResizing(columnId) {
|
|
96
111
|
var column = instance.getColumn(columnId);
|
|
@@ -141,9 +156,9 @@ var ColumnSizing = {
|
|
|
141
156
|
|
|
142
157
|
var deltaOffset = clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0);
|
|
143
158
|
var deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);
|
|
144
|
-
old.columnSizingStart.forEach(function (
|
|
145
|
-
var columnId =
|
|
146
|
-
headerWidth =
|
|
159
|
+
old.columnSizingStart.forEach(function (_ref5) {
|
|
160
|
+
var columnId = _ref5[0],
|
|
161
|
+
headerWidth = _ref5[1];
|
|
147
162
|
newColumnSizing[columnId] = Math.round(Math.max(headerWidth + headerWidth * deltaPercentage, 0) * 100) / 100;
|
|
148
163
|
});
|
|
149
164
|
return _rollupPluginBabelHelpers["extends"]({}, old, {
|