@tanstack/table-core 8.0.0-alpha.67 → 8.0.0-alpha.70
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/aggregationFns.js +25 -37
- package/build/cjs/aggregationFns.js.map +1 -1
- package/build/cjs/core.js +167 -46
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/createTable.js +24 -40
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/Cells.js +28 -34
- package/build/cjs/features/Cells.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +102 -116
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Columns.js +52 -79
- package/build/cjs/features/Columns.js.map +1 -1
- package/build/cjs/features/Expanding.js +49 -58
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +98 -193
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +53 -71
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Headers.js +109 -165
- package/build/cjs/features/Headers.js.map +1 -1
- package/build/cjs/features/Ordering.js +31 -43
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +79 -82
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +71 -125
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +93 -112
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Rows.js +32 -22
- package/build/cjs/features/Rows.js.map +1 -1
- package/build/cjs/features/Sorting.js +54 -73
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +47 -86
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterFns.js +48 -72
- package/build/cjs/filterFns.js.map +1 -1
- package/build/cjs/index.js +13 -13
- package/build/cjs/sortingFns.js +21 -21
- package/build/cjs/sortingFns.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js +49 -55
- package/build/cjs/utils/filterRowsUtils.js.map +1 -1
- package/build/cjs/utils/getCoreRowModel.js +98 -0
- package/build/cjs/utils/getCoreRowModel.js.map +1 -0
- package/build/cjs/utils/getExpandedRowModel.js +17 -21
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedMinMaxValues.js +48 -0
- package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -0
- package/build/cjs/utils/getFacetedRowModel.js +50 -0
- package/build/cjs/utils/getFacetedRowModel.js.map +1 -0
- package/build/cjs/utils/getFacetedUniqueValues.js +48 -0
- package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -0
- package/build/cjs/utils/getFilteredRowModel.js +130 -0
- package/build/cjs/utils/getFilteredRowModel.js.map +1 -0
- package/build/cjs/utils/getGroupedRowModel.js +126 -136
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/cjs/utils/getPaginationRowModel.js +39 -39
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
- package/build/cjs/utils/getSortedRowModel.js +112 -0
- package/build/cjs/utils/getSortedRowModel.js.map +1 -0
- package/build/cjs/utils.js +36 -207
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +1778 -2347
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +421 -481
- package/build/types/core.d.ts +3 -5
- package/build/types/features/Cells.d.ts +1 -1
- package/build/types/features/ColumnSizing.d.ts +2 -2
- package/build/types/features/Columns.d.ts +1 -1
- package/build/types/features/Expanding.d.ts +1 -1
- package/build/types/features/Filters.d.ts +12 -7
- package/build/types/features/Grouping.d.ts +5 -4
- package/build/types/features/Ordering.d.ts +1 -1
- package/build/types/features/Pagination.d.ts +4 -4
- package/build/types/features/Pinning.d.ts +1 -1
- package/build/types/features/RowSelection.d.ts +1 -1
- package/build/types/features/Rows.d.ts +4 -3
- package/build/types/features/Sorting.d.ts +2 -1
- package/build/types/features/Visibility.d.ts +1 -0
- package/build/types/index.d.ts +6 -4
- package/build/types/types.d.ts +3 -13
- package/build/types/utils/filterRowsUtils.d.ts +3 -3
- package/build/types/utils/getCoreRowModel.d.ts +2 -0
- package/build/types/utils/getFacetedMinMaxValues.d.ts +2 -0
- package/build/types/utils/getFacetedRowModel.d.ts +2 -0
- package/build/types/utils/getFacetedUniqueValues.d.ts +2 -0
- package/build/types/utils/{getCoreRowModelSync.d.ts → getFilteredRowModel.d.ts} +1 -1
- package/build/types/utils/getGroupedRowModel.d.ts +1 -1
- package/build/types/utils/getSortedRowModel.d.ts +2 -0
- package/build/types/utils.d.ts +1 -17
- package/build/umd/index.development.js +1779 -2350
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/core.ts +197 -45
- package/src/features/Cells.ts +7 -11
- package/src/features/ColumnSizing.ts +27 -19
- package/src/features/Columns.ts +4 -8
- package/src/features/Expanding.ts +5 -3
- package/src/features/Filters.ts +105 -162
- package/src/features/Grouping.ts +21 -23
- package/src/features/Ordering.ts +5 -3
- package/src/features/Pagination.ts +32 -19
- package/src/features/Pinning.ts +13 -7
- package/src/features/RowSelection.ts +5 -3
- package/src/features/Rows.ts +21 -6
- package/src/features/Sorting.ts +14 -12
- package/src/features/Visibility.ts +7 -0
- package/src/filterFns.ts +9 -9
- package/src/index.ts +12 -4
- package/src/sortingFns.ts +11 -11
- package/src/types.ts +3 -16
- package/src/utils/filterRowsUtils.ts +47 -68
- package/src/utils/{getCoreRowModelSync.ts → getCoreRowModel.ts} +2 -8
- package/src/utils/getFacetedMinMaxValues.ts +37 -0
- package/src/utils/getFacetedRowModel.ts +50 -0
- package/src/utils/getFacetedUniqueValues.ts +37 -0
- package/src/utils/{getFilteredRowModelSync.ts → getFilteredRowModel.ts} +29 -20
- package/src/utils/getGroupedRowModel.ts +52 -61
- package/src/utils/{getSortedRowModelSync.ts → getSortedRowModel.ts} +3 -3
- package/src/utils.ts +28 -236
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
- package/build/cjs/utils/getCoreRowModelAsync.js +0 -125
- package/build/cjs/utils/getCoreRowModelAsync.js.map +0 -1
- package/build/cjs/utils/getCoreRowModelSync.js +0 -102
- package/build/cjs/utils/getCoreRowModelSync.js.map +0 -1
- package/build/cjs/utils/getFilteredRowModelSync.js +0 -125
- package/build/cjs/utils/getFilteredRowModelSync.js.map +0 -1
- package/build/cjs/utils/getSortedRowModelSync.js +0 -118
- package/build/cjs/utils/getSortedRowModelSync.js.map +0 -1
- package/build/types/utils/getCoreRowModelAsync.d.ts +0 -4
- package/build/types/utils/getFilteredRowModelAsync.d.ts +0 -4
- package/build/types/utils/getFilteredRowModelSync.d.ts +0 -2
- package/build/types/utils/getSortedRowModelAsync.d.ts +0 -13
- package/build/types/utils/getSortedRowModelSync.d.ts +0 -2
- package/src/utils/getCoreRowModelAsync.ts +0 -104
- package/src/utils/getFilteredRowModelAsync.ts +0 -157
- package/src/utils/getSortedRowModelAsync.ts +0 -200
|
@@ -15,33 +15,29 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
15
15
|
var utils = require('../utils.js');
|
|
16
16
|
|
|
17
17
|
//
|
|
18
|
-
|
|
19
|
-
createRow:
|
|
18
|
+
const Cells = {
|
|
19
|
+
createRow: (row, instance) => {
|
|
20
20
|
return {
|
|
21
|
-
getAllCells: utils.memo(
|
|
22
|
-
return
|
|
23
|
-
|
|
24
|
-
return leafColumns.map(function (column) {
|
|
25
|
-
return instance.createCell(row, column, row.values[column.id]);
|
|
21
|
+
getAllCells: utils.memo(() => [instance.getAllLeafColumns()], leafColumns => {
|
|
22
|
+
return leafColumns.map(column => {
|
|
23
|
+
return instance.createCell(row, column, column.id);
|
|
26
24
|
});
|
|
27
25
|
}, {
|
|
28
|
-
key: process.env.NODE_ENV === 'development'
|
|
29
|
-
debug:
|
|
26
|
+
key: process.env.NODE_ENV === 'development' && 'row.getAllCells',
|
|
27
|
+
debug: () => {
|
|
30
28
|
var _instance$options$deb;
|
|
31
29
|
|
|
32
30
|
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugRows;
|
|
33
31
|
}
|
|
34
32
|
}),
|
|
35
|
-
getAllCellsByColumnId: utils.memo(
|
|
36
|
-
return
|
|
37
|
-
}, function (allCells) {
|
|
38
|
-
return allCells.reduce(function (acc, cell) {
|
|
33
|
+
getAllCellsByColumnId: utils.memo(() => [row.getAllCells()], allCells => {
|
|
34
|
+
return allCells.reduce((acc, cell) => {
|
|
39
35
|
acc[cell.columnId] = cell;
|
|
40
36
|
return acc;
|
|
41
37
|
}, {});
|
|
42
38
|
}, {
|
|
43
39
|
key: process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',
|
|
44
|
-
debug:
|
|
40
|
+
debug: () => {
|
|
45
41
|
var _instance$options$deb2;
|
|
46
42
|
|
|
47
43
|
return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugRows;
|
|
@@ -49,35 +45,33 @@ var Cells = {
|
|
|
49
45
|
})
|
|
50
46
|
};
|
|
51
47
|
},
|
|
52
|
-
createInstance:
|
|
48
|
+
createInstance: instance => {
|
|
53
49
|
return {
|
|
54
|
-
createCell:
|
|
55
|
-
|
|
50
|
+
createCell: (row, column, columnId) => {
|
|
51
|
+
const cell = {
|
|
56
52
|
id: row.id + "_" + column.id,
|
|
57
53
|
rowId: row.id,
|
|
58
|
-
columnId
|
|
59
|
-
row
|
|
60
|
-
column
|
|
61
|
-
|
|
62
|
-
renderCell:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}) : null;
|
|
70
|
-
}
|
|
54
|
+
columnId,
|
|
55
|
+
row,
|
|
56
|
+
column,
|
|
57
|
+
getValue: () => row.getValue(columnId),
|
|
58
|
+
renderCell: () => column.cell ? instance.render(column.cell, {
|
|
59
|
+
instance,
|
|
60
|
+
column,
|
|
61
|
+
row,
|
|
62
|
+
cell: cell,
|
|
63
|
+
getValue: cell.getValue
|
|
64
|
+
}) : null
|
|
71
65
|
};
|
|
72
66
|
|
|
73
|
-
instance._features.forEach(
|
|
67
|
+
instance._features.forEach(feature => {
|
|
74
68
|
Object.assign(cell, feature.createCell == null ? void 0 : feature.createCell(cell, column, row, instance));
|
|
75
69
|
}, {});
|
|
76
70
|
|
|
77
71
|
return cell;
|
|
78
72
|
},
|
|
79
|
-
getCell:
|
|
80
|
-
|
|
73
|
+
getCell: (rowId, columnId) => {
|
|
74
|
+
const row = instance.getRow(rowId);
|
|
81
75
|
|
|
82
76
|
if (!row) {
|
|
83
77
|
if (process.env.NODE_ENV !== 'production') {
|
|
@@ -87,7 +81,7 @@ var Cells = {
|
|
|
87
81
|
throw new Error();
|
|
88
82
|
}
|
|
89
83
|
|
|
90
|
-
|
|
84
|
+
const cell = row.getAllCellsByColumnId()[columnId];
|
|
91
85
|
|
|
92
86
|
if (!cell) {
|
|
93
87
|
if (process.env.NODE_ENV !== 'production') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cells.js","sources":["../../../src/features/Cells.ts"],"sourcesContent":["import {\n Cell,\n TableGenerics,\n TableInstance,\n Row,\n Column,\n CoreCell,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type CellsRow<TGenerics extends TableGenerics> = {\n getAllCells: () => Cell<TGenerics>[]\n getAllCellsByColumnId: () => Record<string, Cell<TGenerics>>\n}\n\nexport type CellsInstance<TGenerics extends TableGenerics> = {\n createCell: (\n row: Row<TGenerics>,\n column: Column<TGenerics>,\n
|
|
1
|
+
{"version":3,"file":"Cells.js","sources":["../../../src/features/Cells.ts"],"sourcesContent":["import {\n Cell,\n TableGenerics,\n TableInstance,\n Row,\n Column,\n CoreCell,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type CellsRow<TGenerics extends TableGenerics> = {\n getAllCells: () => Cell<TGenerics>[]\n getAllCellsByColumnId: () => Record<string, Cell<TGenerics>>\n}\n\nexport type CellsInstance<TGenerics extends TableGenerics> = {\n createCell: (\n row: Row<TGenerics>,\n column: Column<TGenerics>,\n columnId: string\n ) => Cell<TGenerics>\n getCell: (rowId: string, columnId: string) => Cell<TGenerics>\n}\n\n//\n\nexport const Cells = {\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): CellsRow<TGenerics> => {\n return {\n getAllCells: memo(\n () => [instance.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return instance.createCell(row as Row<TGenerics>, column, column.id)\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n\n getAllCellsByColumnId: memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.columnId] = cell\n return acc\n }, {} as Record<string, Cell<TGenerics>>)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'row.getAllCellsByColumnId',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): CellsInstance<TGenerics> => {\n return {\n createCell: (row, column, columnId) => {\n const cell: CoreCell<TGenerics> = {\n id: `${row.id}_${column.id}`,\n rowId: row.id,\n columnId,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderCell: () =>\n column.cell\n ? instance.render(column.cell, {\n instance,\n column,\n row,\n cell: cell as Cell<TGenerics>,\n getValue: cell.getValue,\n })\n : null,\n }\n\n instance._features.forEach(feature => {\n Object.assign(\n cell,\n feature.createCell?.(\n cell as Cell<TGenerics>,\n column,\n row as Row<TGenerics>,\n instance\n )\n )\n }, {})\n\n return cell as Cell<TGenerics>\n },\n\n getCell: (rowId: string, columnId: string) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`[Table] could not find row with id ${rowId}`)\n }\n throw new Error()\n }\n\n const cell = row.getAllCellsByColumnId()[columnId]\n\n if (!cell) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `[Table] could not find cell ${columnId} in row ${rowId}`\n )\n }\n throw new Error()\n }\n\n return cell\n },\n }\n },\n}\n"],"names":["Cells","createRow","row","instance","getAllCells","memo","getAllLeafColumns","leafColumns","map","column","createCell","id","key","process","env","NODE_ENV","debug","options","debugAll","debugRows","getAllCellsByColumnId","allCells","reduce","acc","cell","columnId","createInstance","rowId","getValue","renderCell","render","_features","forEach","feature","Object","assign","getCell","getRow","Error"],"mappings":";;;;;;;;;;;;;;;;AAwBA;AAEO,MAAMA,KAAK,GAAG;AACnBC,EAAAA,SAAS,EAAE,CACTC,GADS,EAETC,QAFS,KAGe;AACxB,IAAO,OAAA;AACLC,MAAAA,WAAW,EAAEC,UAAI,CACf,MAAM,CAACF,QAAQ,CAACG,iBAAT,EAAD,CADS,EAEfC,WAAW,IAAI;AACb,QAAA,OAAOA,WAAW,CAACC,GAAZ,CAAgBC,MAAM,IAAI;AAC/B,UAAON,OAAAA,QAAQ,CAACO,UAAT,CAAoBR,GAApB,EAA2CO,MAA3C,EAAmDA,MAAM,CAACE,EAA1D,CAAP,CAAA;AACD,SAFM,CAAP,CAAA;AAGD,OANc,EAOf;AACEC,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,iBADjD;AAEEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,qBAAA,CAAA;;AAAA,UAAMb,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACc,OAAT,CAAiBC,QAAvB,oCAAmCf,QAAQ,CAACc,OAAT,CAAiBE,SAApD,CAAA;AAAA,SAAA;AAFT,OAPe,CADZ;AAcLC,MAAAA,qBAAqB,EAAEf,UAAI,CACzB,MAAM,CAACH,GAAG,CAACE,WAAJ,EAAD,CADmB,EAEzBiB,QAAQ,IAAI;AACV,QAAOA,OAAAA,QAAQ,CAACC,MAAT,CAAgB,CAACC,GAAD,EAAMC,IAAN,KAAe;AACpCD,UAAAA,GAAG,CAACC,IAAI,CAACC,QAAN,CAAH,GAAqBD,IAArB,CAAA;AACA,UAAA,OAAOD,GAAP,CAAA;AACD,SAHM,EAGJ,EAHI,CAAP,CAAA;AAID,OAPwB,EAQzB;AACEX,QAAAA,GAAG,EACDC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IACA,2BAHJ;AAIEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UAAMb,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACc,OAAT,CAAiBC,QAAvB,qCAAmCf,QAAQ,CAACc,OAAT,CAAiBE,SAApD,CAAA;AAAA,SAAA;AAJT,OARyB,CAAA;AAdtB,KAAP,CAAA;AA8BD,GAnCkB;AAqCnBO,EAAAA,cAAc,EACZvB,QADc,IAEe;AAC7B,IAAO,OAAA;AACLO,MAAAA,UAAU,EAAE,CAACR,GAAD,EAAMO,MAAN,EAAcgB,QAAd,KAA2B;AACrC,QAAA,MAAMD,IAAyB,GAAG;AAChCb,UAAAA,EAAE,EAAKT,GAAG,CAACS,EAAT,GAAeF,GAAAA,GAAAA,MAAM,CAACE,EADQ;AAEhCgB,UAAAA,KAAK,EAAEzB,GAAG,CAACS,EAFqB;AAGhCc,UAAAA,QAHgC;AAIhCvB,UAAAA,GAJgC;AAKhCO,UAAAA,MALgC;AAMhCmB,UAAAA,QAAQ,EAAE,MAAM1B,GAAG,CAAC0B,QAAJ,CAAaH,QAAb,CANgB;AAOhCI,UAAAA,UAAU,EAAE,MACVpB,MAAM,CAACe,IAAP,GACIrB,QAAQ,CAAC2B,MAAT,CAAgBrB,MAAM,CAACe,IAAvB,EAA6B;AAC3BrB,YAAAA,QAD2B;AAE3BM,YAAAA,MAF2B;AAG3BP,YAAAA,GAH2B;AAI3BsB,YAAAA,IAAI,EAAEA,IAJqB;AAK3BI,YAAAA,QAAQ,EAAEJ,IAAI,CAACI,QAAAA;AALY,WAA7B,CADJ,GAQI,IAAA;AAhB0B,SAAlC,CAAA;;AAmBAzB,QAAAA,QAAQ,CAAC4B,SAAT,CAAmBC,OAAnB,CAA2BC,OAAO,IAAI;AACpCC,UAAAA,MAAM,CAACC,MAAP,CACEX,IADF,EAEES,OAAO,CAACvB,UAFV,IAAA,IAAA,GAAA,KAAA,CAAA,GAEEuB,OAAO,CAACvB,UAAR,CACEc,IADF,EAEEf,MAFF,EAGEP,GAHF,EAIEC,QAJF,CAFF,CAAA,CAAA;AASD,SAVD,EAUG,EAVH,CAAA,CAAA;;AAYA,QAAA,OAAOqB,IAAP,CAAA;AACD,OAlCI;AAoCLY,MAAAA,OAAO,EAAE,CAACT,KAAD,EAAgBF,QAAhB,KAAqC;AAC5C,QAAA,MAAMvB,GAAG,GAAGC,QAAQ,CAACkC,MAAT,CAAgBV,KAAhB,CAAZ,CAAA;;AAEA,QAAI,IAAA,CAACzB,GAAL,EAAU;AACR,UAAA,IAAIW,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,YAAA,MAAM,IAAIuB,KAAJ,CAAgDX,qCAAAA,GAAAA,KAAhD,CAAN,CAAA;AACD,WAAA;;AACD,UAAM,MAAA,IAAIW,KAAJ,EAAN,CAAA;AACD,SAAA;;AAED,QAAA,MAAMd,IAAI,GAAGtB,GAAG,CAACkB,qBAAJ,EAAA,CAA4BK,QAA5B,CAAb,CAAA;;AAEA,QAAI,IAAA,CAACD,IAAL,EAAW;AACT,UAAA,IAAIX,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,YAAA,MAAM,IAAIuB,KAAJ,CAAA,8BAAA,GAC2Bb,QAD3B,GAAA,UAAA,GAC8CE,KAD9C,CAAN,CAAA;AAGD,WAAA;;AACD,UAAM,MAAA,IAAIW,KAAJ,EAAN,CAAA;AACD,SAAA;;AAED,QAAA,OAAOd,IAAP,CAAA;AACD,OAAA;AA1DI,KAAP,CAAA;AA4DD,GAAA;AApGkB;;;;"}
|
|
@@ -12,85 +12,86 @@
|
|
|
12
12
|
|
|
13
13
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
14
|
|
|
15
|
-
var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
|
|
16
15
|
var utils = require('../utils.js');
|
|
17
16
|
|
|
18
17
|
//
|
|
19
|
-
|
|
18
|
+
const defaultColumnSizing = {
|
|
20
19
|
size: 150,
|
|
21
20
|
minSize: 20,
|
|
22
21
|
maxSize: Number.MAX_SAFE_INTEGER
|
|
23
22
|
};
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
|
|
24
|
+
const getDefaultColumnSizingInfoState = () => ({
|
|
25
|
+
startOffset: null,
|
|
26
|
+
startSize: null,
|
|
27
|
+
deltaOffset: null,
|
|
28
|
+
deltaPercentage: null,
|
|
29
|
+
isResizingColumn: false,
|
|
30
|
+
columnSizingStart: []
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
const ColumnSizing = {
|
|
34
|
+
getDefaultColumn: () => {
|
|
26
35
|
return defaultColumnSizing;
|
|
27
36
|
},
|
|
28
|
-
getInitialState:
|
|
29
|
-
return
|
|
37
|
+
getInitialState: state => {
|
|
38
|
+
return {
|
|
30
39
|
columnSizing: {},
|
|
31
|
-
columnSizingInfo:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
deltaOffset: null,
|
|
35
|
-
deltaPercentage: null,
|
|
36
|
-
isResizingColumn: false,
|
|
37
|
-
columnSizingStart: []
|
|
38
|
-
}
|
|
39
|
-
}, state);
|
|
40
|
+
columnSizingInfo: getDefaultColumnSizingInfoState(),
|
|
41
|
+
...state
|
|
42
|
+
};
|
|
40
43
|
},
|
|
41
|
-
getDefaultOptions:
|
|
44
|
+
getDefaultOptions: instance => {
|
|
42
45
|
return {
|
|
43
46
|
columnResizeMode: 'onEnd',
|
|
44
47
|
onColumnSizingChange: utils.makeStateUpdater('columnSizing', instance),
|
|
45
48
|
onColumnSizingInfoChange: utils.makeStateUpdater('columnSizingInfo', instance)
|
|
46
49
|
};
|
|
47
50
|
},
|
|
48
|
-
createColumn:
|
|
51
|
+
createColumn: (column, instance) => {
|
|
49
52
|
return {
|
|
50
|
-
getSize:
|
|
53
|
+
getSize: () => {
|
|
51
54
|
var _column$minSize, _ref, _column$maxSize;
|
|
52
55
|
|
|
53
|
-
|
|
56
|
+
const columnSize = instance.getState().columnSizing[column.id];
|
|
54
57
|
return Math.min(Math.max((_column$minSize = column.minSize) != null ? _column$minSize : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.size) != null ? _ref : defaultColumnSizing.size), (_column$maxSize = column.maxSize) != null ? _column$maxSize : defaultColumnSizing.maxSize);
|
|
55
58
|
},
|
|
56
|
-
getStart:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return d.id === column.id;
|
|
60
|
-
});
|
|
59
|
+
getStart: position => {
|
|
60
|
+
const columns = !position ? instance.getVisibleLeafColumns() : position === 'left' ? instance.getLeftVisibleLeafColumns() : instance.getRightVisibleLeafColumns();
|
|
61
|
+
const index = columns.findIndex(d => d.id === column.id);
|
|
61
62
|
|
|
62
63
|
if (index > 0) {
|
|
63
|
-
|
|
64
|
+
const prevSiblingColumn = columns[index - 1];
|
|
64
65
|
return prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize();
|
|
65
66
|
}
|
|
66
67
|
|
|
67
68
|
return 0;
|
|
68
69
|
},
|
|
69
|
-
resetSize:
|
|
70
|
-
instance.setColumnSizing(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
70
|
+
resetSize: () => {
|
|
71
|
+
instance.setColumnSizing(_ref2 => {
|
|
72
|
+
let {
|
|
73
|
+
[column.id]: _,
|
|
74
|
+
...rest
|
|
75
|
+
} = _ref2;
|
|
75
76
|
return rest;
|
|
76
77
|
});
|
|
77
78
|
},
|
|
78
|
-
getCanResize:
|
|
79
|
+
getCanResize: () => {
|
|
79
80
|
var _column$enableResizin, _instance$options$ena;
|
|
80
81
|
|
|
81
82
|
return ((_column$enableResizin = column.enableResizing) != null ? _column$enableResizin : true) && ((_instance$options$ena = instance.options.enableColumnResizing) != null ? _instance$options$ena : true);
|
|
82
83
|
},
|
|
83
|
-
getIsResizing:
|
|
84
|
+
getIsResizing: () => {
|
|
84
85
|
return instance.getState().columnSizingInfo.isResizingColumn === column.id;
|
|
85
86
|
}
|
|
86
87
|
};
|
|
87
88
|
},
|
|
88
|
-
createHeader:
|
|
89
|
+
createHeader: (header, instance) => {
|
|
89
90
|
return {
|
|
90
|
-
getSize:
|
|
91
|
-
|
|
91
|
+
getSize: () => {
|
|
92
|
+
let sum = 0;
|
|
92
93
|
|
|
93
|
-
|
|
94
|
+
const recurse = header => {
|
|
94
95
|
if (header.subHeaders.length) {
|
|
95
96
|
header.subHeaders.forEach(recurse);
|
|
96
97
|
} else {
|
|
@@ -103,18 +104,18 @@ var ColumnSizing = {
|
|
|
103
104
|
recurse(header);
|
|
104
105
|
return sum;
|
|
105
106
|
},
|
|
106
|
-
getStart:
|
|
107
|
+
getStart: () => {
|
|
107
108
|
if (header.index > 0) {
|
|
108
|
-
|
|
109
|
+
const prevSiblingHeader = header.headerGroup.headers[header.index - 1];
|
|
109
110
|
return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();
|
|
110
111
|
}
|
|
111
112
|
|
|
112
113
|
return 0;
|
|
113
114
|
},
|
|
114
|
-
getResizeHandler:
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
return
|
|
115
|
+
getResizeHandler: () => {
|
|
116
|
+
const column = instance.getColumn(header.column.id);
|
|
117
|
+
const canResize = column.getCanResize();
|
|
118
|
+
return e => {
|
|
118
119
|
if (!canResize) {
|
|
119
120
|
return;
|
|
120
121
|
}
|
|
@@ -127,70 +128,61 @@ var ColumnSizing = {
|
|
|
127
128
|
}
|
|
128
129
|
}
|
|
129
130
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}) : [[column.id, column.getSize()]];
|
|
134
|
-
var clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;
|
|
131
|
+
const startSize = column.getSize();
|
|
132
|
+
const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];
|
|
133
|
+
const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;
|
|
135
134
|
|
|
136
|
-
|
|
135
|
+
const updateOffset = (eventType, clientXPos) => {
|
|
137
136
|
if (typeof clientXPos !== 'number') {
|
|
138
137
|
return;
|
|
139
138
|
}
|
|
140
139
|
|
|
141
|
-
|
|
142
|
-
instance.setColumnSizingInfo(
|
|
140
|
+
let newColumnSizing = {};
|
|
141
|
+
instance.setColumnSizingInfo(old => {
|
|
143
142
|
var _old$startOffset, _old$startSize;
|
|
144
143
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
old.columnSizingStart.forEach(
|
|
148
|
-
|
|
149
|
-
headerSize = _ref3[1];
|
|
144
|
+
const deltaOffset = clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0);
|
|
145
|
+
const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);
|
|
146
|
+
old.columnSizingStart.forEach(_ref3 => {
|
|
147
|
+
let [columnId, headerSize] = _ref3;
|
|
150
148
|
newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;
|
|
151
149
|
});
|
|
152
|
-
return
|
|
153
|
-
deltaOffset
|
|
154
|
-
deltaPercentage
|
|
155
|
-
}
|
|
150
|
+
return { ...old,
|
|
151
|
+
deltaOffset,
|
|
152
|
+
deltaPercentage
|
|
153
|
+
};
|
|
156
154
|
});
|
|
157
155
|
|
|
158
156
|
if (instance.options.columnResizeMode === 'onChange' || eventType === 'end') {
|
|
159
|
-
instance.setColumnSizing(
|
|
160
|
-
|
|
161
|
-
});
|
|
157
|
+
instance.setColumnSizing(old => ({ ...old,
|
|
158
|
+
...newColumnSizing
|
|
159
|
+
}));
|
|
162
160
|
}
|
|
163
161
|
};
|
|
164
162
|
|
|
165
|
-
|
|
166
|
-
return updateOffset('move', clientXPos);
|
|
167
|
-
};
|
|
163
|
+
const onMove = clientXPos => updateOffset('move', clientXPos);
|
|
168
164
|
|
|
169
|
-
|
|
165
|
+
const onEnd = clientXPos => {
|
|
170
166
|
updateOffset('end', clientXPos);
|
|
171
|
-
instance.setColumnSizingInfo(
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
});
|
|
180
|
-
});
|
|
167
|
+
instance.setColumnSizingInfo(old => ({ ...old,
|
|
168
|
+
isResizingColumn: false,
|
|
169
|
+
startOffset: null,
|
|
170
|
+
startSize: null,
|
|
171
|
+
deltaOffset: null,
|
|
172
|
+
deltaPercentage: null,
|
|
173
|
+
columnSizingStart: []
|
|
174
|
+
}));
|
|
181
175
|
};
|
|
182
176
|
|
|
183
|
-
|
|
184
|
-
moveHandler:
|
|
185
|
-
|
|
186
|
-
},
|
|
187
|
-
upHandler: function upHandler(e) {
|
|
177
|
+
const mouseEvents = {
|
|
178
|
+
moveHandler: e => onMove(e.clientX),
|
|
179
|
+
upHandler: e => {
|
|
188
180
|
document.removeEventListener('mousemove', mouseEvents.moveHandler);
|
|
189
181
|
document.removeEventListener('mouseup', mouseEvents.upHandler);
|
|
190
182
|
onEnd(e.clientX);
|
|
191
183
|
}
|
|
192
184
|
};
|
|
193
|
-
|
|
185
|
+
const passiveIfSupported = passiveEventSupported() ? {
|
|
194
186
|
passive: false
|
|
195
187
|
} : false;
|
|
196
188
|
|
|
@@ -199,76 +191,70 @@ var ColumnSizing = {
|
|
|
199
191
|
document.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);
|
|
200
192
|
}
|
|
201
193
|
|
|
202
|
-
instance.setColumnSizingInfo(
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
});
|
|
211
|
-
});
|
|
194
|
+
instance.setColumnSizingInfo(old => ({ ...old,
|
|
195
|
+
startOffset: clientX,
|
|
196
|
+
startSize,
|
|
197
|
+
deltaOffset: 0,
|
|
198
|
+
deltaPercentage: 0,
|
|
199
|
+
columnSizingStart,
|
|
200
|
+
isResizingColumn: column.id
|
|
201
|
+
}));
|
|
212
202
|
};
|
|
213
203
|
}
|
|
214
204
|
};
|
|
215
205
|
},
|
|
216
|
-
createInstance:
|
|
206
|
+
createInstance: instance => {
|
|
217
207
|
return {
|
|
218
|
-
setColumnSizing:
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
setColumnSizingInfo: function setColumnSizingInfo(updater) {
|
|
222
|
-
return instance.options.onColumnSizingInfoChange == null ? void 0 : instance.options.onColumnSizingInfoChange(updater);
|
|
223
|
-
},
|
|
224
|
-
resetColumnSizing: function resetColumnSizing() {
|
|
208
|
+
setColumnSizing: updater => instance.options.onColumnSizingChange == null ? void 0 : instance.options.onColumnSizingChange(updater),
|
|
209
|
+
setColumnSizingInfo: updater => instance.options.onColumnSizingInfoChange == null ? void 0 : instance.options.onColumnSizingInfoChange(updater),
|
|
210
|
+
resetColumnSizing: defaultState => {
|
|
225
211
|
var _instance$initialStat;
|
|
226
212
|
|
|
227
|
-
instance.setColumnSizing((_instance$initialStat = instance.initialState.columnSizing) != null ? _instance$initialStat : {});
|
|
213
|
+
instance.setColumnSizing(defaultState ? {} : (_instance$initialStat = instance.initialState.columnSizing) != null ? _instance$initialStat : {});
|
|
228
214
|
},
|
|
229
|
-
resetHeaderSizeInfo:
|
|
215
|
+
resetHeaderSizeInfo: defaultState => {
|
|
230
216
|
var _instance$initialStat2;
|
|
231
217
|
|
|
232
|
-
instance.setColumnSizingInfo((_instance$initialStat2 = instance.initialState.columnSizingInfo) != null ? _instance$initialStat2 :
|
|
218
|
+
instance.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_instance$initialStat2 = instance.initialState.columnSizingInfo) != null ? _instance$initialStat2 : getDefaultColumnSizingInfoState());
|
|
233
219
|
},
|
|
234
|
-
getTotalSize:
|
|
220
|
+
getTotalSize: () => {
|
|
235
221
|
var _instance$getHeaderGr, _instance$getHeaderGr2;
|
|
236
222
|
|
|
237
|
-
return (_instance$getHeaderGr = (_instance$getHeaderGr2 = instance.getHeaderGroups()[0]) == null ? void 0 : _instance$getHeaderGr2.headers.reduce(
|
|
223
|
+
return (_instance$getHeaderGr = (_instance$getHeaderGr2 = instance.getHeaderGroups()[0]) == null ? void 0 : _instance$getHeaderGr2.headers.reduce((sum, header) => {
|
|
238
224
|
return sum + header.column.getSize();
|
|
239
225
|
}, 0)) != null ? _instance$getHeaderGr : 0;
|
|
240
226
|
},
|
|
241
|
-
getLeftTotalSize:
|
|
227
|
+
getLeftTotalSize: () => {
|
|
242
228
|
var _instance$getLeftHead, _instance$getLeftHead2;
|
|
243
229
|
|
|
244
|
-
return (_instance$getLeftHead = (_instance$getLeftHead2 = instance.getLeftHeaderGroups()[0]) == null ? void 0 : _instance$getLeftHead2.headers.reduce(
|
|
230
|
+
return (_instance$getLeftHead = (_instance$getLeftHead2 = instance.getLeftHeaderGroups()[0]) == null ? void 0 : _instance$getLeftHead2.headers.reduce((sum, header) => {
|
|
245
231
|
return sum + header.column.getSize();
|
|
246
232
|
}, 0)) != null ? _instance$getLeftHead : 0;
|
|
247
233
|
},
|
|
248
|
-
getCenterTotalSize:
|
|
234
|
+
getCenterTotalSize: () => {
|
|
249
235
|
var _instance$getCenterHe, _instance$getCenterHe2;
|
|
250
236
|
|
|
251
|
-
return (_instance$getCenterHe = (_instance$getCenterHe2 = instance.getCenterHeaderGroups()[0]) == null ? void 0 : _instance$getCenterHe2.headers.reduce(
|
|
237
|
+
return (_instance$getCenterHe = (_instance$getCenterHe2 = instance.getCenterHeaderGroups()[0]) == null ? void 0 : _instance$getCenterHe2.headers.reduce((sum, header) => {
|
|
252
238
|
return sum + header.column.getSize();
|
|
253
239
|
}, 0)) != null ? _instance$getCenterHe : 0;
|
|
254
240
|
},
|
|
255
|
-
getRightTotalSize:
|
|
241
|
+
getRightTotalSize: () => {
|
|
256
242
|
var _instance$getRightHea, _instance$getRightHea2;
|
|
257
243
|
|
|
258
|
-
return (_instance$getRightHea = (_instance$getRightHea2 = instance.getRightHeaderGroups()[0]) == null ? void 0 : _instance$getRightHea2.headers.reduce(
|
|
244
|
+
return (_instance$getRightHea = (_instance$getRightHea2 = instance.getRightHeaderGroups()[0]) == null ? void 0 : _instance$getRightHea2.headers.reduce((sum, header) => {
|
|
259
245
|
return sum + header.column.getSize();
|
|
260
246
|
}, 0)) != null ? _instance$getRightHea : 0;
|
|
261
247
|
}
|
|
262
248
|
};
|
|
263
249
|
}
|
|
264
250
|
};
|
|
265
|
-
|
|
251
|
+
let passiveSupported = null;
|
|
266
252
|
function passiveEventSupported() {
|
|
267
253
|
if (typeof passiveSupported === 'boolean') return passiveSupported;
|
|
268
|
-
|
|
254
|
+
let supported = false;
|
|
269
255
|
|
|
270
256
|
try {
|
|
271
|
-
|
|
257
|
+
const options = {
|
|
272
258
|
get passive() {
|
|
273
259
|
supported = true;
|
|
274
260
|
return false;
|
|
@@ -276,7 +262,7 @@ function passiveEventSupported() {
|
|
|
276
262
|
|
|
277
263
|
};
|
|
278
264
|
|
|
279
|
-
|
|
265
|
+
const noop = () => {};
|
|
280
266
|
|
|
281
267
|
window.addEventListener('test', noop, options);
|
|
282
268
|
window.removeEventListener('test', noop);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import {\n Column,\n Header,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Updater,\n TableFeature,\n} from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { ColumnPinningPosition } from './Pinning'\n\n//\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizingState\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnSizingState = 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 ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingInstance<TGenerics extends TableGenerics> = {\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: () => void\n resetHeaderSizeInfo: () => void\n getTotalSize: () => number\n getLeftTotalSize: () => number\n getCenterTotalSize: () => number\n getRightTotalSize: () => number\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n size?: number\n minSize?: number\n maxSize?: number\n}\n\nexport type ColumnSizingColumn<TGenerics extends TableGenerics> = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader<TGenerics extends TableGenerics> = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getResizeHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n}\n\nexport const ColumnSizing: TableFeature = {\n getDefaultColumn: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (state): 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 ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', instance),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', instance),\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingColumn<TGenerics> => {\n return {\n getSize: () => {\n const columnSize = instance.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.minSize ?? defaultColumnSizing.minSize,\n columnSize ?? column.size ?? defaultColumnSizing.size\n ),\n column.maxSize ?? defaultColumnSizing.maxSize\n )\n },\n getStart: position => {\n const columns = !position\n ? instance.getVisibleLeafColumns()\n : position === 'left'\n ? instance.getLeftVisibleLeafColumns()\n : instance.getRightVisibleLeafColumns()\n\n const index = columns.findIndex(d => d.id === column.id)\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1]\n\n return (\n prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize()\n )\n }\n\n return 0\n },\n resetSize: () => {\n instance.setColumnSizing(({ [column.id]: _, ...rest }) => {\n return rest\n })\n },\n getCanResize: () => {\n return (\n (column.enableResizing ?? true) &&\n (instance.options.enableColumnResizing ?? true)\n )\n },\n getIsResizing: () => {\n return (\n instance.getState().columnSizingInfo.isResizingColumn === column.id\n )\n },\n }\n },\n\n createHeader: <TGenerics extends TableGenerics>(\n header: Header<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingHeader<TGenerics> => {\n return {\n getSize: () => {\n let sum = 0\n\n const recurse = (header: Header<TGenerics>) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getSize() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1]\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize()\n }\n\n return 0\n },\n getResizeHandler: () => {\n const column = instance.getColumn(header.column.id)\n const canResize = column.getCanResize()\n\n return (e: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(e as any).persist?.()\n\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 startSize = column.getSize()\n\n const columnSizingStart: [string, number][] = header\n ? header\n .getLeafHeaders()\n .map(d => [d.column.id, d.column.getSize()])\n : [[column.id, column.getSize()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0].clientX)\n : (e as MouseEvent).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: ColumnSizingState = {}\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, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerSize + headerSize * 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) =>\n 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 } 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 }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingInstance<TGenerics> => {\n return {\n setColumnSizing: updater =>\n instance.options.onColumnSizingChange?.(updater),\n setColumnSizingInfo: updater =>\n instance.options.onColumnSizingInfoChange?.(updater),\n resetColumnSizing: () => {\n instance.setColumnSizing(instance.initialState.columnSizing ?? {})\n },\n resetHeaderSizeInfo: () => {\n instance.setColumnSizingInfo(\n instance.initialState.columnSizingInfo ?? {}\n )\n },\n getTotalSize: () =>\n instance.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.column.getSize()\n }, 0) ?? 0,\n getLeftTotalSize: () =>\n instance.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.column.getSize()\n }, 0) ?? 0,\n getCenterTotalSize: () =>\n instance.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.column.getSize()\n }, 0) ?? 0,\n getRightTotalSize: () =>\n instance.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.column.getSize()\n }, 0) ?? 0,\n }\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(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","ColumnSizing","getDefaultColumn","getInitialState","state","_extends","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","instance","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","createColumn","column","getSize","columnSize","getState","id","Math","min","max","getStart","position","columns","getVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","index","findIndex","d","prevSiblingColumn","resetSize","setColumnSizing","rest","_objectWithoutPropertiesLoose","_toPropertyKey","getCanResize","enableResizing","options","enableColumnResizing","getIsResizing","createHeader","header","sum","recurse","subHeaders","length","forEach","prevSiblingHeader","headerGroup","headers","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","getLeafHeaders","map","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","setColumnSizingInfo","old","columnId","headerSize","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","passiveIfSupported","passiveEventSupported","passive","addEventListener","createInstance","updater","resetColumnSizing","initialState","resetHeaderSizeInfo","getTotalSize","getHeaderGroups","reduce","getLeftTotalSize","getLeftHeaderGroups","getCenterTotalSize","getCenterHeaderGroups","getRightTotalSize","getRightHeaderGroups","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import {\n Column,\n Header,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Updater,\n TableFeature,\n} from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { ColumnPinningPosition } from './Pinning'\n\n//\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizingState\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnSizingState = 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 ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingInstance<TGenerics extends TableGenerics> = {\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: (defaultState?: boolean) => void\n resetHeaderSizeInfo: (defaultState?: boolean) => void\n getTotalSize: () => number\n getLeftTotalSize: () => number\n getCenterTotalSize: () => number\n getRightTotalSize: () => number\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n size?: number\n minSize?: number\n maxSize?: number\n}\n\nexport type ColumnSizingColumn<TGenerics extends TableGenerics> = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader<TGenerics extends TableGenerics> = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getResizeHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n}\n\nconst getDefaultColumnSizingInfoState = (): ColumnSizingInfoState => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n})\n\nexport const ColumnSizing: TableFeature = {\n getDefaultColumn: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (state): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', instance),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', instance),\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingColumn<TGenerics> => {\n return {\n getSize: () => {\n const columnSize = instance.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.minSize ?? defaultColumnSizing.minSize,\n columnSize ?? column.size ?? defaultColumnSizing.size\n ),\n column.maxSize ?? defaultColumnSizing.maxSize\n )\n },\n getStart: position => {\n const columns = !position\n ? instance.getVisibleLeafColumns()\n : position === 'left'\n ? instance.getLeftVisibleLeafColumns()\n : instance.getRightVisibleLeafColumns()\n\n const index = columns.findIndex(d => d.id === column.id)\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1]!\n\n return (\n prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize()\n )\n }\n\n return 0\n },\n resetSize: () => {\n instance.setColumnSizing(({ [column.id]: _, ...rest }) => {\n return rest\n })\n },\n getCanResize: () => {\n return (\n (column.enableResizing ?? true) &&\n (instance.options.enableColumnResizing ?? true)\n )\n },\n getIsResizing: () => {\n return (\n instance.getState().columnSizingInfo.isResizingColumn === column.id\n )\n },\n }\n },\n\n createHeader: <TGenerics extends TableGenerics>(\n header: Header<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingHeader<TGenerics> => {\n return {\n getSize: () => {\n let sum = 0\n\n const recurse = (header: Header<TGenerics>) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getSize() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader =\n header.headerGroup.headers[header.index - 1]!\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize()\n }\n\n return 0\n },\n getResizeHandler: () => {\n const column = instance.getColumn(header.column.id)\n const canResize = column.getCanResize()\n\n return (e: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(e as any).persist?.()\n\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 startSize = column.getSize()\n\n const columnSizingStart: [string, number][] = header\n ? header\n .getLeafHeaders()\n .map(d => [d.column.id, d.column.getSize()])\n : [[column.id, column.getSize()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0]!.clientX)\n : (e as MouseEvent).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: ColumnSizingState = {}\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, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerSize + headerSize * 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) =>\n 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 } 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 }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingInstance<TGenerics> => {\n return {\n setColumnSizing: updater =>\n instance.options.onColumnSizingChange?.(updater),\n setColumnSizingInfo: updater =>\n instance.options.onColumnSizingInfoChange?.(updater),\n resetColumnSizing: defaultState => {\n instance.setColumnSizing(\n defaultState ? {} : instance.initialState.columnSizing ?? {}\n )\n },\n resetHeaderSizeInfo: defaultState => {\n instance.setColumnSizingInfo(\n defaultState\n ? getDefaultColumnSizingInfoState()\n : instance.initialState.columnSizingInfo ??\n getDefaultColumnSizingInfoState()\n )\n },\n getTotalSize: () =>\n instance.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.column.getSize()\n }, 0) ?? 0,\n getLeftTotalSize: () =>\n instance.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.column.getSize()\n }, 0) ?? 0,\n getCenterTotalSize: () =>\n instance.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.column.getSize()\n }, 0) ?? 0,\n getRightTotalSize: () =>\n instance.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.column.getSize()\n }, 0) ?? 0,\n }\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(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","getDefaultColumnSizingInfoState","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","ColumnSizing","getDefaultColumn","getInitialState","state","columnSizing","columnSizingInfo","getDefaultOptions","instance","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","createColumn","column","getSize","columnSize","getState","id","Math","min","max","getStart","position","columns","getVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","index","findIndex","d","prevSiblingColumn","resetSize","setColumnSizing","_","rest","getCanResize","enableResizing","options","enableColumnResizing","getIsResizing","createHeader","header","sum","recurse","subHeaders","length","forEach","prevSiblingHeader","headerGroup","headers","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","getLeafHeaders","map","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","setColumnSizingInfo","old","columnId","headerSize","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","passiveIfSupported","passiveEventSupported","passive","addEventListener","createInstance","updater","resetColumnSizing","defaultState","initialState","resetHeaderSizeInfo","getTotalSize","getHeaderGroups","reduce","getLeftTotalSize","getLeftHeaderGroups","getCenterTotalSize","getCenterHeaderGroups","getRightTotalSize","getRightHeaderGroups","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
|