@tanstack/table-core 8.0.0-alpha.58 → 8.0.0-alpha.61

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 (98) hide show
  1. package/build/cjs/core.js +10 -21
  2. package/build/cjs/core.js.map +1 -1
  3. package/build/cjs/createTable.js +3 -3
  4. package/build/cjs/createTable.js.map +1 -1
  5. package/build/cjs/features/Cells.js +0 -15
  6. package/build/cjs/features/Cells.js.map +1 -1
  7. package/build/cjs/features/ColumnSizing.js +8 -19
  8. package/build/cjs/features/ColumnSizing.js.map +1 -1
  9. package/build/cjs/features/Columns.js.map +1 -1
  10. package/build/cjs/features/Expanding.js +12 -22
  11. package/build/cjs/features/Expanding.js.map +1 -1
  12. package/build/cjs/features/Filters.js +0 -23
  13. package/build/cjs/features/Filters.js.map +1 -1
  14. package/build/cjs/features/Grouping.js +6 -27
  15. package/build/cjs/features/Grouping.js.map +1 -1
  16. package/build/cjs/features/Headers.js +1 -67
  17. package/build/cjs/features/Headers.js.map +1 -1
  18. package/build/cjs/features/Pagination.js +4 -4
  19. package/build/cjs/features/Pagination.js.map +1 -1
  20. package/build/cjs/features/Pinning.js.map +1 -1
  21. package/build/cjs/features/RowSelection.js +15 -79
  22. package/build/cjs/features/RowSelection.js.map +1 -1
  23. package/build/cjs/features/Rows.js +0 -15
  24. package/build/cjs/features/Rows.js.map +1 -1
  25. package/build/cjs/features/Sorting.js +7 -28
  26. package/build/cjs/features/Sorting.js.map +1 -1
  27. package/build/cjs/features/Visibility.js +8 -21
  28. package/build/cjs/features/Visibility.js.map +1 -1
  29. package/build/cjs/filterFns.js +16 -0
  30. package/build/cjs/filterFns.js.map +1 -1
  31. package/build/cjs/index.js +0 -1
  32. package/build/cjs/index.js.map +1 -1
  33. package/build/cjs/utils/getColumnFilteredRowModelSync.js +1 -1
  34. package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +1 -1
  35. package/build/cjs/utils/getCoreRowModelAsync.js +1 -2
  36. package/build/cjs/utils/getCoreRowModelAsync.js.map +1 -1
  37. package/build/cjs/utils/getCoreRowModelSync.js +1 -2
  38. package/build/cjs/utils/getCoreRowModelSync.js.map +1 -1
  39. package/build/cjs/utils/getGlobalFilteredRowModelSync.js +1 -1
  40. package/build/cjs/utils/getGlobalFilteredRowModelSync.js.map +1 -1
  41. package/build/cjs/utils/getGroupedRowModel.js +3 -1
  42. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  43. package/build/cjs/utils/getSortedRowModelSync.js +1 -1
  44. package/build/cjs/utils/getSortedRowModelSync.js.map +1 -1
  45. package/build/cjs/utils.js +0 -16
  46. package/build/cjs/utils.js.map +1 -1
  47. package/build/esm/index.js +100 -369
  48. package/build/esm/index.js.map +1 -1
  49. package/build/stats-html.html +1 -1
  50. package/build/stats-react.json +360 -360
  51. package/build/types/core.d.ts +8 -10
  52. package/build/types/createTable.d.ts +10 -11
  53. package/build/types/features/Cells.d.ts +1 -2
  54. package/build/types/features/ColumnSizing.d.ts +4 -18
  55. package/build/types/features/Expanding.d.ts +5 -9
  56. package/build/types/features/Filters.d.ts +0 -3
  57. package/build/types/features/Grouping.d.ts +4 -11
  58. package/build/types/features/Headers.d.ts +1 -5
  59. package/build/types/features/Pagination.d.ts +6 -7
  60. package/build/types/features/RowSelection.d.ts +5 -14
  61. package/build/types/features/Rows.d.ts +2 -4
  62. package/build/types/features/Sorting.d.ts +3 -9
  63. package/build/types/features/Visibility.d.ts +3 -6
  64. package/build/types/filterFns.d.ts +5 -0
  65. package/build/types/types.d.ts +10 -60
  66. package/build/types/utils.d.ts +1 -4
  67. package/build/umd/index.development.js +99 -369
  68. package/build/umd/index.development.js.map +1 -1
  69. package/build/umd/index.production.js +1 -1
  70. package/build/umd/index.production.js.map +1 -1
  71. package/package.json +1 -1
  72. package/src/core.ts +29 -53
  73. package/src/createTable.ts +13 -17
  74. package/src/features/Cells.ts +1 -27
  75. package/src/features/ColumnSizing.ts +14 -44
  76. package/src/features/Columns.ts +0 -2
  77. package/src/features/Expanding.ts +16 -44
  78. package/src/features/Filters.ts +0 -33
  79. package/src/features/Grouping.ts +10 -62
  80. package/src/features/Headers.ts +1 -95
  81. package/src/features/Pagination.ts +11 -4
  82. package/src/features/Pinning.ts +1 -1
  83. package/src/features/RowSelection.ts +25 -116
  84. package/src/features/Rows.ts +2 -30
  85. package/src/features/Sorting.ts +17 -63
  86. package/src/features/Visibility.ts +15 -43
  87. package/src/filterFns.ts +20 -0
  88. package/src/types.ts +36 -98
  89. package/src/utils/getColumnFilteredRowModelAsync.ts +2 -6
  90. package/src/utils/getColumnFilteredRowModelSync.ts +1 -1
  91. package/src/utils/getCoreRowModelAsync.ts +1 -2
  92. package/src/utils/getCoreRowModelSync.ts +1 -2
  93. package/src/utils/getGlobalFilteredRowModelAsync.ts +3 -7
  94. package/src/utils/getGlobalFilteredRowModelSync.ts +1 -1
  95. package/src/utils/getGroupedRowModel.ts +2 -1
  96. package/src/utils/getSortedRowModelAsync.ts +1 -2
  97. package/src/utils/getSortedRowModelSync.ts +1 -1
  98. package/src/utils.ts +1 -28
package/build/cjs/core.js CHANGED
@@ -44,18 +44,22 @@ function createTableInstance(options) {
44
44
  return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(instance));
45
45
  }, {});
46
46
 
