@tanstack/react-table 8.0.0-alpha.2 → 8.0.0-alpha.22
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/_virtual/_rollupPluginBabelHelpers.js +0 -78
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/build/cjs/index.js +96 -12
- package/build/cjs/index.js.map +1 -1
- package/build/esm/index.js +40 -3663
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +28 -676
- package/build/types/index.d.ts +13 -7
- package/build/umd/index.development.js +50 -3665
- 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 +4 -1
- package/src/index.tsx +104 -7
- package/build/cjs/aggregationTypes.js +0 -130
- package/build/cjs/aggregationTypes.js.map +0 -1
- package/build/cjs/core.js +0 -519
- package/build/cjs/core.js.map +0 -1
- package/build/cjs/createTable.js +0 -103
- package/build/cjs/createTable.js.map +0 -1
- package/build/cjs/features/ColumnSizing.js +0 -331
- package/build/cjs/features/ColumnSizing.js.map +0 -1
- package/build/cjs/features/Expanding.js +0 -234
- package/build/cjs/features/Expanding.js.map +0 -1
- package/build/cjs/features/Filters.js +0 -396
- package/build/cjs/features/Filters.js.map +0 -1
- package/build/cjs/features/Grouping.js +0 -228
- package/build/cjs/features/Grouping.js.map +0 -1
- package/build/cjs/features/Headers.js +0 -486
- package/build/cjs/features/Headers.js.map +0 -1
- package/build/cjs/features/Ordering.js +0 -83
- package/build/cjs/features/Ordering.js.map +0 -1
- package/build/cjs/features/Pinning.js +0 -163
- package/build/cjs/features/Pinning.js.map +0 -1
- package/build/cjs/features/Sorting.js +0 -269
- package/build/cjs/features/Sorting.js.map +0 -1
- package/build/cjs/features/Visibility.js +0 -160
- package/build/cjs/features/Visibility.js.map +0 -1
- package/build/cjs/filterTypes.js +0 -172
- package/build/cjs/filterTypes.js.map +0 -1
- package/build/cjs/sortTypes.js +0 -121
- package/build/cjs/sortTypes.js.map +0 -1
- package/build/cjs/utils/columnFilterRowsFn.js +0 -130
- package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
- package/build/cjs/utils/expandRowsFn.js +0 -38
- package/build/cjs/utils/expandRowsFn.js.map +0 -1
- package/build/cjs/utils/globalFilterRowsFn.js +0 -100
- package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
- package/build/cjs/utils/groupRowsFn.js +0 -154
- package/build/cjs/utils/groupRowsFn.js.map +0 -1
- package/build/cjs/utils/sortRowsFn.js +0 -93
- package/build/cjs/utils/sortRowsFn.js.map +0 -1
- package/build/cjs/utils.js +0 -143
- package/build/cjs/utils.js.map +0 -1
- package/build/types/aggregationTypes.d.ts +0 -22
- package/build/types/core.d.ts +0 -126
- package/build/types/createTable.d.ts +0 -35
- package/build/types/features/ColumnSizing.d.ts +0 -73
- package/build/types/features/Expanding.d.ts +0 -52
- package/build/types/features/Filters.d.ts +0 -93
- package/build/types/features/Grouping.d.ts +0 -82
- package/build/types/features/Headers.d.ts +0 -41
- package/build/types/features/Ordering.d.ts +0 -19
- package/build/types/features/Pinning.d.ts +0 -39
- package/build/types/features/Sorting.d.ts +0 -75
- package/build/types/features/Visibility.d.ts +0 -47
- package/build/types/filterTypes.d.ts +0 -50
- package/build/types/sortTypes.d.ts +0 -17
- package/build/types/types.d.ts +0 -124
- package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
- package/build/types/utils/expandRowsFn.d.ts +0 -2
- package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
- package/build/types/utils/groupRowsFn.d.ts +0 -2
- package/build/types/utils/sortRowsFn.d.ts +0 -2
- package/build/types/utils.d.ts +0 -24
- package/src/aggregationTypes.ts +0 -115
- package/src/core.tsx +0 -1232
- package/src/createTable.tsx +0 -181
- package/src/features/ColumnSizing.ts +0 -482
- package/src/features/Expanding.ts +0 -388
- package/src/features/Filters.ts +0 -707
- package/src/features/Grouping.ts +0 -451
- package/src/features/Headers.ts +0 -944
- package/src/features/Ordering.ts +0 -134
- package/src/features/Pinning.ts +0 -213
- package/src/features/Sorting.ts +0 -487
- package/src/features/Visibility.ts +0 -281
- package/src/features/withPagination.oldts +0 -208
- package/src/features/withRowSelection.oldts +0 -467
- package/src/filterTypes.ts +0 -251
- package/src/sortTypes.ts +0 -159
- package/src/types.ts +0 -314
- package/src/utils/columnFilterRowsFn.ts +0 -162
- package/src/utils/expandRowsFn.ts +0 -53
- package/src/utils/globalFilterRowsFn.ts +0 -129
- package/src/utils/groupRowsFn.ts +0 -196
- package/src/utils/sortRowsFn.ts +0 -115
- package/src/utils.tsx +0 -249
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nimport { ReactTable, OnChangeFn, Updater, Column } from '../types'\n\nimport * as Grouping from './Grouping'\n\nexport type ColumnOrderState = string[]\n\nexport type ColumnOrderTableState = {\n columnOrder: string[]\n}\n\nexport type ColumnOrderOptions = {\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderDefaultOptions = {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: () => void\n getOrderColumnsFn: () => (\n columns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n ) => Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n}\n\n//\n\nexport function getInitialState(): ColumnOrderTableState {\n return {\n columnOrder: [],\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnOrderDefaultOptions {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', instance),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnOrderInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> {\n return {\n setColumnOrder: updater =>\n instance.options.onColumnOrderChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnOrder)\n ),\n resetColumnOrder: () => {\n instance.setColumnOrder(instance.initialState.columnOrder ?? [])\n },\n getOrderColumnsFn: memo(\n () => [\n instance.getState().columnOrder,\n instance.getState().grouping,\n instance.options.groupedColumnMode,\n ],\n (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(\n d => d.id === targetColumnId\n )\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]!)\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy]\n }\n\n return Grouping.orderColumns(\n orderedColumns,\n grouping,\n groupedColumnMode\n )\n },\n 'getOrderColumnsFn',\n instance.options.debug\n ),\n }\n}\n"],"names":["getInitialState","columnOrder","getDefaultOptions","instance","onColumnOrderChange","makeStateUpdater","getInstance","setColumnOrder","updater","options","functionalUpdate","getState","resetColumnOrder","initialState","getOrderColumnsFn","memo","grouping","groupedColumnMode","columns","orderedColumns","length","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","findIndex","d","id","push","splice","Grouping","debug"],"mappings":";;;;;;;;;;;;;;;;;AAkCA;AAEO,SAASA,eAAT,GAAkD;AACvD,SAAO;AACLC,IAAAA,WAAW,EAAE;AADR,GAAP;AAGD;AAEM,SAASC,iBAAT,CAOLC,QAPK,EAQsB;AAC3B,SAAO;AACLC,IAAAA,mBAAmB,EAAEC,sBAAgB,CAAC,aAAD,EAAgBF,QAAhB;AADhC,GAAP;AAGD;AAEM,SAASG,WAAT,CAOLH,QAPK,EAcL;AACA,SAAO;AACLI,IAAAA,cAAc,EAAE,wBAAAC,OAAO;AAAA,aACrBL,QAAQ,CAACM,OAAT,CAAiBL,mBADI,oBACrBD,QAAQ,CAACM,OAAT,CAAiBL,mBAAjB,CACEI,OADF,EAEEE,sBAAgB,CAACF,OAAD,EAAUL,QAAQ,CAACQ,QAAT,GAAoBV,WAA9B,CAFlB,CADqB;AAAA,KADlB;AAMLW,IAAAA,gBAAgB,EAAE,4BAAM;AAAA;;AACtBT,MAAAA,QAAQ,CAACI,cAAT,0BAAwBJ,QAAQ,CAACU,YAAT,CAAsBZ,WAA9C,oCAA6D,EAA7D;AACD,KARI;AASLa,IAAAA,iBAAiB,EAAEC,UAAI,CACrB;AAAA,aAAM,CACJZ,QAAQ,CAACQ,QAAT,GAAoBV,WADhB,EAEJE,QAAQ,CAACQ,QAAT,GAAoBK,QAFhB,EAGJb,QAAQ,CAACM,OAAT,CAAiBQ,iBAHb,CAAN;AAAA,KADqB,EAMrB,UAAChB,WAAD,EAAce,QAAd,EAAwBC,iBAAxB;AAAA,aAA8C,UAAAC,OAAO,EAAI;AACvD;AACA;AACA,YAAIC,cAMD,GAAG,EANN,CAHuD;;AAYvD,YAAI,EAAClB,WAAD,YAACA,WAAW,CAAEmB,MAAd,CAAJ,EAA0B;AACxBD,UAAAA,cAAc,GAAGD,OAAjB;AACD,SAFD,MAEO;AACL,cAAMG,eAAe,aAAOpB,WAAP,CAArB,CADK;;AAIL,cAAMqB,WAAW,aAAOJ,OAAP,CAAjB,CAJK;AAQL;;AARK;AAUH,gBAAMK,cAAc,GAAGF,eAAe,CAACG,KAAhB,EAAvB;AACA,gBAAMC,UAAU,GAAGH,WAAW,CAACI,SAAZ,CACjB,UAAAC,CAAC;AAAA,qBAAIA,CAAC,CAACC,EAAF,KAASL,cAAb;AAAA,aADgB,CAAnB;;AAGA,gBAAIE,UAAU,GAAG,CAAC,CAAlB,EAAqB;AACnBN,cAAAA,cAAc,CAACU,IAAf,CAAoBP,WAAW,CAACQ,MAAZ,CAAmBL,UAAnB,EAA+B,CAA/B,EAAkC,CAAlC,CAApB;AACD;AAhBE;;AASL,iBAAOH,WAAW,CAACF,MAAZ,IAAsBC,eAAe,CAACD,MAA7C,EAAqD;AAAA;AAQpD,WAjBI;;;AAoBLD,UAAAA,cAAc,aAAOA,cAAP,EAA0BG,WAA1B,CAAd;AACD;;AAED,eAAOS,qBAAA,CACLZ,cADK,EAELH,QAFK,EAGLC,iBAHK,CAAP;AAKD,OA1CD;AAAA,KANqB,EAiDrB,mBAjDqB,EAkDrBd,QAAQ,CAACM,OAAT,CAAiBuB,KAlDI;AATlB,GAAP;AA8DD;;;;;;"}
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* react-table
|
|
3
|
-
*
|
|
4
|
-
* Copyright (c) TanStack
|
|
5
|
-
*
|
|
6
|
-
* This source code is licensed under the MIT license found in the
|
|
7
|
-
* LICENSE.md file in the root directory of this source tree.
|
|
8
|
-
*
|
|
9
|
-
* @license MIT
|
|
10
|
-
*/
|
|
11
|
-
'use strict';
|
|
12
|
-
|
|
13
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
|
-
|
|
15
|
-
var utils = require('../utils.js');
|
|
16
|
-
|
|
17
|
-
//
|
|
18
|
-
function getInitialState() {
|
|
19
|
-
return {
|
|
20
|
-
columnPinning: {
|
|
21
|
-
left: [],
|
|
22
|
-
right: []
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
function getDefaultOptions(instance) {
|
|
27
|
-
return {
|
|
28
|
-
onColumnPinningChange: utils.makeStateUpdater('columnPinning', instance)
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
function createColumn(column, instance) {
|
|
32
|
-
return {
|
|
33
|
-
getCanPin: function getCanPin() {
|
|
34
|
-
return instance.getColumnCanPin(column.id);
|
|
35
|
-
},
|
|
36
|
-
getPinnedIndex: function getPinnedIndex() {
|
|
37
|
-
return instance.getColumnPinnedIndex(column.id);
|
|
38
|
-
},
|
|
39
|
-
getIsPinned: function getIsPinned() {
|
|
40
|
-
return instance.getColumnIsPinned(column.id);
|
|
41
|
-
},
|
|
42
|
-
pin: function pin(position) {
|
|
43
|
-
return instance.pinColumn(column.id, position);
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
function getInstance(instance) {
|
|
48
|
-
return {
|
|
49
|
-
setColumnPinning: function setColumnPinning(updater) {
|
|
50
|
-
return instance.options.onColumnPinningChange == null ? void 0 : instance.options.onColumnPinningChange(updater, utils.functionalUpdate(updater, instance.getState().columnPinning));
|
|
51
|
-
},
|
|
52
|
-
resetColumnPinning: function resetColumnPinning() {
|
|
53
|
-
var _instance$options$ini, _instance$options$ini2;
|
|
54
|
-
|
|
55
|
-
return instance.setColumnPinning((_instance$options$ini = (_instance$options$ini2 = instance.options.initialState) == null ? void 0 : _instance$options$ini2.columnPinning) != null ? _instance$options$ini : {});
|
|
56
|
-
},
|
|
57
|
-
pinColumn: function pinColumn(columnId, position) {
|
|
58
|
-
var column = instance.getColumn(columnId);
|
|
59
|
-
var columnIds = column == null ? void 0 : column.getLeafColumns().map(function (d) {
|
|
60
|
-
return d.id;
|
|
61
|
-
}).filter(Boolean);
|
|
62
|
-
instance.setColumnPinning(function (old) {
|
|
63
|
-
var _old$left3, _old$right3;
|
|
64
|
-
|
|
65
|
-
if (position === 'right') {
|
|
66
|
-
var _old$left, _old$right;
|
|
67
|
-
|
|
68
|
-
return {
|
|
69
|
-
left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(function (d) {
|
|
70
|
-
return !(columnIds != null && columnIds.includes(d));
|
|
71
|
-
}),
|
|
72
|
-
right: [].concat(((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(function (d) {
|
|
73
|
-
return !(columnIds != null && columnIds.includes(d));
|
|
74
|
-
}), columnIds)
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (position === 'left') {
|
|
79
|
-
var _old$left2, _old$right2;
|
|
80
|
-
|
|
81
|
-
return {
|
|
82
|
-
left: [].concat(((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(function (d) {
|
|
83
|
-
return !(columnIds != null && columnIds.includes(d));
|
|
84
|
-
}), columnIds),
|
|
85
|
-
right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(function (d) {
|
|
86
|
-
return !(columnIds != null && columnIds.includes(d));
|
|
87
|
-
})
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
return {
|
|
92
|
-
left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(function (d) {
|
|
93
|
-
return !(columnIds != null && columnIds.includes(d));
|
|
94
|
-
}),
|
|
95
|
-
right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(function (d) {
|
|
96
|
-
return !(columnIds != null && columnIds.includes(d));
|
|
97
|
-
})
|
|
98
|
-
};
|
|
99
|
-
});
|
|
100
|
-
},
|
|
101
|
-
getColumnCanPin: function getColumnCanPin(columnId) {
|
|
102
|
-
var column = instance.getColumn(columnId);
|
|
103
|
-
|
|
104
|
-
if (!column) {
|
|
105
|
-
throw new Error();
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
var leafColumns = column.getLeafColumns();
|
|
109
|
-
return leafColumns.some(function (d) {
|
|
110
|
-
var _ref, _ref2, _d$enablePinning;
|
|
111
|
-
|
|
112
|
-
return (_ref = (_ref2 = (_d$enablePinning = d.enablePinning) != null ? _d$enablePinning : instance.options.enablePinning) != null ? _ref2 : d.defaultCanPin) != null ? _ref : !!d.accessorFn;
|
|
113
|
-
});
|
|
114
|
-
},
|
|
115
|
-
getColumnIsPinned: function getColumnIsPinned(columnId) {
|
|
116
|
-
var column = instance.getColumn(columnId);
|
|
117
|
-
|
|
118
|
-
if (!column) {
|
|
119
|
-
throw new Error();
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
var leafColumnIds = column.getLeafColumns().map(function (d) {
|
|
123
|
-
return d.id;
|
|
124
|
-
});
|
|
125
|
-
var _instance$getState$co = instance.getState().columnPinning,
|
|
126
|
-
left = _instance$getState$co.left,
|
|
127
|
-
right = _instance$getState$co.right;
|
|
128
|
-
var isLeft = leafColumnIds.some(function (d) {
|
|
129
|
-
return left == null ? void 0 : left.includes(d);
|
|
130
|
-
});
|
|
131
|
-
var isRight = leafColumnIds.some(function (d) {
|
|
132
|
-
return right == null ? void 0 : right.includes(d);
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
if (isLeft && isRight) {
|
|
136
|
-
return 'both';
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
return isLeft ? 'left' : isRight ? 'right' : false;
|
|
140
|
-
},
|
|
141
|
-
getColumnPinnedIndex: function getColumnPinnedIndex(columnId) {
|
|
142
|
-
var _instance$getState$co2, _instance$getState$co3, _instance$getState$co4;
|
|
143
|
-
|
|
144
|
-
var position = instance.getColumnIsPinned(columnId);
|
|
145
|
-
|
|
146
|
-
if (position === 'both') {
|
|
147
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
148
|
-
console.warn("Column " + columnId + " has leaf columns that are pinned on both sides");
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
throw new Error();
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
return position ? (_instance$getState$co2 = (_instance$getState$co3 = instance.getState().columnPinning) == null ? void 0 : (_instance$getState$co4 = _instance$getState$co3[position]) == null ? void 0 : _instance$getState$co4.indexOf(columnId)) != null ? _instance$getState$co2 : -1 : 0;
|
|
155
|
-
}
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
exports.createColumn = createColumn;
|
|
160
|
-
exports.getDefaultOptions = getDefaultOptions;
|
|
161
|
-
exports.getInitialState = getInitialState;
|
|
162
|
-
exports.getInstance = getInstance;
|
|
163
|
-
//# sourceMappingURL=Pinning.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import { OnChangeFn, Updater, ReactTable, Column } from '../types'\nimport { functionalUpdate, makeStateUpdater } from '../utils'\n\ntype ColumnPinningPosition = 'left' | 'right' | 'both'\n\nexport type ColumnPinningState = {\n left?: string[]\n right?: string[]\n}\n\nexport type ColumnPinningTableState = {\n columnPinning: ColumnPinningState\n}\n\nexport type ColumnPinningOptions = {\n onColumnPinningChange?: OnChangeFn<ColumnPinningState>\n enablePinning?: boolean\n}\n\nexport type ColumnPinningDefaultOptions = {\n onColumnPinningChange: OnChangeFn<ColumnPinningState>\n}\n\nexport type ColumnPinningColumnDef = {\n enablePinning?: boolean\n defaultCanPin?: boolean\n}\n\nexport type ColumnPinningColumn = {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => false | ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport type ColumnPinningInstance<\n _TData,\n _TValue,\n _TFilterFns,\n _TSortingFns,\n _TAggregationFns\n> = {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: () => void\n pinColumn: (columnId: string, position: ColumnPinningPosition) => void\n getColumnCanPin: (columnId: string) => boolean\n getColumnIsPinned: (columnId: string) => false | ColumnPinningPosition\n getColumnPinnedIndex: (columnId: string) => number\n}\n\n//\n\nexport function getInitialState(): ColumnPinningTableState {\n return {\n columnPinning: {\n left: [],\n right: [],\n },\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnPinningDefaultOptions {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', instance),\n }\n}\n\nexport function createColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnPinningColumn {\n return {\n getCanPin: () => instance.getColumnCanPin(column.id),\n getPinnedIndex: () => instance.getColumnPinnedIndex(column.id),\n getIsPinned: () => instance.getColumnIsPinned(column.id),\n pin: position => instance.pinColumn(column.id, position),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnPinningInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> {\n return {\n setColumnPinning: updater =>\n instance.options.onColumnPinningChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnPinning)\n ),\n\n resetColumnPinning: () =>\n instance.setColumnPinning(\n instance.options.initialState?.columnPinning ?? {}\n ),\n\n pinColumn: (columnId, position) => {\n const column = instance.getColumn(columnId)\n\n const columnIds = column\n ?.getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n instance.setColumnPinning(old => {\n if (position === 'right') {\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: [\n ...(old?.right ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [\n ...(old?.left ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n }\n\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n })\n },\n\n getColumnCanPin: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n d.enablePinning ??\n instance.options.enablePinning ??\n d.defaultCanPin ??\n !!d.accessorFn\n )\n },\n\n getColumnIsPinned: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = instance.getState().columnPinning\n\n const isLeft = leafColumnIds.some(d => left?.includes(d))\n const isRight = leafColumnIds.some(d => right?.includes(d))\n\n if (isLeft && isRight) {\n return 'both'\n }\n\n return isLeft ? 'left' : isRight ? 'right' : false\n },\n\n getColumnPinnedIndex: columnId => {\n const position = instance.getColumnIsPinned(columnId)\n\n if (position === 'both') {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Column ${columnId} has leaf columns that are pinned on both sides`\n )\n }\n throw new Error()\n }\n\n return position\n ? instance.getState().columnPinning?.[position]?.indexOf(columnId) ?? -1\n : 0\n },\n }\n}\n"],"names":["getInitialState","columnPinning","left","right","getDefaultOptions","instance","onColumnPinningChange","makeStateUpdater","createColumn","column","getCanPin","getColumnCanPin","id","getPinnedIndex","getColumnPinnedIndex","getIsPinned","getColumnIsPinned","pin","position","pinColumn","getInstance","setColumnPinning","updater","options","functionalUpdate","getState","resetColumnPinning","initialState","columnId","getColumn","columnIds","getLeafColumns","map","d","filter","Boolean","old","includes","Error","leafColumns","some","enablePinning","defaultCanPin","accessorFn","leafColumnIds","isLeft","isRight","process","env","NODE_ENV","console","warn","indexOf"],"mappings":"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"}
|
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* react-table
|
|
3
|
-
*
|
|
4
|
-
* Copyright (c) TanStack
|
|
5
|
-
*
|
|
6
|
-
* This source code is licensed under the MIT license found in the
|
|
7
|
-
* LICENSE.md file in the root directory of this source tree.
|
|
8
|
-
*
|
|
9
|
-
* @license MIT
|
|
10
|
-
*/
|
|
11
|
-
'use strict';
|
|
12
|
-
|
|
13
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
|
-
|
|
15
|
-
var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
|
|
16
|
-
var sortTypes = require('../sortTypes.js');
|
|
17
|
-
var utils = require('../utils.js');
|
|
18
|
-
|
|
19
|
-
//
|
|
20
|
-
function getDefaultColumn() {
|
|
21
|
-
return {
|
|
22
|
-
sortType: 'auto'
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
function getInitialState() {
|
|
26
|
-
return {
|
|
27
|
-
sorting: []
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
function getDefaultOptions(instance) {
|
|
31
|
-
return {
|
|
32
|
-
onSortingChange: utils.makeStateUpdater('sorting', instance),
|
|
33
|
-
autoResetSorting: true
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
function createColumn(column, instance) {
|
|
37
|
-
return {
|
|
38
|
-
sortType: column.sortType,
|
|
39
|
-
getCanSort: function getCanSort() {
|
|
40
|
-
return instance.getColumnCanSort(column.id);
|
|
41
|
-
},
|
|
42
|
-
getCanMultiSort: function getCanMultiSort() {
|
|
43
|
-
return instance.getColumnCanMultiSort(column.id);
|
|
44
|
-
},
|
|
45
|
-
getSortIndex: function getSortIndex() {
|
|
46
|
-
return instance.getColumnSortIndex(column.id);
|
|
47
|
-
},
|
|
48
|
-
getIsSorted: function getIsSorted() {
|
|
49
|
-
return instance.getColumnIsSorted(column.id);
|
|
50
|
-
},
|
|
51
|
-
toggleSorting: function toggleSorting(desc, isMulti) {
|
|
52
|
-
return instance.toggleColumnSorting(column.id, desc, isMulti);
|
|
53
|
-
},
|
|
54
|
-
getToggleSortingProps: function getToggleSortingProps(userProps) {
|
|
55
|
-
return instance.getToggleSortingProps(column.id, userProps);
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
function getInstance(instance) {
|
|
60
|
-
return {
|
|
61
|
-
getColumnAutoSortingFn: function getColumnAutoSortingFn(columnId) {
|
|
62
|
-
var firstRow = instance.getGlobalFilteredRowModel().flatRows[0];
|
|
63
|
-
var value = firstRow == null ? void 0 : firstRow.values[columnId];
|
|
64
|
-
|
|
65
|
-
if (typeof value === 'string') {
|
|
66
|
-
return sortTypes.sortTypes.alphanumeric;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
if (Object.prototype.toString.call(value) === '[object Date]') {
|
|
70
|
-
return sortTypes.sortTypes.datetime;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
return sortTypes.sortTypes.basic;
|
|
74
|
-
},
|
|
75
|
-
getColumnSortingFn: function getColumnSortingFn(columnId) {
|
|
76
|
-
var _ref;
|
|
77
|
-
|
|
78
|
-
var column = instance.getColumn(columnId);
|
|
79
|
-
var userSortTypes = instance.options.sortTypes;
|
|
80
|
-
|
|
81
|
-
if (!column) {
|
|
82
|
-
throw new Error();
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
return utils.isFunction(column.sortType) ? column.sortType : column.sortType === 'auto' ? instance.getColumnAutoFilterFn(columnId) : (_ref = userSortTypes == null ? void 0 : userSortTypes[column.sortType]) != null ? _ref : sortTypes.sortTypes[column.sortType];
|
|
86
|
-
},
|
|
87
|
-
setSorting: function setSorting(updater) {
|
|
88
|
-
return instance.options.onSortingChange == null ? void 0 : instance.options.onSortingChange(updater, utils.functionalUpdate(updater, instance.getState().sorting));
|
|
89
|
-
},
|
|
90
|
-
toggleColumnSorting: function toggleColumnSorting(columnId, desc, multi) {
|
|
91
|
-
var column = instance.getColumn(columnId);
|
|
92
|
-
|
|
93
|
-
if (!column) {
|
|
94
|
-
throw new Error();
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
instance.setSorting(function (old) {
|
|
98
|
-
var _column$sortDescFirst, _instance$options$ena, _instance$options$ena2;
|
|
99
|
-
|
|
100
|
-
// Find any existing sorting for this column
|
|
101
|
-
var existingSorting = old == null ? void 0 : old.find(function (d) {
|
|
102
|
-
return d.id === columnId;
|
|
103
|
-
});
|
|
104
|
-
var existingIndex = old == null ? void 0 : old.findIndex(function (d) {
|
|
105
|
-
return d.id === columnId;
|
|
106
|
-
});
|
|
107
|
-
var hasDescDefined = typeof desc !== 'undefined' && desc !== null;
|
|
108
|
-
var newSorting = []; // What should we do with this sort action?
|
|
109
|
-
|
|
110
|
-
var sortAction;
|
|
111
|
-
|
|
112
|
-
if (!column.getCanMultiSort() && multi) {
|
|
113
|
-
if (existingSorting) {
|
|
114
|
-
sortAction = 'toggle';
|
|
115
|
-
} else {
|
|
116
|
-
sortAction = 'add';
|
|
117
|
-
}
|
|
118
|
-
} else {
|
|
119
|
-
// Normal mode
|
|
120
|
-
if (old != null && old.length && existingIndex !== old.length - 1) {
|
|
121
|
-
sortAction = 'replace';
|
|
122
|
-
} else if (existingSorting) {
|
|
123
|
-
sortAction = 'toggle';
|
|
124
|
-
} else {
|
|
125
|
-
sortAction = 'replace';
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
var sortDescFirst = (_column$sortDescFirst = column.sortDescFirst) != null ? _column$sortDescFirst : instance.options.sortDescFirst; // Handle toggle states that will remove the sorting
|
|
130
|
-
|
|
131
|
-
if (sortAction === 'toggle' && ( // Must be toggling
|
|
132
|
-
(_instance$options$ena = instance.options.enableSortingRemoval) != null ? _instance$options$ena : true) && // If enableSortRemove, enable in general
|
|
133
|
-
!hasDescDefined && ( // Must not be setting desc
|
|
134
|
-
multi ? (_instance$options$ena2 = instance.options.enableMultiRemove) != null ? _instance$options$ena2 : true : true) && ( // If multi, don't allow if enableMultiRemove
|
|
135
|
-
existingSorting != null && existingSorting.desc // Finally, detect if it should indeed be removed
|
|
136
|
-
? !sortDescFirst : sortDescFirst)) {
|
|
137
|
-
sortAction = 'remove';
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
if (sortAction === 'replace') {
|
|
141
|
-
newSorting = [{
|
|
142
|
-
id: columnId,
|
|
143
|
-
desc: hasDescDefined ? desc : !!sortDescFirst
|
|
144
|
-
}];
|
|
145
|
-
} else if (sortAction === 'add' && old != null && old.length) {
|
|
146
|
-
var _instance$options$max;
|
|
147
|
-
|
|
148
|
-
newSorting = [].concat(old, [{
|
|
149
|
-
id: columnId,
|
|
150
|
-
desc: hasDescDefined ? desc : !!sortDescFirst
|
|
151
|
-
}]); // Take latest n columns
|
|
152
|
-
|
|
153
|
-
newSorting.splice(0, newSorting.length - ((_instance$options$max = instance.options.maxMultiSortColCount) != null ? _instance$options$max : Number.MAX_SAFE_INTEGER));
|
|
154
|
-
} else if (sortAction === 'toggle' && old != null && old.length) {
|
|
155
|
-
// This flips (or sets) the
|
|
156
|
-
newSorting = old.map(function (d) {
|
|
157
|
-
if (d.id === columnId) {
|
|
158
|
-
return _rollupPluginBabelHelpers["extends"]({}, d, {
|
|
159
|
-
desc: hasDescDefined ? desc : !(existingSorting != null && existingSorting.desc)
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
return d;
|
|
164
|
-
});
|
|
165
|
-
} else if (sortAction === 'remove' && old != null && old.length) {
|
|
166
|
-
newSorting = old.filter(function (d) {
|
|
167
|
-
return d.id !== columnId;
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
return newSorting;
|
|
172
|
-
});
|
|
173
|
-
},
|
|
174
|
-
getColumnCanSort: function getColumnCanSort(columnId) {
|
|
175
|
-
var _ref2, _ref3, _column$enableSorting;
|
|
176
|
-
|
|
177
|
-
var column = instance.getColumn(columnId);
|
|
178
|
-
|
|
179
|
-
if (!column) {
|
|
180
|
-
throw new Error();
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
return (_ref2 = (_ref3 = (_column$enableSorting = column.enableSorting) != null ? _column$enableSorting : instance.options.enableSorting) != null ? _ref3 : column.defaultCanSort) != null ? _ref2 : !!column.accessorFn;
|
|
184
|
-
},
|
|
185
|
-
getColumnCanMultiSort: function getColumnCanMultiSort(columnId) {
|
|
186
|
-
var _ref4, _column$enableMultiSo;
|
|
187
|
-
|
|
188
|
-
var column = instance.getColumn(columnId);
|
|
189
|
-
|
|
190
|
-
if (!column) {
|
|
191
|
-
throw new Error();
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
return (_ref4 = (_column$enableMultiSo = column.enableMultiSort) != null ? _column$enableMultiSo : instance.options.enableMultiSort) != null ? _ref4 : !!column.accessorFn;
|
|
195
|
-
},
|
|
196
|
-
getColumnIsSorted: function getColumnIsSorted(columnId) {
|
|
197
|
-
var _instance$getState$so;
|
|
198
|
-
|
|
199
|
-
var columnSort = (_instance$getState$so = instance.getState().sorting) == null ? void 0 : _instance$getState$so.find(function (d) {
|
|
200
|
-
return d.id === columnId;
|
|
201
|
-
});
|
|
202
|
-
return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';
|
|
203
|
-
},
|
|
204
|
-
getColumnSortIndex: function getColumnSortIndex(columnId) {
|
|
205
|
-
var _instance$getState$so2, _instance$getState$so3;
|
|
206
|
-
|
|
207
|
-
return (_instance$getState$so2 = (_instance$getState$so3 = instance.getState().sorting) == null ? void 0 : _instance$getState$so3.findIndex(function (d) {
|
|
208
|
-
return d.id === columnId;
|
|
209
|
-
})) != null ? _instance$getState$so2 : -1;
|
|
210
|
-
},
|
|
211
|
-
resetSorting: function resetSorting() {
|
|
212
|
-
var _instance$options$ini, _instance$options, _instance$options$ini2;
|
|
213
|
-
|
|
214
|
-
instance.setSorting((_instance$options$ini = (_instance$options = instance.options) == null ? void 0 : (_instance$options$ini2 = _instance$options.initialState) == null ? void 0 : _instance$options$ini2.sorting) != null ? _instance$options$ini : []);
|
|
215
|
-
},
|
|
216
|
-
getToggleSortingProps: function getToggleSortingProps(columnId, userProps) {
|
|
217
|
-
var column = instance.getColumn(columnId);
|
|
218
|
-
|
|
219
|
-
if (!column) {
|
|
220
|
-
throw new Error();
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
var canSort = column.getCanSort();
|
|
224
|
-
var initialProps = {
|
|
225
|
-
title: canSort ? 'Toggle Sorting' : undefined,
|
|
226
|
-
onClick: canSort ? function (e) {
|
|
227
|
-
e.persist();
|
|
228
|
-
column.toggleSorting == null ? void 0 : column.toggleSorting(undefined, column.getCanMultiSort() ? instance.options.isMultiSortEvent == null ? void 0 : instance.options.isMultiSortEvent(e) : false);
|
|
229
|
-
} : undefined
|
|
230
|
-
};
|
|
231
|
-
return utils.propGetter(initialProps, userProps);
|
|
232
|
-
},
|
|
233
|
-
getSortedRowModel: utils.memo(function () {
|
|
234
|
-
return [instance.getState().sorting, instance.getGlobalFilteredRowModel(), instance.options.sortRowsFn];
|
|
235
|
-
}, function (sorting, rowModel, sortingFn) {
|
|
236
|
-
if (!sortingFn || !(sorting != null && sorting.length)) {
|
|
237
|
-
return rowModel;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Sorting...');
|
|
241
|
-
return sortingFn(instance, sorting, rowModel);
|
|
242
|
-
}, 'getSortedRowModel', instance.options.debug),
|
|
243
|
-
getPreSortedRows: function getPreSortedRows() {
|
|
244
|
-
return instance.getGlobalFilteredRowModel().rows;
|
|
245
|
-
},
|
|
246
|
-
getPreSortedFlatRows: function getPreSortedFlatRows() {
|
|
247
|
-
return instance.getGlobalFilteredRowModel().flatRows;
|
|
248
|
-
},
|
|
249
|
-
getPreSortedRowsById: function getPreSortedRowsById() {
|
|
250
|
-
return instance.getGlobalFilteredRowModel().rowsById;
|
|
251
|
-
},
|
|
252
|
-
getSortedRows: function getSortedRows() {
|
|
253
|
-
return instance.getSortedRowModel().rows;
|
|
254
|
-
},
|
|
255
|
-
getSortedFlatRows: function getSortedFlatRows() {
|
|
256
|
-
return instance.getSortedRowModel().flatRows;
|
|
257
|
-
},
|
|
258
|
-
getSortedRowsById: function getSortedRowsById() {
|
|
259
|
-
return instance.getSortedRowModel().rowsById;
|
|
260
|
-
}
|
|
261
|
-
};
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
exports.createColumn = createColumn;
|
|
265
|
-
exports.getDefaultColumn = getDefaultColumn;
|
|
266
|
-
exports.getDefaultOptions = getDefaultOptions;
|
|
267
|
-
exports.getInitialState = getInitialState;
|
|
268
|
-
exports.getInstance = getInstance;
|
|
269
|
-
//# sourceMappingURL=Sorting.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { MouseEvent, TouchEvent } from 'react'\nimport { RowModel } from '..'\nimport { BuiltInSortType, sortTypes } from '../sortTypes'\n\nimport {\n Column,\n Getter,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\n Row,\n Updater,\n} from '../types'\n\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n propGetter,\n} from '../utils'\n\nexport type ColumnSort = {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport type SortingFn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> =\n {\n (\n rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnId: string\n ): number\n }\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortType<TSortingFns> =\n | 'auto'\n | BuiltInSortType\n | keyof TSortingFns\n | SortingFn<any, any, any, TSortingFns, any>\n\nexport type SortingColumnDef<TFilterFns> = {\n sortType?: SortType<TFilterFns>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n defaultCanSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<\n _TData,\n _TValue,\n TFilterFns,\n _TSortingFns,\n _TAggregationFns\n> = {\n sortType: SortType<TFilterFns>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | 'asc' | 'desc'\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n}\n\nexport type SortingOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n sortTypes?: TSortingFns\n onSortingChange?: OnChangeFn<SortingState>\n autoResetSorting?: boolean\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n sortRowsFn?: (\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n sortingState: SortingState,\n globalFilteredRowModel: RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: MouseEvent | TouchEvent) => boolean\n}\n\nexport type ToggleSortingProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type SortingInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n getColumnAutoSortingFn: (\n columnId: string\n ) => SortingFn<any, any, any, any, any> | undefined\n\n getColumnSortingFn: (\n columnId: string\n ) => SortingFn<any, any, any, any, any> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: () => void\n getColumnCanSort: (columnId: string) => boolean\n getColumnCanMultiSort: (columnId: string) => boolean\n getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'\n getColumnSortIndex: (columnId: string) => number\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n getSortedRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPreSortedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreSortedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreSortedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getSortedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getSortedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getSortedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\n//\n\nexport function getDefaultColumn<TFilterFns>(): SortingColumnDef<TFilterFns> {\n return {\n sortType: 'auto',\n }\n}\n\nexport function getInitialState(): SortingTableState {\n return {\n sorting: [],\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): SortingOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n autoResetSorting: true,\n }\n}\n\nexport function createColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): SortingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n sortType: column.sortType,\n getCanSort: () => instance.getColumnCanSort(column.id),\n getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),\n getSortIndex: () => instance.getColumnSortIndex(column.id),\n getIsSorted: () => instance.getColumnIsSorted(column.id),\n toggleSorting: (desc, isMulti) =>\n instance.toggleColumnSorting(column.id, desc, isMulti),\n getToggleSortingProps: userProps =>\n instance.getToggleSortingProps(column.id, userProps),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): SortingInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n getColumnAutoSortingFn: columnId => {\n const firstRow = instance.getGlobalFilteredRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return sortTypes.alphanumeric\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortTypes.datetime\n }\n\n return sortTypes.basic\n },\n getColumnSortingFn: columnId => {\n const column = instance.getColumn(columnId)\n const userSortTypes = instance.options.sortTypes\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.sortType)\n ? column.sortType\n : column.sortType === 'auto'\n ? instance.getColumnAutoFilterFn(columnId)\n : (userSortTypes as Record<string, any>)?.[column.sortType as string] ??\n (sortTypes[column.sortType as BuiltInSortType] as SortingFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >)\n },\n\n setSorting: updater =>\n instance.options.onSortingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().sorting)\n ),\n\n toggleColumnSorting: (columnId, desc, multi) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n instance.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === columnId)\n const existingIndex = old?.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (!column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n const sortDescFirst =\n column.sortDescFirst ?? instance.options.sortDescFirst\n\n // Handle toggle states that will remove the sorting\n if (\n sortAction === 'toggle' && // Must be toggling\n (instance.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? instance.options.enableMultiRemove ?? true : true) && // If multi, don't allow if enableMultiRemove\n (existingSorting?.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst\n : sortDescFirst)\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSorting = [\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (instance.options.maxMultiSortColCount ?? Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle' && old?.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc! : !existingSorting?.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove' && old?.length) {\n newSorting = old.filter(d => d.id !== columnId)\n }\n\n return newSorting\n })\n },\n\n getColumnCanSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableSorting ??\n instance.options.enableSorting ??\n column.defaultCanSort ??\n !!column.accessorFn\n )\n },\n\n getColumnCanMultiSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getColumnIsSorted: columnId => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === columnId)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getColumnSortIndex: columnId =>\n instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,\n\n resetSorting: () => {\n instance.setSorting(instance.options?.initialState?.sorting ?? [])\n },\n\n getToggleSortingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const canSort = column.getCanSort()\n\n const initialProps: ToggleSortingProps = {\n title: canSort ? 'Toggle Sorting' : undefined,\n onClick: canSort\n ? (e: MouseEvent | TouchEvent) => {\n e.persist()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getSortedRowModel: memo(\n () => [\n instance.getState().sorting,\n instance.getGlobalFilteredRowModel(),\n instance.options.sortRowsFn,\n ],\n (sorting, rowModel, sortingFn) => {\n if (!sortingFn || !sorting?.length) {\n return rowModel\n }\n\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Sorting...')\n\n return sortingFn(instance, sorting, rowModel)\n },\n 'getSortedRowModel',\n instance.options.debug\n ),\n\n getPreSortedRows: () => instance.getGlobalFilteredRowModel().rows,\n getPreSortedFlatRows: () => instance.getGlobalFilteredRowModel().flatRows,\n getPreSortedRowsById: () => instance.getGlobalFilteredRowModel().rowsById,\n getSortedRows: () => instance.getSortedRowModel().rows,\n getSortedFlatRows: () => instance.getSortedRowModel().flatRows,\n getSortedRowsById: () => instance.getSortedRowModel().rowsById,\n }\n}\n"],"names":["getDefaultColumn","sortType","getInitialState","sorting","getDefaultOptions","instance","onSortingChange","makeStateUpdater","autoResetSorting","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingProps","userProps","getInstance","getColumnAutoSortingFn","columnId","firstRow","getGlobalFilteredRowModel","flatRows","value","values","sortTypes","alphanumeric","Object","prototype","toString","call","datetime","basic","getColumnSortingFn","getColumn","userSortTypes","options","Error","isFunction","getColumnAutoFilterFn","setSorting","updater","functionalUpdate","getState","multi","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","length","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","enableSorting","defaultCanSort","accessorFn","enableMultiSort","columnSort","resetSorting","initialState","canSort","initialProps","title","undefined","onClick","e","persist","isMultiSortEvent","propGetter","getSortedRowModel","memo","sortRowsFn","rowModel","sortingFn","process","env","NODE_ENV","debug","console","info","getPreSortedRows","rows","getPreSortedFlatRows","getPreSortedRowsById","rowsById","getSortedRows","getSortedFlatRows","getSortedRowsById"],"mappings":"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"}
|