@tanstack/table-core 9.0.0-beta.26 → 9.0.0-beta.28

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 (70) hide show
  1. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +6 -3
  2. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +6 -3
  3. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +41 -12
  4. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  5. package/dist/features/column-faceting/columnFacetingFeature.utils.js +42 -12
  6. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  7. package/dist/features/column-faceting/createFacetedRowModel.cjs +1 -0
  8. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  9. package/dist/features/column-faceting/createFacetedRowModel.js +1 -0
  10. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  11. package/dist/features/column-faceting/createFacetedUniqueValues.cjs +2 -2
  12. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  13. package/dist/features/column-faceting/createFacetedUniqueValues.js +2 -2
  14. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  15. package/dist/features/column-ordering/columnOrderingFeature.cjs +2 -1
  16. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  17. package/dist/features/column-ordering/columnOrderingFeature.js +2 -1
  18. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  19. package/dist/features/column-pinning/columnPinningFeature.cjs +24 -12
  20. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  21. package/dist/features/column-pinning/columnPinningFeature.js +24 -12
  22. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  23. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +62 -24
  24. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  25. package/dist/features/column-resizing/columnResizingFeature.utils.js +62 -24
  26. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  27. package/dist/features/column-sizing/columnSizingFeature.cjs +35 -45
  28. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  29. package/dist/features/column-sizing/columnSizingFeature.js +36 -46
  30. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  31. package/dist/features/column-sizing/columnSizingFeature.types.d.cts +38 -1
  32. package/dist/features/column-sizing/columnSizingFeature.types.d.ts +38 -1
  33. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +49 -10
  34. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  35. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +18 -4
  36. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +18 -4
  37. package/dist/features/column-sizing/columnSizingFeature.utils.js +49 -11
  38. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  39. package/dist/features/column-visibility/columnVisibilityFeature.cjs +8 -4
  40. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  41. package/dist/features/column-visibility/columnVisibilityFeature.js +8 -4
  42. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  43. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +3 -2
  44. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  45. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +3 -2
  46. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  47. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +1 -1
  48. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  49. package/dist/features/row-selection/rowSelectionFeature.utils.js +1 -1
  50. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  51. package/dist/index.d.cts +2 -2
  52. package/dist/index.d.ts +2 -2
  53. package/dist/static-functions.cjs +1 -0
  54. package/dist/static-functions.d.cts +2 -2
  55. package/dist/static-functions.d.ts +2 -2
  56. package/dist/static-functions.js +2 -2
  57. package/package.json +1 -1
  58. package/src/features/column-faceting/columnFacetingFeature.types.ts +6 -3
  59. package/src/features/column-faceting/columnFacetingFeature.utils.ts +53 -18
  60. package/src/features/column-faceting/createFacetedRowModel.ts +4 -0
  61. package/src/features/column-faceting/createFacetedUniqueValues.ts +5 -8
  62. package/src/features/column-ordering/columnOrderingFeature.ts +1 -0
  63. package/src/features/column-pinning/columnPinningFeature.ts +12 -0
  64. package/src/features/column-resizing/columnResizingFeature.utils.ts +96 -44
  65. package/src/features/column-sizing/columnSizingFeature.ts +18 -18
  66. package/src/features/column-sizing/columnSizingFeature.types.ts +39 -0
  67. package/src/features/column-sizing/columnSizingFeature.utils.ts +94 -39
  68. package/src/features/column-visibility/columnVisibilityFeature.ts +4 -0
  69. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +4 -2
  70. package/src/features/row-selection/rowSelectionFeature.utils.ts +5 -1
@@ -27,34 +27,8 @@ const columnSizingFeature = {
27
27
  return [table.options.columns, (_table$atoms$columnSi = table.atoms.columnSizing) === null || _table$atoms$columnSi === void 0 || (_table$atoms$columnSi = _table$atoms$columnSi.get()) === null || _table$atoms$columnSi === void 0 ? void 0 : _table$atoms$columnSi[column.id]];
28
28
  }
29
29
  },
30
- column_getStart: {
31
- fn: (column, position) => require_columnSizingFeature_utils.column_getStart(column, position),
32
- memoDeps: (column, position) => {
33
- var _table$atoms$columnSi2, _table$atoms$columnOr, _table$atoms$columnPi, _table$atoms$columnVi;
34
- return [
35
- position,
36
- table.options.columns,
37
- (_table$atoms$columnSi2 = table.atoms.columnSizing) === null || _table$atoms$columnSi2 === void 0 ? void 0 : _table$atoms$columnSi2.get(),
38
- (_table$atoms$columnOr = table.atoms.columnOrder) === null || _table$atoms$columnOr === void 0 ? void 0 : _table$atoms$columnOr.get(),
39
- (_table$atoms$columnPi = table.atoms.columnPinning) === null || _table$atoms$columnPi === void 0 ? void 0 : _table$atoms$columnPi.get(),
40
- (_table$atoms$columnVi = table.atoms.columnVisibility) === null || _table$atoms$columnVi === void 0 ? void 0 : _table$atoms$columnVi.get()
41
- ];
42
- }
43
- },
44
- column_getAfter: {
45
- fn: (column, position) => require_columnSizingFeature_utils.column_getAfter(column, position),
46
- memoDeps: (column, position) => {
47
- var _table$atoms$columnSi3, _table$atoms$columnOr2, _table$atoms$columnPi2, _table$atoms$columnVi2;
48
- return [
49
- position,
50
- table.options.columns,
51
- (_table$atoms$columnSi3 = table.atoms.columnSizing) === null || _table$atoms$columnSi3 === void 0 ? void 0 : _table$atoms$columnSi3.get(),
52
- (_table$atoms$columnOr2 = table.atoms.columnOrder) === null || _table$atoms$columnOr2 === void 0 ? void 0 : _table$atoms$columnOr2.get(),
53
- (_table$atoms$columnPi2 = table.atoms.columnPinning) === null || _table$atoms$columnPi2 === void 0 ? void 0 : _table$atoms$columnPi2.get(),
54
- (_table$atoms$columnVi2 = table.atoms.columnVisibility) === null || _table$atoms$columnVi2 === void 0 ? void 0 : _table$atoms$columnVi2.get()
55
- ];
56
- }
57
- },
30
+ column_getStart: { fn: (column, position) => require_columnSizingFeature_utils.column_getStart(column, position) },
31
+ column_getAfter: { fn: (column, position) => require_columnSizingFeature_utils.column_getAfter(column, position) },
58
32
  column_resetSize: { fn: (column) => require_columnSizingFeature_utils.column_resetSize(column) }
59
33
  });
60
34
  },
