@tanstack/react-table 8.0.0-alpha.8 → 8.0.0-alpha.83

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 (113) hide show
  1. package/build/cjs/react-table/src/index.js +138 -0
  2. package/build/cjs/react-table/src/index.js.map +1 -0
  3. package/build/cjs/table-core/build/esm/index.js +3982 -0
  4. package/build/cjs/table-core/build/esm/index.js.map +1 -0
  5. package/build/esm/index.js +3269 -4049
  6. package/build/esm/index.js.map +1 -1
  7. package/build/stats-html.html +1 -1
  8. package/build/stats-react.json +24 -797
  9. package/build/types/index.d.ts +16 -8
  10. package/build/umd/index.development.js +3375 -4119
  11. package/build/umd/index.development.js.map +1 -1
  12. package/build/umd/index.production.js +11 -1
  13. package/build/umd/index.production.js.map +1 -1
  14. package/package.json +7 -9
  15. package/src/index.tsx +111 -8
  16. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
  17. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  18. package/build/cjs/aggregationTypes.js +0 -130
  19. package/build/cjs/aggregationTypes.js.map +0 -1
  20. package/build/cjs/core.js +0 -560
  21. package/build/cjs/core.js.map +0 -1
  22. package/build/cjs/createTable.js +0 -108
  23. package/build/cjs/createTable.js.map +0 -1
  24. package/build/cjs/features/ColumnSizing.js +0 -317
  25. package/build/cjs/features/ColumnSizing.js.map +0 -1
  26. package/build/cjs/features/Expanding.js +0 -251
  27. package/build/cjs/features/Expanding.js.map +0 -1
  28. package/build/cjs/features/Filters.js +0 -445
  29. package/build/cjs/features/Filters.js.map +0 -1
  30. package/build/cjs/features/Grouping.js +0 -249
  31. package/build/cjs/features/Grouping.js.map +0 -1
  32. package/build/cjs/features/Headers.js +0 -549
  33. package/build/cjs/features/Headers.js.map +0 -1
  34. package/build/cjs/features/Ordering.js +0 -86
  35. package/build/cjs/features/Ordering.js.map +0 -1
  36. package/build/cjs/features/Pagination.js +0 -198
  37. package/build/cjs/features/Pagination.js.map +0 -1
  38. package/build/cjs/features/Pinning.js +0 -149
  39. package/build/cjs/features/Pinning.js.map +0 -1
  40. package/build/cjs/features/RowSelection.js +0 -541
  41. package/build/cjs/features/RowSelection.js.map +0 -1
  42. package/build/cjs/features/Sorting.js +0 -327
  43. package/build/cjs/features/Sorting.js.map +0 -1
  44. package/build/cjs/features/Visibility.js +0 -166
  45. package/build/cjs/features/Visibility.js.map +0 -1
  46. package/build/cjs/filterTypes.js +0 -172
  47. package/build/cjs/filterTypes.js.map +0 -1
  48. package/build/cjs/index.js +0 -32
  49. package/build/cjs/index.js.map +0 -1
  50. package/build/cjs/sortTypes.js +0 -122
  51. package/build/cjs/sortTypes.js.map +0 -1
  52. package/build/cjs/utils/columnFilterRowsFn.js +0 -131
  53. package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
  54. package/build/cjs/utils/expandRowsFn.js +0 -38
  55. package/build/cjs/utils/expandRowsFn.js.map +0 -1
  56. package/build/cjs/utils/globalFilterRowsFn.js +0 -101
  57. package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
  58. package/build/cjs/utils/groupRowsFn.js +0 -155
  59. package/build/cjs/utils/groupRowsFn.js.map +0 -1
  60. package/build/cjs/utils/paginateRowsFn.js +0 -44
  61. package/build/cjs/utils/paginateRowsFn.js.map +0 -1
  62. package/build/cjs/utils/sortRowsFn.js +0 -94
  63. package/build/cjs/utils/sortRowsFn.js.map +0 -1
  64. package/build/cjs/utils.js +0 -141
  65. package/build/cjs/utils.js.map +0 -1
  66. package/build/types/aggregationTypes.d.ts +0 -22
  67. package/build/types/core.d.ts +0 -110
  68. package/build/types/createTable.d.ts +0 -52
  69. package/build/types/features/ColumnSizing.d.ts +0 -67
  70. package/build/types/features/Expanding.d.ts +0 -53
  71. package/build/types/features/Filters.d.ts +0 -98
  72. package/build/types/features/Grouping.d.ts +0 -82
  73. package/build/types/features/Headers.d.ts +0 -41
  74. package/build/types/features/Ordering.d.ts +0 -19
  75. package/build/types/features/Pagination.d.ts +0 -44
  76. package/build/types/features/Pinning.d.ts +0 -39
  77. package/build/types/features/RowSelection.d.ts +0 -66
  78. package/build/types/features/Sorting.d.ts +0 -78
  79. package/build/types/features/Visibility.d.ts +0 -47
  80. package/build/types/filterTypes.d.ts +0 -50
  81. package/build/types/sortTypes.d.ts +0 -18
  82. package/build/types/types.d.ts +0 -127
  83. package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
  84. package/build/types/utils/expandRowsFn.d.ts +0 -2
  85. package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
  86. package/build/types/utils/groupRowsFn.d.ts +0 -2
  87. package/build/types/utils/paginateRowsFn.d.ts +0 -2
  88. package/build/types/utils/sortRowsFn.d.ts +0 -2
  89. package/build/types/utils.d.ts +0 -24
  90. package/src/aggregationTypes.ts +0 -115
  91. package/src/core.tsx +0 -1096
  92. package/src/createTable.tsx +0 -244
  93. package/src/features/ColumnSizing.ts +0 -453
  94. package/src/features/Expanding.ts +0 -406
  95. package/src/features/Filters.ts +0 -762
  96. package/src/features/Grouping.ts +0 -466
  97. package/src/features/Headers.ts +0 -912
  98. package/src/features/Ordering.ts +0 -133
  99. package/src/features/Pagination.ts +0 -325
  100. package/src/features/Pinning.ts +0 -198
  101. package/src/features/RowSelection.ts +0 -831
  102. package/src/features/Sorting.ts +0 -547
  103. package/src/features/Visibility.ts +0 -279
  104. package/src/filterTypes.ts +0 -251
  105. package/src/sortTypes.ts +0 -159
  106. package/src/types.ts +0 -331
  107. package/src/utils/columnFilterRowsFn.ts +0 -155
  108. package/src/utils/expandRowsFn.ts +0 -50
  109. package/src/utils/globalFilterRowsFn.ts +0 -122
  110. package/src/utils/groupRowsFn.ts +0 -194
  111. package/src/utils/paginateRowsFn.ts +0 -34
  112. package/src/utils/sortRowsFn.ts +0 -115
  113. package/src/utils.tsx +0 -195
