@tanstack/react-table 8.0.0-alpha.2 → 8.0.0-alpha.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -78
  2. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  3. package/build/cjs/index.js +96 -12
  4. package/build/cjs/index.js.map +1 -1
  5. package/build/esm/index.js +40 -3663
  6. package/build/esm/index.js.map +1 -1
  7. package/build/stats-html.html +1 -1
  8. package/build/stats-react.json +28 -676
  9. package/build/types/index.d.ts +13 -7
  10. package/build/umd/index.development.js +50 -3665
  11. package/build/umd/index.development.js.map +1 -1
  12. package/build/umd/index.production.js +1 -1
  13. package/build/umd/index.production.js.map +1 -1
  14. package/package.json +4 -1
  15. package/src/index.tsx +104 -7
  16. package/build/cjs/aggregationTypes.js +0 -130
  17. package/build/cjs/aggregationTypes.js.map +0 -1
  18. package/build/cjs/core.js +0 -519
  19. package/build/cjs/core.js.map +0 -1
  20. package/build/cjs/createTable.js +0 -103
  21. package/build/cjs/createTable.js.map +0 -1
  22. package/build/cjs/features/ColumnSizing.js +0 -331
  23. package/build/cjs/features/ColumnSizing.js.map +0 -1
  24. package/build/cjs/features/Expanding.js +0 -234
  25. package/build/cjs/features/Expanding.js.map +0 -1
  26. package/build/cjs/features/Filters.js +0 -396
  27. package/build/cjs/features/Filters.js.map +0 -1
  28. package/build/cjs/features/Grouping.js +0 -228
  29. package/build/cjs/features/Grouping.js.map +0 -1
  30. package/build/cjs/features/Headers.js +0 -486
  31. package/build/cjs/features/Headers.js.map +0 -1
  32. package/build/cjs/features/Ordering.js +0 -83
  33. package/build/cjs/features/Ordering.js.map +0 -1
  34. package/build/cjs/features/Pinning.js +0 -163
  35. package/build/cjs/features/Pinning.js.map +0 -1
  36. package/build/cjs/features/Sorting.js +0 -269
  37. package/build/cjs/features/Sorting.js.map +0 -1
  38. package/build/cjs/features/Visibility.js +0 -160
  39. package/build/cjs/features/Visibility.js.map +0 -1
  40. package/build/cjs/filterTypes.js +0 -172
  41. package/build/cjs/filterTypes.js.map +0 -1
  42. package/build/cjs/sortTypes.js +0 -121
  43. package/build/cjs/sortTypes.js.map +0 -1
  44. package/build/cjs/utils/columnFilterRowsFn.js +0 -130
  45. package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
  46. package/build/cjs/utils/expandRowsFn.js +0 -38
  47. package/build/cjs/utils/expandRowsFn.js.map +0 -1
  48. package/build/cjs/utils/globalFilterRowsFn.js +0 -100
  49. package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
  50. package/build/cjs/utils/groupRowsFn.js +0 -154
  51. package/build/cjs/utils/groupRowsFn.js.map +0 -1
  52. package/build/cjs/utils/sortRowsFn.js +0 -93
  53. package/build/cjs/utils/sortRowsFn.js.map +0 -1
  54. package/build/cjs/utils.js +0 -143
  55. package/build/cjs/utils.js.map +0 -1
  56. package/build/types/aggregationTypes.d.ts +0 -22
  57. package/build/types/core.d.ts +0 -126
  58. package/build/types/createTable.d.ts +0 -35
  59. package/build/types/features/ColumnSizing.d.ts +0 -73
  60. package/build/types/features/Expanding.d.ts +0 -52
  61. package/build/types/features/Filters.d.ts +0 -93
  62. package/build/types/features/Grouping.d.ts +0 -82
  63. package/build/types/features/Headers.d.ts +0 -41
  64. package/build/types/features/Ordering.d.ts +0 -19
  65. package/build/types/features/Pinning.d.ts +0 -39
  66. package/build/types/features/Sorting.d.ts +0 -75
  67. package/build/types/features/Visibility.d.ts +0 -47
  68. package/build/types/filterTypes.d.ts +0 -50
  69. package/build/types/sortTypes.d.ts +0 -17
  70. package/build/types/types.d.ts +0 -124
  71. package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
  72. package/build/types/utils/expandRowsFn.d.ts +0 -2
  73. package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
  74. package/build/types/utils/groupRowsFn.d.ts +0 -2
  75. package/build/types/utils/sortRowsFn.d.ts +0 -2
  76. package/build/types/utils.d.ts +0 -24
  77. package/src/aggregationTypes.ts +0 -115
  78. package/src/core.tsx +0 -1232
  79. package/src/createTable.tsx +0 -181
  80. package/src/features/ColumnSizing.ts +0 -482
  81. package/src/features/Expanding.ts +0 -388
  82. package/src/features/Filters.ts +0 -707
  83. package/src/features/Grouping.ts +0 -451
  84. package/src/features/Headers.ts +0 -944
  85. package/src/features/Ordering.ts +0 -134
  86. package/src/features/Pinning.ts +0 -213
  87. package/src/features/Sorting.ts +0 -487
  88. package/src/features/Visibility.ts +0 -281
  89. package/src/features/withPagination.oldts +0 -208
  90. package/src/features/withRowSelection.oldts +0 -467
  91. package/src/filterTypes.ts +0 -251
  92. package/src/sortTypes.ts +0 -159
  93. package/src/types.ts +0 -314
  94. package/src/utils/columnFilterRowsFn.ts +0 -162
  95. package/src/utils/expandRowsFn.ts +0 -53
  96. package/src/utils/globalFilterRowsFn.ts +0 -129
  97. package/src/utils/groupRowsFn.ts +0 -196
  98. package/src/utils/sortRowsFn.ts +0 -115
  99. 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":";;;;;;;;;;;;;;;;AAkDA;AAEO,SAASA,eAAT,GAAoD;AACzD,SAAO;AACLC,IAAAA,aAAa,EAAE;AACbC,MAAAA,IAAI,EAAE,EADO;AAEbC,MAAAA,KAAK,EAAE;AAFM;AADV,GAAP;AAMD;AAEM,SAASC,iBAAT,CAOLC,QAPK,EAQwB;AAC7B,SAAO;AACLC,IAAAA,qBAAqB,EAAEC,sBAAgB,CAAC,eAAD,EAAkBF,QAAlB;AADlC,GAAP;AAGD;AAEM,SAASG,YAAT,CAOLC,MAPK,EAQLJ,QARK,EASgB;AACrB,SAAO;AACLK,IAAAA,SAAS,EAAE;AAAA,aAAML,QAAQ,CAACM,eAAT,CAAyBF,MAAM,CAACG,EAAhC,CAAN;AAAA,KADN;AAELC,IAAAA,cAAc,EAAE;AAAA,aAAMR,QAAQ,CAACS,oBAAT,CAA8BL,MAAM,CAACG,EAArC,CAAN;AAAA,KAFX;AAGLG,IAAAA,WAAW,EAAE;AAAA,aAAMV,QAAQ,CAACW,iBAAT,CAA2BP,MAAM,CAACG,EAAlC,CAAN;AAAA,KAHR;AAILK,IAAAA,GAAG,EAAE,aAAAC,QAAQ;AAAA,aAAIb,QAAQ,CAACc,SAAT,CAAmBV,MAAM,CAACG,EAA1B,EAA8BM,QAA9B,CAAJ;AAAA;AAJR,GAAP;AAMD;AAEM,SAASE,WAAT,CAOLf,QAPK,EAcL;AACA,SAAO;AACLgB,IAAAA,gBAAgB,EAAE,0BAAAC,OAAO;AAAA,aACvBjB,QAAQ,CAACkB,OAAT,CAAiBjB,qBADM,oBACvBD,QAAQ,CAACkB,OAAT,CAAiBjB,qBAAjB,CACEgB,OADF,EAEEE,sBAAgB,CAACF,OAAD,EAAUjB,QAAQ,CAACoB,QAAT,GAAoBxB,aAA9B,CAFlB,CADuB;AAAA,KADpB;AAOLyB,IAAAA,kBAAkB,EAAE;AAAA;;AAAA,aAClBrB,QAAQ,CAACgB,gBAAT,oDACEhB,QAAQ,CAACkB,OAAT,CAAiBI,YADnB,qBACE,uBAA+B1B,aADjC,oCACkD,EADlD,CADkB;AAAA,KAPf;AAYLkB,IAAAA,SAAS,EAAE,mBAACS,QAAD,EAAWV,QAAX,EAAwB;AACjC,UAAMT,MAAM,GAAGJ,QAAQ,CAACwB,SAAT,CAAmBD,QAAnB,CAAf;AAEA,UAAME,SAAS,GAAGrB,MAAH,oBAAGA,MAAM,CACpBsB,cADc,GAEfC,GAFe,CAEX,UAAAC,CAAC;AAAA,eAAIA,CAAC,CAACrB,EAAN;AAAA,OAFU,EAGfsB,MAHe,CAGRC,OAHQ,CAAlB;AAKA9B,MAAAA,QAAQ,CAACgB,gBAAT,CAA0B,UAAAe,GAAG,EAAI;AAAA;;AAC/B,YAAIlB,QAAQ,KAAK,OAAjB,EAA0B;AAAA;;AACxB,iBAAO;AACLhB,YAAAA,IAAI,EAAE,cAACkC,GAAD,oBAACA,GAAG,CAAElC,IAAN,wBAAc,EAAd,EAAkBgC,MAAlB,CAAyB,UAAAD,CAAC;AAAA,qBAAI,EAACH,SAAD,YAACA,SAAS,CAAEO,QAAX,CAAoBJ,CAApB,CAAD,CAAJ;AAAA,aAA1B,CADD;AAEL9B,YAAAA,KAAK,YACA,eAACiC,GAAD,oBAACA,GAAG,CAAEjC,KAAN,yBAAe,EAAf,EAAmB+B,MAAnB,CAA0B,UAAAD,CAAC;AAAA,qBAAI,EAACH,SAAD,YAACA,SAAS,CAAEO,QAAX,CAAoBJ,CAApB,CAAD,CAAJ;AAAA,aAA3B,CADA,EAEAH,SAFA;AAFA,WAAP;AAOD;;AAED,YAAIZ,QAAQ,KAAK,MAAjB,EAAyB;AAAA;;AACvB,iBAAO;AACLhB,YAAAA,IAAI,YACC,eAACkC,GAAD,oBAACA,GAAG,CAAElC,IAAN,yBAAc,EAAd,EAAkBgC,MAAlB,CAAyB,UAAAD,CAAC;AAAA,qBAAI,EAACH,SAAD,YAACA,SAAS,CAAEO,QAAX,CAAoBJ,CAApB,CAAD,CAAJ;AAAA,aAA1B,CADD,EAECH,SAFD,CADC;AAKL3B,YAAAA,KAAK,EAAE,gBAACiC,GAAD,oBAACA,GAAG,CAAEjC,KAAN,0BAAe,EAAf,EAAmB+B,MAAnB,CAA0B,UAAAD,CAAC;AAAA,qBAAI,EAACH,SAAD,YAACA,SAAS,CAAEO,QAAX,CAAoBJ,CAApB,CAAD,CAAJ;AAAA,aAA3B;AALF,WAAP;AAOD;;AAED,eAAO;AACL/B,UAAAA,IAAI,EAAE,eAACkC,GAAD,oBAACA,GAAG,CAAElC,IAAN,yBAAc,EAAd,EAAkBgC,MAAlB,CAAyB,UAAAD,CAAC;AAAA,mBAAI,EAACH,SAAD,YAACA,SAAS,CAAEO,QAAX,CAAoBJ,CAApB,CAAD,CAAJ;AAAA,WAA1B,CADD;AAEL9B,UAAAA,KAAK,EAAE,gBAACiC,GAAD,oBAACA,GAAG,CAAEjC,KAAN,0BAAe,EAAf,EAAmB+B,MAAnB,CAA0B,UAAAD,CAAC;AAAA,mBAAI,EAACH,SAAD,YAACA,SAAS,CAAEO,QAAX,CAAoBJ,CAApB,CAAD,CAAJ;AAAA,WAA3B;AAFF,SAAP;AAID,OAzBD;AA0BD,KA9CI;AAgDLtB,IAAAA,eAAe,EAAE,yBAAAiB,QAAQ,EAAI;AAC3B,UAAMnB,MAAM,GAAGJ,QAAQ,CAACwB,SAAT,CAAmBD,QAAnB,CAAf;;AAEA,UAAI,CAACnB,MAAL,EAAa;AACX,cAAM,IAAI6B,KAAJ,EAAN;AACD;;AAED,UAAMC,WAAW,GAAG9B,MAAM,CAACsB,cAAP,EAApB;AAEA,aAAOQ,WAAW,CAACC,IAAZ,CACL,UAAAP,CAAC;AAAA;;AAAA,oDACCA,CAAC,CAACQ,aADH,+BAECpC,QAAQ,CAACkB,OAAT,CAAiBkB,aAFlB,oBAGCR,CAAC,CAACS,aAHH,mBAIC,CAAC,CAACT,CAAC,CAACU,UAJL;AAAA,OADI,CAAP;AAOD,KAhEI;AAkEL3B,IAAAA,iBAAiB,EAAE,2BAAAY,QAAQ,EAAI;AAC7B,UAAMnB,MAAM,GAAGJ,QAAQ,CAACwB,SAAT,CAAmBD,QAAnB,CAAf;;AAEA,UAAI,CAACnB,MAAL,EAAa;AACX,cAAM,IAAI6B,KAAJ,EAAN;AACD;;AAED,UAAMM,aAAa,GAAGnC,MAAM,CAACsB,cAAP,GAAwBC,GAAxB,CAA4B,UAAAC,CAAC;AAAA,eAAIA,CAAC,CAACrB,EAAN;AAAA,OAA7B,CAAtB;AAEA,kCAAwBP,QAAQ,CAACoB,QAAT,GAAoBxB,aAA5C;AAAA,UAAQC,IAAR,yBAAQA,IAAR;AAAA,UAAcC,KAAd,yBAAcA,KAAd;AAEA,UAAM0C,MAAM,GAAGD,aAAa,CAACJ,IAAd,CAAmB,UAAAP,CAAC;AAAA,eAAI/B,IAAJ,oBAAIA,IAAI,CAAEmC,QAAN,CAAeJ,CAAf,CAAJ;AAAA,OAApB,CAAf;AACA,UAAMa,OAAO,GAAGF,aAAa,CAACJ,IAAd,CAAmB,UAAAP,CAAC;AAAA,eAAI9B,KAAJ,oBAAIA,KAAK,CAAEkC,QAAP,CAAgBJ,CAAhB,CAAJ;AAAA,OAApB,CAAhB;;AAEA,UAAIY,MAAM,IAAIC,OAAd,EAAuB;AACrB,eAAO,MAAP;AACD;;AAED,aAAOD,MAAM,GAAG,MAAH,GAAYC,OAAO,GAAG,OAAH,GAAa,KAA7C;AACD,KArFI;AAuFLhC,IAAAA,oBAAoB,EAAE,8BAAAc,QAAQ,EAAI;AAAA;;AAChC,UAAMV,QAAQ,GAAGb,QAAQ,CAACW,iBAAT,CAA2BY,QAA3B,CAAjB;;AAEA,UAAIV,QAAQ,KAAK,MAAjB,EAAyB;AACvB,YAAI6B,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCC,UAAAA,OAAO,CAACC,IAAR,aACYvB,QADZ;AAGD;;AACD,cAAM,IAAIU,KAAJ,EAAN;AACD;;AAED,aAAOpB,QAAQ,uDACXb,QAAQ,CAACoB,QAAT,GAAoBxB,aADT,+CACX,uBAAoCiB,QAApC,CADW,qBACX,uBAA+CkC,OAA/C,CAAuDxB,QAAvD,CADW,qCACyD,CAAC,CAD1D,GAEX,CAFJ;AAGD;AAtGI,GAAP;AAwGD;;;;;;;"}
@@ -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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"}