@@ -63,21 +37,22 @@ const columnSizingFeature = {
63
37
  header_getSize: {
64
38
  fn: (header) => require_columnSizingFeature_utils.header_getSize(header),
65
39
  memoDeps: (header) => {
66
- var _table$atoms$columnSi4, _table$atoms$columnSi5;
67
- return [table.options.columns, header.column.columns.length > 0 ? (_table$atoms$columnSi4 = table.atoms.columnSizing) === null || _table$atoms$columnSi4 === void 0 ? void 0 : _table$atoms$columnSi4.get() : (_table$atoms$columnSi5 = table.atoms.columnSizing) === null || _table$atoms$columnSi5 === void 0 || (_table$atoms$columnSi5 = _table$atoms$columnSi5.get()) === null || _table$atoms$columnSi5 === void 0 ? void 0 : _table$atoms$columnSi5[header.column.id]];
40
+ var _table$atoms$columnSi2, _table$atoms$columnSi3;
41
+ return [table.options.columns, header.column.columns.length > 0 ? (_table$atoms$columnSi2 = table.atoms.columnSizing) === null || _table$atoms$columnSi2 === void 0 ? void 0 : _table$atoms$columnSi2.get() : (_table$atoms$columnSi3 = table.atoms.columnSizing) === null || _table$atoms$columnSi3 === void 0 || (_table$atoms$columnSi3 = _table$atoms$columnSi3.get()) === null || _table$atoms$columnSi3 === void 0 ? void 0 : _table$atoms$columnSi3[header.column.id]];
68
42
  }
69
43
  },
70
44
  header_getStart: {
71
45
  fn: (header) => require_columnSizingFeature_utils.header_getStart(header),
72
- memoDeps: (header, position) => {
73
- var _table$atoms$columnSi6, _table$atoms$columnOr3, _table$atoms$columnPi3, _table$atoms$columnVi3;
46
+ memoDeps: () => {
47
+ var _table$atoms$columnSi4, _table$atoms$columnOr, _table$atoms$columnPi, _table$atoms$columnVi, _table$atoms$grouping;
74
48
  return [
75
- position,
76
49
  table.options.columns,
77
- (_table$atoms$columnSi6 = table.atoms.columnSizing) === null || _table$atoms$columnSi6 === void 0 ? void 0 : _table$atoms$columnSi6.get(),
78
- (_table$atoms$columnOr3 = table.atoms.columnOrder) === null || _table$atoms$columnOr3 === void 0 ? void 0 : _table$atoms$columnOr3.get(),
79
- (_table$atoms$columnPi3 = table.atoms.columnPinning) === null || _table$atoms$columnPi3 === void 0 ? void 0 : _table$atoms$columnPi3.get(),
80
- (_table$atoms$columnVi3 = table.atoms.columnVisibility) === null || _table$atoms$columnVi3 === void 0 ? void 0 : _table$atoms$columnVi3.get()
50
+ (_table$atoms$columnSi4 = table.atoms.columnSizing) === null || _table$atoms$columnSi4 === void 0 ? void 0 : _table$atoms$columnSi4.get(),
51
+ (_table$atoms$columnOr = table.atoms.columnOrder) === null || _table$atoms$columnOr === void 0 ? void 0 : _table$atoms$columnOr.get(),
52
+ (_table$atoms$columnPi = table.atoms.columnPinning) === null || _table$atoms$columnPi === void 0 ? void 0 : _table$atoms$columnPi.get(),
53
+ (_table$atoms$columnVi = table.atoms.columnVisibility) === null || _table$atoms$columnVi === void 0 ? void 0 : _table$atoms$columnVi.get(),
54
+ (_table$atoms$grouping = table.atoms.grouping) === null || _table$atoms$grouping === void 0 ? void 0 : _table$atoms$grouping.get(),
55
+ table.options.groupedColumnMode
81
56
  ];
82
57
  }
83
58
  }
@@ -85,34 +60,49 @@ const columnSizingFeature = {
85
60
  },
86
61
  constructTableAPIs: (table) => {
87
62
  require_utils.assignTableAPIs("columnSizingFeature", table, {
63
+ table_getColumnOffsets: {
64
+ fn: () => require_columnSizingFeature_utils.table_getColumnOffsets(table),
65
+ memoDeps: () => {
66
+ var _table$atoms$columnSi5, _table$atoms$columnOr2, _table$atoms$columnPi2, _table$atoms$columnVi2, _table$atoms$grouping2;
67
+ return [
68
+ table.options.columns,
69
+ (_table$atoms$columnSi5 = table.atoms.columnSizing) === null || _table$atoms$columnSi5 === void 0 ? void 0 : _table$atoms$columnSi5.get(),
70
+ (_table$atoms$columnOr2 = table.atoms.columnOrder) === null || _table$atoms$columnOr2 === void 0 ? void 0 : _table$atoms$columnOr2.get(),
71
+ (_table$atoms$columnPi2 = table.atoms.columnPinning) === null || _table$atoms$columnPi2 === void 0 ? void 0 : _table$atoms$columnPi2.get(),
72
+ (_table$atoms$columnVi2 = table.atoms.columnVisibility) === null || _table$atoms$columnVi2 === void 0 ? void 0 : _table$atoms$columnVi2.get(),
73
+ (_table$atoms$grouping2 = table.atoms.grouping) === null || _table$atoms$grouping2 === void 0 ? void 0 : _table$atoms$grouping2.get(),
74
+ table.options.groupedColumnMode
75
+ ];
76
+ }
77
+ },
88
78
  table_setColumnSizing: { fn: (updater) => require_columnSizingFeature_utils.table_setColumnSizing(table, updater) },
89
79
  table_resetColumnSizing: { fn: (defaultState) => require_columnSizingFeature_utils.table_resetColumnSizing(table, defaultState) },
90
80
  table_getTotalSize: {
91
81
  fn: () => require_columnSizingFeature_utils.table_getTotalSize(table),
92
82
  memoDeps: () => {
93
- var _table$atoms$columnSi7;
94
- return [(_table$atoms$columnSi7 = table.atoms.columnSizing) === null || _table$atoms$columnSi7 === void 0 ? void 0 : _table$atoms$columnSi7.get(), table.getHeaderGroups()];
83
+ var _table$atoms$columnSi6;
84
+ return [(_table$atoms$columnSi6 = table.atoms.columnSizing) === null || _table$atoms$columnSi6 === void 0 ? void 0 : _table$atoms$columnSi6.get(), table.getHeaderGroups()];
95
85
  }
96
86
  },
97
87
  table_getLeftTotalSize: {
98
88
  fn: () => require_columnSizingFeature_utils.table_getLeftTotalSize(table),
99
89
  memoDeps: () => {
100
- var _table$atoms$columnSi8;
101
- return [(_table$atoms$columnSi8 = table.atoms.columnSizing) === null || _table$atoms$columnSi8 === void 0 ? void 0 : _table$atoms$columnSi8.get(), table.getHeaderGroups()];
90
+ var _table$atoms$columnSi7;
91
+ return [(_table$atoms$columnSi7 = table.atoms.columnSizing) === null || _table$atoms$columnSi7 === void 0 ? void 0 : _table$atoms$columnSi7.get(), table.getHeaderGroups()];
102
92
  }
103
93
  },
104
94
  table_getCenterTotalSize: {
105
95
  fn: () => require_columnSizingFeature_utils.table_getCenterTotalSize(table),
106
96
  memoDeps: () => {
107
- var _table$atoms$columnSi9;
108
- return [(_table$atoms$columnSi9 = table.atoms.columnSizing) === null || _table$atoms$columnSi9 === void 0 ? void 0 : _table$atoms$columnSi9.get(), table.getHeaderGroups()];
97
+ var _table$atoms$columnSi8;
98
+ return [(_table$atoms$columnSi8 = table.atoms.columnSizing) === null || _table$atoms$columnSi8 === void 0 ? void 0 : _table$atoms$columnSi8.get(), table.getHeaderGroups()];
109
99
  }
110
100
  },
111
101
  table_getRightTotalSize: {
112
102
  fn: () => require_columnSizingFeature_utils.table_getRightTotalSize(table),
113
103
  memoDeps: () => {
114
- var _table$atoms$columnSi10;
115
- return [(_table$atoms$columnSi10 = table.atoms.columnSizing) === null || _table$atoms$columnSi10 === void 0 ? void 0 : _table$atoms$columnSi10.get(), table.getHeaderGroups()];
104
+ var _table$atoms$columnSi9;
105
+ return [(_table$atoms$columnSi9 = table.atoms.columnSizing) === null || _table$atoms$columnSi9 === void 0 ? void 0 : _table$atoms$columnSi9.get(), table.getHeaderGroups()];
116
106
  }
117
107
  }
118
108
  });
@@ -1 +1 @@
1
- {"version":3,"file":"columnSizingFeature.cjs","names":["getDefaultColumnSizingState","getDefaultColumnSizingColumnDef","makeStateUpdater","column_getSize","column_getStart","column_getAfter","column_resetSize","header_getSize","header_getStart","table_setColumnSizing","table_resetColumnSizing","table_getTotalSize","table_getLeftTotalSize","table_getCenterTotalSize","table_getRightTotalSize"],"sources":["../../../src/features/column-sizing/columnSizingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getAfter,\n column_getSize,\n column_getStart,\n column_resetSize,\n getDefaultColumnSizingColumnDef,\n getDefaultColumnSizingState,\n header_getSize,\n header_getStart,\n table_getCenterTotalSize,\n table_getLeftTotalSize,\n table_getRightTotalSize,\n table_getTotalSize,\n table_resetColumnSizing,\n table_setColumnSizing,\n} from './columnSizingFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds column sizing state, defaults, and size measurement APIs.\n */\nexport const columnSizingFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n columnSizing: getDefaultColumnSizingState(),\n ...initialState,\n }\n },\n\n getDefaultColumnDef: () => {\n return getDefaultColumnSizingColumnDef()\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnSizingFeature', prototype, table, {\n column_getSize: {\n fn: (column) => column_getSize(column),\n memoDeps: (column) => [\n table.options.columns,\n table.atoms.columnSizing?.get()?.[column.id], // just this column's size state\n ],\n },\n column_getStart: {\n fn: (column, position) => column_getStart(column, position),\n memoDeps: (column, position) => [\n position,\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n ],\n },\n column_getAfter: {\n fn: (column, position) => column_getAfter(column, position),\n memoDeps: (column, position) => [\n position,\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n ],\n },\n column_resetSize: {\n fn: (column) => column_resetSize(column),\n },\n })\n },\n\n assignHeaderPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnSizingFeature', prototype, table, {\n header_getSize: {\n fn: (header) => header_getSize(header),\n memoDeps: (header) => [\n table.options.columns,\n header.column.columns.length > 0\n ? table.atoms.columnSizing?.get() // must be all columns (sum child columns)\n : table.atoms.columnSizing?.get()?.[header.column.id], // can just check it's associated column size state\n ],\n },\n header_getStart: {\n fn: (header) => header_getStart(header),\n memoDeps: (header, position) => [\n position,\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n ],\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnSizingFeature', table, {\n table_setColumnSizing: {\n fn: (updater) => table_setColumnSizing(table, updater),\n },\n table_resetColumnSizing: {\n fn: (defaultState) => table_resetColumnSizing(table, defaultState),\n },\n table_getTotalSize: {\n fn: () => table_getTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getLeftTotalSize: {\n fn: () => table_getLeftTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getCenterTotalSize: {\n fn: () => table_getCenterTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getRightTotalSize: {\n fn: () => table_getRightTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n })\n },\n}\n"],"mappings":";;;;;;;AA0BA,MAAa,sBAAoC;CAC/C,kBAAkB,iBAAiB;EACjC,OAAO;GACL,cAAcA,8DAA4B;GAC1C,GAAG;EACL;CACF;CAEA,2BAA2B;EACzB,OAAOC,kEAAgC;CACzC;CAEA,yBAAyB,UAAU;EACjC,OAAO,EACL,sBAAsBC,+BAAiB,gBAAgB,KAAK,EAC9D;CACF;CAEA,wBAAwB,WAAW,UAAU;EAC3C,kCAAoB,uBAAuB,WAAW,OAAO;GAC3D,gBAAgB;IACd,KAAK,WAAWC,iDAAe,MAAM;IACrC,WAAW,WAAW;;aACpB,MAAM,QAAQ,kCACd,MAAM,MAAM,6GAAc,IAAI,iFAAI,OAAO,GAC3C;;GACF;GACA,iBAAiB;IACf,KAAK,QAAQ,aAAaC,kDAAgB,QAAQ,QAAQ;IAC1D,WAAW,QAAQ,aAAa;;;MAC9B;MACA,MAAM,QAAQ;gCACd,MAAM,MAAM,8FAAc,IAAI;+BAC9B,MAAM,MAAM,2FAAa,IAAI;+BAC7B,MAAM,MAAM,6FAAe,IAAI;+BAC/B,MAAM,MAAM,gGAAkB,IAAI;KACpC;;GACF;GACA,iBAAiB;IACf,KAAK,QAAQ,aAAaC,kDAAgB,QAAQ,QAAQ;IAC1D,WAAW,QAAQ,aAAa;;;MAC9B;MACA,MAAM,QAAQ;gCACd,MAAM,MAAM,8FAAc,IAAI;gCAC9B,MAAM,MAAM,6FAAa,IAAI;gCAC7B,MAAM,MAAM,+FAAe,IAAI;gCAC/B,MAAM,MAAM,kGAAkB,IAAI;KACpC;;GACF;GACA,kBAAkB,EAChB,KAAK,WAAWC,mDAAiB,MAAM,EACzC;EACF,CAAC;CACH;CAEA,wBAAwB,WAAW,UAAU;EAC3C,kCAAoB,uBAAuB,WAAW,OAAO;GAC3D,gBAAgB;IACd,KAAK,WAAWC,iDAAe,MAAM;IACrC,WAAW,WAAW;;aACpB,MAAM,QAAQ,SACd,OAAO,OAAO,QAAQ,SAAS,8BAC3B,MAAM,MAAM,8FAAc,IAAI,8BAC9B,MAAM,MAAM,gHAAc,IAAI,mFAAI,OAAO,OAAO,GACtD;;GACF;GACA,iBAAiB;IACf,KAAK,WAAWC,kDAAgB,MAAM;IACtC,WAAW,QAAQ,aAAa;;;MAC9B;MACA,MAAM,QAAQ;gCACd,MAAM,MAAM,8FAAc,IAAI;gCAC9B,MAAM,MAAM,6FAAa,IAAI;gCAC7B,MAAM,MAAM,+FAAe,IAAI;gCAC/B,MAAM,MAAM,kGAAkB,IAAI;KACpC;;GACF;EACF,CAAC;CACH;CAEA,qBAAqB,UAAU;EAC7B,8BAAgB,uBAAuB,OAAO;GAC5C,uBAAuB,EACrB,KAAK,YAAYC,wDAAsB,OAAO,OAAO,EACvD;GACA,yBAAyB,EACvB,KAAK,iBAAiBC,0DAAwB,OAAO,YAAY,EACnE;GACA,oBAAoB;IAClB,UAAUC,qDAAmB,KAAK;IAClC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,wBAAwB;IACtB,UAAUC,yDAAuB,KAAK;IACtC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,0BAA0B;IACxB,UAAUC,2DAAyB,KAAK;IACxC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,yBAAyB;IACvB,UAAUC,0DAAwB,KAAK;IACvC,gBAAgB;;wCACd,MAAM,MAAM,gGAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;EACF,CAAC;CACH;AACF"}
1
+ {"version":3,"file":"columnSizingFeature.cjs","names":["getDefaultColumnSizingState","getDefaultColumnSizingColumnDef","makeStateUpdater","column_getSize","column_getStart","column_getAfter","column_resetSize","header_getSize","header_getStart","table_getColumnOffsets","table_setColumnSizing","table_resetColumnSizing","table_getTotalSize","table_getLeftTotalSize","table_getCenterTotalSize","table_getRightTotalSize"],"sources":["../../../src/features/column-sizing/columnSizingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getAfter,\n column_getSize,\n column_getStart,\n column_resetSize,\n getDefaultColumnSizingColumnDef,\n getDefaultColumnSizingState,\n header_getSize,\n header_getStart,\n table_getCenterTotalSize,\n table_getColumnOffsets,\n table_getLeftTotalSize,\n table_getRightTotalSize,\n table_getTotalSize,\n table_resetColumnSizing,\n table_setColumnSizing,\n} from './columnSizingFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds column sizing state, defaults, and size measurement APIs.\n */\nexport const columnSizingFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n columnSizing: getDefaultColumnSizingState(),\n ...initialState,\n }\n },\n\n getDefaultColumnDef: () => {\n return getDefaultColumnSizingColumnDef()\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnSizingFeature', prototype, table, {\n column_getSize: {\n fn: (column) => column_getSize(column),\n memoDeps: (column) => [\n table.options.columns,\n table.atoms.columnSizing?.get()?.[column.id], // just this column's size state\n ],\n },\n // O(1) lookups into the memoized table-level offsets, so no per-column\n // memos here\n column_getStart: {\n fn: (column, position) => column_getStart(column, position),\n },\n column_getAfter: {\n fn: (column, position) => column_getAfter(column, position),\n },\n column_resetSize: {\n fn: (column) => column_resetSize(column),\n },\n })\n },\n\n assignHeaderPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnSizingFeature', prototype, table, {\n header_getSize: {\n fn: (header) => header_getSize(header),\n memoDeps: (header) => [\n table.options.columns,\n header.column.columns.length > 0\n ? table.atoms.columnSizing?.get() // must be all columns (sum child columns)\n : table.atoms.columnSizing?.get()?.[header.column.id], // can just check it's associated column size state\n ],\n },\n header_getStart: {\n fn: (header) => header_getStart(header),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnSizingFeature', table, {\n table_getColumnOffsets: {\n fn: () => table_getColumnOffsets(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_setColumnSizing: {\n fn: (updater) => table_setColumnSizing(table, updater),\n },\n table_resetColumnSizing: {\n fn: (defaultState) => table_resetColumnSizing(table, defaultState),\n },\n table_getTotalSize: {\n fn: () => table_getTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getLeftTotalSize: {\n fn: () => table_getLeftTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getCenterTotalSize: {\n fn: () => table_getCenterTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getRightTotalSize: {\n fn: () => table_getRightTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n })\n },\n}\n"],"mappings":";;;;;;;AA2BA,MAAa,sBAAoC;CAC/C,kBAAkB,iBAAiB;EACjC,OAAO;GACL,cAAcA,8DAA4B;GAC1C,GAAG;EACL;CACF;CAEA,2BAA2B;EACzB,OAAOC,kEAAgC;CACzC;CAEA,yBAAyB,UAAU;EACjC,OAAO,EACL,sBAAsBC,+BAAiB,gBAAgB,KAAK,EAC9D;CACF;CAEA,wBAAwB,WAAW,UAAU;EAC3C,kCAAoB,uBAAuB,WAAW,OAAO;GAC3D,gBAAgB;IACd,KAAK,WAAWC,iDAAe,MAAM;IACrC,WAAW,WAAW;;aACpB,MAAM,QAAQ,kCACd,MAAM,MAAM,6GAAc,IAAI,iFAAI,OAAO,GAC3C;;GACF;GAGA,iBAAiB,EACf,KAAK,QAAQ,aAAaC,kDAAgB,QAAQ,QAAQ,EAC5D;GACA,iBAAiB,EACf,KAAK,QAAQ,aAAaC,kDAAgB,QAAQ,QAAQ,EAC5D;GACA,kBAAkB,EAChB,KAAK,WAAWC,mDAAiB,MAAM,EACzC;EACF,CAAC;CACH;CAEA,wBAAwB,WAAW,UAAU;EAC3C,kCAAoB,uBAAuB,WAAW,OAAO;GAC3D,gBAAgB;IACd,KAAK,WAAWC,iDAAe,MAAM;IACrC,WAAW,WAAW;;aACpB,MAAM,QAAQ,SACd,OAAO,OAAO,QAAQ,SAAS,8BAC3B,MAAM,MAAM,8FAAc,IAAI,8BAC9B,MAAM,MAAM,gHAAc,IAAI,mFAAI,OAAO,OAAO,GACtD;;GACF;GACA,iBAAiB;IACf,KAAK,WAAWC,kDAAgB,MAAM;IACtC,gBAAgB;;;MACd,MAAM,QAAQ;gCACd,MAAM,MAAM,8FAAc,IAAI;+BAC9B,MAAM,MAAM,2FAAa,IAAI;+BAC7B,MAAM,MAAM,6FAAe,IAAI;+BAC/B,MAAM,MAAM,gGAAkB,IAAI;+BAClC,MAAM,MAAM,wFAAU,IAAI;MAC1B,MAAM,QAAQ;KAChB;;GACF;EACF,CAAC;CACH;CAEA,qBAAqB,UAAU;EAC7B,8BAAgB,uBAAuB,OAAO;GAC5C,wBAAwB;IACtB,UAAUC,yDAAuB,KAAK;IACtC,gBAAgB;;;MACd,MAAM,QAAQ;gCACd,MAAM,MAAM,8FAAc,IAAI;gCAC9B,MAAM,MAAM,6FAAa,IAAI;gCAC7B,MAAM,MAAM,+FAAe,IAAI;gCAC/B,MAAM,MAAM,kGAAkB,IAAI;gCAClC,MAAM,MAAM,0FAAU,IAAI;MAC1B,MAAM,QAAQ;KAChB;;GACF;GACA,uBAAuB,EACrB,KAAK,YAAYC,wDAAsB,OAAO,OAAO,EACvD;GACA,yBAAyB,EACvB,KAAK,iBAAiBC,0DAAwB,OAAO,YAAY,EACnE;GACA,oBAAoB;IAClB,UAAUC,qDAAmB,KAAK;IAClC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,wBAAwB;IACtB,UAAUC,yDAAuB,KAAK;IACtC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,0BAA0B;IACxB,UAAUC,2DAAyB,KAAK;IACxC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,yBAAyB;IACvB,UAAUC,0DAAwB,KAAK;IACvC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;EACF,CAAC;CACH;AACF"}
@@ -1,5 +1,5 @@
1
1
  import { assignPrototypeAPIs, assignTableAPIs, makeStateUpdater } from "../../utils.js";
2
- import { column_getAfter, column_getSize, column_getStart, column_resetSize, getDefaultColumnSizingColumnDef, getDefaultColumnSizingState, header_getSize, header_getStart, table_getCenterTotalSize, table_getLeftTotalSize, table_getRightTotalSize, table_getTotalSize, table_resetColumnSizing, table_setColumnSizing } from "./columnSizingFeature.utils.js";
2
+ import { column_getAfter, column_getSize, column_getStart, column_resetSize, getDefaultColumnSizingColumnDef, getDefaultColumnSizingState, header_getSize, header_getStart, table_getCenterTotalSize, table_getColumnOffsets, table_getLeftTotalSize, table_getRightTotalSize, table_getTotalSize, table_resetColumnSizing, table_setColumnSizing } from "./columnSizingFeature.utils.js";
3
3
 
4
4
  //#region src/features/column-sizing/columnSizingFeature.ts
5
5
  /**
@@ -27,34 +27,8 @@ const columnSizingFeature = {
27
27
  return [table.options.columns, (_table$atoms$columnSi = table.atoms.columnSizing) === null || _table$atoms$columnSi === void 0 || (_table$atoms$columnSi = _table$atoms$columnSi.get()) === null || _table$atoms$columnSi === void 0 ? void 0 : _table$atoms$columnSi[column.id]];
28
28
  }
29
29
  },
30
- column_getStart: {
31
- fn: (column, position) => column_getStart(column, position),
32
- memoDeps: (column, position) => {
33
- var _table$atoms$columnSi2, _table$atoms$columnOr, _table$atoms$columnPi, _table$atoms$columnVi;
34
- return [
35
- position,
36
- table.options.columns,
37
- (_table$atoms$columnSi2 = table.atoms.columnSizing) === null || _table$atoms$columnSi2 === void 0 ? void 0 : _table$atoms$columnSi2.get(),
38
- (_table$atoms$columnOr = table.atoms.columnOrder) === null || _table$atoms$columnOr === void 0 ? void 0 : _table$atoms$columnOr.get(),
39
- (_table$atoms$columnPi = table.atoms.columnPinning) === null || _table$atoms$columnPi === void 0 ? void 0 : _table$atoms$columnPi.get(),
40
- (_table$atoms$columnVi = table.atoms.columnVisibility) === null || _table$atoms$columnVi === void 0 ? void 0 : _table$atoms$columnVi.get()
41
- ];
42
- }
43
- },
44
- column_getAfter: {
45
- fn: (column, position) => column_getAfter(column, position),
46
- memoDeps: (column, position) => {
47
- var _table$atoms$columnSi3, _table$atoms$columnOr2, _table$atoms$columnPi2, _table$atoms$columnVi2;
48
- return [
49
- position,
50
- table.options.columns,
51
- (_table$atoms$columnSi3 = table.atoms.columnSizing) === null || _table$atoms$columnSi3 === void 0 ? void 0 : _table$atoms$columnSi3.get(),
52
- (_table$atoms$columnOr2 = table.atoms.columnOrder) === null || _table$atoms$columnOr2 === void 0 ? void 0 : _table$atoms$columnOr2.get(),
53
- (_table$atoms$columnPi2 = table.atoms.columnPinning) === null || _table$atoms$columnPi2 === void 0 ? void 0 : _table$atoms$columnPi2.get(),
54
- (_table$atoms$columnVi2 = table.atoms.columnVisibility) === null || _table$atoms$columnVi2 === void 0 ? void 0 : _table$atoms$columnVi2.get()
55
- ];
56
- }
57
- },
30
+ column_getStart: { fn: (column, position) => column_getStart(column, position) },
31
+ column_getAfter: { fn: (column, position) => column_getAfter(column, position) },
58
32
  column_resetSize: { fn: (column) => column_resetSize(column) }
59
33
  });
60
34
  },
@@ -63,21 +37,22 @@ const columnSizingFeature = {
63
37
  header_getSize: {
64
38
  fn: (header) => header_getSize(header),
65
39
  memoDeps: (header) => {
66
- var _table$atoms$columnSi4, _table$atoms$columnSi5;
67
- return [table.options.columns, header.column.columns.length > 0 ? (_table$atoms$columnSi4 = table.atoms.columnSizing) === null || _table$atoms$columnSi4 === void 0 ? void 0 : _table$atoms$columnSi4.get() : (_table$atoms$columnSi5 = table.atoms.columnSizing) === null || _table$atoms$columnSi5 === void 0 || (_table$atoms$columnSi5 = _table$atoms$columnSi5.get()) === null || _table$atoms$columnSi5 === void 0 ? void 0 : _table$atoms$columnSi5[header.column.id]];
40
+ var _table$atoms$columnSi2, _table$atoms$columnSi3;
41
+ return [table.options.columns, header.column.columns.length > 0 ? (_table$atoms$columnSi2 = table.atoms.columnSizing) === null || _table$atoms$columnSi2 === void 0 ? void 0 : _table$atoms$columnSi2.get() : (_table$atoms$columnSi3 = table.atoms.columnSizing) === null || _table$atoms$columnSi3 === void 0 || (_table$atoms$columnSi3 = _table$atoms$columnSi3.get()) === null || _table$atoms$columnSi3 === void 0 ? void 0 : _table$atoms$columnSi3[header.column.id]];
68
42
  }
69
43
  },
70
44
  header_getStart: {
71
45
  fn: (header) => header_getStart(header),
72
- memoDeps: (header, position) => {
73
- var _table$atoms$columnSi6, _table$atoms$columnOr3, _table$atoms$columnPi3, _table$atoms$columnVi3;
46
+ memoDeps: () => {
47
+ var _table$atoms$columnSi4, _table$atoms$columnOr, _table$atoms$columnPi, _table$atoms$columnVi, _table$atoms$grouping;
74
48
  return [
75
- position,
76
49
  table.options.columns,
77
- (_table$atoms$columnSi6 = table.atoms.columnSizing) === null || _table$atoms$columnSi6 === void 0 ? void 0 : _table$atoms$columnSi6.get(),
78
- (_table$atoms$columnOr3 = table.atoms.columnOrder) === null || _table$atoms$columnOr3 === void 0 ? void 0 : _table$atoms$columnOr3.get(),
79
- (_table$atoms$columnPi3 = table.atoms.columnPinning) === null || _table$atoms$columnPi3 === void 0 ? void 0 : _table$atoms$columnPi3.get(),
80
- (_table$atoms$columnVi3 = table.atoms.columnVisibility) === null || _table$atoms$columnVi3 === void 0 ? void 0 : _table$atoms$columnVi3.get()
50
+ (_table$atoms$columnSi4 = table.atoms.columnSizing) === null || _table$atoms$columnSi4 === void 0 ? void 0 : _table$atoms$columnSi4.get(),
51
+ (_table$atoms$columnOr = table.atoms.columnOrder) === null || _table$atoms$columnOr === void 0 ? void 0 : _table$atoms$columnOr.get(),
52
+ (_table$atoms$columnPi = table.atoms.columnPinning) === null || _table$atoms$columnPi === void 0 ? void 0 : _table$atoms$columnPi.get(),
53
+ (_table$atoms$columnVi = table.atoms.columnVisibility) === null || _table$atoms$columnVi === void 0 ? void 0 : _table$atoms$columnVi.get(),
54
+ (_table$atoms$grouping = table.atoms.grouping) === null || _table$atoms$grouping === void 0 ? void 0 : _table$atoms$grouping.get(),
55
+ table.options.groupedColumnMode
81
56
  ];
82
57
  }
83
58
  }
@@ -85,34 +60,49 @@ const columnSizingFeature = {
85
60
  },
86
61
  constructTableAPIs: (table) => {
87
62
  assignTableAPIs("columnSizingFeature", table, {
63
+ table_getColumnOffsets: {
64
+ fn: () => table_getColumnOffsets(table),
65
+ memoDeps: () => {
66
+ var _table$atoms$columnSi5, _table$atoms$columnOr2, _table$atoms$columnPi2, _table$atoms$columnVi2, _table$atoms$grouping2;
67
+ return [
68
+ table.options.columns,
69
+ (_table$atoms$columnSi5 = table.atoms.columnSizing) === null || _table$atoms$columnSi5 === void 0 ? void 0 : _table$atoms$columnSi5.get(),
70
+ (_table$atoms$columnOr2 = table.atoms.columnOrder) === null || _table$atoms$columnOr2 === void 0 ? void 0 : _table$atoms$columnOr2.get(),
71
+ (_table$atoms$columnPi2 = table.atoms.columnPinning) === null || _table$atoms$columnPi2 === void 0 ? void 0 : _table$atoms$columnPi2.get(),
72
+ (_table$atoms$columnVi2 = table.atoms.columnVisibility) === null || _table$atoms$columnVi2 === void 0 ? void 0 : _table$atoms$columnVi2.get(),
73
+ (_table$atoms$grouping2 = table.atoms.grouping) === null || _table$atoms$grouping2 === void 0 ? void 0 : _table$atoms$grouping2.get(),
74
+ table.options.groupedColumnMode
75
+ ];
76
+ }
77
+ },
88
78
  table_setColumnSizing: { fn: (updater) => table_setColumnSizing(table, updater) },
89
79
  table_resetColumnSizing: { fn: (defaultState) => table_resetColumnSizing(table, defaultState) },
90
80
  table_getTotalSize: {
91
81
  fn: () => table_getTotalSize(table),
92
82
  memoDeps: () => {
93
- var _table$atoms$columnSi7;
94
- return [(_table$atoms$columnSi7 = table.atoms.columnSizing) === null || _table$atoms$columnSi7 === void 0 ? void 0 : _table$atoms$columnSi7.get(), table.getHeaderGroups()];
83
+ var _table$atoms$columnSi6;
84
+ return [(_table$atoms$columnSi6 = table.atoms.columnSizing) === null || _table$atoms$columnSi6 === void 0 ? void 0 : _table$atoms$columnSi6.get(), table.getHeaderGroups()];
95
85
  }
96
86
  },
97
87
  table_getLeftTotalSize: {
98
88
  fn: () => table_getLeftTotalSize(table),
99
89
  memoDeps: () => {
100
- var _table$atoms$columnSi8;
101
- return [(_table$atoms$columnSi8 = table.atoms.columnSizing) === null || _table$atoms$columnSi8 === void 0 ? void 0 : _table$atoms$columnSi8.get(), table.getHeaderGroups()];
90
+ var _table$atoms$columnSi7;
91
+ return [(_table$atoms$columnSi7 = table.atoms.columnSizing) === null || _table$atoms$columnSi7 === void 0 ? void 0 : _table$atoms$columnSi7.get(), table.getHeaderGroups()];
102
92
  }
103
93
  },
104
94
  table_getCenterTotalSize: {
105
95
  fn: () => table_getCenterTotalSize(table),
106
96
  memoDeps: () => {
107
- var _table$atoms$columnSi9;
108
- return [(_table$atoms$columnSi9 = table.atoms.columnSizing) === null || _table$atoms$columnSi9 === void 0 ? void 0 : _table$atoms$columnSi9.get(), table.getHeaderGroups()];
97
+ var _table$atoms$columnSi8;
98
+ return [(_table$atoms$columnSi8 = table.atoms.columnSizing) === null || _table$atoms$columnSi8 === void 0 ? void 0 : _table$atoms$columnSi8.get(), table.getHeaderGroups()];
109
99
  }
110
100
  },
111
101
  table_getRightTotalSize: {
112
102
  fn: () => table_getRightTotalSize(table),
113
103
  memoDeps: () => {
114
- var _table$atoms$columnSi10;
115
- return [(_table$atoms$columnSi10 = table.atoms.columnSizing) === null || _table$atoms$columnSi10 === void 0 ? void 0 : _table$atoms$columnSi10.get(), table.getHeaderGroups()];
104
+ var _table$atoms$columnSi9;
105
+ return [(_table$atoms$columnSi9 = table.atoms.columnSizing) === null || _table$atoms$columnSi9 === void 0 ? void 0 : _table$atoms$columnSi9.get(), table.getHeaderGroups()];
116
106
  }
117
107
  }
118
108
  });
@@ -1 +1 @@
1
- {"version":3,"file":"columnSizingFeature.js","names":[],"sources":["../../../src/features/column-sizing/columnSizingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getAfter,\n column_getSize,\n column_getStart,\n column_resetSize,\n getDefaultColumnSizingColumnDef,\n getDefaultColumnSizingState,\n header_getSize,\n header_getStart,\n table_getCenterTotalSize,\n table_getLeftTotalSize,\n table_getRightTotalSize,\n table_getTotalSize,\n table_resetColumnSizing,\n table_setColumnSizing,\n} from './columnSizingFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds column sizing state, defaults, and size measurement APIs.\n */\nexport const columnSizingFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n columnSizing: getDefaultColumnSizingState(),\n ...initialState,\n }\n },\n\n getDefaultColumnDef: () => {\n return getDefaultColumnSizingColumnDef()\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnSizingFeature', prototype, table, {\n column_getSize: {\n fn: (column) => column_getSize(column),\n memoDeps: (column) => [\n table.options.columns,\n table.atoms.columnSizing?.get()?.[column.id], // just this column's size state\n ],\n },\n column_getStart: {\n fn: (column, position) => column_getStart(column, position),\n memoDeps: (column, position) => [\n position,\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n ],\n },\n column_getAfter: {\n fn: (column, position) => column_getAfter(column, position),\n memoDeps: (column, position) => [\n position,\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n ],\n },\n column_resetSize: {\n fn: (column) => column_resetSize(column),\n },\n })\n },\n\n assignHeaderPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnSizingFeature', prototype, table, {\n header_getSize: {\n fn: (header) => header_getSize(header),\n memoDeps: (header) => [\n table.options.columns,\n header.column.columns.length > 0\n ? table.atoms.columnSizing?.get() // must be all columns (sum child columns)\n : table.atoms.columnSizing?.get()?.[header.column.id], // can just check it's associated column size state\n ],\n },\n header_getStart: {\n fn: (header) => header_getStart(header),\n memoDeps: (header, position) => [\n position,\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n ],\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnSizingFeature', table, {\n table_setColumnSizing: {\n fn: (updater) => table_setColumnSizing(table, updater),\n },\n table_resetColumnSizing: {\n fn: (defaultState) => table_resetColumnSizing(table, defaultState),\n },\n table_getTotalSize: {\n fn: () => table_getTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getLeftTotalSize: {\n fn: () => table_getLeftTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getCenterTotalSize: {\n fn: () => table_getCenterTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getRightTotalSize: {\n fn: () => table_getRightTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n })\n },\n}\n"],"mappings":";;;;;;;AA0BA,MAAa,sBAAoC;CAC/C,kBAAkB,iBAAiB;EACjC,OAAO;GACL,cAAc,4BAA4B;GAC1C,GAAG;EACL;CACF;CAEA,2BAA2B;EACzB,OAAO,gCAAgC;CACzC;CAEA,yBAAyB,UAAU;EACjC,OAAO,EACL,sBAAsB,iBAAiB,gBAAgB,KAAK,EAC9D;CACF;CAEA,wBAAwB,WAAW,UAAU;EAC3C,oBAAoB,uBAAuB,WAAW,OAAO;GAC3D,gBAAgB;IACd,KAAK,WAAW,eAAe,MAAM;IACrC,WAAW,WAAW;;aACpB,MAAM,QAAQ,kCACd,MAAM,MAAM,6GAAc,IAAI,iFAAI,OAAO,GAC3C;;GACF;GACA,iBAAiB;IACf,KAAK,QAAQ,aAAa,gBAAgB,QAAQ,QAAQ;IAC1D,WAAW,QAAQ,aAAa;;;MAC9B;MACA,MAAM,QAAQ;gCACd,MAAM,MAAM,8FAAc,IAAI;+BAC9B,MAAM,MAAM,2FAAa,IAAI;+BAC7B,MAAM,MAAM,6FAAe,IAAI;+BAC/B,MAAM,MAAM,gGAAkB,IAAI;KACpC;;GACF;GACA,iBAAiB;IACf,KAAK,QAAQ,aAAa,gBAAgB,QAAQ,QAAQ;IAC1D,WAAW,QAAQ,aAAa;;;MAC9B;MACA,MAAM,QAAQ;gCACd,MAAM,MAAM,8FAAc,IAAI;gCAC9B,MAAM,MAAM,6FAAa,IAAI;gCAC7B,MAAM,MAAM,+FAAe,IAAI;gCAC/B,MAAM,MAAM,kGAAkB,IAAI;KACpC;;GACF;GACA,kBAAkB,EAChB,KAAK,WAAW,iBAAiB,MAAM,EACzC;EACF,CAAC;CACH;CAEA,wBAAwB,WAAW,UAAU;EAC3C,oBAAoB,uBAAuB,WAAW,OAAO;GAC3D,gBAAgB;IACd,KAAK,WAAW,eAAe,MAAM;IACrC,WAAW,WAAW;;aACpB,MAAM,QAAQ,SACd,OAAO,OAAO,QAAQ,SAAS,8BAC3B,MAAM,MAAM,8FAAc,IAAI,8BAC9B,MAAM,MAAM,gHAAc,IAAI,mFAAI,OAAO,OAAO,GACtD;;GACF;GACA,iBAAiB;IACf,KAAK,WAAW,gBAAgB,MAAM;IACtC,WAAW,QAAQ,aAAa;;;MAC9B;MACA,MAAM,QAAQ;gCACd,MAAM,MAAM,8FAAc,IAAI;gCAC9B,MAAM,MAAM,6FAAa,IAAI;gCAC7B,MAAM,MAAM,+FAAe,IAAI;gCAC/B,MAAM,MAAM,kGAAkB,IAAI;KACpC;;GACF;EACF,CAAC;CACH;CAEA,qBAAqB,UAAU;EAC7B,gBAAgB,uBAAuB,OAAO;GAC5C,uBAAuB,EACrB,KAAK,YAAY,sBAAsB,OAAO,OAAO,EACvD;GACA,yBAAyB,EACvB,KAAK,iBAAiB,wBAAwB,OAAO,YAAY,EACnE;GACA,oBAAoB;IAClB,UAAU,mBAAmB,KAAK;IAClC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,wBAAwB;IACtB,UAAU,uBAAuB,KAAK;IACtC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,0BAA0B;IACxB,UAAU,yBAAyB,KAAK;IACxC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,yBAAyB;IACvB,UAAU,wBAAwB,KAAK;IACvC,gBAAgB;;wCACd,MAAM,MAAM,gGAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;EACF,CAAC;CACH;AACF"}
1
+ {"version":3,"file":"columnSizingFeature.js","names":[],"sources":["../../../src/features/column-sizing/columnSizingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getAfter,\n column_getSize,\n column_getStart,\n column_resetSize,\n getDefaultColumnSizingColumnDef,\n getDefaultColumnSizingState,\n header_getSize,\n header_getStart,\n table_getCenterTotalSize,\n table_getColumnOffsets,\n table_getLeftTotalSize,\n table_getRightTotalSize,\n table_getTotalSize,\n table_resetColumnSizing,\n table_setColumnSizing,\n} from './columnSizingFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds column sizing state, defaults, and size measurement APIs.\n */\nexport const columnSizingFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n columnSizing: getDefaultColumnSizingState(),\n ...initialState,\n }\n },\n\n getDefaultColumnDef: () => {\n return getDefaultColumnSizingColumnDef()\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnSizingFeature', prototype, table, {\n column_getSize: {\n fn: (column) => column_getSize(column),\n memoDeps: (column) => [\n table.options.columns,\n table.atoms.columnSizing?.get()?.[column.id], // just this column's size state\n ],\n },\n // O(1) lookups into the memoized table-level offsets, so no per-column\n // memos here\n column_getStart: {\n fn: (column, position) => column_getStart(column, position),\n },\n column_getAfter: {\n fn: (column, position) => column_getAfter(column, position),\n },\n column_resetSize: {\n fn: (column) => column_resetSize(column),\n },\n })\n },\n\n assignHeaderPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnSizingFeature', prototype, table, {\n header_getSize: {\n fn: (header) => header_getSize(header),\n memoDeps: (header) => [\n table.options.columns,\n header.column.columns.length > 0\n ? table.atoms.columnSizing?.get() // must be all columns (sum child columns)\n : table.atoms.columnSizing?.get()?.[header.column.id], // can just check it's associated column size state\n ],\n },\n header_getStart: {\n fn: (header) => header_getStart(header),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnSizingFeature', table, {\n table_getColumnOffsets: {\n fn: () => table_getColumnOffsets(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnSizing?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_setColumnSizing: {\n fn: (updater) => table_setColumnSizing(table, updater),\n },\n table_resetColumnSizing: {\n fn: (defaultState) => table_resetColumnSizing(table, defaultState),\n },\n table_getTotalSize: {\n fn: () => table_getTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getLeftTotalSize: {\n fn: () => table_getLeftTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getCenterTotalSize: {\n fn: () => table_getCenterTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n table_getRightTotalSize: {\n fn: () => table_getRightTotalSize(table),\n memoDeps: () => [\n table.atoms.columnSizing?.get(),\n table.getHeaderGroups(),\n ],\n },\n })\n },\n}\n"],"mappings":";;;;;;;AA2BA,MAAa,sBAAoC;CAC/C,kBAAkB,iBAAiB;EACjC,OAAO;GACL,cAAc,4BAA4B;GAC1C,GAAG;EACL;CACF;CAEA,2BAA2B;EACzB,OAAO,gCAAgC;CACzC;CAEA,yBAAyB,UAAU;EACjC,OAAO,EACL,sBAAsB,iBAAiB,gBAAgB,KAAK,EAC9D;CACF;CAEA,wBAAwB,WAAW,UAAU;EAC3C,oBAAoB,uBAAuB,WAAW,OAAO;GAC3D,gBAAgB;IACd,KAAK,WAAW,eAAe,MAAM;IACrC,WAAW,WAAW;;aACpB,MAAM,QAAQ,kCACd,MAAM,MAAM,6GAAc,IAAI,iFAAI,OAAO,GAC3C;;GACF;GAGA,iBAAiB,EACf,KAAK,QAAQ,aAAa,gBAAgB,QAAQ,QAAQ,EAC5D;GACA,iBAAiB,EACf,KAAK,QAAQ,aAAa,gBAAgB,QAAQ,QAAQ,EAC5D;GACA,kBAAkB,EAChB,KAAK,WAAW,iBAAiB,MAAM,EACzC;EACF,CAAC;CACH;CAEA,wBAAwB,WAAW,UAAU;EAC3C,oBAAoB,uBAAuB,WAAW,OAAO;GAC3D,gBAAgB;IACd,KAAK,WAAW,eAAe,MAAM;IACrC,WAAW,WAAW;;aACpB,MAAM,QAAQ,SACd,OAAO,OAAO,QAAQ,SAAS,8BAC3B,MAAM,MAAM,8FAAc,IAAI,8BAC9B,MAAM,MAAM,gHAAc,IAAI,mFAAI,OAAO,OAAO,GACtD;;GACF;GACA,iBAAiB;IACf,KAAK,WAAW,gBAAgB,MAAM;IACtC,gBAAgB;;;MACd,MAAM,QAAQ;gCACd,MAAM,MAAM,8FAAc,IAAI;+BAC9B,MAAM,MAAM,2FAAa,IAAI;+BAC7B,MAAM,MAAM,6FAAe,IAAI;+BAC/B,MAAM,MAAM,gGAAkB,IAAI;+BAClC,MAAM,MAAM,wFAAU,IAAI;MAC1B,MAAM,QAAQ;KAChB;;GACF;EACF,CAAC;CACH;CAEA,qBAAqB,UAAU;EAC7B,gBAAgB,uBAAuB,OAAO;GAC5C,wBAAwB;IACtB,UAAU,uBAAuB,KAAK;IACtC,gBAAgB;;;MACd,MAAM,QAAQ;gCACd,MAAM,MAAM,8FAAc,IAAI;gCAC9B,MAAM,MAAM,6FAAa,IAAI;gCAC7B,MAAM,MAAM,+FAAe,IAAI;gCAC/B,MAAM,MAAM,kGAAkB,IAAI;gCAClC,MAAM,MAAM,0FAAU,IAAI;MAC1B,MAAM,QAAQ;KAChB;;GACF;GACA,uBAAuB,EACrB,KAAK,YAAY,sBAAsB,OAAO,OAAO,EACvD;GACA,yBAAyB,EACvB,KAAK,iBAAiB,wBAAwB,OAAO,YAAY,EACnE;GACA,oBAAoB;IAClB,UAAU,mBAAmB,KAAK;IAClC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,wBAAwB;IACtB,UAAU,uBAAuB,KAAK;IACtC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,0BAA0B;IACxB,UAAU,yBAAyB,KAAK;IACxC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,yBAAyB;IACvB,UAAU,wBAAwB,KAAK;IACvC,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;EACF,CAAC;CACH;AACF"}
@@ -6,6 +6,36 @@ interface TableState_ColumnSizing {
6
6
  columnSizing: ColumnSizingState;
7
7
  }
8
8
  type ColumnSizingState = Record<string, number>;
9
+ interface ColumnOffsets {
10
+ /**
11
+ * Offset from the start edge of the region to each column's start edge,
12
+ * keyed by column id.
13
+ */
14
+ starts: Record<string, number>;
15
+ /**
16
+ * Offset from the end edge of the region to each column's end edge, keyed by
17
+ * column id.
18
+ */
19
+ afters: Record<string, number>;
20
+ }
21
+ interface ColumnOffsetsByPosition {
22
+ /**
23
+ * Offsets across all visible leaf columns, ignoring pinning regions.
24
+ */
25
+ all: ColumnOffsets;
26
+ /**
27
+ * Offsets within the center (unpinned) region.
28
+ */
29
+ center: ColumnOffsets;
30
+ /**
31
+ * Offsets within the left pinned region.
32
+ */
33
+ left: ColumnOffsets;
34
+ /**
35
+ * Offsets within the right pinned region.
36
+ */
37
+ right: ColumnOffsets;
38
+ }
9
39
  interface TableOptions_ColumnSizing {
10
40
  /**
11
41
  * Called with an updater when committed column sizing state changes. Pair
@@ -20,6 +50,13 @@ interface Table_ColumnSizing {
20
50
  * Sums the current sizes of visible center-region leaf columns.
21
51
  */
22
52
  getCenterTotalSize: () => number;
53
+ /**
54
+ * Returns memoized column offset maps (start and after offsets keyed by
55
+ * column id) for each pinning region plus the full visible leaf column list.
56
+ *
57
+ * Backs `column.getStart()` and `column.getAfter()` with O(1) lookups.
58
+ */
59
+ getColumnOffsets: () => ColumnOffsetsByPosition;
23
60
  /**
24
61
  * Sums the current sizes of visible left-pinned leaf columns.
25
62
  */
@@ -92,5 +129,5 @@ interface Header_ColumnSizing {
92
129
  getStart: (position?: ColumnPinningPosition) => number;
93
130
  }
94
131
  //#endregion
95
- export { ColumnDef_ColumnSizing, ColumnSizingDefaultOptions, ColumnSizingState, Column_ColumnSizing, Header_ColumnSizing, TableOptions_ColumnSizing, TableState_ColumnSizing, Table_ColumnSizing };
132
+ export { ColumnDef_ColumnSizing, ColumnOffsets, ColumnOffsetsByPosition, ColumnSizingDefaultOptions, ColumnSizingState, Column_ColumnSizing, Header_ColumnSizing, TableOptions_ColumnSizing, TableState_ColumnSizing, Table_ColumnSizing };
96
133
  //# sourceMappingURL=columnSizingFeature.types.d.cts.map
@@ -6,6 +6,36 @@ interface TableState_ColumnSizing {
6
6
  columnSizing: ColumnSizingState;
7
7
  }
8
8
  type ColumnSizingState = Record<string, number>;
9
+ interface ColumnOffsets {
10
+ /**
11
+ * Offset from the start edge of the region to each column's start edge,
12
+ * keyed by column id.
13
+ */
14
+ starts: Record<string, number>;
15
+ /**
16
+ * Offset from the end edge of the region to each column's end edge, keyed by
17
+ * column id.
18
+ */
19
+ afters: Record<string, number>;
20
+ }
21
+ interface ColumnOffsetsByPosition {
22
+ /**
23
+ * Offsets across all visible leaf columns, ignoring pinning regions.
24
+ */
25
+ all: ColumnOffsets;
26
+ /**
27
+ * Offsets within the center (unpinned) region.
28
+ */
29
+ center: ColumnOffsets;
30
+ /**
31
+ * Offsets within the left pinned region.
32
+ */
33
+ left: ColumnOffsets;
34
+ /**
35
+ * Offsets within the right pinned region.
36
+ */
37
+ right: ColumnOffsets;
38
+ }
9
39
  interface TableOptions_ColumnSizing {
10
40
  /**
11
41
  * Called with an updater when committed column sizing state changes. Pair
@@ -20,6 +50,13 @@ interface Table_ColumnSizing {
20
50
  * Sums the current sizes of visible center-region leaf columns.
21
51
  */
22
52
  getCenterTotalSize: () => number;
53
+ /**
54
+ * Returns memoized column offset maps (start and after offsets keyed by
55
+ * column id) for each pinning region plus the full visible leaf column list.
56
+ *
57
+ * Backs `column.getStart()` and `column.getAfter()` with O(1) lookups.
58
+ */
59
+ getColumnOffsets: () => ColumnOffsetsByPosition;
23
60
  /**
24
61
  * Sums the current sizes of visible left-pinned leaf columns.
25
62
  */
@@ -92,5 +129,5 @@ interface Header_ColumnSizing {
92
129
  getStart: (position?: ColumnPinningPosition) => number;
93
130
  }
94
131
  //#endregion
95
- export { ColumnDef_ColumnSizing, ColumnSizingDefaultOptions, ColumnSizingState, Column_ColumnSizing, Header_ColumnSizing, TableOptions_ColumnSizing, TableState_ColumnSizing, Table_ColumnSizing };
132
+ export { ColumnDef_ColumnSizing, ColumnOffsets, ColumnOffsetsByPosition, ColumnSizingDefaultOptions, ColumnSizingState, Column_ColumnSizing, Header_ColumnSizing, TableOptions_ColumnSizing, TableState_ColumnSizing, Table_ColumnSizing };
96
133
  //# sourceMappingURL=columnSizingFeature.types.d.ts.map
@@ -1,6 +1,5 @@
1
1
  const require_utils = require('../../utils.cjs');
2
2
  const require_columnPinningFeature_utils = require('../column-pinning/columnPinningFeature.utils.cjs');
3
- const require_columnOrderingFeature_utils = require('../column-ordering/columnOrderingFeature.utils.cjs');
4
3
 
5
4
  //#region src/features/column-sizing/columnSizingFeature.utils.ts
6
5
  /**
@@ -54,6 +53,52 @@ function column_getSize(column) {
54
53
  const columnSize = columnSizing && require_utils.hasOwn(columnSizing, column.id) ? columnSizing[column.id] : void 0;
55
54
  return Math.min(Math.max(column.columnDef.minSize ?? defaultSizes.minSize, columnSize ?? column.columnDef.size ?? defaultSizes.size), column.columnDef.maxSize ?? defaultSizes.maxSize);
56
55
  }
56
+ function buildColumnOffsets(columns) {
57
+ const starts = require_utils.makeObjectMap();
58
+ const afters = require_utils.makeObjectMap();
59
+ const sizes = new Array(columns.length);
60
+ let start = 0;
61
+ for (let i = 0; i < columns.length; i++) {
62
+ const column = columns[i];
63
+ const size = require_utils.callMemoOrStaticFn(column, "getSize", column_getSize);
64
+ sizes[i] = size;
65
+ starts[column.id] = start;
66
+ start += size;
67
+ }
68
+ let after = 0;
69
+ for (let i = columns.length - 1; i >= 0; i--) {
70
+ afters[columns[i].id] = after;
71
+ after += sizes[i];
72
+ }
73
+ return {
74
+ starts,
75
+ afters
76
+ };
77
+ }
78
+ /**
79
+ * Builds start and after offset maps for every visible leaf column, computed
80
+ * once per pinning region plus the full visible list.
81
+ *
82
+ * A single table-level memo of this result backs all `column.getStart()` and
83
+ * `column.getAfter()` calls with O(1) lookups.
84
+ *
85
+ * @example
86
+ * ```ts
87
+ * const offsets = table_getColumnOffsets(table)
88
+ * const leftOffset = offsets.left.starts[column.id]
89
+ * ```
90
+ */
91
+ function table_getColumnOffsets(table) {
92
+ return {
93
+ all: buildColumnOffsets(require_columnPinningFeature_utils.table_getPinnedVisibleLeafColumns(table)),
94
+ center: buildColumnOffsets(require_columnPinningFeature_utils.table_getPinnedVisibleLeafColumns(table, "center")),
95
+ left: buildColumnOffsets(require_columnPinningFeature_utils.table_getPinnedVisibleLeafColumns(table, "left")),
96
+ right: buildColumnOffsets(require_columnPinningFeature_utils.table_getPinnedVisibleLeafColumns(table, "right"))
97
+ };
98
+ }
99
+ function toOffsetsKey(position) {
100
+ return position === "left" ? "left" : position === "right" ? "right" : position === "center" ? "center" : "all";
101
+ }
57
102
  /**
58
103
  * Computes the offset from the start edge of a pinning region to this column.
59
104
  *
@@ -66,10 +111,7 @@ function column_getSize(column) {
66
111
  * ```
67
112
  */
68
113
  function column_getStart(column, position) {
69
- const index = require_utils.callMemoOrStaticFn(column, "getIndex", require_columnOrderingFeature_utils.column_getIndex, position);
70
- if (index <= 0) return 0;
71
- const prevColumn = require_utils.callMemoOrStaticFn(column.table, "getPinnedVisibleLeafColumns", require_columnPinningFeature_utils.table_getPinnedVisibleLeafColumns, position)[index - 1];
72
- return require_utils.callMemoOrStaticFn(prevColumn, "getStart", column_getStart, position) + require_utils.callMemoOrStaticFn(prevColumn, "getSize", column_getSize);
114
+ return require_utils.callMemoOrStaticFn(column.table, "getColumnOffsets", table_getColumnOffsets)[toOffsetsKey(position)].starts[column.id] ?? 0;
73
115
  }
74
116
  /**
75
117
  * Computes the offset from the end edge of a pinning region after this column.
@@ -83,11 +125,7 @@ function column_getStart(column, position) {
83
125
  * ```
84
126
  */
85
127
  function column_getAfter(column, position) {
86
- const visibleLeafColumns = require_utils.callMemoOrStaticFn(column.table, "getPinnedVisibleLeafColumns", require_columnPinningFeature_utils.table_getPinnedVisibleLeafColumns, position);
87
- const index = require_utils.callMemoOrStaticFn(column, "getIndex", require_columnOrderingFeature_utils.column_getIndex, position);
88
- if (index < 0 || index >= visibleLeafColumns.length - 1) return 0;
89
- const nextColumn = visibleLeafColumns[index + 1];
90
- return require_utils.callMemoOrStaticFn(nextColumn, "getSize", column_getSize) + require_utils.callMemoOrStaticFn(nextColumn, "getAfter", column_getAfter, position);
128
+ return require_utils.callMemoOrStaticFn(column.table, "getColumnOffsets", table_getColumnOffsets)[toOffsetsKey(position)].afters[column.id] ?? 0;
91
129
  }
92
130
  /**
93
131
  * Removes this column's committed size override.
@@ -255,6 +293,7 @@ exports.getDefaultColumnSizingState = getDefaultColumnSizingState;
255
293
  exports.header_getSize = header_getSize;
256
294
  exports.header_getStart = header_getStart;
257
295
  exports.table_getCenterTotalSize = table_getCenterTotalSize;
296
+ exports.table_getColumnOffsets = table_getColumnOffsets;
258
297
  exports.table_getLeftTotalSize = table_getLeftTotalSize;
259
298
  exports.table_getRightTotalSize = table_getRightTotalSize;
260
299
  exports.table_getTotalSize = table_getTotalSize;
@@ -1 +1 @@
1
- {"version":3,"file":"columnSizingFeature.utils.cjs","names":["makeObjectMap","hasOwn","callMemoOrStaticFn","column_getIndex","table_getPinnedVisibleLeafColumns","cloneState","table_getLeftHeaderGroups","table_getCenterHeaderGroups","table_getRightHeaderGroups"],"sources":["../../../src/features/column-sizing/columnSizingFeature.utils.ts"],"sourcesContent":["import {\n table_getCenterHeaderGroups,\n table_getLeftHeaderGroups,\n table_getPinnedVisibleLeafColumns,\n table_getRightHeaderGroups,\n} from '../column-pinning/columnPinningFeature.utils'\nimport { column_getIndex } from '../column-ordering/columnOrderingFeature.utils'\nimport {\n callMemoOrStaticFn,\n cloneState,\n hasOwn,\n makeObjectMap,\n} from '../../utils'\nimport type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Header } from '../../types/Header'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnSizingState } from './columnSizingFeature.types'\n\n/**\n * Creates the default committed column sizing state.\n *\n * The feature default is an empty map, so columns fall back to their column def\n * size or the built-in sizing defaults.\n *\n * @example\n * ```ts\n * const sizing = getDefaultColumnSizingState()\n * ```\n */\nexport function getDefaultColumnSizingState(): ColumnSizingState {\n return makeObjectMap()\n}\n\n/**\n * Creates the built-in sizing defaults for column definitions.\n *\n * Columns default to `size: 150`, `minSize: 20`, and\n * `maxSize: Number.MAX_SAFE_INTEGER` unless overridden by column definitions or\n * table defaults.\n *\n * @example\n * ```ts\n * const defaults = getDefaultColumnSizingColumnDef()\n * ```\n */\nexport function getDefaultColumnSizingColumnDef() {\n return {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n }\n}\n\n/**\n * Resolves a column's current pixel size.\n *\n * Committed `state.columnSizing[column.id]` wins over `columnDef.size`, then the\n * built-in default size. The result is clamped between min and max size.\n *\n * @example\n * ```ts\n * const width = column_getSize(column)\n * ```\n */\nexport function column_getSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): number {\n const defaultSizes = getDefaultColumnSizingColumnDef()\n const columnSizing = column.table.atoms.columnSizing?.get()\n const columnSize =\n columnSizing && hasOwn(columnSizing, column.id)\n ? columnSizing[column.id]\n : undefined\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultSizes.minSize,\n columnSize ?? column.columnDef.size ?? defaultSizes.size,\n ),\n column.columnDef.maxSize ?? defaultSizes.maxSize,\n )\n}\n\n/**\n * Computes the offset from the start edge of a pinning region to this column.\n *\n * The value is the sum of all previous visible leaf column sizes in the\n * requested `'left'`, `'center'`, or `'right'` region.\n *\n * @example\n * ```ts\n * const leftOffset = column_getStart(column, 'left')\n * ```\n */\nexport function column_getStart<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position: ColumnPinningPosition | 'center',\n): number {\n const index = callMemoOrStaticFn(\n column,\n 'getIndex',\n column_getIndex,\n position,\n )\n if (index <= 0) return 0\n\n const visibleLeafColumns = callMemoOrStaticFn(\n column.table,\n 'getPinnedVisibleLeafColumns',\n table_getPinnedVisibleLeafColumns,\n position,\n )\n\n const prevColumn = visibleLeafColumns[index - 1]!\n return (\n callMemoOrStaticFn(prevColumn, 'getStart', column_getStart, position) +\n callMemoOrStaticFn(prevColumn, 'getSize', column_getSize)\n )\n}\n\n/**\n * Computes the offset from the end edge of a pinning region after this column.\n *\n * The value is the sum of all following visible leaf column sizes in the\n * requested region.\n *\n * @example\n * ```ts\n * const rightOffset = column_getAfter(column, 'right')\n * ```\n */\nexport function column_getAfter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position: ColumnPinningPosition | 'center',\n): number {\n const visibleLeafColumns = callMemoOrStaticFn(\n column.table,\n 'getPinnedVisibleLeafColumns',\n table_getPinnedVisibleLeafColumns,\n position,\n )\n const index = callMemoOrStaticFn(\n column,\n 'getIndex',\n column_getIndex,\n position,\n )\n if (index < 0 || index >= visibleLeafColumns.length - 1) return 0\n\n const nextColumn = visibleLeafColumns[index + 1]!\n return (\n callMemoOrStaticFn(nextColumn, 'getSize', column_getSize) +\n callMemoOrStaticFn(nextColumn, 'getAfter', column_getAfter, position)\n )\n}\n\n/**\n * Removes this column's committed size override.\n *\n * After reset, the column resolves size from `columnDef.size` or built-in\n * defaults again.\n *\n * @example\n * ```ts\n * column_resetSize(column)\n * ```\n */\nexport function column_resetSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n table_setColumnSizing(column.table, (old) => {\n const rest = makeObjectMap<number>()\n const columnIds = Object.keys(old)\n for (let i = 0; i < columnIds.length; i++) {\n const columnId = columnIds[i]!\n if (columnId !== column.id) {\n rest[columnId] = old[columnId]!\n }\n }\n return rest\n })\n}\n\n/**\n * Computes a header's rendered size from its leaf headers.\n *\n * Group headers sum the sizes of all descendant leaf columns. Leaf headers use\n * their column's current size.\n *\n * @example\n * ```ts\n * const width = header_getSize(header)\n * ```\n */\nexport function header_getSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>) {\n let sum = 0\n\n const recurse = (h: Header<TFeatures, TData, TValue>) => {\n if (h.subHeaders.length) {\n h.subHeaders.forEach(recurse)\n } else {\n sum += column_getSize(h.column)\n }\n }\n\n recurse(header)\n\n return sum\n}\n\n/**\n * Computes a header's offset from the start of its header group.\n *\n * The offset is the previous sibling header's start plus size, or `0` for the\n * first header in the group.\n *\n * @example\n * ```ts\n * const offset = header_getStart(header)\n * ```\n */\nexport function header_getStart<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>): number {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup?.headers[header.index - 1]\n if (prevSiblingHeader) {\n return (\n callMemoOrStaticFn(prevSiblingHeader, 'getStart', header_getStart) +\n callMemoOrStaticFn(prevSiblingHeader, 'getSize', header_getSize)\n )\n }\n }\n\n return 0\n}\n\n// Table APIs\n\n/**\n * Routes a committed column sizing updater through the table's sizing handler.\n *\n * The updater may be a next size map or a function of the previous map,\n * matching the instance `table.setColumnSizing` behavior.\n *\n * @example\n * ```ts\n * table_setColumnSizing(table, (old) => ({ ...old, age: 96 }))\n * ```\n */\nexport function table_setColumnSizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnSizingState>,\n) {\n table.options.onColumnSizingChange?.(updater)\n}\n\n/**\n * Resets `columnSizing` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnSizing` when it\n * exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetColumnSizing(table)\n * table_resetColumnSizing(table, true)\n * ```\n */\nexport function table_resetColumnSizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnSizing(\n table,\n defaultState\n ? makeObjectMap()\n : Object.assign(\n makeObjectMap<number>(),\n cloneState(table.initialState.columnSizing ?? {}),\n ),\n )\n}\n\n/**\n * Sums the rendered size of the full table header row.\n *\n * This includes left, center, and right columns in the main header group.\n *\n * @example\n * ```ts\n * const width = table_getTotalSize(table)\n * ```\n */\nexport function table_getTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the left pinned header region.\n *\n * An empty left pinning region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getLeftTotalSize(table)\n * ```\n */\nexport function table_getLeftTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the center, unpinned header region.\n *\n * An empty center region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getCenterTotalSize(table)\n * ```\n */\nexport function table_getCenterTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the right pinned header region.\n *\n * An empty right pinning region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getRightTotalSize(table)\n * ```\n */\nexport function table_getRightTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"columnSizingFeature.utils.cjs","names":["makeObjectMap","hasOwn","callMemoOrStaticFn","table_getPinnedVisibleLeafColumns","cloneState","table_getLeftHeaderGroups","table_getCenterHeaderGroups","table_getRightHeaderGroups"],"sources":["../../../src/features/column-sizing/columnSizingFeature.utils.ts"],"sourcesContent":["import {\n table_getCenterHeaderGroups,\n table_getLeftHeaderGroups,\n table_getPinnedVisibleLeafColumns,\n table_getRightHeaderGroups,\n} from '../column-pinning/columnPinningFeature.utils'\nimport {\n callMemoOrStaticFn,\n cloneState,\n hasOwn,\n makeObjectMap,\n} from '../../utils'\nimport type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Header } from '../../types/Header'\nimport type { Column_Internal } from '../../types/Column'\nimport type {\n ColumnOffsets,\n ColumnOffsetsByPosition,\n ColumnSizingState,\n} from './columnSizingFeature.types'\n\n/**\n * Creates the default committed column sizing state.\n *\n * The feature default is an empty map, so columns fall back to their column def\n * size or the built-in sizing defaults.\n *\n * @example\n * ```ts\n * const sizing = getDefaultColumnSizingState()\n * ```\n */\nexport function getDefaultColumnSizingState(): ColumnSizingState {\n return makeObjectMap()\n}\n\n/**\n * Creates the built-in sizing defaults for column definitions.\n *\n * Columns default to `size: 150`, `minSize: 20`, and\n * `maxSize: Number.MAX_SAFE_INTEGER` unless overridden by column definitions or\n * table defaults.\n *\n * @example\n * ```ts\n * const defaults = getDefaultColumnSizingColumnDef()\n * ```\n */\nexport function getDefaultColumnSizingColumnDef() {\n return {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n }\n}\n\n/**\n * Resolves a column's current pixel size.\n *\n * Committed `state.columnSizing[column.id]` wins over `columnDef.size`, then the\n * built-in default size. The result is clamped between min and max size.\n *\n * @example\n * ```ts\n * const width = column_getSize(column)\n * ```\n */\nexport function column_getSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): number {\n const defaultSizes = getDefaultColumnSizingColumnDef()\n const columnSizing = column.table.atoms.columnSizing?.get()\n const columnSize =\n columnSizing && hasOwn(columnSizing, column.id)\n ? columnSizing[column.id]\n : undefined\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultSizes.minSize,\n columnSize ?? column.columnDef.size ?? defaultSizes.size,\n ),\n column.columnDef.maxSize ?? defaultSizes.maxSize,\n )\n}\n\nfunction buildColumnOffsets<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(columns: Array<Column_Internal<TFeatures, TData, unknown>>): ColumnOffsets {\n const starts = makeObjectMap<number>()\n const afters = makeObjectMap<number>()\n const sizes = new Array<number>(columns.length)\n\n let start = 0\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]!\n const size = callMemoOrStaticFn(column, 'getSize', column_getSize)\n sizes[i] = size\n starts[column.id] = start\n start += size\n }\n\n let after = 0\n for (let i = columns.length - 1; i >= 0; i--) {\n afters[columns[i]!.id] = after\n after += sizes[i]!\n }\n\n return { starts, afters }\n}\n\n/**\n * Builds start and after offset maps for every visible leaf column, computed\n * once per pinning region plus the full visible list.\n *\n * A single table-level memo of this result backs all `column.getStart()` and\n * `column.getAfter()` calls with O(1) lookups.\n *\n * @example\n * ```ts\n * const offsets = table_getColumnOffsets(table)\n * const leftOffset = offsets.left.starts[column.id]\n * ```\n */\nexport function table_getColumnOffsets<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): ColumnOffsetsByPosition {\n return {\n all: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table) as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n center: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table, 'center') as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n left: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table, 'left') as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n right: buildColumnOffsets(\n table_getPinnedVisibleLeafColumns(table, 'right') as Array<\n Column_Internal<TFeatures, TData, unknown>\n >,\n ),\n }\n}\n\nfunction toOffsetsKey(\n position: ColumnPinningPosition | 'center' | undefined,\n): keyof ColumnOffsetsByPosition {\n return position === 'left'\n ? 'left'\n : position === 'right'\n ? 'right'\n : position === 'center'\n ? 'center'\n : 'all' // undefined | false use the full visible list\n}\n\n/**\n * Computes the offset from the start edge of a pinning region to this column.\n *\n * The value is the sum of all previous visible leaf column sizes in the\n * requested `'left'`, `'center'`, or `'right'` region.\n *\n * @example\n * ```ts\n * const leftOffset = column_getStart(column, 'left')\n * ```\n */\nexport function column_getStart<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n): number {\n const offsets = callMemoOrStaticFn(\n column.table,\n 'getColumnOffsets',\n table_getColumnOffsets,\n )\n return offsets[toOffsetsKey(position)].starts[column.id] ?? 0\n}\n\n/**\n * Computes the offset from the end edge of a pinning region after this column.\n *\n * The value is the sum of all following visible leaf column sizes in the\n * requested region.\n *\n * @example\n * ```ts\n * const rightOffset = column_getAfter(column, 'right')\n * ```\n */\nexport function column_getAfter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n): number {\n const offsets = callMemoOrStaticFn(\n column.table,\n 'getColumnOffsets',\n table_getColumnOffsets,\n )\n return offsets[toOffsetsKey(position)].afters[column.id] ?? 0\n}\n\n/**\n * Removes this column's committed size override.\n *\n * After reset, the column resolves size from `columnDef.size` or built-in\n * defaults again.\n *\n * @example\n * ```ts\n * column_resetSize(column)\n * ```\n */\nexport function column_resetSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n table_setColumnSizing(column.table, (old) => {\n const rest = makeObjectMap<number>()\n const columnIds = Object.keys(old)\n for (let i = 0; i < columnIds.length; i++) {\n const columnId = columnIds[i]!\n if (columnId !== column.id) {\n rest[columnId] = old[columnId]!\n }\n }\n return rest\n })\n}\n\n/**\n * Computes a header's rendered size from its leaf headers.\n *\n * Group headers sum the sizes of all descendant leaf columns. Leaf headers use\n * their column's current size.\n *\n * @example\n * ```ts\n * const width = header_getSize(header)\n * ```\n */\nexport function header_getSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>) {\n let sum = 0\n\n const recurse = (h: Header<TFeatures, TData, TValue>) => {\n if (h.subHeaders.length) {\n h.subHeaders.forEach(recurse)\n } else {\n sum += column_getSize(h.column)\n }\n }\n\n recurse(header)\n\n return sum\n}\n\n/**\n * Computes a header's offset from the start of its header group.\n *\n * The offset is the previous sibling header's start plus size, or `0` for the\n * first header in the group.\n *\n * @example\n * ```ts\n * const offset = header_getStart(header)\n * ```\n */\nexport function header_getStart<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>): number {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup?.headers[header.index - 1]\n if (prevSiblingHeader) {\n return (\n callMemoOrStaticFn(prevSiblingHeader, 'getStart', header_getStart) +\n callMemoOrStaticFn(prevSiblingHeader, 'getSize', header_getSize)\n )\n }\n }\n\n return 0\n}\n\n// Table APIs\n\n/**\n * Routes a committed column sizing updater through the table's sizing handler.\n *\n * The updater may be a next size map or a function of the previous map,\n * matching the instance `table.setColumnSizing` behavior.\n *\n * @example\n * ```ts\n * table_setColumnSizing(table, (old) => ({ ...old, age: 96 }))\n * ```\n */\nexport function table_setColumnSizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnSizingState>,\n) {\n table.options.onColumnSizingChange?.(updater)\n}\n\n/**\n * Resets `columnSizing` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnSizing` when it\n * exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetColumnSizing(table)\n * table_resetColumnSizing(table, true)\n * ```\n */\nexport function table_resetColumnSizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnSizing(\n table,\n defaultState\n ? makeObjectMap()\n : Object.assign(\n makeObjectMap<number>(),\n cloneState(table.initialState.columnSizing ?? {}),\n ),\n )\n}\n\n/**\n * Sums the rendered size of the full table header row.\n *\n * This includes left, center, and right columns in the main header group.\n *\n * @example\n * ```ts\n * const width = table_getTotalSize(table)\n * ```\n */\nexport function table_getTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the left pinned header region.\n *\n * An empty left pinning region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getLeftTotalSize(table)\n * ```\n */\nexport function table_getLeftTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the center, unpinned header region.\n *\n * An empty center region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getCenterTotalSize(table)\n * ```\n */\nexport function table_getCenterTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\n/**\n * Sums the rendered size of the right pinned header region.\n *\n * An empty right pinning region returns `0`.\n *\n * @example\n * ```ts\n * const width = table_getRightTotalSize(table)\n * ```\n */\nexport function table_getRightTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n"],"mappings":"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"}