@@ -1,108 +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 shim = require('use-sync-external-store/shim');
18
- var core = require('./core.js');
19
-
20
- function _interopNamespace(e) {
21
- if (e && e.__esModule) return e;
22
- var n = Object.create(null);
23
- if (e) {
24
- Object.keys(e).forEach(function (k) {
25
- if (k !== 'default') {
26
- var d = Object.getOwnPropertyDescriptor(e, k);
27
- Object.defineProperty(n, k, d.get ? d : {
28
- enumerable: true,
29
- get: function () { return e[k]; }
30
- });
31
- }
32
- });
33
- }
34
- n["default"] = e;
35
- return Object.freeze(n);
36
- }
37
-
38
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
39
-
40
- function createTable() {
41
- return {
42
- RowType: function RowType() {
43
- return createTable();
44
- },
45
- FilterFns: function FilterFns() {
46
- return createTable();
47
- },
48
- SortingFns: function SortingFns() {
49
- return createTable();
50
- },
51
- AggregationFns: function AggregationFns() {
52
- return createTable();
53
- },
54
- createColumns: function createColumns(columns) {
55
- return columns;
56
- },
57
- createDisplayColumn: function createDisplayColumn(column) {
58
- return _rollupPluginBabelHelpers["extends"]({}, column, {
59
- __generated: true
60
- });
61
- },
62
- createGroup: function createGroup(column) {
63
- return _rollupPluginBabelHelpers["extends"]({}, column, {
64
- __generated: true
65
- });
66
- },
67
- createDataColumn: function createDataColumn(accessor, column) {
68
- column = _rollupPluginBabelHelpers["extends"]({}, column, {
69
- id: column.id
70
- });
71
-
72
- if (typeof accessor === 'string') {
73
- var _column$id;
74
-
75
- return _rollupPluginBabelHelpers["extends"]({}, column, {
76
- id: (_column$id = column.id) != null ? _column$id : accessor,
77
- accessorKey: accessor,
78
- __generated: true
79
- });
80
- }
81
-
82
- if (typeof accessor === 'function') {
83
- return _rollupPluginBabelHelpers["extends"]({}, column, {
84
- accessorFn: accessor,
85
- __generated: true
86
- });
87
- }
88
-
89
- throw new Error('Invalid accessor');
90
- },
91
- useTable: function useTable(options) {
92
- var _React$useState = React__namespace.useState(function () {
93
- return core.createTableInstance(options);
94
- }),
95
- instance = _React$useState[0];
96
-
97
- shim.useSyncExternalStore(instance.subscribe, function () {
98
- return instance.internalState;
99
- });
100
- instance.updateOptions(options);
101
- return instance;
102
- },
103
- types: undefined
104
- };
105
- }
106
-
107
- exports.createTable = createTable;
108
- //# sourceMappingURL=createTable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createTable.js","sources":["../../src/createTable.tsx"],"sourcesContent":["import * as React from 'react'\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\nimport { Cell, Column, Row } from '.'\nimport { createTableInstance } from './core'\nimport {\n ReactTable,\n ColumnDef,\n AccessorFn,\n Options,\n Renderable,\n Header,\n} from './types'\nimport { Overwrite } from './utils'\n\nexport type TableHelper<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n RowType<TTData>(): TableHelper<\n TTData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n\n FilterFns: <TTFilterFns>(\n filterFns: TTFilterFns\n ) => TableHelper<TData, TValue, TTFilterFns, TSortingFns, TAggregationFns>\n\n SortingFns: <TTSortingFns>(\n sortingFns: TTSortingFns\n ) => TableHelper<TData, TValue, TFilterFns, TTSortingFns, TAggregationFns>\n\n AggregationFns: <TTAggregationFns>(\n aggregationFns: TTAggregationFns\n ) => TableHelper<TData, TValue, TFilterFns, TSortingFns, TTAggregationFns>\n\n createColumns: (\n columns: ColumnDef<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n ) => ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n\n createGroup: (\n column: Overwrite<\n ColumnDef<TData, unknown, TFilterFns, TSortingFns, TAggregationFns>,\n | {\n __generated?: never\n accessorFn?: never\n accessorKey?: never\n header: string\n id?: string\n }\n | {\n __generated?: never\n accessorFn?: never\n accessorKey?: never\n id: string\n header?:\n | string\n | Renderable<{\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n header: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n column: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n }>\n }\n >\n ) => ColumnDef<TData, unknown, TFilterFns, TSortingFns, TAggregationFns>\n\n createDisplayColumn: (\n column: Overwrite<\n ColumnDef<TData, unknown, TFilterFns, TSortingFns, TAggregationFns>,\n { __generated?: never; accessorFn?: never; accessorKey?: never }\n >\n ) => ColumnDef<TData, unknown, TFilterFns, TSortingFns, TAggregationFns>\n\n createDataColumn: <TAccessor extends AccessorFn<TData> | keyof TData>(\n accessor: TAccessor,\n column: TAccessor extends (...args: any[]) => any\n ? // Accessor Fn\n Overwrite<\n ColumnDef<\n TData,\n ReturnType<TAccessor>,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n {\n __generated?: never\n accessorFn?: never\n accessorKey?: never\n id: string\n }\n >\n : TAccessor extends keyof TData\n ? // Accessor Key\n Overwrite<\n ColumnDef<\n TData,\n TData[TAccessor],\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n {\n __generated?: never\n accessorFn?: never\n accessorKey?: never\n id?: string\n }\n >\n : never\n ) => ColumnDef<\n TData,\n TAccessor extends (...args: any[]) => any\n ? ReturnType<TAccessor>\n : TAccessor extends keyof TData\n ? TData[TAccessor]\n : never,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n\n useTable: <TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(\n options: Options<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n\n types: {\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n columnDef: ColumnDef<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n cell: Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n }\n}\n\nexport function createTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(): TableHelper<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n RowType: () => createTable(),\n FilterFns: () => createTable(),\n SortingFns: () => createTable(),\n AggregationFns: () => createTable(),\n createColumns: columns => columns,\n createDisplayColumn: column => ({\n ...column,\n __generated: true,\n }),\n createGroup: column => ({\n ...column,\n __generated: true,\n }),\n createDataColumn: (accessor, column) => {\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 __generated: true,\n }\n }\n\n if (typeof accessor === 'function') {\n return {\n ...column,\n accessorFn: accessor,\n __generated: true,\n }\n }\n\n throw new Error('Invalid accessor')\n },\n useTable: <TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(\n options: Options<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ): ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> => {\n const [instance] = React.useState(() =>\n createTableInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >(options)\n )\n\n useSyncExternalStore(instance.subscribe, () => instance.internalState)\n\n instance.updateOptions(options)\n\n return instance\n },\n types: undefined as any,\n } as TableHelper<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n}\n"],"names":["createTable","RowType","FilterFns","SortingFns","AggregationFns","createColumns","columns","createDisplayColumn","column","__generated","createGroup","createDataColumn","accessor","id","accessorKey","accessorFn","Error","useTable","options","React","useState","createTableInstance","instance","useSyncExternalStore","subscribe","internalState","updateOptions","types","undefined"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgLO,SAASA,WAAT,GAMmE;AACxE,SAAO;AACLC,IAAAA,OAAO,EAAE;AAAA,aAAMD,WAAW,EAAjB;AAAA,KADJ;AAELE,IAAAA,SAAS,EAAE;AAAA,aAAMF,WAAW,EAAjB;AAAA,KAFN;AAGLG,IAAAA,UAAU,EAAE;AAAA,aAAMH,WAAW,EAAjB;AAAA,KAHP;AAILI,IAAAA,cAAc,EAAE;AAAA,aAAMJ,WAAW,EAAjB;AAAA,KAJX;AAKLK,IAAAA,aAAa,EAAE,uBAAAC,OAAO;AAAA,aAAIA,OAAJ;AAAA,KALjB;AAMLC,IAAAA,mBAAmB,EAAE,6BAAAC,MAAM;AAAA,sDACtBA,MADsB;AAEzBC,QAAAA,WAAW,EAAE;AAFY;AAAA,KANtB;AAULC,IAAAA,WAAW,EAAE,qBAAAF,MAAM;AAAA,sDACdA,MADc;AAEjBC,QAAAA,WAAW,EAAE;AAFI;AAAA,KAVd;AAcLE,IAAAA,gBAAgB,EAAE,0BAACC,QAAD,EAAWJ,MAAX,EAAsB;AACtCA,MAAAA,MAAM,4CACDA,MADC;AAEJK,QAAAA,EAAE,EAAEL,MAAM,CAACK;AAFP,QAAN;;AAKA,UAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC;AAAA;;AAChC,wDACKJ,MADL;AAEEK,UAAAA,EAAE,gBAAEL,MAAM,CAACK,EAAT,yBAAeD,QAFnB;AAGEE,UAAAA,WAAW,EAAEF,QAHf;AAIEH,UAAAA,WAAW,EAAE;AAJf;AAMD;;AAED,UAAI,OAAOG,QAAP,KAAoB,UAAxB,EAAoC;AAClC,wDACKJ,MADL;AAEEO,UAAAA,UAAU,EAAEH,QAFd;AAGEH,UAAAA,WAAW,EAAE;AAHf;AAKD;;AAED,YAAM,IAAIO,KAAJ,CAAU,kBAAV,CAAN;AACD,KAtCI;AAuCLC,IAAAA,QAAQ,EAAE,kBACRC,OADQ,EAEgE;AACxE,4BAAmBC,gBAAK,CAACC,QAAN,CAAe;AAAA,eAChCC,wBAAmB,CAMjBH,OANiB,CADa;AAAA,OAAf,CAAnB;AAAA,UAAOI,QAAP;;AAUAC,MAAAA,yBAAoB,CAACD,QAAQ,CAACE,SAAV,EAAqB;AAAA,eAAMF,QAAQ,CAACG,aAAf;AAAA,OAArB,CAApB;AAEAH,MAAAA,QAAQ,CAACI,aAAT,CAAuBR,OAAvB;AAEA,aAAOI,QAAP;AACD,KAzDI;AA0DLK,IAAAA,KAAK,EAAEC;AA1DF,GAAP;AA4DD;;;;"}
@@ -1,317 +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
-
73
- if (!header) {
74
- return;
75
- }
76
-
77
- return instance.resetColumnSize(header.column.id);
78
- },
79
- getHeaderCanResize: function getHeaderCanResize(headerId) {
80
- var header = instance.getHeader(headerId);
81
-
82
- if (!header) {
83
- throw new Error();
84
- }
85
-
86
- return instance.getColumnCanResize(header.column.id);
87
- },
88
- getColumnCanResize: function getColumnCanResize(columnId) {
89
- var _ref2, _ref3, _column$enableResizin;
90
-
91
- var column = instance.getColumn(columnId);
92
-
93
- if (!column) {
94
- throw new Error();
95
- }
96
-
97
- return (_ref2 = (_ref3 = (_column$enableResizin = column.enableResizing) != null ? _column$enableResizin : instance.options.enableColumnResizing) != null ? _ref3 : column.defaultCanResize) != null ? _ref2 : true;
98
- },
99
- getColumnIsResizing: function getColumnIsResizing(columnId) {
100
- var column = instance.getColumn(columnId);
101
-
102
- if (!column) {
103
- throw new Error();
104
- }
105
-
106
- return instance.getState().columnSizingInfo.isResizingColumn === columnId;
107
- },
108
- getHeaderIsResizing: function getHeaderIsResizing(headerId) {
109
- var header = instance.getHeader(headerId);
110
-
111
- if (!header) {
112
- throw new Error();
113
- }
114
-
115
- return instance.getColumnIsResizing(header.column.id);
116
- },
117
- getColumnResizerProps: function getColumnResizerProps(headerId, userProps) {
118
- var header = instance.getHeader(headerId);
119
-
120
- if (!header) {
121
- return;
122
- }
123
-
124
- var column = instance.getColumn(header.column.id);
125
-
126
- if (!column) {
127
- return;
128
- }
129
-
130
- var canResize = column.getCanResize();
131
-
132
- var onResizeStart = function onResizeStart(e) {
133
- if (isTouchStartEvent(e)) {
134
- // lets not respond to multiple touches (e.g. 2 or 3 fingers)
135
- if (e.touches && e.touches.length > 1) {
136
- return;
137
- }
138
- }
139
-
140
- var columnSizingStart = header.getLeafHeaders().map(function (d) {
141
- return [d.column.id, d.getWidth()];
142
- });
143
- var clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;
144
-
145
- var updateOffset = function updateOffset(eventType, clientXPos) {
146
- if (typeof clientXPos !== 'number') {
147
- return;
148
- }
149
-
150
- var newColumnSizing = {};
151
- instance.setColumnSizingInfo(function (old) {
152
- var _old$startOffset, _old$startSize;
153
-
154
- var deltaOffset = clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0);
155
- var deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);
156
- old.columnSizingStart.forEach(function (_ref4) {
157
- var columnId = _ref4[0],
158
- headerWidth = _ref4[1];
159
- newColumnSizing[columnId] = Math.max(headerWidth + headerWidth * deltaPercentage, 0);
160
- });
161
- return _rollupPluginBabelHelpers["extends"]({}, old, {
162
- deltaOffset: deltaOffset,
163
- deltaPercentage: deltaPercentage
164
- });
165
- });
166
-
167
- if (instance.options.columnResizeMode === 'onChange' || eventType === 'end') {
168
- instance.setColumnSizing(function (old) {
169
- return _rollupPluginBabelHelpers["extends"]({}, old, newColumnSizing);
170
- });
171
- }
172
- };
173
-
174
- var onMove = function onMove(clientXPos) {
175
- return updateOffset('move', clientXPos);
176
- };
177
-
178
- var onEnd = function onEnd(clientXPos) {
179
- updateOffset('end', clientXPos);
180
- instance.setColumnSizingInfo(function (old) {
181
- return _rollupPluginBabelHelpers["extends"]({}, old, {
182
- isResizingColumn: false,
183
- startOffset: null,
184
- startSize: null,
185
- deltaOffset: null,
186
- deltaPercentage: null,
187
- columnSizingStart: []
188
- });
189
- });
190
- };
191
-
192
- var mouseEvents = {
193
- moveHandler: function moveHandler(e) {
194
- return onMove(e.clientX);
195
- },
196
- upHandler: function upHandler(e) {
197
- document.removeEventListener('mousemove', mouseEvents.moveHandler);
198
- document.removeEventListener('mouseup', mouseEvents.upHandler);
199
- onEnd(e.clientX);
200
- }
201
- };
202
- var touchEvents = {
203
- moveHandler: function moveHandler(e) {
204
- if (e.cancelable) {
205
- e.preventDefault();
206
- e.stopPropagation();
207
- }
208
-
209
- onMove(e.touches[0].clientX);
210
- return false;
211
- },
212
- upHandler: function upHandler(e) {
213
- document.removeEventListener('touchmove', touchEvents.moveHandler);
214
- document.removeEventListener('touchend', touchEvents.upHandler);
215
-
216
- if (e.cancelable) {
217
- e.preventDefault();
218
- e.stopPropagation();
219
- }
220
-
221
- onEnd(e.touches[0].clientX);
222
- }
223
- };
224
- var passiveIfSupported = passiveEventSupported() ? {
225
- passive: false
226
- } : false;
227
-
228
- if (isTouchStartEvent(e)) {
229
- document.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);
230
- document.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);
231
- } else {
232
- document.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);
233
- document.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);
234
- }
235
-
236
- instance.setColumnSizingInfo(function (old) {
237
- return _rollupPluginBabelHelpers["extends"]({}, old, {
238
- startOffset: clientX,
239
- startSize: header.getWidth(),
240
- deltaOffset: 0,
241
- deltaPercentage: 0,
242
- columnSizingStart: columnSizingStart,
243
- isResizingColumn: header.column.id
244
- });
245
- });
246
- };
247
-
248
- var initialProps = canResize ? {
249
- title: 'Toggle Grouping',
250
- draggable: false,
251
- role: 'separator',
252
- onMouseDown: function onMouseDown(e) {
253
- e.persist();
254
- onResizeStart(e);
255
- },
256
- onTouchStart: function onTouchStart(e) {
257
- e.persist();
258
- onResizeStart(e);
259
- }
260
- } : {};
261
- return utils.propGetter(initialProps, userProps);
262
- }
263
- };
264
- }
265
- function createColumn(column, instance) {
266
- return {
267
- getIsResizing: function getIsResizing() {
268
- return instance.getColumnIsResizing(column.id);
269
- },
270
- getCanResize: function getCanResize() {
271
- return instance.getColumnCanResize(column.id);
272
- },
273
- resetSize: function resetSize() {
274
- return instance.resetColumnSize(column.id);
275
- },
276
- getResizerProps: function getResizerProps(userProps) {
277
- return instance.getColumnResizerProps(column.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.defaultColumnSizing = defaultColumnSizing;
313
- exports.getDefaultOptions = getDefaultOptions;
314
- exports.getInitialState = getInitialState;
315
- exports.getInstance = getInstance;
316
- exports.passiveEventSupported = passiveEventSupported;
317
- //# sourceMappingURL=ColumnSizing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import React, {\n ComponentProps,\n MouseEvent as ReactMouseEvent,\n PropsWithoutRef,\n PropsWithRef,\n TouchEvent as ReactTouchEvent,\n} from 'react'\nimport {\n Column,\n Getter,\n Header,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\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<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\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 getColumnResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n columnId: 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<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\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<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnSizingDefaultOptions {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', instance),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', 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): ColumnSizingInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> {\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 if (!header) {\n return\n }\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 getColumnResizerProps: (headerId, userProps) => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n return\n }\n\n const column = instance.getColumn(header.column.id)\n\n if (!column) {\n return\n }\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 columnSizingStart: [string, number][] = header\n .getLeafHeaders()\n .map(d => [d.column.id, d.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] = Math.max(\n headerWidth + headerWidth * deltaPercentage,\n 0\n )\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: header.getWidth(),\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: header.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<\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): ColumnSizingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n getIsResizing: () => instance.getColumnIsResizing(column.id),\n getCanResize: () => instance.getColumnCanResize(column.id),\n resetSize: () => instance.resetColumnSize(column.id),\n getResizerProps: userProps =>\n instance.getColumnResizerProps(column.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","getColumnResizerProps","userProps","canResize","getCanResize","onResizeStart","e","isTouchStartEvent","touches","length","getLeafHeaders","map","d","getWidth","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","getResizerProps","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}