47
- var buildOptions = function buildOptions(options) {
47
+ var mergeOptions = function mergeOptions(options) {
48
+ if (instance.options.mergeOptions) {
49
+ return instance.options.mergeOptions(defaultOptions, options);
50
+ }
51
+
48
52
  return _rollupPluginBabelHelpers["extends"]({}, defaultOptions, options);
49
53
  };
50
54
 
51
- instance.options = buildOptions(options);
55
+ instance.options = _rollupPluginBabelHelpers["extends"]({}, defaultOptions, options);
52
56
  var coreInitialState = {
53
57
  coreProgress: 1
54
58
  };
55
59
 
56
- var initialState = _rollupPluginBabelHelpers["extends"]({}, coreInitialState, instance._features.reduce(function (obj, feature) {
57
- return Object.assign(obj, feature.getInitialState == null ? void 0 : feature.getInitialState());
58
- }, {}), (_options$initialState = options.initialState) != null ? _options$initialState : {});
60
+ var initialState = _rollupPluginBabelHelpers["extends"]({}, coreInitialState, (_options$initialState = options.initialState) != null ? _options$initialState : {}, instance._features.reduce(function (obj, feature) {
61
+ return Object.assign(obj, feature.getInitialState == null ? void 0 : feature.getInitialState(options.initialState));
62
+ }, {}));
59
63
 
60
64
  var queued = [];
61
65
  var queuedTimeout;
@@ -87,12 +91,7 @@ function createTableInstance(options) {
87
91
  },
88
92
  setOptions: function setOptions(updater) {
89
93
  var newOptions = utils.functionalUpdate(updater, instance.options);
90
-
91
- if (instance.options.mergeOptions) {
92
- instance.options = instance.options.mergeOptions(defaultOptions, newOptions);
93
- } else {
94
- instance.options = buildOptions(newOptions);
95
- }
94
+ instance.options = mergeOptions(newOptions);
96
95
  },
97
96
  render: function render(template, props) {
98
97
  if (typeof instance.options.render === 'function') {
@@ -111,16 +110,6 @@ function createTableInstance(options) {
111
110
  setState: function setState(updater) {
112
111
  instance.options.onStateChange == null ? void 0 : instance.options.onStateChange(updater);
113
112
  },
114
- getTableProps: function getTableProps(userProps) {
115
- return utils.propGetter({
116
- role: 'table'
117
- }, userProps);
118
- },
119
- getTableBodyProps: function getTableBodyProps(userProps) {
120
- return utils.propGetter({
121
- role: 'rowgroup'
122
- }, userProps);
123
- },
124
113
  getOverallProgress: function getOverallProgress() {
125
114
  var _instance$getState = instance.getState(),
126
115
  coreProgress = _instance$getState.coreProgress,
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sources":["../../src/core.ts"],"sourcesContent":["import { functionalUpdate, propGetter, RequiredKeys } from './utils'\n\nimport {\n Updater,\n Options,\n TableState,\n ColumnDef,\n TableProps,\n TableBodyProps,\n PropGetter,\n TableInstance,\n Renderable,\n UseRenderer,\n TableFeature,\n TableGenerics,\n} from './types'\n\nimport { Columns } from './features/Columns'\nimport { Rows } from './features/Rows'\nimport { Cells } from './features/Cells'\nimport { ColumnSizing } from './features/ColumnSizing'\nimport { Expanding } from './features/Expanding'\nimport { Filters } from './features/Filters'\nimport { Grouping } from './features/Grouping'\nimport { Ordering } from './features/Ordering'\nimport { Pagination } from './features/Pagination'\nimport { Pinning } from './features/Pinning'\nimport { RowSelection } from './features/RowSelection'\nimport { Sorting } from './features/Sorting'\nimport { Visibility } from './features/Visibility'\nimport { Headers } from './features/Headers'\n//\nimport { mean } from './aggregationFns'\n\nexport type CoreTableState = {\n coreProgress: number\n}\n\nexport type CoreOptions<TGenerics extends TableGenerics> = {\n data: TGenerics['Row'][]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n render: TGenerics['Render']\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n initialState?: Partial<TableState>\n autoResetAll?: boolean\n mergeOptions?: (\n defaultOptions: TableFeature,\n options: Partial<Options<TGenerics>>\n ) => Options<TGenerics>\n meta?: TGenerics['TableMeta']\n}\n\nexport type TableCore<TGenerics extends TableGenerics> = {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<Options<TGenerics>, 'state'>\n setOptions: (newOptions: Updater<Options<TGenerics>>) => void\n queue: (cb: () => void) => void\n willUpdate: () => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n getTableProps: PropGetter<TableProps>\n getTableBodyProps: PropGetter<TableBodyProps>\n render: <TProps>(\n template: Renderable<TGenerics, TProps>,\n props: TProps\n ) => string | null | ReturnType<UseRenderer<TGenerics>>\n getOverallProgress: () => number\n _features: readonly TableFeature[]\n}\n\nexport function createTableInstance<TGenerics extends TableGenerics>(\n options: Options<TGenerics>\n): TableInstance<TGenerics> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let instance = {} as TableInstance<TGenerics>\n\n instance._features = [\n Columns,\n Rows,\n Cells,\n Headers,\n Visibility,\n Ordering,\n Pinning,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n Pagination,\n RowSelection,\n ColumnSizing,\n ] as const\n\n const defaultOptions = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(instance))\n }, {})\n\n const buildOptions = (options: Options<TGenerics>) => ({\n ...defaultOptions,\n ...options,\n })\n\n instance.options = buildOptions(options)\n\n const coreInitialState: CoreTableState = {\n coreProgress: 1,\n }\n\n const initialState = {\n ...coreInitialState,\n ...instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getInitialState?.())\n }, {}),\n ...(options.initialState ?? {}),\n } as TableState\n\n const queued: (() => void)[] = []\n let queuedTimeout: NodeJS.Timeout\n\n const finalInstance: TableInstance<TGenerics> = {\n ...instance,\n ...(instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createInstance?.(instance))\n }, {}) as unknown as TableInstance<TGenerics>),\n queue: cb => {\n queued.push(cb)\n if (!queuedTimeout) {\n queuedTimeout = setTimeout(() => {\n instance.setState(old => ({ ...old }))\n })\n }\n },\n willUpdate: () => {\n clearTimeout(queuedTimeout)\n while (queued.length) {\n queued.shift()!()\n }\n },\n initialState,\n reset: () => {\n instance.setState(instance.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, instance.options)\n if (instance.options.mergeOptions) {\n instance.options = instance.options.mergeOptions(\n defaultOptions,\n newOptions\n )\n } else {\n instance.options = buildOptions(newOptions)\n }\n },\n render: (template, props) => {\n if (typeof instance.options.render === 'function') {\n return instance.options.render(template, props)\n }\n\n if (typeof template === 'function') {\n return (template as Function)(props)\n }\n\n return template\n },\n\n getState: () => {\n return instance.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n instance.options.onStateChange?.(updater)\n },\n\n getTableProps: userProps => {\n return propGetter(\n {\n role: 'table',\n },\n userProps\n )\n },\n\n getTableBodyProps: userProps => {\n return propGetter(\n {\n role: 'rowgroup',\n },\n userProps\n )\n },\n\n getOverallProgress: () => {\n const { coreProgress, columnFiltersProgress, globalFilterProgress } =\n instance.getState()\n\n return mean(() =>\n [coreProgress, columnFiltersProgress, globalFilterProgress].filter(\n d => d < 1\n )\n ) as number\n },\n }\n\n instance = Object.assign(instance, finalInstance)\n\n return instance\n}\n"],"names":["createTableInstance","options","debugAll","debugTable","console","info","instance","_features","Columns","Rows","Cells","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","buildOptions","coreInitialState","coreProgress","initialState","_extends","getInitialState","queued","queuedTimeout","finalInstance","createInstance","queue","cb","push","setTimeout","setState","old","willUpdate","clearTimeout","length","shift","reset","setOptions","updater","newOptions","functionalUpdate","mergeOptions","render","template","props","getState","state","onStateChange","getTableProps","userProps","propGetter","role","getTableBodyProps","getOverallProgress","columnFiltersProgress","globalFilterProgress","mean","filter","d"],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sources":["../../src/core.ts"],"sourcesContent":["import { functionalUpdate, RequiredKeys } from './utils'\n\nimport {\n Updater,\n TableOptions,\n TableState,\n TableInstance,\n Renderable,\n TableFeature,\n TableGenerics,\n InitialTableState,\n} from './types'\n\nimport { Columns } from './features/Columns'\nimport { Rows } from './features/Rows'\nimport { Cells } from './features/Cells'\nimport { ColumnSizing } from './features/ColumnSizing'\nimport { Expanding } from './features/Expanding'\nimport { Filters } from './features/Filters'\nimport { Grouping } from './features/Grouping'\nimport { Ordering } from './features/Ordering'\nimport { Pagination } from './features/Pagination'\nimport { Pinning } from './features/Pinning'\nimport { RowSelection } from './features/RowSelection'\nimport { Sorting } from './features/Sorting'\nimport { Visibility } from './features/Visibility'\nimport { Headers } from './features/Headers'\n//\nimport { mean } from './aggregationFns'\n\nexport type CoreTableState = {\n coreProgress: number\n}\n\nexport type CoreOptions<TGenerics extends TableGenerics> = {\n data: TGenerics['Row'][]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n render: TGenerics['Renderer']\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n initialState?: InitialTableState\n autoResetAll?: boolean\n mergeOptions?: <T>(defaultOptions: T, options: Partial<T>) => T\n meta?: TGenerics['TableMeta']\n}\n\nexport type TableCore<TGenerics extends TableGenerics> = {\n // generics: TGenerics\n initialState: TableState\n reset: () => void\n options: RequiredKeys<TableOptions<TGenerics>, 'state'>\n setOptions: (newOptions: Updater<TableOptions<TGenerics>>) => void\n queue: (cb: () => void) => void\n willUpdate: () => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n render: <TProps>(\n template: Renderable<TGenerics, TProps>,\n props: TProps\n ) => string | null | TGenerics['Rendered']\n getOverallProgress: () => number\n _features: readonly TableFeature[]\n}\n\nexport function createTableInstance<TGenerics extends TableGenerics>(\n options: TableOptions<TGenerics>\n): TableInstance<TGenerics> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let instance = {} as TableInstance<TGenerics>\n\n instance._features = [\n Columns,\n Rows,\n Cells,\n Headers,\n Visibility,\n Ordering,\n Pinning,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n Pagination,\n RowSelection,\n ColumnSizing,\n ] as const\n\n const defaultOptions = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(instance))\n }, {}) as TableOptions<TGenerics>\n\n const mergeOptions = (options: TableOptions<TGenerics>) => {\n if (instance.options.mergeOptions) {\n return instance.options.mergeOptions(defaultOptions, options)\n }\n\n return {\n ...defaultOptions,\n ...options,\n }\n }\n\n instance.options = {\n ...defaultOptions,\n ...options,\n }\n\n const coreInitialState: CoreTableState = {\n coreProgress: 1,\n }\n\n const initialState = {\n ...coreInitialState,\n ...(options.initialState ?? {}),\n ...instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getInitialState?.(options.initialState))\n }, {}),\n } as TableState\n\n const queued: (() => void)[] = []\n let queuedTimeout: ReturnType<typeof setTimeout>\n\n const finalInstance: TableInstance<TGenerics> = {\n ...instance,\n ...(instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createInstance?.(instance))\n }, {}) as unknown as TableInstance<TGenerics>),\n queue: cb => {\n queued.push(cb)\n if (!queuedTimeout) {\n queuedTimeout = setTimeout(() => {\n instance.setState(old => ({ ...old }))\n })\n }\n },\n willUpdate: () => {\n clearTimeout(queuedTimeout)\n while (queued.length) {\n queued.shift()!()\n }\n },\n initialState,\n reset: () => {\n instance.setState(instance.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, instance.options)\n instance.options = mergeOptions(newOptions)\n },\n render: (template, props) => {\n if (typeof instance.options.render === 'function') {\n return instance.options.render(template, props)\n }\n\n if (typeof template === 'function') {\n return (template as Function)(props)\n }\n\n return template\n },\n\n getState: () => {\n return instance.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n instance.options.onStateChange?.(updater)\n },\n\n getOverallProgress: () => {\n const { coreProgress, columnFiltersProgress, globalFilterProgress } =\n instance.getState()\n\n return mean(() =>\n [coreProgress, columnFiltersProgress, globalFilterProgress].filter(\n d => d < 1\n )\n ) as number\n },\n }\n\n instance = Object.assign(instance, finalInstance)\n\n return instance\n}\n"],"names":["createTableInstance","options","debugAll","debugTable","console","info","instance","_features","Columns","Rows","Cells","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","mergeOptions","coreInitialState","coreProgress","initialState","getInitialState","queued","queuedTimeout","finalInstance","_extends","createInstance","queue","cb","push","setTimeout","setState","old","willUpdate","clearTimeout","length","shift","reset","setOptions","updater","newOptions","functionalUpdate","render","template","props","getState","state","onStateChange","getOverallProgress","columnFiltersProgress","globalFilterProgress","mean","filter","d"],"mappings":"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"}
@@ -30,6 +30,9 @@ function createTable(_, __, options) {
30
30
  throw new Error('');
31
31
  }()
32
32
  },
33
+ setGenerics: function setGenerics() {
34
+ return table;
35
+ },
33
36
  setRowType: function setRowType() {
34
37
  return table;
35
38
  },
@@ -42,9 +45,6 @@ function createTable(_, __, options) {
42
45
  setOptions: function setOptions(newOptions) {
43
46
  return createTable(_, __, _rollupPluginBabelHelpers["extends"]({}, options, newOptions));
44
47
  },
45
- createColumns: function createColumns(columns) {
46
- return columns;
47
- },
48
48
  createDisplayColumn: function createDisplayColumn(column) {
49
49
  return _rollupPluginBabelHelpers["extends"]({}, column, {
50
50
  columnDefType: 'display'
@@ -1 +1 @@
1
- {"version":3,"file":"createTable.js","sources":["../../src/createTable.ts"],"sourcesContent":["import { CustomFilterFns, FilterFn } from './features/Filters'\nimport { AggregationFn, CustomAggregationFns } from './features/Grouping'\nimport { CustomSortingFns, SortingFn } from './features/Sorting'\nimport {\n ColumnDef,\n AccessorFn,\n AnyRender,\n TableGenerics,\n Options,\n} from './types'\nimport { IfDefined, Overwrite, PartialKeys } from './utils'\n\nexport type TableFactory<TGenerics extends TableGenerics> =\n () => Table<TGenerics>\n\nexport type CreateTableOptions<\n TRender extends AnyRender,\n TFilterFns extends CustomFilterFns<any>,\n TSortingFns extends CustomSortingFns<any>,\n TAggregationFns extends CustomAggregationFns<any>,\n TGenerics extends TableGenerics\n> = Partial<\n {\n render?: TRender\n filterFns?: TFilterFns\n sortingFns?: TSortingFns\n aggregationFns?: TAggregationFns\n } & Omit<Options<TGenerics>, 'filterFns' | 'sortingFns' | 'aggregationFns'>\n>\n\nexport type Table<TGenerics extends TableGenerics> = {\n generics: TGenerics\n options: Partial<Options<TGenerics>>\n setRowType: <TRow>() => Table<Overwrite<TGenerics, { Row: TRow }>>\n setTableMetaType: <TTableMeta>() => Table<\n Overwrite<TGenerics, { TableMeta: TTableMeta }>\n >\n setColumnMetaType: <TColumnMeta>() => Table<\n Overwrite<TGenerics, { ColumnMeta: TColumnMeta }>\n >\n setOptions: <\n TFilterFns extends Record<string, FilterFn<any>>,\n TSortingFns extends Record<string, SortingFn<any>>,\n TAggregationFns extends Record<string, AggregationFn<any>>\n >(\n options: CreateTableOptions<\n any,\n TFilterFns,\n TSortingFns,\n TAggregationFns,\n TGenerics\n >\n ) => Table<\n Overwrite<\n TGenerics,\n {\n FilterFns: IfDefined<TFilterFns, TGenerics['FilterFns']>\n SortingFns: IfDefined<TSortingFns, TGenerics['SortingFns']>\n AggregationFns: IfDefined<TAggregationFns, TGenerics['AggregationFns']>\n }\n >\n >\n createColumns: <TColumnDef extends ColumnDef<any>>(\n columns: TColumnDef[]\n ) => TColumnDef[]\n createGroup: (\n column: Overwrite<\n | Overwrite<\n ColumnDef<any>,\n {\n header: string\n id?: string\n }\n >\n | Overwrite<\n ColumnDef<any>,\n {\n id: string\n header?: string | ((...any: any) => any)\n }\n >,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createDisplayColumn: (\n column: Overwrite<\n PartialKeys<ColumnDef<TGenerics>, 'accessorFn' | 'accessorKey'>,\n {\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createDataColumn: <\n TAccessor extends AccessorFn<TGenerics['Row']> | keyof TGenerics['Row']\n >(\n accessor: TAccessor,\n column: Overwrite<\n TAccessor extends (...args: any[]) => any\n ? // Accessor Fn\n ColumnDef<Overwrite<TGenerics, { Value: ReturnType<TAccessor> }>>\n : TAccessor extends keyof TGenerics['Row']\n ? // Accessor Key\n Overwrite<\n ColumnDef<\n Overwrite<TGenerics, { Value: TGenerics['Row'][TAccessor] }>\n >,\n {\n id?: string\n }\n >\n : never,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n}\n\n//\n\nexport function createTableFactory<TRender extends AnyRender>(opts: {\n render: TRender\n}): () => Table<{ Render: TRender }> {\n return () => createTable(undefined, undefined, opts)\n}\n\n// A lot of returns in here are `as any` for a reason. Unless you\n// can find a better way to do this, then don't worry about them\nfunction createTable<TGenerics extends TableGenerics>(\n _?: undefined,\n __?: undefined,\n options?: CreateTableOptions<any, any, any, any, TGenerics>\n): Table<TGenerics> {\n const table: Table<TGenerics> = {\n generics: undefined!,\n options: options ?? {\n render: (() => {\n throw new Error('')\n })(),\n },\n setRowType: () => table as any,\n setTableMetaType: () => table as any,\n setColumnMetaType: () => table as any,\n setOptions: newOptions =>\n createTable(_, __, {\n ...options,\n ...newOptions,\n } as any),\n createColumns: columns => columns,\n createDisplayColumn: column => ({ ...column, columnDefType: 'display' }),\n createGroup: column => ({ ...column, columnDefType: 'group' } as any),\n createDataColumn: (accessor, column): any => {\n column = {\n ...column,\n columnDefType: 'data',\n id: column.id,\n }\n\n if (typeof accessor === 'string') {\n return {\n ...column,\n id: column.id ?? accessor,\n accessorKey: accessor,\n }\n }\n\n if (typeof accessor === 'function') {\n return {\n ...column,\n accessorFn: accessor,\n }\n }\n\n throw new Error('Invalid accessor')\n },\n }\n\n return table\n}\n"],"names":["createTableFactory","opts","createTable","undefined","_","__","options","table","generics","render","Error","setRowType","setTableMetaType","setColumnMetaType","setOptions","newOptions","createColumns","columns","createDisplayColumn","column","_extends","columnDefType","createGroup","createDataColumn","accessor","id","accessorKey","accessorFn"],"mappings":";;;;;;;;;;;;;;;;AA4HA;AAEO,SAASA,kBAAT,CAAuDC,IAAvD,EAE8B;AACnC,EAAO,OAAA,YAAA;AAAA,IAAA,OAAMC,WAAW,CAACC,SAAD,EAAYA,SAAZ,EAAuBF,IAAvB,CAAjB,CAAA;AAAA,GAAP,CAAA;AACD;AAGD;;AACA,SAASC,WAAT,CACEE,CADF,EAEEC,EAFF,EAGEC,OAHF,EAIoB;AAClB,EAAA,IAAMC,KAAuB,GAAG;AAC9BC,IAAAA,QAAQ,EAAEL,SADoB;AAE9BG,IAAAA,OAAO,EAAEA,OAAF,IAAA,IAAA,GAAEA,OAAF,GAAa;AAClBG,MAAAA,MAAM,EAAG,YAAM;AACb,QAAA,MAAM,IAAIC,KAAJ,CAAU,EAAV,CAAN,CAAA;AACD,OAFO,EAAA;AADU,KAFU;AAO9BC,IAAAA,UAAU,EAAE,SAAA,UAAA,GAAA;AAAA,MAAA,OAAMJ,KAAN,CAAA;AAAA,KAPkB;AAQ9BK,IAAAA,gBAAgB,EAAE,SAAA,gBAAA,GAAA;AAAA,MAAA,OAAML,KAAN,CAAA;AAAA,KARY;AAS9BM,IAAAA,iBAAiB,EAAE,SAAA,iBAAA,GAAA;AAAA,MAAA,OAAMN,KAAN,CAAA;AAAA,KATW;AAU9BO,IAAAA,UAAU,EAAE,SAAA,UAAA,CAAAC,UAAU,EAAA;AAAA,MACpBb,OAAAA,WAAW,CAACE,CAAD,EAAIC,EAAJ,EACNC,oCAAAA,CAAAA,EAAAA,EAAAA,OADM,EAENS,UAFM,CADS,CAAA,CAAA;AAAA,KAVQ;AAe9BC,IAAAA,aAAa,EAAE,SAAA,aAAA,CAAAC,OAAO,EAAA;AAAA,MAAA,OAAIA,OAAJ,CAAA;AAAA,KAfQ;AAgB9BC,IAAAA,mBAAmB,EAAE,SAAA,mBAAA,CAAAC,MAAM,EAAA;AAAA,MAAA,OAAAC,oCAAA,CAAA,EAAA,EAAUD,MAAV,EAAA;AAAkBE,QAAAA,aAAa,EAAE,SAAA;AAAjC,OAAA,CAAA,CAAA;AAAA,KAhBG;AAiB9BC,IAAAA,WAAW,EAAE,SAAA,WAAA,CAAAH,MAAM,EAAA;AAAA,MAAA,OAAAC,oCAAA,CAAA,EAAA,EAAUD,MAAV,EAAA;AAAkBE,QAAAA,aAAa,EAAE,OAAA;AAAjC,OAAA,CAAA,CAAA;AAAA,KAjBW;AAkB9BE,IAAAA,gBAAgB,EAAE,SAAA,gBAAA,CAACC,QAAD,EAAWL,MAAX,EAA2B;AAC3CA,MAAAA,MAAM,4CACDA,MADC,EAAA;AAEJE,QAAAA,aAAa,EAAE,MAFX;AAGJI,QAAAA,EAAE,EAAEN,MAAM,CAACM,EAAAA;AAHP,OAAN,CAAA,CAAA;;AAMA,MAAA,IAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC;AAAA,QAAA,IAAA,UAAA,CAAA;;AAChC,QAAA,OAAAJ,oCAAA,CAAA,EAAA,EACKD,MADL,EAAA;AAEEM,UAAAA,EAAE,EAAEN,CAAAA,UAAAA,GAAAA,MAAM,CAACM,EAAT,yBAAeD,QAFnB;AAGEE,UAAAA,WAAW,EAAEF,QAAAA;AAHf,SAAA,CAAA,CAAA;AAKD,OAAA;;AAED,MAAA,IAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,QAAA,OAAAJ,oCAAA,CAAA,EAAA,EACKD,MADL,EAAA;AAEEQ,UAAAA,UAAU,EAAEH,QAAAA;AAFd,SAAA,CAAA,CAAA;AAID,OAAA;;AAED,MAAA,MAAM,IAAId,KAAJ,CAAU,kBAAV,CAAN,CAAA;AACD,KAAA;AAzC6B,GAAhC,CAAA;AA4CA,EAAA,OAAOH,KAAP,CAAA;AACD;;;;"}
1
+ {"version":3,"file":"createTable.js","sources":["../../src/createTable.ts"],"sourcesContent":["import { CustomFilterFns, FilterFn } from './features/Filters'\nimport { AggregationFn, CustomAggregationFns } from './features/Grouping'\nimport { CustomSortingFns, SortingFn } from './features/Sorting'\nimport {\n ColumnDef,\n AccessorFn,\n AnyRender,\n TableGenerics,\n TableOptions,\n} from './types'\nimport { IfDefined, Overwrite } from './utils'\n\nexport type TableFactory<TGenerics extends TableGenerics> =\n () => Table<TGenerics>\n\nexport type CreateTableOptions<\n TRender extends AnyRender,\n TFilterFns extends CustomFilterFns<any>,\n TSortingFns extends CustomSortingFns<any>,\n TAggregationFns extends CustomAggregationFns<any>,\n TGenerics extends TableGenerics\n> = Partial<\n {\n render?: TRender\n filterFns?: TFilterFns\n sortingFns?: TSortingFns\n aggregationFns?: TAggregationFns\n } & Omit<\n TableOptions<TGenerics>,\n 'filterFns' | 'sortingFns' | 'aggregationFns'\n >\n>\n\nexport type Table<TGenerics extends TableGenerics> = {\n generics: TGenerics\n options: Partial<TableOptions<TGenerics>>\n setGenerics: <T extends TableGenerics>() => Table<T>\n setRowType: <TRow>() => Table<Overwrite<TGenerics, { Row: TRow }>>\n setTableMetaType: <TTableMeta>() => Table<\n Overwrite<TGenerics, { TableMeta: TTableMeta }>\n >\n setColumnMetaType: <TColumnMeta>() => Table<\n Overwrite<TGenerics, { ColumnMeta: TColumnMeta }>\n >\n setOptions: <\n TFilterFns extends Record<string, FilterFn<any>>,\n TSortingFns extends Record<string, SortingFn<any>>,\n TAggregationFns extends Record<string, AggregationFn<any>>\n >(\n options: CreateTableOptions<\n any,\n TFilterFns,\n TSortingFns,\n TAggregationFns,\n TGenerics\n >\n ) => Table<\n Overwrite<\n TGenerics,\n {\n FilterFns: IfDefined<TFilterFns, TGenerics['FilterFns']>\n SortingFns: IfDefined<TSortingFns, TGenerics['SortingFns']>\n AggregationFns: IfDefined<TAggregationFns, TGenerics['AggregationFns']>\n }\n >\n >\n createGroup: (\n column: Overwrite<\n | Overwrite<\n ColumnDef<any>,\n {\n header: string\n id?: string\n }\n >\n | Overwrite<\n ColumnDef<any>,\n {\n id: string\n header?: string | ((...any: any) => any)\n }\n >,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createDisplayColumn: (\n column: Omit<ColumnDef<TGenerics>, 'columns'>\n ) => ColumnDef<TGenerics>\n createDataColumn: <\n TAccessor extends AccessorFn<TGenerics['Row']> | keyof TGenerics['Row']\n >(\n accessor: TAccessor,\n column: Overwrite<\n TAccessor extends (...args: any[]) => any\n ? // Accessor Fn\n ColumnDef<Overwrite<TGenerics, { Value: ReturnType<TAccessor> }>>\n : TAccessor extends keyof TGenerics['Row']\n ? // Accessor Key\n Overwrite<\n ColumnDef<\n Overwrite<TGenerics, { Value: TGenerics['Row'][TAccessor] }>\n >,\n {\n id?: string\n }\n >\n : never,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n}\n\n//\n\nexport function createTableFactory<TRenderer extends AnyRender>(opts: {\n render: TRenderer\n}): () => Table<{ Renderer: TRenderer; Rendered: ReturnType<TRenderer> }> {\n return () => createTable(undefined, undefined, opts)\n}\n\n// A lot of returns in here are `as any` for a reason. Unless you\n// can find a better way to do this, then don't worry about them\nfunction createTable<TGenerics extends TableGenerics>(\n _?: undefined,\n __?: undefined,\n options?: CreateTableOptions<any, any, any, any, TGenerics>\n): Table<TGenerics> {\n const table: Table<TGenerics> = {\n generics: undefined!,\n options: options ?? {\n render: (() => {\n throw new Error('')\n })(),\n },\n setGenerics: () => table as any,\n setRowType: () => table as any,\n setTableMetaType: () => table as any,\n setColumnMetaType: () => table as any,\n setOptions: newOptions =>\n createTable(_, __, {\n ...options,\n ...newOptions,\n } as any),\n createDisplayColumn: column => ({ ...column, columnDefType: 'display' }),\n createGroup: column => ({ ...column, columnDefType: 'group' } as any),\n createDataColumn: (accessor, column): any => {\n column = {\n ...column,\n columnDefType: 'data',\n id: column.id,\n }\n\n if (typeof accessor === 'string') {\n return {\n ...column,\n id: column.id ?? accessor,\n accessorKey: accessor,\n }\n }\n\n if (typeof accessor === 'function') {\n return {\n ...column,\n accessorFn: accessor,\n }\n }\n\n throw new Error('Invalid accessor')\n },\n }\n\n return table\n}\n"],"names":["createTableFactory","opts","createTable","undefined","_","__","options","table","generics","render","Error","setGenerics","setRowType","setTableMetaType","setColumnMetaType","setOptions","newOptions","createDisplayColumn","column","_extends","columnDefType","createGroup","createDataColumn","accessor","id","accessorKey","accessorFn"],"mappings":";;;;;;;;;;;;;;;;AAwHA;AAEO,SAASA,kBAAT,CAAyDC,IAAzD,EAEmE;AACxE,EAAO,OAAA,YAAA;AAAA,IAAA,OAAMC,WAAW,CAACC,SAAD,EAAYA,SAAZ,EAAuBF,IAAvB,CAAjB,CAAA;AAAA,GAAP,CAAA;AACD;AAGD;;AACA,SAASC,WAAT,CACEE,CADF,EAEEC,EAFF,EAGEC,OAHF,EAIoB;AAClB,EAAA,IAAMC,KAAuB,GAAG;AAC9BC,IAAAA,QAAQ,EAAEL,SADoB;AAE9BG,IAAAA,OAAO,EAAEA,OAAF,IAAA,IAAA,GAAEA,OAAF,GAAa;AAClBG,MAAAA,MAAM,EAAG,YAAM;AACb,QAAA,MAAM,IAAIC,KAAJ,CAAU,EAAV,CAAN,CAAA;AACD,OAFO,EAAA;AADU,KAFU;AAO9BC,IAAAA,WAAW,EAAE,SAAA,WAAA,GAAA;AAAA,MAAA,OAAMJ,KAAN,CAAA;AAAA,KAPiB;AAQ9BK,IAAAA,UAAU,EAAE,SAAA,UAAA,GAAA;AAAA,MAAA,OAAML,KAAN,CAAA;AAAA,KARkB;AAS9BM,IAAAA,gBAAgB,EAAE,SAAA,gBAAA,GAAA;AAAA,MAAA,OAAMN,KAAN,CAAA;AAAA,KATY;AAU9BO,IAAAA,iBAAiB,EAAE,SAAA,iBAAA,GAAA;AAAA,MAAA,OAAMP,KAAN,CAAA;AAAA,KAVW;AAW9BQ,IAAAA,UAAU,EAAE,SAAA,UAAA,CAAAC,UAAU,EAAA;AAAA,MACpBd,OAAAA,WAAW,CAACE,CAAD,EAAIC,EAAJ,EACNC,oCAAAA,CAAAA,EAAAA,EAAAA,OADM,EAENU,UAFM,CADS,CAAA,CAAA;AAAA,KAXQ;AAgB9BC,IAAAA,mBAAmB,EAAE,SAAA,mBAAA,CAAAC,MAAM,EAAA;AAAA,MAAA,OAAAC,oCAAA,CAAA,EAAA,EAAUD,MAAV,EAAA;AAAkBE,QAAAA,aAAa,EAAE,SAAA;AAAjC,OAAA,CAAA,CAAA;AAAA,KAhBG;AAiB9BC,IAAAA,WAAW,EAAE,SAAA,WAAA,CAAAH,MAAM,EAAA;AAAA,MAAA,OAAAC,oCAAA,CAAA,EAAA,EAAUD,MAAV,EAAA;AAAkBE,QAAAA,aAAa,EAAE,OAAA;AAAjC,OAAA,CAAA,CAAA;AAAA,KAjBW;AAkB9BE,IAAAA,gBAAgB,EAAE,SAAA,gBAAA,CAACC,QAAD,EAAWL,MAAX,EAA2B;AAC3CA,MAAAA,MAAM,4CACDA,MADC,EAAA;AAEJE,QAAAA,aAAa,EAAE,MAFX;AAGJI,QAAAA,EAAE,EAAEN,MAAM,CAACM,EAAAA;AAHP,OAAN,CAAA,CAAA;;AAMA,MAAA,IAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC;AAAA,QAAA,IAAA,UAAA,CAAA;;AAChC,QAAA,OAAAJ,oCAAA,CAAA,EAAA,EACKD,MADL,EAAA;AAEEM,UAAAA,EAAE,EAAEN,CAAAA,UAAAA,GAAAA,MAAM,CAACM,EAAT,yBAAeD,QAFnB;AAGEE,UAAAA,WAAW,EAAEF,QAAAA;AAHf,SAAA,CAAA,CAAA;AAKD,OAAA;;AAED,MAAA,IAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,QAAA,OAAAJ,oCAAA,CAAA,EAAA,EACKD,MADL,EAAA;AAEEQ,UAAAA,UAAU,EAAEH,QAAAA;AAFd,SAAA,CAAA,CAAA;AAID,OAAA;;AAED,MAAA,MAAM,IAAIb,KAAJ,CAAU,kBAAV,CAAN,CAAA;AACD,KAAA;AAzC6B,GAAhC,CAAA;AA4CA,EAAA,OAAOH,KAAP,CAAA;AACD;;;;"}
@@ -59,9 +59,6 @@ var Cells = {
59
59
  row: row,
60
60
  column: column,
61
61
  value: value,
62
- getCellProps: function getCellProps(userProps) {
63
- return instance.getCellProps(row.id, column.id, userProps);
64
- },
65
62
  renderCell: function renderCell() {
66
63
  return column.cell ? instance.render(column.cell, {
67
64
  instance: instance,
@@ -101,18 +98,6 @@ var Cells = {
101
98
  }
102
99
 
103
100
  return cell;
104
- },
105
- getCellProps: function getCellProps(rowId, columnId, userProps) {
106
- var cell = instance.getCell(rowId, columnId);
107
-
108
- if (!cell) {
109
- return;
110
- }
111
-
112
- return utils.propGetter({
113
- key: cell.id,
114
- role: 'gridcell'
115
- }, userProps);
116
101
  }
117
102
  };
118
103
  }
@@ -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 Getter,\n CellProps,\n PropGetterValue,\n} from '../types'\nimport { memo, propGetter } 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 value: any\n ) => Cell<TGenerics>\n getCell: (rowId: string, columnId: string) => Cell<TGenerics>\n getCellProps: <TGetter extends Getter<CellProps>>(\n rowId: string,\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<CellProps, TGetter>\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(\n row as Row<TGenerics>,\n column,\n row.values[column.id]\n )\n })\n },\n {\n key: process.env.NODE_ENV !== 'production' ? '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: '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, value) => {\n const cell: CoreCell<TGenerics> = {\n id: `${row.id}_${column.id}`,\n rowId: row.id,\n columnId: column.id,\n row,\n column,\n value,\n getCellProps: userProps =>\n instance.getCellProps(row.id, column.id, userProps)!,\n renderCell: () =>\n column.cell\n ? instance.render(column.cell, {\n instance,\n column,\n row,\n cell: cell as Cell<TGenerics>,\n value,\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 getCellProps: (rowId, columnId, userProps) => {\n const cell = instance.getCell(rowId, columnId)\n\n if (!cell) {\n return\n }\n\n return propGetter(\n {\n key: cell.id,\n role: 'gridcell',\n },\n userProps\n )\n },\n }\n },\n}\n"],"names":["Cells","createRow","row","instance","getAllCells","memo","getAllLeafColumns","leafColumns","map","column","createCell","values","id","key","process","env","NODE_ENV","debug","options","debugAll","debugRows","getAllCellsByColumnId","allCells","reduce","acc","cell","columnId","createInstance","value","rowId","getCellProps","userProps","renderCell","render","_features","forEach","feature","Object","assign","getCell","getRow","Error","propGetter","role"],"mappings":"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"}
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 value: any\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(\n row as Row<TGenerics>,\n column,\n row.values[column.id]\n )\n })\n },\n {\n key: process.env.NODE_ENV !== 'production' ? '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: '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, value) => {\n const cell: CoreCell<TGenerics> = {\n id: `${row.id}_${column.id}`,\n rowId: row.id,\n columnId: column.id,\n row,\n column,\n value,\n renderCell: () =>\n column.cell\n ? instance.render(column.cell, {\n instance,\n column,\n row,\n cell: cell as Cell<TGenerics>,\n value,\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","values","id","key","process","env","NODE_ENV","debug","options","debugAll","debugRows","getAllCellsByColumnId","allCells","reduce","acc","cell","columnId","createInstance","value","rowId","renderCell","render","_features","forEach","feature","Object","assign","getCell","getRow","Error"],"mappings":"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"}
@@ -75,8 +75,8 @@ var ColumnSizing = {
75
75
  resetSize: function resetSize() {
76
76
  return instance.resetColumnSize(header.column.id);
77
77
  },
78
- getResizerProps: function getResizerProps(userProps) {
79
- return instance.getHeaderResizerProps(header.id, userProps);
78
+ getResizeHandler: function getResizeHandler() {
79
+ return instance.getResizeHandler(header.id);
80
80
  }
81
81
  };
82
82
  },
@@ -179,12 +179,16 @@ var ColumnSizing = {
179
179
 
180
180
  return instance.getColumnIsResizing(header.column.id);
181
181
  },
182
- getHeaderResizerProps: function getHeaderResizerProps(headerId, userProps) {
182
+ getResizeHandler: function getResizeHandler(headerId) {
183
183
  var header = instance.getHeader(headerId);
184
184
  var column = instance.getColumn(header.column.id);
185
185
  var canResize = column.getCanResize();
186
+ return function (e) {
187
+ if (!canResize) {
188
+ return;
189
+ }
190
+ e.persist == null ? void 0 : e.persist();
186
191
 
187
- var onResizeStart = function onResizeStart(e) {
188
192
  if (isTouchStartEvent(e)) {
189
193
  // lets not respond to multiple touches (e.g. 2 or 3 fingers)
190
194
  if (e.touches && e.touches.length > 1) {
@@ -301,21 +305,6 @@ var ColumnSizing = {
301
305
  });
302
306
  });
303
307
  };
304
-
305
- var initialProps = canResize ? {
306
- title: 'Toggle Grouping',
307
- draggable: false,
308
- role: 'separator',
309
- onMouseDown: function onMouseDown(e) {
310
- e.persist == null ? void 0 : e.persist();
311
- onResizeStart(e);
312
- },
313
- onTouchStart: function onTouchStart(e) {
314
- e.persist == null ? void 0 : e.persist();
315
- onResizeStart(e);
316
- }
317
- } : {};
318
- return utils.propGetter(initialProps, userProps);
319
308
  },
320
309
  getTotalSize: function getTotalSize() {
321
310
  var _instance$getHeaderGr, _instance$getHeaderGr2;
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import {\n Column,\n Getter,\n Header,\n OnChangeFn,\n TableGenerics,\n PropGetterValue,\n TableInstance,\n Updater,\n} from '../types'\nimport { makeStateUpdater, propGetter } 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 ColumnResizerProps = {\n title?: string\n onMouseDown?: (e: MouseEvent) => void\n onTouchStart?: (e: TouchEvent) => void\n draggable?: boolean\n role?: string\n}\n\nexport type ColumnSizingInstance<TGenerics extends TableGenerics> = {\n getColumnSize: (columnId: string) => number\n getColumnStart: (columnId: string, position?: ColumnPinningPosition) => number\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: () => void\n resetColumnSize: (columnId: string) => void\n resetHeaderSize: (headerId: string) => void\n resetHeaderSizeInfo: () => void\n getColumnCanResize: (columnId: string) => boolean\n getHeaderCanResize: (headerId: string) => boolean\n getHeaderResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n getColumnIsResizing: (columnId: string) => boolean\n getHeaderIsResizing: (headerId: string) => boolean\n getTotalSize: () => number\n getLeftTotalSize: () => number\n getCenterTotalSize: () => number\n getRightTotalSize: () => number\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n defaultCanResize?: 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 getCanResize: () => boolean\n getIsResizing: () => boolean\n getResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n resetSize: () => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n}\n\nexport const ColumnSizing = {\n getDefaultColumn: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n },\n }\n },\n\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: () => instance.getColumnSize(column.id),\n getStart: position => instance.getColumnStart(column.id, position),\n getIsResizing: () => instance.getColumnIsResizing(column.id),\n getCanResize: () => instance.getColumnCanResize(column.id),\n resetSize: () => instance.resetColumnSize(column.id),\n }\n },\n\n createHeader: <TGenerics extends TableGenerics>(\n header: Header<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingHeader<TGenerics> => {\n return {\n getIsResizing: () => instance.getColumnIsResizing(header.column.id),\n getCanResize: () => instance.getColumnCanResize(header.column.id),\n resetSize: () => instance.resetColumnSize(header.column.id),\n getResizerProps: userProps =>\n instance.getHeaderResizerProps(header.id, userProps),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingInstance<TGenerics> => {\n return {\n getColumnSize: (columnId: string) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\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 getColumnStart: (columnId, position) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\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 === columnId)\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1]\n\n return (\n instance.getColumnStart(prevSiblingColumn.id, position) +\n prevSiblingColumn.getSize()\n )\n }\n\n return 0\n },\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 resetColumnSize: columnId => {\n instance.setColumnSizing(({ [columnId]: _, ...rest }) => {\n return rest\n })\n },\n resetHeaderSize: headerId => {\n const header = instance.getHeader(headerId)\n\n return instance.resetColumnSize(header.column.id)\n },\n getHeaderCanResize: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnCanResize(header.column.id)\n },\n getColumnCanResize: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableResizing ??\n instance.options.enableColumnResizing ??\n column.defaultCanResize ??\n true\n )\n },\n getColumnIsResizing: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnSizingInfo.isResizingColumn === columnId\n )\n },\n getHeaderIsResizing: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnIsResizing(header.column.id)\n },\n\n getHeaderResizerProps: (headerId, userProps) => {\n const header = instance.getHeader(headerId)\n const column = instance.getColumn(header.column.id)\n\n const canResize = column.getCanResize()\n\n const onResizeStart = (e: unknown) => {\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const header = headerId ? instance.getHeader(headerId) : undefined\n\n const startSize = header ? header.getSize() : column.getSize()\n\n const columnSizingStart: [string, number][] = header\n ? header.getLeafHeaders().map(d => [d.column.id, d.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 document.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported\n )\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n\n const initialProps: ColumnResizerProps = canResize\n ? {\n title: 'Toggle Grouping',\n draggable: false,\n role: 'separator',\n onMouseDown: (e: MouseEvent) => {\n ;(e as any).persist?.()\n onResizeStart(e)\n },\n onTouchStart: (e: TouchEvent) => {\n ;(e as any).persist?.()\n onResizeStart(e)\n },\n }\n : {}\n\n return propGetter(initialProps, userProps)\n },\n\n getTotalSize: () =>\n instance.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getLeftTotalSize: () =>\n instance.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getCenterTotalSize: () =>\n instance.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getRightTotalSize: () =>\n instance.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.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","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","instance","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","createColumn","column","getSize","getColumnSize","id","getStart","position","getColumnStart","getIsResizing","getColumnIsResizing","getCanResize","getColumnCanResize","resetSize","resetColumnSize","createHeader","header","getResizerProps","userProps","getHeaderResizerProps","createInstance","columnId","getColumn","Error","columnSize","getState","Math","min","max","columns","getVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","index","findIndex","d","prevSiblingColumn","setColumnSizing","updater","options","setColumnSizingInfo","resetColumnSizing","initialState","resetHeaderSizeInfo","rest","_toPropertyKey","resetHeaderSize","headerId","getHeader","getHeaderCanResize","enableResizing","enableColumnResizing","defaultCanResize","getHeaderIsResizing","canResize","onResizeStart","e","isTouchStartEvent","touches","length","undefined","getLeafHeaders","map","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","old","forEach","headerSize","_extends","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","passiveIfSupported","passiveEventSupported","passive","addEventListener","initialProps","title","draggable","role","onMouseDown","persist","onTouchStart","propGetter","getTotalSize","getHeaderGroups","headers","reduce","sum","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 getColumnSize: (columnId: string) => number\n getColumnStart: (columnId: string, position?: ColumnPinningPosition) => number\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: () => void\n resetColumnSize: (columnId: string) => void\n resetHeaderSize: (headerId: string) => void\n resetHeaderSizeInfo: () => void\n getColumnCanResize: (columnId: string) => boolean\n getHeaderCanResize: (headerId: string) => boolean\n getResizeHandler: (headerId: string) => (event: unknown) => void\n getColumnIsResizing: (columnId: string) => boolean\n getHeaderIsResizing: (headerId: string) => boolean\n getTotalSize: () => number\n getLeftTotalSize: () => number\n getCenterTotalSize: () => number\n getRightTotalSize: () => number\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n defaultCanResize?: 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 getCanResize: () => boolean\n getIsResizing: () => boolean\n getResizeHandler: () => (event: unknown) => void\n resetSize: () => 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: (): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n },\n }\n },\n\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: () => instance.getColumnSize(column.id),\n getStart: position => instance.getColumnStart(column.id, position),\n getIsResizing: () => instance.getColumnIsResizing(column.id),\n getCanResize: () => instance.getColumnCanResize(column.id),\n resetSize: () => instance.resetColumnSize(column.id),\n }\n },\n\n createHeader: <TGenerics extends TableGenerics>(\n header: Header<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingHeader<TGenerics> => {\n return {\n getIsResizing: () => instance.getColumnIsResizing(header.column.id),\n getCanResize: () => instance.getColumnCanResize(header.column.id),\n resetSize: () => instance.resetColumnSize(header.column.id),\n getResizeHandler: () => instance.getResizeHandler(header.id),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingInstance<TGenerics> => {\n return {\n getColumnSize: (columnId: string) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\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 getColumnStart: (columnId, position) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\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 === columnId)\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1]\n\n return (\n instance.getColumnStart(prevSiblingColumn.id, position) +\n prevSiblingColumn.getSize()\n )\n }\n\n return 0\n },\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 resetColumnSize: columnId => {\n instance.setColumnSizing(({ [columnId]: _, ...rest }) => {\n return rest\n })\n },\n resetHeaderSize: headerId => {\n const header = instance.getHeader(headerId)\n\n return instance.resetColumnSize(header.column.id)\n },\n getHeaderCanResize: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnCanResize(header.column.id)\n },\n getColumnCanResize: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableResizing ??\n instance.options.enableColumnResizing ??\n column.defaultCanResize ??\n true\n )\n },\n getColumnIsResizing: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnSizingInfo.isResizingColumn === columnId\n )\n },\n getHeaderIsResizing: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnIsResizing(header.column.id)\n },\n getResizeHandler: (headerId: string) => {\n const header = instance.getHeader(headerId)\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 header = headerId ? instance.getHeader(headerId) : undefined\n\n const startSize = header ? header.getSize() : column.getSize()\n\n const columnSizingStart: [string, number][] = header\n ? header.getLeafHeaders().map(d => [d.column.id, d.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 document.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported\n )\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n },\n getTotalSize: () =>\n instance.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getLeftTotalSize: () =>\n instance.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getCenterTotalSize: () =>\n instance.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getRightTotalSize: () =>\n instance.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.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","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","instance","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","createColumn","column","getSize","getColumnSize","id","getStart","position","getColumnStart","getIsResizing","getColumnIsResizing","getCanResize","getColumnCanResize","resetSize","resetColumnSize","createHeader","header","getResizeHandler","createInstance","columnId","getColumn","Error","columnSize","getState","Math","min","max","columns","getVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","index","findIndex","d","prevSiblingColumn","setColumnSizing","updater","options","setColumnSizingInfo","resetColumnSizing","initialState","resetHeaderSizeInfo","rest","_toPropertyKey","resetHeaderSize","headerId","getHeader","getHeaderCanResize","enableResizing","enableColumnResizing","defaultCanResize","getHeaderIsResizing","canResize","e","persist","isTouchStartEvent","touches","length","undefined","getLeafHeaders","map","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","old","forEach","headerSize","_extends","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","passiveIfSupported","passiveEventSupported","passive","addEventListener","getTotalSize","getHeaderGroups","headers","reduce","sum","getLeftTotalSize","getLeftHeaderGroups","getCenterTotalSize","getCenterHeaderGroups","getRightTotalSize","getRightHeaderGroups","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Columns.js","sources":["../../../src/features/Columns.ts"],"sourcesContent":["import { features } from 'process'\nimport {\n Cell,\n Column,\n Header,\n TableGenerics,\n TableInstance,\n Row,\n AccessorFn,\n ColumnDef,\n Renderable,\n HeaderRenderProps,\n} from '../types'\nimport { memo } from '../utils'\nimport { ColumnPinningPosition } from './Pinning'\n\nexport type CoreColumnDefType = 'data' | 'display' | 'group'\n\nexport type CoreColumnDef<TGenerics extends TableGenerics> = {\n id: string\n accessorKey?: string & keyof TGenerics['Row']\n accessorFn?: AccessorFn<TGenerics['Row']>\n columns?: ColumnDef<TGenerics>[]\n header?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n footer?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n cell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n value: TGenerics['Value']\n }\n >\n meta?: TGenerics['ColumnMeta']\n}\n\nexport type CoreColumn<TGenerics extends TableGenerics> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TGenerics['Row']>\n columnDef: ColumnDef<TGenerics>\n columnDefType: CoreColumnDefType\n columns: Column<TGenerics>[]\n parent?: Column<TGenerics>\n getFlatColumns: () => Column<TGenerics>[]\n getLeafColumns: () => Column<TGenerics>[]\n}\n\nexport type ColumnsOptions<TGenerics extends TableGenerics> = {\n columns: ColumnDef<TGenerics>[]\n defaultColumn?: Partial<ColumnDef<TGenerics>>\n}\n\nexport type ColumnsInstance<TGenerics extends TableGenerics> = {\n getDefaultColumn: () => Partial<ColumnDef<TGenerics>>\n getColumnDefs: () => ColumnDef<TGenerics>[]\n createColumn: (\n columnDef: ColumnDef<TGenerics>,\n depth: number,\n parent?: Column<TGenerics>\n ) => Column<TGenerics>\n getAllColumns: () => Column<TGenerics>[]\n getAllFlatColumns: () => Column<TGenerics>[]\n getAllFlatColumnsById: () => Record<string, Column<TGenerics>>\n getAllLeafColumns: () => Column<TGenerics>[]\n getColumn: (columnId: string) => Column<TGenerics>\n}\n\n//\n\nexport const Columns = {\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnsInstance<TGenerics> => {\n return {\n getDefaultColumn: memo(\n () => [instance.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<ColumnDef<TGenerics>>\n\n return {\n header: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n footer: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n cell: ({ value = '' }: { value: any }): JSX.Element =>\n typeof value === 'boolean' ? value.toString() : value,\n ...instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumn?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TGenerics>>\n },\n {\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n key: 'getDefaultColumn',\n }\n ),\n\n getColumnDefs: () => instance.options.columns,\n\n createColumn: (\n columnDef: ColumnDef<TGenerics> & { columnDefType?: CoreColumnDefType },\n depth: number,\n parent\n ) => {\n const defaultColumn = instance.getDefaultColumn()\n\n let id =\n columnDef.id ??\n columnDef.accessorKey ??\n (typeof columnDef.header === 'string' ? columnDef.header : undefined)\n\n let accessorFn: AccessorFn<TGenerics['Row']> | undefined\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn\n } else if (columnDef.accessorKey) {\n accessorFn = (originalRow?: TGenerics['Row']) =>\n (originalRow as any)[columnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n columnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TGenerics> = {\n ...defaultColumn,\n ...columnDef,\n id: `${id}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef,\n columnDefType: columnDef.columnDefType as CoreColumnDefType,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TGenerics>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: 'column.getFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [instance._getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TGenerics>]\n },\n {\n key: 'column.getLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n\n column = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, instance))\n }, column)\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return column as Column<TGenerics>\n },\n\n getAllColumns: memo(\n () => [instance.getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TGenerics>[],\n parent?: Column<TGenerics>,\n depth = 0\n ): Column<TGenerics>[] => {\n return columnDefs.map(columnDef => {\n const column = instance.createColumn(columnDef, depth, parent)\n\n column.columns = columnDef.columns\n ? recurseColumns(columnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: 'getAllColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [instance.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: 'getAllFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumnsById: memo(\n () => [instance.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TGenerics>>)\n },\n {\n key: 'getAllFlatColumnsById',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [instance.getAllColumns(), instance._getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column =>\n column.getLeafColumns()\n )\n return orderColumns(leafColumns)\n },\n {\n key: 'getAllLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = instance.getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Table] Column with id ${columnId} does not exist.`)\n }\n throw new Error()\n }\n\n return column\n },\n }\n },\n}\n"],"names":["Columns","createInstance","instance","getDefaultColumn","memo","options","defaultColumn","_extends","header","props","column","id","footer","cell","value","toString","_features","reduce","obj","feature","Object","assign","debug","debugAll","debugColumns","key","getColumnDefs","columns","createColumn","columnDef","depth","parent","accessorKey","undefined","accessorFn","originalRow","process","env","NODE_ENV","Error","columnDefType","getFlatColumns","flatMap","d","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","getAllColumns","columnDefs","recurseColumns","map","getAllFlatColumns","allColumns","getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","getColumn","columnId","console","warn"],"mappings":"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"}
1
+ {"version":3,"file":"Columns.js","sources":["../../../src/features/Columns.ts"],"sourcesContent":["import {\n Cell,\n Column,\n Header,\n TableGenerics,\n TableInstance,\n Row,\n AccessorFn,\n ColumnDef,\n Renderable,\n HeaderRenderProps,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type CoreColumnDefType = 'data' | 'display' | 'group'\n\nexport type CoreColumnDef<TGenerics extends TableGenerics> = {\n id: string\n accessorKey?: string & keyof TGenerics['Row']\n accessorFn?: AccessorFn<TGenerics['Row']>\n columns?: ColumnDef<TGenerics>[]\n header?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n footer?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n cell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n value: TGenerics['Value']\n }\n >\n meta?: TGenerics['ColumnMeta']\n}\n\nexport type CoreColumn<TGenerics extends TableGenerics> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TGenerics['Row']>\n columnDef: ColumnDef<TGenerics>\n columnDefType: CoreColumnDefType\n columns: Column<TGenerics>[]\n parent?: Column<TGenerics>\n getFlatColumns: () => Column<TGenerics>[]\n getLeafColumns: () => Column<TGenerics>[]\n}\n\nexport type ColumnsOptions<TGenerics extends TableGenerics> = {\n columns: ColumnDef<TGenerics>[]\n defaultColumn?: Partial<ColumnDef<TGenerics>>\n}\n\nexport type ColumnsInstance<TGenerics extends TableGenerics> = {\n getDefaultColumn: () => Partial<ColumnDef<TGenerics>>\n getColumnDefs: () => ColumnDef<TGenerics>[]\n createColumn: (\n columnDef: ColumnDef<TGenerics>,\n depth: number,\n parent?: Column<TGenerics>\n ) => Column<TGenerics>\n getAllColumns: () => Column<TGenerics>[]\n getAllFlatColumns: () => Column<TGenerics>[]\n getAllFlatColumnsById: () => Record<string, Column<TGenerics>>\n getAllLeafColumns: () => Column<TGenerics>[]\n getColumn: (columnId: string) => Column<TGenerics>\n}\n\n//\n\nexport const Columns = {\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnsInstance<TGenerics> => {\n return {\n getDefaultColumn: memo(\n () => [instance.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<ColumnDef<TGenerics>>\n\n return {\n header: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n footer: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n cell: ({ value = '' }: { value: any }): JSX.Element =>\n typeof value === 'boolean' ? value.toString() : value,\n ...instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumn?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TGenerics>>\n },\n {\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n key: 'getDefaultColumn',\n }\n ),\n\n getColumnDefs: () => instance.options.columns,\n\n createColumn: (\n columnDef: ColumnDef<TGenerics> & { columnDefType?: CoreColumnDefType },\n depth: number,\n parent\n ) => {\n const defaultColumn = instance.getDefaultColumn()\n\n let id =\n columnDef.id ??\n columnDef.accessorKey ??\n (typeof columnDef.header === 'string' ? columnDef.header : undefined)\n\n let accessorFn: AccessorFn<TGenerics['Row']> | undefined\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn\n } else if (columnDef.accessorKey) {\n accessorFn = (originalRow?: TGenerics['Row']) =>\n (originalRow as any)[columnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n columnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TGenerics> = {\n ...defaultColumn,\n ...columnDef,\n id: `${id}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef,\n columnDefType: columnDef.columnDefType as CoreColumnDefType,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TGenerics>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: 'column.getFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [instance._getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TGenerics>]\n },\n {\n key: 'column.getLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n\n column = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, instance))\n }, column)\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return column as Column<TGenerics>\n },\n\n getAllColumns: memo(\n () => [instance.getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TGenerics>[],\n parent?: Column<TGenerics>,\n depth = 0\n ): Column<TGenerics>[] => {\n return columnDefs.map(columnDef => {\n const column = instance.createColumn(columnDef, depth, parent)\n\n column.columns = columnDef.columns\n ? recurseColumns(columnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: 'getAllColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [instance.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: 'getAllFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumnsById: memo(\n () => [instance.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TGenerics>>)\n },\n {\n key: 'getAllFlatColumnsById',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [instance.getAllColumns(), instance._getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column =>\n column.getLeafColumns()\n )\n return orderColumns(leafColumns)\n },\n {\n key: 'getAllLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = instance.getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Table] Column with id ${columnId} does not exist.`)\n }\n throw new Error()\n }\n\n return column\n },\n }\n },\n}\n"],"names":["Columns","createInstance","instance","getDefaultColumn","memo","options","defaultColumn","_extends","header","props","column","id","footer","cell","value","toString","_features","reduce","obj","feature","Object","assign","debug","debugAll","debugColumns","key","getColumnDefs","columns","createColumn","columnDef","depth","parent","accessorKey","undefined","accessorFn","originalRow","process","env","NODE_ENV","Error","columnDefType","getFlatColumns","flatMap","d","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","getAllColumns","columnDefs","recurseColumns","map","getAllFlatColumns","allColumns","getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","getColumn","columnId","console","warn"],"mappings":";;;;;;;;;;;;;;;;;AAkFA;AAEO,IAAMA,OAAO,GAAG;AACrBC,EAAAA,cAAc,EAAE,SACdC,cAAAA,CAAAA,QADc,EAEiB;AAC/B,IAAO,OAAA;AACLC,MAAAA,gBAAgB,EAAEC,UAAI,CACpB,YAAA;AAAA,QAAA,OAAM,CAACF,QAAQ,CAACG,OAAT,CAAiBC,aAAlB,CAAN,CAAA;AAAA,OADoB,EAEpB,UAAAA,aAAa,EAAI;AAAA,QAAA,IAAA,cAAA,CAAA;;AACfA,QAAAA,aAAa,GAAA,CAAA,cAAA,GAAIA,aAAJ,KAAA,IAAA,GAAA,cAAA,GAAqB,EAAlC,CAAA;AAEA,QAAA,OAAAC,oCAAA,CAAA;AACEC,UAAAA,MAAM,EAAE,SAAA,MAAA,CAACC,KAAD,EAAA;AAAA,YAAA,OACNA,KAAK,CAACD,MAAN,CAAaE,MAAb,CAAoBC,EADd,CAAA;AAAA,WADV;AAGEC,UAAAA,MAAM,EAAE,SAAA,MAAA,CAACH,KAAD,EAAA;AAAA,YAAA,OACNA,KAAK,CAACD,MAAN,CAAaE,MAAb,CAAoBC,EADd,CAAA;AAAA,WAHV;AAKEE,UAAAA,IAAI,EAAE,SAAA,IAAA,CAAA,IAAA,EAAA;AAAA,YAAA,IAAA,UAAA,GAAA,IAAA,CAAGC,KAAH;AAAA,gBAAGA,KAAH,2BAAW,EAAX,GAAA,UAAA,CAAA;AAAA,YACJ,OAAA,OAAOA,KAAP,KAAiB,SAAjB,GAA6BA,KAAK,CAACC,QAAN,EAA7B,GAAgDD,KAD5C,CAAA;AAAA,WAAA;AALR,SAOKZ,EAAAA,QAAQ,CAACc,SAAT,CAAmBC,MAAnB,CAA0B,UAACC,GAAD,EAAMC,OAAN,EAAkB;AAC7C,UAAA,OAAOC,MAAM,CAACC,MAAP,CAAcH,GAAd,EAAmBC,OAAO,CAAChB,gBAA3B,IAAmBgB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAChB,gBAAR,EAAnB,CAAP,CAAA;AACD,SAFE,EAEA,EAFA,CAPL,EAUKG,aAVL,CAAA,CAAA;AAYD,OAjBmB,EAkBpB;AACEgB,QAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,UAAA,IAAA,qBAAA,CAAA;;AAAA,UACLpB,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBkB,QADZ,oCACwBrB,QAAQ,CAACG,OAAT,CAAiBmB,YADzC,CAAA;AAAA,SADT;AAGEC,QAAAA,GAAG,EAAE,kBAAA;AAHP,OAlBoB,CADjB;AA0BLC,MAAAA,aAAa,EAAE,SAAA,aAAA,GAAA;AAAA,QAAA,OAAMxB,QAAQ,CAACG,OAAT,CAAiBsB,OAAvB,CAAA;AAAA,OA1BV;AA4BLC,MAAAA,YAAY,EAAE,SACZC,YAAAA,CAAAA,SADY,EAEZC,KAFY,EAGZC,MAHY,EAIT;AAAA,QAAA,IAAA,KAAA,EAAA,aAAA,CAAA;;AACH,QAAA,IAAMzB,aAAa,GAAGJ,QAAQ,CAACC,gBAAT,EAAtB,CAAA;AAEA,QAAIQ,IAAAA,EAAE,6BACJkB,SAAS,CAAClB,EADN,KAEJkB,IAAAA,GAAAA,aAAAA,GAAAA,SAAS,CAACG,WAFN,KAAA,IAAA,GAAA,KAAA,GAGH,OAAOH,SAAS,CAACrB,MAAjB,KAA4B,QAA5B,GAAuCqB,SAAS,CAACrB,MAAjD,GAA0DyB,SAH7D,CAAA;AAKA,QAAA,IAAIC,UAAJ,CAAA;;AAEA,QAAIL,IAAAA,SAAS,CAACK,UAAd,EAA0B;AACxBA,UAAAA,UAAU,GAAGL,SAAS,CAACK,UAAvB,CAAA;AACD,SAFD,MAEO,IAAIL,SAAS,CAACG,WAAd,EAA2B;AAChCE,UAAAA,UAAU,GAAG,SAAA,UAAA,CAACC,WAAD,EAAA;AAAA,YAAA,OACVA,WAAD,CAAqBN,SAAS,CAACG,WAA/B,CADW,CAAA;AAAA,WAAb,CAAA;AAED,SAAA;;AAED,QAAI,IAAA,CAACrB,EAAL,EAAS;AACP,UAAA,IAAIyB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,YAAA,MAAM,IAAIC,KAAJ,CACJV,SAAS,CAACK,UAAV,4GADI,CAAN,CAAA;AAKD,WAAA;;AACD,UAAM,MAAA,IAAIK,KAAJ,EAAN,CAAA;AACD,SAAA;;AAED,QAAA,IAAI7B,MAA6B,GAAAH,oCAAA,CAAA,EAAA,EAC5BD,aAD4B,EAE5BuB,SAF4B,EAAA;AAG/BlB,UAAAA,EAAE,OAAKA,EAHwB;AAI/BuB,UAAAA,UAAU,EAAVA,UAJ+B;AAK/BH,UAAAA,MAAM,EAAEA,MALuB;AAM/BD,UAAAA,KAAK,EAALA,KAN+B;AAO/BD,UAAAA,SAAS,EAATA,SAP+B;AAQ/BW,UAAAA,aAAa,EAAEX,SAAS,CAACW,aARM;AAS/Bb,UAAAA,OAAO,EAAE,EATsB;AAU/Bc,UAAAA,cAAc,EAAErC,UAAI,CAClB,YAAA;AAAA,YAAM,OAAA,CAAC,IAAD,CAAN,CAAA;AAAA,WADkB,EAElB,YAAM;AAAA,YAAA,IAAA,eAAA,CAAA;;AACJ,YACEM,OAAAA,CAAAA,MADF,CAEKA,CAAAA,MAAAA,CAAAA,CAAAA,eAAAA,GAAAA,MAAM,CAACiB,OAFZ,qBAEK,eAAgBe,CAAAA,OAAhB,CAAwB,UAAAC,CAAC,EAAA;AAAA,cAAIA,OAAAA,CAAC,CAACF,cAAF,EAAJ,CAAA;AAAA,aAAzB,CAFL,CAAA,CAAA;AAID,WAPiB,EAQlB;AACEhB,YAAAA,GAAG,EAAE,uBADP;AAEEH,YAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,cAAA,IAAA,sBAAA,CAAA;;AAAA,cACLpB,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBkB,QADZ,qCACwBrB,QAAQ,CAACG,OAAT,CAAiBmB,YADzC,CAAA;AAAA,aAAA;AAFT,WARkB,CAVW;AAwB/BoB,UAAAA,cAAc,EAAExC,UAAI,CAClB,YAAA;AAAA,YAAA,OAAM,CAACF,QAAQ,CAAC2C,kBAAT,EAAD,CAAN,CAAA;AAAA,WADkB,EAElB,UAAAC,YAAY,EAAI;AAAA,YAAA,IAAA,gBAAA,CAAA;;AACd,YAAA,IAAA,CAAA,gBAAA,GAAIpC,MAAM,CAACiB,OAAX,KAAI,IAAA,IAAA,gBAAA,CAAgBoB,MAApB,EAA4B;AAC1B,cAAIC,IAAAA,WAAW,GAAGtC,MAAM,CAACiB,OAAP,CAAee,OAAf,CAAuB,UAAAhC,MAAM,EAAA;AAAA,gBAC7CA,OAAAA,MAAM,CAACkC,cAAP,EAD6C,CAAA;AAAA,eAA7B,CAAlB,CAAA;AAIA,cAAOE,OAAAA,YAAY,CAACE,WAAD,CAAnB,CAAA;AACD,aAAA;;AAED,YAAO,OAAA,CAACtC,MAAD,CAAP,CAAA;AACD,WAZiB,EAalB;AACEe,YAAAA,GAAG,EAAE,uBADP;AAEEH,YAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,cAAA,IAAA,sBAAA,CAAA;;AAAA,cACLpB,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBkB,QADZ,qCACwBrB,QAAQ,CAACG,OAAT,CAAiBmB,YADzC,CAAA;AAAA,aAAA;AAFT,WAbkB,CAAA;AAxBW,SAAjC,CAAA,CAAA;;AA6CAd,QAAAA,MAAM,GAAGR,QAAQ,CAACc,SAAT,CAAmBC,MAAnB,CAA0B,UAACC,GAAD,EAAMC,OAAN,EAAkB;AACnD,UAAA,OAAOC,MAAM,CAACC,MAAP,CAAcH,GAAd,EAAmBC,OAAO,CAACS,YAA3B,IAAmBT,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAACS,YAAR,CAAuBlB,MAAvB,EAA+BR,QAA/B,CAAnB,CAAP,CAAA;AACD,SAFQ,EAENQ,MAFM,CAAT,CAzEG;;AA8EH,QAAA,OAAOA,MAAP,CAAA;AACD,OA/GI;AAiHLuC,MAAAA,aAAa,EAAE7C,UAAI,CACjB,YAAA;AAAA,QAAA,OAAM,CAACF,QAAQ,CAACwB,aAAT,EAAD,CAAN,CAAA;AAAA,OADiB,EAEjB,UAAAwB,UAAU,EAAI;AACZ,QAAMC,IAAAA,cAAc,GAAG,SAAjBA,cAAiB,CACrBD,UADqB,EAErBnB,MAFqB,EAGrBD,KAHqB,EAIG;AAAA,UAAA,IADxBA,KACwB,KAAA,KAAA,CAAA,EAAA;AADxBA,YAAAA,KACwB,GADhB,CACgB,CAAA;AAAA,WAAA;;AACxB,UAAA,OAAOoB,UAAU,CAACE,GAAX,CAAe,UAAAvB,SAAS,EAAI;AACjC,YAAMnB,IAAAA,MAAM,GAAGR,QAAQ,CAAC0B,YAAT,CAAsBC,SAAtB,EAAiCC,KAAjC,EAAwCC,MAAxC,CAAf,CAAA;AAEArB,YAAAA,MAAM,CAACiB,OAAP,GAAiBE,SAAS,CAACF,OAAV,GACbwB,cAAc,CAACtB,SAAS,CAACF,OAAX,EAAoBjB,MAApB,EAA4BoB,KAAK,GAAG,CAApC,CADD,GAEb,EAFJ,CAAA;AAIA,YAAA,OAAOpB,MAAP,CAAA;AACD,WARM,CAAP,CAAA;AASD,SAdD,CAAA;;AAgBA,QAAOyC,OAAAA,cAAc,CAACD,UAAD,CAArB,CAAA;AACD,OApBgB,EAqBjB;AACEzB,QAAAA,GAAG,EAAE,eADP;AAEEH,QAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UACLpB,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBkB,QADZ,qCACwBrB,QAAQ,CAACG,OAAT,CAAiBmB,YADzC,CAAA;AAAA,SAAA;AAFT,OArBiB,CAjHd;AA6IL6B,MAAAA,iBAAiB,EAAEjD,UAAI,CACrB,YAAA;AAAA,QAAA,OAAM,CAACF,QAAQ,CAAC+C,aAAT,EAAD,CAAN,CAAA;AAAA,OADqB,EAErB,UAAAK,UAAU,EAAI;AACZ,QAAA,OAAOA,UAAU,CAACZ,OAAX,CAAmB,UAAAhC,MAAM,EAAI;AAClC,UAAOA,OAAAA,MAAM,CAAC+B,cAAP,EAAP,CAAA;AACD,SAFM,CAAP,CAAA;AAGD,OANoB,EAOrB;AACEhB,QAAAA,GAAG,EAAE,mBADP;AAEEH,QAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UACLpB,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBkB,QADZ,qCACwBrB,QAAQ,CAACG,OAAT,CAAiBmB,YADzC,CAAA;AAAA,SAAA;AAFT,OAPqB,CA7IlB;AA2JL+B,MAAAA,qBAAqB,EAAEnD,UAAI,CACzB,YAAA;AAAA,QAAA,OAAM,CAACF,QAAQ,CAACmD,iBAAT,EAAD,CAAN,CAAA;AAAA,OADyB,EAEzB,UAAAG,WAAW,EAAI;AACb,QAAOA,OAAAA,WAAW,CAACvC,MAAZ,CAAmB,UAACwC,GAAD,EAAM/C,MAAN,EAAiB;AACzC+C,UAAAA,GAAG,CAAC/C,MAAM,CAACC,EAAR,CAAH,GAAiBD,MAAjB,CAAA;AACA,UAAA,OAAO+C,GAAP,CAAA;AACD,SAHM,EAGJ,EAHI,CAAP,CAAA;AAID,OAPwB,EAQzB;AACEhC,QAAAA,GAAG,EAAE,uBADP;AAEEH,QAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UACLpB,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBkB,QADZ,qCACwBrB,QAAQ,CAACG,OAAT,CAAiBmB,YADzC,CAAA;AAAA,SAAA;AAFT,OARyB,CA3JtB;AA0KLkC,MAAAA,iBAAiB,EAAEtD,UAAI,CACrB,YAAA;AAAA,QAAM,OAAA,CAACF,QAAQ,CAAC+C,aAAT,EAAD,EAA2B/C,QAAQ,CAAC2C,kBAAT,EAA3B,CAAN,CAAA;AAAA,OADqB,EAErB,UAACS,UAAD,EAAaR,YAAb,EAA8B;AAC5B,QAAA,IAAIE,WAAW,GAAGM,UAAU,CAACZ,OAAX,CAAmB,UAAAhC,MAAM,EAAA;AAAA,UACzCA,OAAAA,MAAM,CAACkC,cAAP,EADyC,CAAA;AAAA,SAAzB,CAAlB,CAAA;AAGA,QAAOE,OAAAA,YAAY,CAACE,WAAD,CAAnB,CAAA;AACD,OAPoB,EAQrB;AACEvB,QAAAA,GAAG,EAAE,mBADP;AAEEH,QAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UACLpB,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACG,OAAT,CAAiBkB,QADZ,qCACwBrB,QAAQ,CAACG,OAAT,CAAiBmB,YADzC,CAAA;AAAA,SAAA;AAFT,OARqB,CA1KlB;AAyLLmC,MAAAA,SAAS,EAAE,SAAAC,SAAAA,CAAAA,QAAQ,EAAI;AACrB,QAAA,IAAMlD,MAAM,GAAGR,QAAQ,CAACqD,qBAAT,EAAA,CAAiCK,QAAjC,CAAf,CAAA;;AAEA,QAAI,IAAA,CAAClD,MAAL,EAAa;AACX,UAAA,IAAI0B,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCuB,YAAAA,OAAO,CAACC,IAAR,CAAA,yBAAA,GAAuCF,QAAvC,GAAA,kBAAA,CAAA,CAAA;AACD,WAAA;;AACD,UAAM,MAAA,IAAIrB,KAAJ,EAAN,CAAA;AACD,SAAA;;AAED,QAAA,OAAO7B,MAAP,CAAA;AACD,OAAA;AApMI,KAAP,CAAA;AAsMD,GAAA;AA1MoB;;;;"}
@@ -33,9 +33,7 @@ var Expanding = {
33
33
  createInstance: function createInstance(instance) {
34
34
  var registered = false;
35
35
  return {
36
- queueResetExpanded: function queueResetExpanded() {
37
- instance.queueResetPageIndex();
38
-
36
+ _autoResetExpanded: function _autoResetExpanded() {
39
37
  if (!registered) {
40
38
  registered = true;
41
39
  return;
@@ -135,7 +133,7 @@ var Expanding = {
135
133
  return instance.getRowCanExpand(id);
136
134
  });
137
135
  },
138
- getToggleExpandedProps: function getToggleExpandedProps(rowId, userProps) {
136
+ getToggleExpandedHandler: function getToggleExpandedHandler(rowId) {
139
137
  var row = instance.getRow(rowId);
140
138
 
141
139
  if (!row) {
@@ -143,24 +141,16 @@ var Expanding = {
143
141
  }
144
142
 
145
143
  var canExpand = instance.getRowCanExpand(rowId);
146
- var initialProps = {
147
- title: canExpand ? 'Toggle Expanded' : undefined,
148
- onClick: canExpand ? function (e) {
149
- e.persist == null ? void 0 : e.persist();
150
- instance.toggleRowExpanded(rowId);
151
- } : undefined
144
+ return function () {
145
+ if (!canExpand) return;
146
+ instance.toggleRowExpanded(rowId);
152
147
  };
153
- return utils.propGetter(initialProps, userProps);
154
- },
155
- getToggleAllRowsExpandedProps: function getToggleAllRowsExpandedProps(userProps) {
156
- var initialProps = {
157
- title: 'Toggle All Expanded',
158
- onClick: function onClick(e) {
159
- e.persist == null ? void 0 : e.persist();
160
- instance.toggleAllRowsExpanded();
161
- }
148
+ },
149
+ getToggleAllRowsExpandedHandler: function getToggleAllRowsExpandedHandler() {
150
+ return function (e) {
151
+ e.persist == null ? void 0 : e.persist();
152
+ instance.toggleAllRowsExpanded();
162
153
  };
163
- return utils.propGetter(initialProps, userProps);
164
154
  },
165
155
  getIsSomeRowsExpanded: function getIsSomeRowsExpanded() {
166
156
  var expanded = instance.getState().expanded;
@@ -219,8 +209,8 @@ var Expanding = {
219
209
  getCanExpand: function getCanExpand() {
220
210
  return row.subRows && !!row.subRows.length;
221
211
  },
222
- getToggleExpandedProps: function getToggleExpandedProps(userProps) {
223
- return instance.getToggleExpandedProps(row.id, userProps);
212
+ getToggleExpandedHandler: function getToggleExpandedHandler() {
213
+ return instance.getToggleExpandedHandler(row.id);
224
214
  }
225
215
  };
226
216
  }