@tanstack/react-table 8.0.0-alpha.9 → 8.0.0-beta.2
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/react-table/src/index.js +139 -0
- package/build/cjs/react-table/src/index.js.map +1 -0
- package/build/cjs/table-core/build/esm/index.js +3867 -0
- package/build/cjs/table-core/build/esm/index.js.map +1 -0
- package/build/esm/index.js +3196 -4117
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +24 -813
- package/build/types/index.d.ts +16 -9
- package/build/umd/index.development.js +3234 -4125
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +11 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +10 -6
- package/src/index.tsx +111 -9
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
- package/build/cjs/aggregationTypes.js +0 -130
- package/build/cjs/aggregationTypes.js.map +0 -1
- package/build/cjs/core.js +0 -545
- package/build/cjs/core.js.map +0 -1
- package/build/cjs/createTable.js +0 -122
- package/build/cjs/createTable.js.map +0 -1
- package/build/cjs/features/ColumnSizing.js +0 -318
- package/build/cjs/features/ColumnSizing.js.map +0 -1
- package/build/cjs/features/Expanding.js +0 -239
- package/build/cjs/features/Expanding.js.map +0 -1
- package/build/cjs/features/Filters.js +0 -414
- package/build/cjs/features/Filters.js.map +0 -1
- package/build/cjs/features/Grouping.js +0 -232
- package/build/cjs/features/Grouping.js.map +0 -1
- package/build/cjs/features/Headers.js +0 -629
- package/build/cjs/features/Headers.js.map +0 -1
- package/build/cjs/features/Ordering.js +0 -86
- package/build/cjs/features/Ordering.js.map +0 -1
- package/build/cjs/features/Pagination.js +0 -193
- package/build/cjs/features/Pagination.js.map +0 -1
- package/build/cjs/features/Pinning.js +0 -149
- package/build/cjs/features/Pinning.js.map +0 -1
- package/build/cjs/features/RowSelection.js +0 -526
- package/build/cjs/features/RowSelection.js.map +0 -1
- package/build/cjs/features/Sorting.js +0 -315
- package/build/cjs/features/Sorting.js.map +0 -1
- package/build/cjs/features/Visibility.js +0 -174
- 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/index.js +0 -44
- package/build/cjs/index.js.map +0 -1
- package/build/cjs/sortTypes.js +0 -122
- package/build/cjs/sortTypes.js.map +0 -1
- package/build/cjs/types.js +0 -22
- package/build/cjs/types.js.map +0 -1
- package/build/cjs/utils/columnFilterRowsFn.js +0 -131
- 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 -101
- package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
- package/build/cjs/utils/groupRowsFn.js +0 -155
- package/build/cjs/utils/groupRowsFn.js.map +0 -1
- package/build/cjs/utils/paginateRowsFn.js +0 -44
- package/build/cjs/utils/paginateRowsFn.js.map +0 -1
- package/build/cjs/utils/sortRowsFn.js +0 -94
- package/build/cjs/utils/sortRowsFn.js.map +0 -1
- package/build/cjs/utils.js +0 -167
- package/build/cjs/utils.js.map +0 -1
- package/build/types/aggregationTypes.d.ts +0 -22
- package/build/types/core.d.ts +0 -105
- package/build/types/createTable.d.ts +0 -42
- package/build/types/features/ColumnSizing.d.ts +0 -73
- package/build/types/features/Expanding.d.ts +0 -48
- package/build/types/features/Filters.d.ts +0 -90
- package/build/types/features/Grouping.d.ts +0 -83
- package/build/types/features/Headers.d.ts +0 -41
- package/build/types/features/Ordering.d.ts +0 -19
- package/build/types/features/Pagination.d.ts +0 -39
- package/build/types/features/Pinning.d.ts +0 -39
- package/build/types/features/RowSelection.d.ts +0 -58
- package/build/types/features/Sorting.d.ts +0 -79
- package/build/types/features/Visibility.d.ts +0 -47
- package/build/types/filterTypes.d.ts +0 -50
- package/build/types/sortTypes.d.ts +0 -18
- package/build/types/types.d.ts +0 -138
- 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/paginateRowsFn.d.ts +0 -2
- package/build/types/utils/sortRowsFn.d.ts +0 -2
- package/build/types/utils.d.ts +0 -23
- package/src/aggregationTypes.ts +0 -115
- package/src/core.tsx +0 -763
- package/src/createTable.tsx +0 -186
- package/src/features/ColumnSizing.ts +0 -424
- package/src/features/Expanding.ts +0 -318
- package/src/features/Filters.ts +0 -560
- package/src/features/Grouping.ts +0 -361
- package/src/features/Headers.ts +0 -729
- package/src/features/Ordering.ts +0 -110
- package/src/features/Pagination.ts +0 -250
- package/src/features/Pinning.ts +0 -174
- package/src/features/RowSelection.ts +0 -651
- package/src/features/Sorting.ts +0 -453
- package/src/features/Visibility.ts +0 -238
- package/src/filterTypes.ts +0 -188
- package/src/sortTypes.ts +0 -147
- package/src/types.ts +0 -311
- package/src/utils/columnFilterRowsFn.ts +0 -113
- package/src/utils/expandRowsFn.ts +0 -30
- package/src/utils/globalFilterRowsFn.ts +0 -89
- package/src/utils/groupRowsFn.ts +0 -170
- package/src/utils/paginateRowsFn.ts +0 -28
- package/src/utils/sortRowsFn.ts +0 -95
- package/src/utils.tsx +0 -221
package/build/cjs/createTable.js
DELETED
|
@@ -1,122 +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 React = require('react');
|
|
17
|
-
var core = require('./core.js');
|
|
18
|
-
|
|
19
|
-
function _interopNamespace(e) {
|
|
20
|
-
if (e && e.__esModule) return e;
|
|
21
|
-
var n = Object.create(null);
|
|
22
|
-
if (e) {
|
|
23
|
-
Object.keys(e).forEach(function (k) {
|
|
24
|
-
if (k !== 'default') {
|
|
25
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
26
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
27
|
-
enumerable: true,
|
|
28
|
-
get: function () { return e[k]; }
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
n["default"] = e;
|
|
34
|
-
return Object.freeze(n);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
38
|
-
|
|
39
|
-
function createTableFactory(opts) {
|
|
40
|
-
return function () {
|
|
41
|
-
return _createTable(undefined, undefined, opts);
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
function createTable() {
|
|
45
|
-
return _createTable();
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function _createTable(_, __, opts) {
|
|
49
|
-
return {
|
|
50
|
-
createColumns: function createColumns(columns) {
|
|
51
|
-
return columns;
|
|
52
|
-
},
|
|
53
|
-
createDisplayColumn: function createDisplayColumn(column) {
|
|
54
|
-
return column;
|
|
55
|
-
},
|
|
56
|
-
createGroup: function createGroup(column) {
|
|
57
|
-
return column;
|
|
58
|
-
},
|
|
59
|
-
createDataColumn: function createDataColumn(accessor, column) {
|
|
60
|
-
column = _rollupPluginBabelHelpers["extends"]({}, column, {
|
|
61
|
-
id: column.id
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
if (typeof accessor === 'string') {
|
|
65
|
-
var _column$id;
|
|
66
|
-
|
|
67
|
-
return _rollupPluginBabelHelpers["extends"]({}, column, {
|
|
68
|
-
id: (_column$id = column.id) != null ? _column$id : accessor,
|
|
69
|
-
accessorKey: accessor
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
if (typeof accessor === 'function') {
|
|
74
|
-
return _rollupPluginBabelHelpers["extends"]({}, column, {
|
|
75
|
-
accessorFn: accessor
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
throw new Error('Invalid accessor');
|
|
80
|
-
},
|
|
81
|
-
useTable: function useTable(options) {
|
|
82
|
-
// Compose in the generic options to the user options
|
|
83
|
-
var resolvedOptions = _rollupPluginBabelHelpers["extends"]({}, opts != null ? opts : {}, {
|
|
84
|
-
state: {},
|
|
85
|
-
// Dummy state
|
|
86
|
-
onStateChange: function onStateChange() {}
|
|
87
|
-
}, options); // Create a new table instance and store it in state
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
var _React$useState = React__namespace.useState(function () {
|
|
91
|
-
return core.createTableInstance(resolvedOptions);
|
|
92
|
-
}),
|
|
93
|
-
instance = _React$useState[0]; // By default, manage table state here using the instance's initial state
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
var _React$useState2 = React__namespace.useState(function () {
|
|
97
|
-
return instance.initialState;
|
|
98
|
-
}),
|
|
99
|
-
state = _React$useState2[0],
|
|
100
|
-
setState = _React$useState2[1]; // Compose the default state above with any user state. This will allow the user
|
|
101
|
-
// to only control a subset of the state if desired.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
instance.setOptions(function (prev) {
|
|
105
|
-
return _rollupPluginBabelHelpers["extends"]({}, prev, options, {
|
|
106
|
-
state: _rollupPluginBabelHelpers["extends"]({}, state, options.state),
|
|
107
|
-
// Similarly, we'll maintain both our internal state and any user-provided
|
|
108
|
-
// state.
|
|
109
|
-
onStateChange: function onStateChange(updater) {
|
|
110
|
-
setState(updater);
|
|
111
|
-
options.onStateChange == null ? void 0 : options.onStateChange(updater);
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
return instance;
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
exports.createTable = createTable;
|
|
121
|
-
exports.createTableFactory = createTableFactory;
|
|
122
|
-
//# sourceMappingURL=createTable.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createTable.js","sources":["../../src/createTable.tsx"],"sourcesContent":["import * as React from 'react'\nimport { createTableInstance } from './core'\nimport { CustomFilterTypes } from './features/Filters'\nimport { CustomAggregationTypes } from './features/Grouping'\nimport { CustomSortingTypes } from './features/Sorting'\nimport {\n TableInstance,\n ColumnDef,\n AccessorFn,\n Options,\n DefaultGenerics,\n PartialGenerics,\n _NonGenerated,\n} from './types'\nimport { Overwrite, PartialKeys } from './utils'\n\nexport type CreatTableFactory<TGenerics extends Partial<DefaultGenerics>> = <\n TRow\n>() => CreateTable<Overwrite<TGenerics, { Row: TRow }>>\n\nexport type CreateTableOptions<\n TFilterFns extends CustomFilterTypes<any>,\n TSortingFns extends CustomSortingTypes<any>,\n TAggregationFns extends CustomAggregationTypes<any>\n> = {\n filterFns?: TFilterFns\n sortingFns?: TSortingFns\n aggregationFns?: TAggregationFns\n}\n\nexport function createTableFactory<\n TFilterFns extends CustomFilterTypes<any>,\n TSortingFns extends CustomSortingTypes<any>,\n TAggregationFns extends CustomAggregationTypes<any>\n>(\n opts: CreateTableOptions<TFilterFns, TSortingFns, TAggregationFns>\n): CreatTableFactory<\n Overwrite<\n PartialGenerics,\n {\n FilterFns: TFilterFns\n SortingFns: TSortingFns\n AggregationFns: TAggregationFns\n }\n >\n> {\n return () => _createTable(undefined, undefined, opts)\n}\n\nexport type CreateTable<TGenerics extends Partial<DefaultGenerics>> = {\n createColumns: (columns: ColumnDef<TGenerics>[]) => ColumnDef<TGenerics>[]\n createGroup: (\n column: Overwrite<\n | Overwrite<\n _NonGenerated<ColumnDef<TGenerics>>,\n {\n header: string\n id?: string\n }\n >\n | Overwrite<\n _NonGenerated<ColumnDef<TGenerics>>,\n {\n id: string\n header?: string | ColumnDef<TGenerics>['header']\n }\n >,\n { accessorFn?: never; accessorKey?: never }\n >\n ) => ColumnDef<TGenerics>\n createDisplayColumn: (\n column: PartialKeys<\n _NonGenerated<ColumnDef<TGenerics>>,\n 'accessorFn' | 'accessorKey'\n >\n ) => ColumnDef<TGenerics>\n createDataColumn: <\n TAccessor extends AccessorFn<TGenerics['Row']> | keyof TGenerics['Row']\n >(\n accessor: TAccessor,\n column: Overwrite<\n TAccessor extends (...args: any[]) => any\n ? // Accessor Fn\n _NonGenerated<ColumnDef<TGenerics>>\n : TAccessor extends keyof TGenerics['Row']\n ? // Accessor Key\n Overwrite<\n _NonGenerated<ColumnDef<TGenerics>>,\n {\n id?: string\n }\n >\n : never,\n {\n accessorFn?: never\n accessorKey?: never\n }\n >\n ) => ColumnDef<TGenerics>\n useTable: (\n options: PartialKeys<\n Omit<Options<TGenerics>, keyof CreateTableOptions<any, any, any>>,\n 'state' | 'onStateChange'\n >\n ) => TableInstance<TGenerics>\n}\n\nexport function createTable<TRow>() {\n return _createTable<Overwrite<PartialGenerics, { Row: TRow }>>()\n}\n\nfunction _createTable<TGenerics extends PartialGenerics>(\n _?: undefined,\n __?: undefined,\n opts?: CreateTableOptions<any, any, any>\n): CreateTable<TGenerics> {\n return {\n createColumns: columns => columns,\n createDisplayColumn: column => column as any,\n createGroup: column => column as any,\n createDataColumn: (accessor, column): any => {\n column = {\n ...column,\n id: column.id,\n }\n\n if (typeof accessor === 'string') {\n return {\n ...column,\n id: column.id ?? accessor,\n accessorKey: accessor,\n }\n }\n\n if (typeof accessor === 'function') {\n return {\n ...column,\n accessorFn: accessor,\n }\n }\n\n throw new Error('Invalid accessor')\n },\n useTable: (\n options: PartialKeys<\n Omit<Options<TGenerics>, keyof CreateTableOptions<any, any, any>>,\n 'state' | 'onStateChange'\n >\n ): TableInstance<TGenerics> => {\n // Compose in the generic options to the user options\n const resolvedOptions = {\n ...(opts ?? {}),\n state: {}, // Dummy state\n onStateChange: () => {}, // noop\n ...options,\n }\n\n // Create a new table instance and store it in state\n const [instance] = React.useState(() =>\n createTableInstance<TGenerics>(resolvedOptions)\n )\n\n // By default, manage table state here using the instance's initial state\n const [state, setState] = React.useState(() => instance.initialState)\n\n // Compose the default state above with any user state. This will allow the user\n // to only control a subset of the state if desired.\n instance.setOptions(prev => ({\n ...prev,\n ...options,\n state: {\n ...state,\n ...options.state,\n },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n setState(updater)\n options.onStateChange?.(updater)\n },\n }))\n\n return instance\n },\n }\n}\n"],"names":["createTableFactory","opts","_createTable","undefined","createTable","_","__","createColumns","columns","createDisplayColumn","column","createGroup","createDataColumn","accessor","id","accessorKey","accessorFn","Error","useTable","options","resolvedOptions","state","onStateChange","React","useState","createTableInstance","instance","initialState","setState","setOptions","prev","updater"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BO,SAASA,kBAAT,CAKLC,IALK,EAeL;AACA,SAAO;AAAA,WAAMC,YAAY,CAACC,SAAD,EAAYA,SAAZ,EAAuBF,IAAvB,CAAlB;AAAA,GAAP;AACD;AA4DM,SAASG,WAAT,GAA6B;AAClC,SAAOF,YAAY,EAAnB;AACD;;AAED,SAASA,YAAT,CACEG,CADF,EAEEC,EAFF,EAGEL,IAHF,EAI0B;AACxB,SAAO;AACLM,IAAAA,aAAa,EAAE,uBAAAC,OAAO;AAAA,aAAIA,OAAJ;AAAA,KADjB;AAELC,IAAAA,mBAAmB,EAAE,6BAAAC,MAAM;AAAA,aAAIA,MAAJ;AAAA,KAFtB;AAGLC,IAAAA,WAAW,EAAE,qBAAAD,MAAM;AAAA,aAAIA,MAAJ;AAAA,KAHd;AAILE,IAAAA,gBAAgB,EAAE,0BAACC,QAAD,EAAWH,MAAX,EAA2B;AAC3CA,MAAAA,MAAM,4CACDA,MADC;AAEJI,QAAAA,EAAE,EAAEJ,MAAM,CAACI;AAFP,QAAN;;AAKA,UAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC;AAAA;;AAChC,wDACKH,MADL;AAEEI,UAAAA,EAAE,gBAAEJ,MAAM,CAACI,EAAT,yBAAeD,QAFnB;AAGEE,UAAAA,WAAW,EAAEF;AAHf;AAKD;;AAED,UAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,wDACKH,MADL;AAEEM,UAAAA,UAAU,EAAEH;AAFd;AAID;;AAED,YAAM,IAAII,KAAJ,CAAU,kBAAV,CAAN;AACD,KA1BI;AA2BLC,IAAAA,QAAQ,EAAE,kBACRC,OADQ,EAKqB;AAC7B;AACA,UAAMC,eAAe,4CACfnB,IADe,WACfA,IADe,GACP,EADO;AAEnBoB,QAAAA,KAAK,EAAE,EAFY;AAER;AACXC,QAAAA,aAAa,EAAE,yBAAM;AAHF,SAIhBH,OAJgB,CAArB,CAF6B;;;AAU7B,4BAAmBI,gBAAK,CAACC,QAAN,CAAe;AAAA,eAChCC,wBAAmB,CAAYL,eAAZ,CADa;AAAA,OAAf,CAAnB;AAAA,UAAOM,QAAP,sBAV6B;;;AAe7B,6BAA0BH,gBAAK,CAACC,QAAN,CAAe;AAAA,eAAME,QAAQ,CAACC,YAAf;AAAA,OAAf,CAA1B;AAAA,UAAON,KAAP;AAAA,UAAcO,QAAd,uBAf6B;AAkB7B;;;AACAF,MAAAA,QAAQ,CAACG,UAAT,CAAoB,UAAAC,IAAI;AAAA,wDACnBA,IADmB,EAEnBX,OAFmB;AAGtBE,UAAAA,KAAK,2CACAA,KADA,EAEAF,OAAO,CAACE,KAFR,CAHiB;AAOtB;AACA;AACAC,UAAAA,aAAa,EAAE,uBAAAS,OAAO,EAAI;AACxBH,YAAAA,QAAQ,CAACG,OAAD,CAAR;AACAZ,YAAAA,OAAO,CAACG,aAAR,oBAAAH,OAAO,CAACG,aAAR,CAAwBS,OAAxB;AACD;AAZqB;AAAA,OAAxB;AAeA,aAAOL,QAAP;AACD;AAnEI,GAAP;AAqED;;;;;"}
|
|
@@ -1,318 +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 utils = require('../utils.js');
|
|
17
|
-
|
|
18
|
-
//
|
|
19
|
-
var defaultColumnSizing = {
|
|
20
|
-
width: 150,
|
|
21
|
-
minWidth: 20,
|
|
22
|
-
maxWidth: Number.MAX_SAFE_INTEGER
|
|
23
|
-
};
|
|
24
|
-
function getInitialState() {
|
|
25
|
-
return {
|
|
26
|
-
columnSizing: {},
|
|
27
|
-
columnSizingInfo: {
|
|
28
|
-
startOffset: null,
|
|
29
|
-
startSize: null,
|
|
30
|
-
deltaOffset: null,
|
|
31
|
-
deltaPercentage: null,
|
|
32
|
-
isResizingColumn: false,
|
|
33
|
-
columnSizingStart: []
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
function getDefaultOptions(instance) {
|
|
38
|
-
return {
|
|
39
|
-
columnResizeMode: 'onEnd',
|
|
40
|
-
onColumnSizingChange: utils.makeStateUpdater('columnSizing', instance),
|
|
41
|
-
onColumnSizingInfoChange: utils.makeStateUpdater('columnSizingInfo', instance)
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
function getInstance(instance) {
|
|
45
|
-
return {
|
|
46
|
-
setColumnSizing: function setColumnSizing(updater) {
|
|
47
|
-
return instance.options.onColumnSizingChange == null ? void 0 : instance.options.onColumnSizingChange(updater, utils.functionalUpdate(updater, instance.getState().columnSizing));
|
|
48
|
-
},
|
|
49
|
-
setColumnSizingInfo: function setColumnSizingInfo(updater) {
|
|
50
|
-
return instance.options.onColumnSizingInfoChange == null ? void 0 : instance.options.onColumnSizingInfoChange(updater, utils.functionalUpdate(updater, instance.getState().columnSizingInfo));
|
|
51
|
-
},
|
|
52
|
-
resetColumnSizing: function resetColumnSizing() {
|
|
53
|
-
var _instance$initialStat;
|
|
54
|
-
|
|
55
|
-
instance.setColumnSizing((_instance$initialStat = instance.initialState.columnSizing) != null ? _instance$initialStat : {});
|
|
56
|
-
},
|
|
57
|
-
resetHeaderSizeInfo: function resetHeaderSizeInfo() {
|
|
58
|
-
var _instance$initialStat2;
|
|
59
|
-
|
|
60
|
-
instance.setColumnSizingInfo((_instance$initialStat2 = instance.initialState.columnSizingInfo) != null ? _instance$initialStat2 : {});
|
|
61
|
-
},
|
|
62
|
-
resetColumnSize: function resetColumnSize(columnId) {
|
|
63
|
-
instance.setColumnSizing(function (_ref) {
|
|
64
|
-
_ref[columnId];
|
|
65
|
-
var rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(_ref, [columnId].map(_rollupPluginBabelHelpers.toPropertyKey));
|
|
66
|
-
|
|
67
|
-
return rest;
|
|
68
|
-
});
|
|
69
|
-
},
|
|
70
|
-
resetHeaderSize: function resetHeaderSize(headerId) {
|
|
71
|
-
var header = instance.getHeader(headerId);
|
|
72
|
-
return instance.resetColumnSize(header.column.id);
|
|
73
|
-
},
|
|
74
|
-
getHeaderCanResize: function getHeaderCanResize(headerId) {
|
|
75
|
-
var header = instance.getHeader(headerId);
|
|
76
|
-
|
|
77
|
-
if (!header) {
|
|
78
|
-
throw new Error();
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return instance.getColumnCanResize(header.column.id);
|
|
82
|
-
},
|
|
83
|
-
getColumnCanResize: function getColumnCanResize(columnId) {
|
|
84
|
-
var _ref2, _ref3, _column$enableResizin;
|
|
85
|
-
|
|
86
|
-
var column = instance.getColumn(columnId);
|
|
87
|
-
|
|
88
|
-
if (!column) {
|
|
89
|
-
throw new Error();
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
return (_ref2 = (_ref3 = (_column$enableResizin = column.enableResizing) != null ? _column$enableResizin : instance.options.enableColumnResizing) != null ? _ref3 : column.defaultCanResize) != null ? _ref2 : true;
|
|
93
|
-
},
|
|
94
|
-
getColumnIsResizing: function getColumnIsResizing(columnId) {
|
|
95
|
-
var column = instance.getColumn(columnId);
|
|
96
|
-
|
|
97
|
-
if (!column) {
|
|
98
|
-
throw new Error();
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return instance.getState().columnSizingInfo.isResizingColumn === columnId;
|
|
102
|
-
},
|
|
103
|
-
getHeaderIsResizing: function getHeaderIsResizing(headerId) {
|
|
104
|
-
var header = instance.getHeader(headerId);
|
|
105
|
-
|
|
106
|
-
if (!header) {
|
|
107
|
-
throw new Error();
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
return instance.getColumnIsResizing(header.column.id);
|
|
111
|
-
},
|
|
112
|
-
getHeaderResizerProps: function getHeaderResizerProps(headerId, userProps) {
|
|
113
|
-
var header = instance.getHeader(headerId);
|
|
114
|
-
var column = instance.getColumn(header.column.id);
|
|
115
|
-
var canResize = column.getCanResize();
|
|
116
|
-
|
|
117
|
-
var onResizeStart = function onResizeStart(e) {
|
|
118
|
-
if (isTouchStartEvent(e)) {
|
|
119
|
-
// lets not respond to multiple touches (e.g. 2 or 3 fingers)
|
|
120
|
-
if (e.touches && e.touches.length > 1) {
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
var header = headerId ? instance.getHeader(headerId) : undefined;
|
|
126
|
-
var startSize = header ? header.getWidth() : column.getWidth();
|
|
127
|
-
var columnSizingStart = header ? header.getLeafHeaders().map(function (d) {
|
|
128
|
-
return [d.column.id, d.getWidth()];
|
|
129
|
-
}) : [[column.id, column.getWidth()]];
|
|
130
|
-
var clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;
|
|
131
|
-
|
|
132
|
-
var updateOffset = function updateOffset(eventType, clientXPos) {
|
|
133
|
-
if (typeof clientXPos !== 'number') {
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
var newColumnSizing = {};
|
|
138
|
-
instance.setColumnSizingInfo(function (old) {
|
|
139
|
-
var _old$startOffset, _old$startSize;
|
|
140
|
-
|
|
141
|
-
var deltaOffset = clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0);
|
|
142
|
-
var deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);
|
|
143
|
-
old.columnSizingStart.forEach(function (_ref4) {
|
|
144
|
-
var columnId = _ref4[0],
|
|
145
|
-
headerWidth = _ref4[1];
|
|
146
|
-
newColumnSizing[columnId] = Math.round(Math.max(headerWidth + headerWidth * deltaPercentage, 0) * 100) / 100;
|
|
147
|
-
});
|
|
148
|
-
return _rollupPluginBabelHelpers["extends"]({}, old, {
|
|
149
|
-
deltaOffset: deltaOffset,
|
|
150
|
-
deltaPercentage: deltaPercentage
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
if (instance.options.columnResizeMode === 'onChange' || eventType === 'end') {
|
|
155
|
-
instance.setColumnSizing(function (old) {
|
|
156
|
-
return _rollupPluginBabelHelpers["extends"]({}, old, newColumnSizing);
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
var onMove = function onMove(clientXPos) {
|
|
162
|
-
return updateOffset('move', clientXPos);
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
var onEnd = function onEnd(clientXPos) {
|
|
166
|
-
updateOffset('end', clientXPos);
|
|
167
|
-
instance.setColumnSizingInfo(function (old) {
|
|
168
|
-
return _rollupPluginBabelHelpers["extends"]({}, old, {
|
|
169
|
-
isResizingColumn: false,
|
|
170
|
-
startOffset: null,
|
|
171
|
-
startSize: null,
|
|
172
|
-
deltaOffset: null,
|
|
173
|
-
deltaPercentage: null,
|
|
174
|
-
columnSizingStart: []
|
|
175
|
-
});
|
|
176
|
-
});
|
|
177
|
-
};
|
|
178
|
-
|
|
179
|
-
var mouseEvents = {
|
|
180
|
-
moveHandler: function moveHandler(e) {
|
|
181
|
-
return onMove(e.clientX);
|
|
182
|
-
},
|
|
183
|
-
upHandler: function upHandler(e) {
|
|
184
|
-
document.removeEventListener('mousemove', mouseEvents.moveHandler);
|
|
185
|
-
document.removeEventListener('mouseup', mouseEvents.upHandler);
|
|
186
|
-
onEnd(e.clientX);
|
|
187
|
-
}
|
|
188
|
-
};
|
|
189
|
-
var touchEvents = {
|
|
190
|
-
moveHandler: function moveHandler(e) {
|
|
191
|
-
if (e.cancelable) {
|
|
192
|
-
e.preventDefault();
|
|
193
|
-
e.stopPropagation();
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
onMove(e.touches[0].clientX);
|
|
197
|
-
return false;
|
|
198
|
-
},
|
|
199
|
-
upHandler: function upHandler(e) {
|
|
200
|
-
document.removeEventListener('touchmove', touchEvents.moveHandler);
|
|
201
|
-
document.removeEventListener('touchend', touchEvents.upHandler);
|
|
202
|
-
|
|
203
|
-
if (e.cancelable) {
|
|
204
|
-
e.preventDefault();
|
|
205
|
-
e.stopPropagation();
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
onEnd(e.touches[0].clientX);
|
|
209
|
-
}
|
|
210
|
-
};
|
|
211
|
-
var passiveIfSupported = passiveEventSupported() ? {
|
|
212
|
-
passive: false
|
|
213
|
-
} : false;
|
|
214
|
-
|
|
215
|
-
if (isTouchStartEvent(e)) {
|
|
216
|
-
document.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);
|
|
217
|
-
document.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);
|
|
218
|
-
} else {
|
|
219
|
-
document.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);
|
|
220
|
-
document.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
instance.setColumnSizingInfo(function (old) {
|
|
224
|
-
return _rollupPluginBabelHelpers["extends"]({}, old, {
|
|
225
|
-
startOffset: clientX,
|
|
226
|
-
startSize: startSize,
|
|
227
|
-
deltaOffset: 0,
|
|
228
|
-
deltaPercentage: 0,
|
|
229
|
-
columnSizingStart: columnSizingStart,
|
|
230
|
-
isResizingColumn: column.id
|
|
231
|
-
});
|
|
232
|
-
});
|
|
233
|
-
};
|
|
234
|
-
|
|
235
|
-
var initialProps = canResize ? {
|
|
236
|
-
title: 'Toggle Grouping',
|
|
237
|
-
draggable: false,
|
|
238
|
-
role: 'separator',
|
|
239
|
-
onMouseDown: function onMouseDown(e) {
|
|
240
|
-
e.persist();
|
|
241
|
-
onResizeStart(e);
|
|
242
|
-
},
|
|
243
|
-
onTouchStart: function onTouchStart(e) {
|
|
244
|
-
e.persist();
|
|
245
|
-
onResizeStart(e);
|
|
246
|
-
}
|
|
247
|
-
} : {};
|
|
248
|
-
return utils.propGetter(initialProps, userProps);
|
|
249
|
-
}
|
|
250
|
-
};
|
|
251
|
-
}
|
|
252
|
-
function createColumn(column, instance) {
|
|
253
|
-
return {
|
|
254
|
-
getIsResizing: function getIsResizing() {
|
|
255
|
-
return instance.getColumnIsResizing(column.id);
|
|
256
|
-
},
|
|
257
|
-
getCanResize: function getCanResize() {
|
|
258
|
-
return instance.getColumnCanResize(column.id);
|
|
259
|
-
},
|
|
260
|
-
resetSize: function resetSize() {
|
|
261
|
-
return instance.resetColumnSize(column.id);
|
|
262
|
-
}
|
|
263
|
-
};
|
|
264
|
-
}
|
|
265
|
-
function createHeader(header, instance) {
|
|
266
|
-
return {
|
|
267
|
-
getIsResizing: function getIsResizing() {
|
|
268
|
-
return instance.getColumnIsResizing(header.column.id);
|
|
269
|
-
},
|
|
270
|
-
getCanResize: function getCanResize() {
|
|
271
|
-
return instance.getColumnCanResize(header.column.id);
|
|
272
|
-
},
|
|
273
|
-
resetSize: function resetSize() {
|
|
274
|
-
return instance.resetColumnSize(header.column.id);
|
|
275
|
-
},
|
|
276
|
-
getResizerProps: function getResizerProps(userProps) {
|
|
277
|
-
return instance.getHeaderResizerProps(header.id, userProps);
|
|
278
|
-
}
|
|
279
|
-
};
|
|
280
|
-
}
|
|
281
|
-
var passiveSupported = null;
|
|
282
|
-
function passiveEventSupported() {
|
|
283
|
-
if (typeof passiveSupported === 'boolean') return passiveSupported;
|
|
284
|
-
var supported = false;
|
|
285
|
-
|
|
286
|
-
try {
|
|
287
|
-
var options = {
|
|
288
|
-
get passive() {
|
|
289
|
-
supported = true;
|
|
290
|
-
return false;
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
};
|
|
294
|
-
|
|
295
|
-
var noop = function noop() {};
|
|
296
|
-
|
|
297
|
-
window.addEventListener('test', noop, options);
|
|
298
|
-
window.removeEventListener('test', noop);
|
|
299
|
-
} catch (err) {
|
|
300
|
-
supported = false;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
passiveSupported = supported;
|
|
304
|
-
return passiveSupported;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
function isTouchStartEvent(e) {
|
|
308
|
-
return e.type === 'touchstart';
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
exports.createColumn = createColumn;
|
|
312
|
-
exports.createHeader = createHeader;
|
|
313
|
-
exports.defaultColumnSizing = defaultColumnSizing;
|
|
314
|
-
exports.getDefaultOptions = getDefaultOptions;
|
|
315
|
-
exports.getInitialState = getInitialState;
|
|
316
|
-
exports.getInstance = getInstance;
|
|
317
|
-
exports.passiveEventSupported = passiveEventSupported;
|
|
318
|
-
//# sourceMappingURL=ColumnSizing.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import {\n MouseEvent as ReactMouseEvent,\n TouchEvent as ReactTouchEvent,\n} from 'react'\nimport {\n Column,\n Getter,\n Header,\n OnChangeFn,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\n//\n\nexport type ColumnSizing = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizing\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnResizerProps = {\n title?: string\n onMouseDown?: (e: ReactMouseEvent) => void\n onTouchStart?: (e: ReactTouchEvent) => void\n draggable?: boolean\n role?: string\n}\n\nexport type ColumnSizingInstance<TGenerics extends PartialGenerics> = {\n setColumnSizing: (updater: Updater<ColumnSizing>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: () => void\n resetColumnSize: (columnId: string) => void\n resetHeaderSize: (headerId: string) => void\n resetHeaderSizeInfo: () => void\n getColumnCanResize: (columnId: string) => boolean\n getHeaderCanResize: (headerId: string) => boolean\n getHeaderResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n getColumnIsResizing: (columnId: string) => boolean\n getHeaderIsResizing: (headerId: string) => boolean\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n defaultCanResize?: boolean\n}\n\nexport type ColumnSizingColumn<TGenerics extends PartialGenerics> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader<TGenerics extends PartialGenerics> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n getResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n resetSize: () => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n width: 150,\n minWidth: 20,\n maxWidth: Number.MAX_SAFE_INTEGER,\n}\n\nexport function getInitialState(): ColumnSizingTableState {\n return {\n columnSizing: {},\n columnSizingInfo: {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n },\n }\n}\n\nexport function getDefaultOptions<TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n): ColumnSizingDefaultOptions {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', instance),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', instance),\n }\n}\n\nexport function getInstance<TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n): ColumnSizingInstance<TGenerics> {\n return {\n setColumnSizing: updater =>\n instance.options.onColumnSizingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizing)\n ),\n setColumnSizingInfo: updater =>\n instance.options.onColumnSizingInfoChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizingInfo)\n ),\n resetColumnSizing: () => {\n instance.setColumnSizing(instance.initialState.columnSizing ?? {})\n },\n resetHeaderSizeInfo: () => {\n instance.setColumnSizingInfo(instance.initialState.columnSizingInfo ?? {})\n },\n resetColumnSize: columnId => {\n instance.setColumnSizing(({ [columnId]: _, ...rest }) => {\n return rest\n })\n },\n resetHeaderSize: headerId => {\n const header = instance.getHeader(headerId)\n\n return instance.resetColumnSize(header.column.id)\n },\n getHeaderCanResize: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnCanResize(header.column.id)\n },\n getColumnCanResize: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableResizing ??\n instance.options.enableColumnResizing ??\n column.defaultCanResize ??\n true\n )\n },\n getColumnIsResizing: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return instance.getState().columnSizingInfo.isResizingColumn === columnId\n },\n getHeaderIsResizing: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnIsResizing(header.column.id)\n },\n\n getHeaderResizerProps: (headerId, userProps) => {\n const header = instance.getHeader(headerId)\n const column = instance.getColumn(header.column.id)\n\n const canResize = column.getCanResize()\n\n const onResizeStart = (e: ReactMouseEvent | ReactTouchEvent) => {\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const header = headerId ? instance.getHeader(headerId) : undefined\n\n const startSize = header ? header.getWidth() : column.getWidth()\n\n const columnSizingStart: [string, number][] = header\n ? header.getLeafHeaders().map(d => [d.column.id, d.getWidth()])\n : [[column.id, column.getWidth()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0].clientX)\n : e.clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizing = {}\n\n instance.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerWidth]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerWidth + headerWidth * deltaPercentage, 0) * 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n instance.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n instance.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) => updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0].clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0].clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n document.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported\n )\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n\n const initialProps: ColumnResizerProps = canResize\n ? {\n title: 'Toggle Grouping',\n draggable: false,\n role: 'separator',\n onMouseDown: (e: ReactMouseEvent) => {\n e.persist()\n onResizeStart(e)\n },\n onTouchStart: (e: ReactTouchEvent) => {\n e.persist()\n onResizeStart(e)\n },\n }\n : {}\n\n return propGetter(initialProps, userProps)\n },\n }\n}\n\nexport function createColumn<TGenerics extends PartialGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n): ColumnSizingColumn<TGenerics> {\n return {\n getIsResizing: () => instance.getColumnIsResizing(column.id),\n getCanResize: () => instance.getColumnCanResize(column.id),\n resetSize: () => instance.resetColumnSize(column.id),\n }\n}\n\nexport function createHeader<TGenerics extends PartialGenerics>(\n header: Header<TGenerics>,\n instance: TableInstance<TGenerics>\n): ColumnSizingHeader<TGenerics> {\n return {\n getIsResizing: () => instance.getColumnIsResizing(header.column.id),\n getCanResize: () => instance.getColumnCanResize(header.column.id),\n resetSize: () => instance.resetColumnSize(header.column.id),\n getResizerProps: userProps =>\n instance.getHeaderResizerProps(header.id, userProps),\n }\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(\n e: ReactTouchEvent | ReactMouseEvent\n): e is ReactTouchEvent {\n return e.type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","width","minWidth","maxWidth","Number","MAX_SAFE_INTEGER","getInitialState","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","instance","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","getInstance","setColumnSizing","updater","options","functionalUpdate","getState","setColumnSizingInfo","resetColumnSizing","initialState","resetHeaderSizeInfo","resetColumnSize","columnId","rest","resetHeaderSize","headerId","header","getHeader","column","id","getHeaderCanResize","Error","getColumnCanResize","getColumn","enableResizing","enableColumnResizing","defaultCanResize","getColumnIsResizing","getHeaderIsResizing","getHeaderResizerProps","userProps","canResize","getCanResize","onResizeStart","e","isTouchStartEvent","touches","length","undefined","getWidth","getLeafHeaders","map","d","clientX","Math","round","updateOffset","eventType","clientXPos","newColumnSizing","old","max","forEach","headerWidth","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","passiveIfSupported","passiveEventSupported","passive","addEventListener","initialProps","title","draggable","role","onMouseDown","persist","onTouchStart","propGetter","createColumn","getIsResizing","resetSize","createHeader","getResizerProps","passiveSupported","supported","noop","window","err","type"],"mappings":";;;;;;;;;;;;;;;;;AA8FA;IAEaA,mBAAmB,GAAG;AACjCC,EAAAA,KAAK,EAAE,GAD0B;AAEjCC,EAAAA,QAAQ,EAAE,EAFuB;AAGjCC,EAAAA,QAAQ,EAAEC,MAAM,CAACC;AAHgB;AAM5B,SAASC,eAAT,GAAmD;AACxD,SAAO;AACLC,IAAAA,YAAY,EAAE,EADT;AAELC,IAAAA,gBAAgB,EAAE;AAChBC,MAAAA,WAAW,EAAE,IADG;AAEhBC,MAAAA,SAAS,EAAE,IAFK;AAGhBC,MAAAA,WAAW,EAAE,IAHG;AAIhBC,MAAAA,eAAe,EAAE,IAJD;AAKhBC,MAAAA,gBAAgB,EAAE,KALF;AAMhBC,MAAAA,iBAAiB,EAAE;AANH;AAFb,GAAP;AAWD;AAEM,SAASC,iBAAT,CACLC,QADK,EAEuB;AAC5B,SAAO;AACLC,IAAAA,gBAAgB,EAAE,OADb;AAELC,IAAAA,oBAAoB,EAAEC,sBAAgB,CAAC,cAAD,EAAiBH,QAAjB,CAFjC;AAGLI,IAAAA,wBAAwB,EAAED,sBAAgB,CAAC,kBAAD,EAAqBH,QAArB;AAHrC,GAAP;AAKD;AAEM,SAASK,WAAT,CACLL,QADK,EAE4B;AACjC,SAAO;AACLM,IAAAA,eAAe,EAAE,yBAAAC,OAAO;AAAA,aACtBP,QAAQ,CAACQ,OAAT,CAAiBN,oBADK,oBACtBF,QAAQ,CAACQ,OAAT,CAAiBN,oBAAjB,CACEK,OADF,EAEEE,sBAAgB,CAACF,OAAD,EAAUP,QAAQ,CAACU,QAAT,GAAoBnB,YAA9B,CAFlB,CADsB;AAAA,KADnB;AAMLoB,IAAAA,mBAAmB,EAAE,6BAAAJ,OAAO;AAAA,aAC1BP,QAAQ,CAACQ,OAAT,CAAiBJ,wBADS,oBAC1BJ,QAAQ,CAACQ,OAAT,CAAiBJ,wBAAjB,CACEG,OADF,EAEEE,sBAAgB,CAACF,OAAD,EAAUP,QAAQ,CAACU,QAAT,GAAoBlB,gBAA9B,CAFlB,CAD0B;AAAA,KANvB;AAWLoB,IAAAA,iBAAiB,EAAE,6BAAM;AAAA;;AACvBZ,MAAAA,QAAQ,CAACM,eAAT,0BAAyBN,QAAQ,CAACa,YAAT,CAAsBtB,YAA/C,oCAA+D,EAA/D;AACD,KAbI;AAcLuB,IAAAA,mBAAmB,EAAE,+BAAM;AAAA;;AACzBd,MAAAA,QAAQ,CAACW,mBAAT,2BAA6BX,QAAQ,CAACa,YAAT,CAAsBrB,gBAAnD,qCAAuE,EAAvE;AACD,KAhBI;AAiBLuB,IAAAA,eAAe,EAAE,yBAAAC,QAAQ,EAAI;AAC3BhB,MAAAA,QAAQ,CAACM,eAAT,CAAyB,gBAAgC;AAAA,aAA5BU,QAA4B;AAAA,gBAAXC,IAAW,iEAA5BD,QAA4B;;AACvD,eAAOC,IAAP;AACD,OAFD;AAGD,KArBI;AAsBLC,IAAAA,eAAe,EAAE,yBAAAC,QAAQ,EAAI;AAC3B,UAAMC,MAAM,GAAGpB,QAAQ,CAACqB,SAAT,CAAmBF,QAAnB,CAAf;AAEA,aAAOnB,QAAQ,CAACe,eAAT,CAAyBK,MAAM,CAACE,MAAP,CAAcC,EAAvC,CAAP;AACD,KA1BI;AA2BLC,IAAAA,kBAAkB,EAAE,4BAAAL,QAAQ,EAAI;AAC9B,UAAMC,MAAM,GAAGpB,QAAQ,CAACqB,SAAT,CAAmBF,QAAnB,CAAf;;AAEA,UAAI,CAACC,MAAL,EAAa;AACX,cAAM,IAAIK,KAAJ,EAAN;AACD;;AAED,aAAOzB,QAAQ,CAAC0B,kBAAT,CAA4BN,MAAM,CAACE,MAAP,CAAcC,EAA1C,CAAP;AACD,KAnCI;AAoCLG,IAAAA,kBAAkB,EAAE,4BAAAV,QAAQ,EAAI;AAAA;;AAC9B,UAAMM,MAAM,GAAGtB,QAAQ,CAAC2B,SAAT,CAAmBX,QAAnB,CAAf;;AAEA,UAAI,CAACM,MAAL,EAAa;AACX,cAAM,IAAIG,KAAJ,EAAN;AACD;;AAED,wDACEH,MAAM,CAACM,cADT,oCAEE5B,QAAQ,CAACQ,OAAT,CAAiBqB,oBAFnB,oBAGEP,MAAM,CAACQ,gBAHT,oBAIE,IAJF;AAMD,KAjDI;AAkDLC,IAAAA,mBAAmB,EAAE,6BAAAf,QAAQ,EAAI;AAC/B,UAAMM,MAAM,GAAGtB,QAAQ,CAAC2B,SAAT,CAAmBX,QAAnB,CAAf;;AAEA,UAAI,CAACM,MAAL,EAAa;AACX,cAAM,IAAIG,KAAJ,EAAN;AACD;;AAED,aAAOzB,QAAQ,CAACU,QAAT,GAAoBlB,gBAApB,CAAqCK,gBAArC,KAA0DmB,QAAjE;AACD,KA1DI;AA2DLgB,IAAAA,mBAAmB,EAAE,6BAAAb,QAAQ,EAAI;AAC/B,UAAMC,MAAM,GAAGpB,QAAQ,CAACqB,SAAT,CAAmBF,QAAnB,CAAf;;AAEA,UAAI,CAACC,MAAL,EAAa;AACX,cAAM,IAAIK,KAAJ,EAAN;AACD;;AAED,aAAOzB,QAAQ,CAAC+B,mBAAT,CAA6BX,MAAM,CAACE,MAAP,CAAcC,EAA3C,CAAP;AACD,KAnEI;AAqELU,IAAAA,qBAAqB,EAAE,+BAACd,QAAD,EAAWe,SAAX,EAAyB;AAC9C,UAAMd,MAAM,GAAGpB,QAAQ,CAACqB,SAAT,CAAmBF,QAAnB,CAAf;AACA,UAAMG,MAAM,GAAGtB,QAAQ,CAAC2B,SAAT,CAAmBP,MAAM,CAACE,MAAP,CAAcC,EAAjC,CAAf;AAEA,UAAMY,SAAS,GAAGb,MAAM,CAACc,YAAP,EAAlB;;AAEA,UAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,CAAD,EAA0C;AAC9D,YAAIC,iBAAiB,CAACD,CAAD,CAArB,EAA0B;AACxB;AACA,cAAIA,CAAC,CAACE,OAAF,IAAaF,CAAC,CAACE,OAAF,CAAUC,MAAV,GAAmB,CAApC,EAAuC;AACrC;AACD;AACF;;AAED,YAAMrB,MAAM,GAAGD,QAAQ,GAAGnB,QAAQ,CAACqB,SAAT,CAAmBF,QAAnB,CAAH,GAAkCuB,SAAzD;AAEA,YAAMhD,SAAS,GAAG0B,MAAM,GAAGA,MAAM,CAACuB,QAAP,EAAH,GAAuBrB,MAAM,CAACqB,QAAP,EAA/C;AAEA,YAAM7C,iBAAqC,GAAGsB,MAAM,GAChDA,MAAM,CAACwB,cAAP,GAAwBC,GAAxB,CAA4B,UAAAC,CAAC;AAAA,iBAAI,CAACA,CAAC,CAACxB,MAAF,CAASC,EAAV,EAAcuB,CAAC,CAACH,QAAF,EAAd,CAAJ;AAAA,SAA7B,CADgD,GAEhD,CAAC,CAACrB,MAAM,CAACC,EAAR,EAAYD,MAAM,CAACqB,QAAP,EAAZ,CAAD,CAFJ;AAIA,YAAMI,OAAO,GAAGR,iBAAiB,CAACD,CAAD,CAAjB,GACZU,IAAI,CAACC,KAAL,CAAWX,CAAC,CAACE,OAAF,CAAU,CAAV,EAAaO,OAAxB,CADY,GAEZT,CAAC,CAACS,OAFN;;AAIA,YAAMG,YAAY,GAAG,SAAfA,YAAe,CACnBC,SADmB,EAEnBC,UAFmB,EAGhB;AACH,cAAI,OAAOA,UAAP,KAAsB,QAA1B,EAAoC;AAClC;AACD;;AAED,cAAIC,eAA6B,GAAG,EAApC;AAEArD,UAAAA,QAAQ,CAACW,mBAAT,CAA6B,UAAA2C,GAAG,EAAI;AAAA;;AAClC,gBAAM3D,WAAW,GAAGyD,UAAU,wBAAIE,GAAJ,oBAAIA,GAAG,CAAE7D,WAAT,+BAAwB,CAAxB,CAA9B;AACA,gBAAMG,eAAe,GAAGoD,IAAI,CAACO,GAAL,CACtB5D,WAAW,sBAAI2D,GAAJ,oBAAIA,GAAG,CAAE5D,SAAT,6BAAsB,CAAtB,CADW,EAEtB,CAAC,QAFqB,CAAxB;AAKA4D,YAAAA,GAAG,CAACxD,iBAAJ,CAAsB0D,OAAtB,CAA8B,iBAA6B;AAAA,kBAA3BxC,QAA2B;AAAA,kBAAjByC,WAAiB;AACzDJ,cAAAA,eAAe,CAACrC,QAAD,CAAf,GACEgC,IAAI,CAACC,KAAL,CACED,IAAI,CAACO,GAAL,CAASE,WAAW,GAAGA,WAAW,GAAG7D,eAArC,EAAsD,CAAtD,IAA2D,GAD7D,IAEI,GAHN;AAID,aALD;AAOA,4DACK0D,GADL;AAEE3D,cAAAA,WAAW,EAAXA,WAFF;AAGEC,cAAAA,eAAe,EAAfA;AAHF;AAKD,WAnBD;;AAqBA,cACEI,QAAQ,CAACQ,OAAT,CAAiBP,gBAAjB,KAAsC,UAAtC,IACAkD,SAAS,KAAK,KAFhB,EAGE;AACAnD,YAAAA,QAAQ,CAACM,eAAT,CAAyB,UAAAgD,GAAG;AAAA,8DACvBA,GADuB,EAEvBD,eAFuB;AAAA,aAA5B;AAID;AACF,SAxCD;;AA0CA,YAAMK,MAAM,GAAG,SAATA,MAAS,CAACN,UAAD;AAAA,iBAAyBF,YAAY,CAAC,MAAD,EAASE,UAAT,CAArC;AAAA,SAAf;;AAEA,YAAMO,KAAK,GAAG,SAARA,KAAQ,CAACP,UAAD,EAAyB;AACrCF,UAAAA,YAAY,CAAC,KAAD,EAAQE,UAAR,CAAZ;AAEApD,UAAAA,QAAQ,CAACW,mBAAT,CAA6B,UAAA2C,GAAG;AAAA,4DAC3BA,GAD2B;AAE9BzD,cAAAA,gBAAgB,EAAE,KAFY;AAG9BJ,cAAAA,WAAW,EAAE,IAHiB;AAI9BC,cAAAA,SAAS,EAAE,IAJmB;AAK9BC,cAAAA,WAAW,EAAE,IALiB;AAM9BC,cAAAA,eAAe,EAAE,IANa;AAO9BE,cAAAA,iBAAiB,EAAE;AAPW;AAAA,WAAhC;AASD,SAZD;;AAcA,YAAM8D,WAAW,GAAG;AAClBC,UAAAA,WAAW,EAAE,qBAACvB,CAAD;AAAA,mBAAmBoB,MAAM,CAACpB,CAAC,CAACS,OAAH,CAAzB;AAAA,WADK;AAElBe,UAAAA,SAAS,EAAE,mBAACxB,CAAD,EAAmB;AAC5ByB,YAAAA,QAAQ,CAACC,mBAAT,CAA6B,WAA7B,EAA0CJ,WAAW,CAACC,WAAtD;AACAE,YAAAA,QAAQ,CAACC,mBAAT,CAA6B,SAA7B,EAAwCJ,WAAW,CAACE,SAApD;AACAH,YAAAA,KAAK,CAACrB,CAAC,CAACS,OAAH,CAAL;AACD;AANiB,SAApB;AASA,YAAMkB,WAAW,GAAG;AAClBJ,UAAAA,WAAW,EAAE,qBAACvB,CAAD,EAAmB;AAC9B,gBAAIA,CAAC,CAAC4B,UAAN,EAAkB;AAChB5B,cAAAA,CAAC,CAAC6B,cAAF;AACA7B,cAAAA,CAAC,CAAC8B,eAAF;AACD;;AACDV,YAAAA,MAAM,CAACpB,CAAC,CAACE,OAAF,CAAU,CAAV,EAAaO,OAAd,CAAN;AACA,mBAAO,KAAP;AACD,WARiB;AASlBe,UAAAA,SAAS,EAAE,mBAACxB,CAAD,EAAmB;AAC5ByB,YAAAA,QAAQ,CAACC,mBAAT,CAA6B,WAA7B,EAA0CC,WAAW,CAACJ,WAAtD;AACAE,YAAAA,QAAQ,CAACC,mBAAT,CAA6B,UAA7B,EAAyCC,WAAW,CAACH,SAArD;;AACA,gBAAIxB,CAAC,CAAC4B,UAAN,EAAkB;AAChB5B,cAAAA,CAAC,CAAC6B,cAAF;AACA7B,cAAAA,CAAC,CAAC8B,eAAF;AACD;;AACDT,YAAAA,KAAK,CAACrB,CAAC,CAACE,OAAF,CAAU,CAAV,EAAaO,OAAd,CAAL;AACD;AAjBiB,SAApB;AAoBA,YAAMsB,kBAAkB,GAAGC,qBAAqB,KAC5C;AAAEC,UAAAA,OAAO,EAAE;AAAX,SAD4C,GAE5C,KAFJ;;AAIA,YAAIhC,iBAAiB,CAACD,CAAD,CAArB,EAA0B;AACxByB,UAAAA,QAAQ,CAACS,gBAAT,CACE,WADF,EAEEP,WAAW,CAACJ,WAFd,EAGEQ,kBAHF;AAKAN,UAAAA,QAAQ,CAACS,gBAAT,CACE,UADF,EAEEP,WAAW,CAACH,SAFd,EAGEO,kBAHF;AAKD,SAXD,MAWO;AACLN,UAAAA,QAAQ,CAACS,gBAAT,CACE,WADF,EAEEZ,WAAW,CAACC,WAFd,EAGEQ,kBAHF;AAKAN,UAAAA,QAAQ,CAACS,gBAAT,CACE,SADF,EAEEZ,WAAW,CAACE,SAFd,EAGEO,kBAHF;AAKD;;AAEDrE,QAAAA,QAAQ,CAACW,mBAAT,CAA6B,UAAA2C,GAAG;AAAA,0DAC3BA,GAD2B;AAE9B7D,YAAAA,WAAW,EAAEsD,OAFiB;AAG9BrD,YAAAA,SAAS,EAATA,SAH8B;AAI9BC,YAAAA,WAAW,EAAE,CAJiB;AAK9BC,YAAAA,eAAe,EAAE,CALa;AAM9BE,YAAAA,iBAAiB,EAAjBA,iBAN8B;AAO9BD,YAAAA,gBAAgB,EAAEyB,MAAM,CAACC;AAPK;AAAA,SAAhC;AASD,OAhJD;;AAkJA,UAAMkD,YAAgC,GAAGtC,SAAS,GAC9C;AACEuC,QAAAA,KAAK,EAAE,iBADT;AAEEC,QAAAA,SAAS,EAAE,KAFb;AAGEC,QAAAA,IAAI,EAAE,WAHR;AAIEC,QAAAA,WAAW,EAAE,qBAACvC,CAAD,EAAwB;AACnCA,UAAAA,CAAC,CAACwC,OAAF;AACAzC,UAAAA,aAAa,CAACC,CAAD,CAAb;AACD,SAPH;AAQEyC,QAAAA,YAAY,EAAE,sBAACzC,CAAD,EAAwB;AACpCA,UAAAA,CAAC,CAACwC,OAAF;AACAzC,UAAAA,aAAa,CAACC,CAAD,CAAb;AACD;AAXH,OAD8C,GAc9C,EAdJ;AAgBA,aAAO0C,gBAAU,CAACP,YAAD,EAAevC,SAAf,CAAjB;AACD;AA9OI,GAAP;AAgPD;AAEM,SAAS+C,YAAT,CACL3D,MADK,EAELtB,QAFK,EAG0B;AAC/B,SAAO;AACLkF,IAAAA,aAAa,EAAE;AAAA,aAAMlF,QAAQ,CAAC+B,mBAAT,CAA6BT,MAAM,CAACC,EAApC,CAAN;AAAA,KADV;AAELa,IAAAA,YAAY,EAAE;AAAA,aAAMpC,QAAQ,CAAC0B,kBAAT,CAA4BJ,MAAM,CAACC,EAAnC,CAAN;AAAA,KAFT;AAGL4D,IAAAA,SAAS,EAAE;AAAA,aAAMnF,QAAQ,CAACe,eAAT,CAAyBO,MAAM,CAACC,EAAhC,CAAN;AAAA;AAHN,GAAP;AAKD;AAEM,SAAS6D,YAAT,CACLhE,MADK,EAELpB,QAFK,EAG0B;AAC/B,SAAO;AACLkF,IAAAA,aAAa,EAAE;AAAA,aAAMlF,QAAQ,CAAC+B,mBAAT,CAA6BX,MAAM,CAACE,MAAP,CAAcC,EAA3C,CAAN;AAAA,KADV;AAELa,IAAAA,YAAY,EAAE;AAAA,aAAMpC,QAAQ,CAAC0B,kBAAT,CAA4BN,MAAM,CAACE,MAAP,CAAcC,EAA1C,CAAN;AAAA,KAFT;AAGL4D,IAAAA,SAAS,EAAE;AAAA,aAAMnF,QAAQ,CAACe,eAAT,CAAyBK,MAAM,CAACE,MAAP,CAAcC,EAAvC,CAAN;AAAA,KAHN;AAIL8D,IAAAA,eAAe,EAAE,yBAAAnD,SAAS;AAAA,aACxBlC,QAAQ,CAACiC,qBAAT,CAA+Bb,MAAM,CAACG,EAAtC,EAA0CW,SAA1C,CADwB;AAAA;AAJrB,GAAP;AAOD;AAED,IAAIoD,gBAAgC,GAAG,IAAvC;AACO,SAAShB,qBAAT,GAAiC;AACtC,MAAI,OAAOgB,gBAAP,KAA4B,SAAhC,EAA2C,OAAOA,gBAAP;AAE3C,MAAIC,SAAS,GAAG,KAAhB;;AACA,MAAI;AACF,QAAM/E,OAAO,GAAG;AACd,UAAI+D,OAAJ,GAAc;AACZgB,QAAAA,SAAS,GAAG,IAAZ;AACA,eAAO,KAAP;AACD;;AAJa,KAAhB;;AAOA,QAAMC,IAAI,GAAG,SAAPA,IAAO,GAAM,EAAnB;;AAEAC,IAAAA,MAAM,CAACjB,gBAAP,CAAwB,MAAxB,EAAgCgB,IAAhC,EAAsChF,OAAtC;AACAiF,IAAAA,MAAM,CAACzB,mBAAP,CAA2B,MAA3B,EAAmCwB,IAAnC;AACD,GAZD,CAYE,OAAOE,GAAP,EAAY;AACZH,IAAAA,SAAS,GAAG,KAAZ;AACD;;AACDD,EAAAA,gBAAgB,GAAGC,SAAnB;AACA,SAAOD,gBAAP;AACD;;AAED,SAAS/C,iBAAT,CACED,CADF,EAEwB;AACtB,SAAOA,CAAC,CAACqD,IAAF,KAAW,YAAlB;AACD;;;;;;;;;;"}
|