@tanstack/table-core 8.0.0-alpha.12 → 8.0.0-alpha.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/build/cjs/core.js +17 -6
  2. package/build/cjs/core.js.map +1 -1
  3. package/build/cjs/createTable.js +17 -9
  4. package/build/cjs/createTable.js.map +1 -1
  5. package/build/cjs/features/ColumnSizing.js +2 -2
  6. package/build/cjs/features/ColumnSizing.js.map +1 -1
  7. package/build/cjs/features/Expanding.js +2 -2
  8. package/build/cjs/features/Expanding.js.map +1 -1
  9. package/build/cjs/features/Filters.js +1 -1
  10. package/build/cjs/features/Filters.js.map +1 -1
  11. package/build/cjs/features/Grouping.js +13 -2
  12. package/build/cjs/features/Grouping.js.map +1 -1
  13. package/build/cjs/features/Headers.js +4 -4
  14. package/build/cjs/features/Headers.js.map +1 -1
  15. package/build/cjs/features/RowSelection.js.map +1 -1
  16. package/build/cjs/features/Visibility.js.map +1 -1
  17. package/build/cjs/index.js +1 -3
  18. package/build/cjs/index.js.map +1 -1
  19. package/build/cjs/types.js +0 -3
  20. package/build/cjs/types.js.map +1 -1
  21. package/build/cjs/utils/columnFilterRowsFn.js +1 -1
  22. package/build/cjs/utils/columnFilterRowsFn.js.map +1 -1
  23. package/build/cjs/utils/expandRowsFn.js.map +1 -1
  24. package/build/cjs/utils/globalFilterRowsFn.js.map +1 -1
  25. package/build/cjs/utils/groupRowsFn.js +1 -1
  26. package/build/cjs/utils/groupRowsFn.js.map +1 -1
  27. package/build/cjs/utils/paginateRowsFn.js.map +1 -1
  28. package/build/cjs/utils/sortRowsFn.js.map +1 -1
  29. package/build/cjs/utils.js +0 -24
  30. package/build/cjs/utils.js.map +1 -1
  31. package/build/esm/index.js +58 -50
  32. package/build/esm/index.js.map +1 -1
  33. package/build/stats-html.html +1 -1
  34. package/build/stats-react.json +268 -282
  35. package/build/types/core.d.ts +11 -9
  36. package/build/types/createTable.d.ts +32 -16
  37. package/build/types/features/ColumnSizing.d.ts +2 -3
  38. package/build/types/features/Grouping.d.ts +11 -5
  39. package/build/types/features/RowSelection.d.ts +2 -3
  40. package/build/types/features/Visibility.d.ts +1 -0
  41. package/build/types/types.d.ts +14 -7
  42. package/build/types/utils/columnFilterRowsFn.d.ts +2 -2
  43. package/build/types/utils/expandRowsFn.d.ts +2 -2
  44. package/build/types/utils/globalFilterRowsFn.d.ts +2 -2
  45. package/build/types/utils/groupRowsFn.d.ts +2 -2
  46. package/build/types/utils/paginateRowsFn.d.ts +2 -2
  47. package/build/types/utils/sortRowsFn.d.ts +2 -2
  48. package/build/types/utils.d.ts +4 -5
  49. package/build/umd/index.development.js +62 -58
  50. package/build/umd/index.development.js.map +1 -1
  51. package/build/umd/index.production.js +1 -1
  52. package/build/umd/index.production.js.map +1 -1
  53. package/package.json +1 -1
  54. package/src/core.tsx +63 -35
  55. package/src/createTable.tsx +69 -34
  56. package/src/features/ColumnSizing.ts +8 -14
  57. package/src/features/Expanding.ts +2 -2
  58. package/src/features/Filters.ts +1 -1
  59. package/src/features/Grouping.ts +30 -7
  60. package/src/features/Headers.ts +15 -3
  61. package/src/features/RowSelection.ts +2 -2
  62. package/src/features/Visibility.ts +1 -0
  63. package/src/types.ts +28 -15
  64. package/src/utils/columnFilterRowsFn.ts +3 -5
  65. package/src/utils/expandRowsFn.ts +2 -2
  66. package/src/utils/globalFilterRowsFn.ts +2 -2
  67. package/src/utils/groupRowsFn.ts +4 -4
  68. package/src/utils/paginateRowsFn.ts +2 -2
  69. package/src/utils/sortRowsFn.ts +2 -2
  70. package/src/utils.tsx +6 -45
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../src/utils.tsx"],"sourcesContent":["import React from 'react'\nimport {\n Getter,\n NoInfer,\n PropGetterValue,\n Renderable,\n TableState,\n Updater,\n} from './types'\n\nexport type IsAny<T> = 0 extends 1 & T ? true : false\nexport type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>\nexport type RequiredKeys<T, K extends keyof T> = Omit<T, K> &\n Required<Pick<T, K>>\nexport type Overwrite<T, U> = Omit<T, keyof U> & U\n\nexport type DataUpdateFunction<T> = (input: T) => T\n\nexport function functionalUpdate<T>(updater: Updater<T>, input: T): T {\n return typeof updater === 'function'\n ? (updater as DataUpdateFunction<T>)(input)\n : updater\n}\n\nexport function noop() {\n //\n}\n\nexport function makeStateUpdater(key: keyof TableState, instance: unknown) {\n return (updater: Updater<any>) => {\n ;(instance as any).setState(<TTableState,>(old: TTableState) => {\n return {\n ...old,\n [key]: functionalUpdate(updater, (old as any)[key]),\n }\n })\n }\n}\n\ntype AnyFunction = (...args: any) => any\n\nexport function isFunction<T extends AnyFunction>(d: any): d is T {\n return d instanceof Function\n}\n\nexport function flattenBy<TNode>(\n arr: TNode[],\n getChildren: (item: TNode) => TNode[]\n) {\n const flat: TNode[] = []\n\n const recurse = (subArr: TNode[]) => {\n subArr.forEach(item => {\n flat.push(item)\n const children = getChildren(item)\n if (children?.length) {\n recurse(children)\n }\n })\n }\n\n recurse(arr)\n\n return flat\n}\n\ntype PropGetterImpl = <TBaseProps, TGetter extends Getter<TBaseProps>>(\n initial: TBaseProps,\n userProps?: TGetter\n) => PropGetterValue<TBaseProps, TGetter>\n\n// @ts-ignore // Just rely on the type, not the implementation\nexport const propGetter: PropGetterImpl = (initial, getter) => {\n if (isFunction(getter)) {\n return getter(initial)\n }\n\n return {\n ...initial,\n ...(getter ?? {}),\n }\n}\n\nexport function memo<TDeps extends readonly any[], TResult>(\n getDeps: () => [...TDeps],\n fn: (...args: NoInfer<[...TDeps]>) => TResult,\n opts: {\n key: string\n debug?: () => any\n onChange?: (result: TResult, previousResult?: TResult) => void\n }\n): () => TResult {\n let deps: any[] = []\n let result: TResult | undefined\n\n return () => {\n let depTime: number\n if (opts.key && opts.debug) depTime = performance.now()\n\n const newDeps = getDeps()\n\n const depsChanged =\n newDeps.length !== deps.length ||\n newDeps.some((dep: any, index: number) => deps[index] !== dep)\n\n if (depsChanged) {\n let oldResult = result\n let resultTime: number\n if (opts.key && opts.debug) resultTime = performance.now()\n result = fn(...newDeps)\n deps = newDeps\n opts?.onChange?.(result, oldResult)\n\n if (opts.key && opts.debug) {\n if (opts?.debug()) {\n const depEndTime =\n Math.round((performance.now() - depTime!) * 100) / 100\n const resultEndTime =\n Math.round((performance.now() - resultTime!) * 100) / 100\n const resultFpsPercentage = resultEndTime / 16\n\n const pad = (str: number | string, num: number) => {\n str = String(str)\n while (str.length < num) {\n str = ' ' + str\n }\n return str\n }\n\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts?.key,\n {\n length: `${deps.length} -> ${newDeps.length}`,\n ...newDeps\n .map((_, index) => {\n if (deps[index] !== newDeps[index]) {\n return [index, deps[index], newDeps[index]]\n }\n\n return false\n })\n .filter(Boolean)\n .reduce(\n (accu, [a, b]: any) => ({\n ...accu,\n [a]: b,\n }),\n {}\n ),\n parent,\n }\n )\n }\n }\n\n oldResult = undefined\n }\n\n return result!\n }\n}\n\nexport type Render = typeof flexRender\n\nexport function flexRender<TProps extends {}>(\n Comp: Renderable<TProps>,\n props: TProps\n): React.ReactNode {\n return !Comp ? null : isReactComponent(Comp) ? <Comp {...props} /> : Comp\n}\n\nfunction isReactComponent(component: unknown): component is React.FC {\n return (\n isClassComponent(component) ||\n typeof component === 'function' ||\n isExoticComponent(component)\n )\n}\n\nfunction isClassComponent(component: any) {\n return (\n typeof component === 'function' &&\n (() => {\n const proto = Object.getPrototypeOf(component)\n return proto.prototype && proto.prototype.isReactComponent\n })()\n )\n}\n\nfunction isExoticComponent(component: any) {\n return (\n typeof component === 'object' &&\n typeof component.$$typeof === 'symbol' &&\n ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description)\n )\n}\n\n// export function hashString(str: string, seed = 0): string {\n// let h1 = 0xdeadbeef ^ seed,\n// h2 = 0x41c6ce57 ^ seed\n// for (let i = 0, ch; i < str.length; i++) {\n// ch = str.charCodeAt(i)\n// h1 = Math.imul(h1 ^ ch, 2654435761)\n// h2 = Math.imul(h2 ^ ch, 1597334677)\n// }\n// h1 =\n// Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^\n// Math.imul(h2 ^ (h2 >>> 13), 3266489909)\n// h2 =\n// Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^\n// Math.imul(h1 ^ (h1 >>> 13), 3266489909)\n// return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString()\n// }\n"],"names":["functionalUpdate","updater","input","noop","makeStateUpdater","key","instance","setState","old","isFunction","d","Function","flattenBy","arr","getChildren","flat","recurse","subArr","forEach","item","push","children","length","propGetter","initial","getter","memo","getDeps","fn","opts","deps","result","depTime","debug","performance","now","newDeps","depsChanged","some","dep","index","oldResult","resultTime","onChange","depEndTime","Math","round","resultEndTime","resultFpsPercentage","pad","str","num","String","console","info","max","min","map","_","filter","Boolean","reduce","accu","a","b","parent","undefined","flexRender","Comp","props","isReactComponent","React","component","isClassComponent","isExoticComponent","proto","Object","getPrototypeOf","prototype","$$typeof","includes","description"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../src/utils.tsx"],"sourcesContent":["import { Getter, NoInfer, PropGetterValue, TableState, Updater } from './types'\n\nexport type IsAny<T> = 0 extends 1 & T ? true : false\nexport type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>\nexport type RequiredKeys<T, K extends keyof T> = Omit<T, K> &\n Required<Pick<T, K>>\nexport type Overwrite<T, U extends { [TKey in keyof T]?: any }> = Omit<\n T,\n keyof U\n> &\n U\n\nexport type DataUpdateFunction<T> = (input: T) => T\n\nexport function functionalUpdate<T>(updater: Updater<T>, input: T): T {\n return typeof updater === 'function'\n ? (updater as DataUpdateFunction<T>)(input)\n : updater\n}\n\nexport function noop() {\n //\n}\n\nexport function makeStateUpdater(key: keyof TableState, instance: unknown) {\n return (updater: Updater<any>) => {\n ;(instance as any).setState(<TTableState,>(old: TTableState) => {\n return {\n ...old,\n [key]: functionalUpdate(updater, (old as any)[key]),\n }\n })\n }\n}\n\ntype AnyFunction = (...args: any) => any\n\nexport function isFunction<T extends AnyFunction>(d: any): d is T {\n return d instanceof Function\n}\n\nexport function flattenBy<TNode>(\n arr: TNode[],\n getChildren: (item: TNode) => TNode[]\n) {\n const flat: TNode[] = []\n\n const recurse = (subArr: TNode[]) => {\n subArr.forEach(item => {\n flat.push(item)\n const children = getChildren(item)\n if (children?.length) {\n recurse(children)\n }\n })\n }\n\n recurse(arr)\n\n return flat\n}\n\ntype PropGetterImpl = <TBaseProps, TGetter extends Getter<TBaseProps>>(\n initial: TBaseProps,\n userProps?: TGetter\n) => PropGetterValue<TBaseProps, TGetter>\n\n// @ts-ignore // Just rely on the type, not the implementation\nexport const propGetter: PropGetterImpl = (initial, getter) => {\n if (isFunction(getter)) {\n return getter(initial)\n }\n\n return {\n ...initial,\n ...(getter ?? {}),\n }\n}\n\nexport function memo<TDeps extends readonly any[], TResult>(\n getDeps: () => [...TDeps],\n fn: (...args: NoInfer<[...TDeps]>) => TResult,\n opts: {\n key: string\n debug?: () => any\n onChange?: (result: TResult, previousResult?: TResult) => void\n }\n): () => TResult {\n let deps: any[] = []\n let result: TResult | undefined\n\n return () => {\n let depTime: number\n if (opts.key && opts.debug) depTime = performance.now()\n\n const newDeps = getDeps()\n\n const depsChanged =\n newDeps.length !== deps.length ||\n newDeps.some((dep: any, index: number) => deps[index] !== dep)\n\n if (depsChanged) {\n let oldResult = result\n let resultTime: number\n if (opts.key && opts.debug) resultTime = performance.now()\n result = fn(...newDeps)\n deps = newDeps\n opts?.onChange?.(result, oldResult)\n\n if (opts.key && opts.debug) {\n if (opts?.debug()) {\n const depEndTime =\n Math.round((performance.now() - depTime!) * 100) / 100\n const resultEndTime =\n Math.round((performance.now() - resultTime!) * 100) / 100\n const resultFpsPercentage = resultEndTime / 16\n\n const pad = (str: number | string, num: number) => {\n str = String(str)\n while (str.length < num) {\n str = ' ' + str\n }\n return str\n }\n\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts?.key,\n {\n length: `${deps.length} -> ${newDeps.length}`,\n ...newDeps\n .map((_, index) => {\n if (deps[index] !== newDeps[index]) {\n return [index, deps[index], newDeps[index]]\n }\n\n return false\n })\n .filter(Boolean)\n .reduce(\n (accu, [a, b]: any) => ({\n ...accu,\n [a]: b,\n }),\n {}\n ),\n parent,\n }\n )\n }\n }\n\n oldResult = undefined\n }\n\n return result!\n }\n}\n\n// export function hashString(str: string, seed = 0): string {\n// let h1 = 0xdeadbeef ^ seed,\n// h2 = 0x41c6ce57 ^ seed\n// for (let i = 0, ch; i < str.length; i++) {\n// ch = str.charCodeAt(i)\n// h1 = Math.imul(h1 ^ ch, 2654435761)\n// h2 = Math.imul(h2 ^ ch, 1597334677)\n// }\n// h1 =\n// Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^\n// Math.imul(h2 ^ (h2 >>> 13), 3266489909)\n// h2 =\n// Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^\n// Math.imul(h1 ^ (h1 >>> 13), 3266489909)\n// return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString()\n// }\n"],"names":["functionalUpdate","updater","input","noop","makeStateUpdater","key","instance","setState","old","isFunction","d","Function","flattenBy","arr","getChildren","flat","recurse","subArr","forEach","item","push","children","length","propGetter","initial","getter","memo","getDeps","fn","opts","deps","result","depTime","debug","performance","now","newDeps","depsChanged","some","dep","index","oldResult","resultTime","onChange","depEndTime","Math","round","resultEndTime","resultFpsPercentage","pad","str","num","String","console","info","max","min","map","_","filter","Boolean","reduce","accu","a","b","parent","undefined"],"mappings":"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"}
@@ -8,8 +8,6 @@
8
8
  *
9
9
  * @license MIT
10
10
  */
11
- import React from 'react';
12
-
13
11
  function _extends() {
14
12
  _extends = Object.assign || function (target) {
15
13
  for (var i = 1; i < arguments.length; i++) {
@@ -202,24 +200,6 @@ function memo(getDeps, fn, opts) {
202
200
 
203
201
  return result;
204
202
  };
205
- }
206
- function flexRender(Comp, props) {
207
- return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React.createElement(Comp, props) : Comp;
208
- }
209
-
210
- function isReactComponent(component) {
211
- return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component);
212
- }
213
-
214
- function isClassComponent(component) {
215
- return typeof component === 'function' && function () {
216
- var proto = Object.getPrototypeOf(component);
217
- return proto.prototype && proto.prototype.isReactComponent;
218
- }();
219
- }
220
-
221
- function isExoticComponent(component) {
222
- return typeof component === 'object' && typeof component.$$typeof === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description);
223
203
  } // export function hashString(str: string, seed = 0): string {
224
204
  // let h1 = 0xdeadbeef ^ seed,
225
205
  // h2 = 0x41c6ce57 ^ seed
@@ -237,9 +217,6 @@ function isExoticComponent(component) {
237
217
  // return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString()
238
218
  // }
239
219
 
240
- // declare global {
241
- // const process.env.NODE_ENV !== 'production': boolean
242
- // }
243
220
  //
244
221
  var Please_use_the_create_table_column_utilities_to_define_columns = Symbol();
245
222
 
@@ -637,7 +614,6 @@ var Grouping = {
637
614
  var initialProps = {
638
615
  title: canGroup ? 'Toggle Grouping' : undefined,
639
616
  onClick: canGroup ? function (e) {
640
- e.persist();
641
617
  column.toggleGrouping == null ? void 0 : column.toggleGrouping();
642
618
  } : undefined
643
619
  };
@@ -679,7 +655,7 @@ var Grouping = {
679
655
  }
680
656
  };
681
657
  },
682
- createCell: function createCell(cell, column, row, _instance) {
658
+ createCell: function createCell(cell, column, row, instance) {
683
659
  return {
684
660
  getIsGrouped: function getIsGrouped() {
685
661
  return column.getIsGrouped() && column.id === row.groupingColumnId;
@@ -691,6 +667,18 @@ var Grouping = {
691
667
  var _row$subRows;
692
668
 
693
669
  return !cell.getIsGrouped() && !cell.getIsPlaceholder() && ((_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length) > 1;
670
+ },
671
+ renderAggregatedCell: function renderAggregatedCell() {
672
+ var _column$aggregatedCel;
673
+
674
+ var template = (_column$aggregatedCel = column.aggregatedCell) != null ? _column$aggregatedCel : column.cell;
675
+ return template ? instance.render(template, {
676
+ instance: instance,
677
+ column: column,
678
+ row: row,
679
+ cell: cell,
680
+ value: cell.value
681
+ }) : null;
694
682
  }
695
683
  };
696
684
  },
@@ -1136,11 +1124,11 @@ var ColumnSizing = {
1136
1124
  draggable: false,
1137
1125
  role: 'separator',
1138
1126
  onMouseDown: function onMouseDown(e) {
1139
- e.persist();
1127
+ e.persist == null ? void 0 : e.persist();
1140
1128
  onResizeStart(e);
1141
1129
  },
1142
1130
  onTouchStart: function onTouchStart(e) {
1143
- e.persist();
1131
+ e.persist == null ? void 0 : e.persist();
1144
1132
  onResizeStart(e);
1145
1133
  }
1146
1134
  } : {};
@@ -1345,18 +1333,18 @@ var Headers = {
1345
1333
  return instance.getFooterProps(header.id, userProps);
1346
1334
  },
1347
1335
  renderHeader: function renderHeader() {
1348
- return flexRender(column.header, {
1336
+ return column.header ? instance.render(column.header, {
1349
1337
  instance: instance,
1350
1338
  header: header,
1351
1339
  column: column
1352
- });
1340
+ }) : null;
1353
1341
  },
1354
1342
  renderFooter: function renderFooter() {
1355
- return flexRender(column.footer, {
1343
+ return column.footer ? instance.render(column.footer, {
1356
1344
  instance: instance,
1357
1345
  header: header,
1358
1346
  column: column
1359
- });
1347
+ }) : null;
1360
1348
  }
1361
1349
  }; // Yes, we have to convert instance to unknown, because we know more than the compiler here.
1362
1350
 
@@ -2226,7 +2214,7 @@ var Filters = {
2226
2214
 
2227
2215
  if (!column) {
2228
2216
  if (process.env.NODE_ENV !== 'production') {
2229
- console.warn("React-Table: Could not find a column with id: " + columnId);
2217
+ console.warn("Table: Could not find a column with id: " + columnId);
2230
2218
  }
2231
2219
 
2232
2220
  throw new Error();
@@ -2867,7 +2855,7 @@ var Expanding = {
2867
2855
 
2868
2856
  if (!row) {
2869
2857
  if (process.env.NODE_ENV !== 'production') {
2870
- console.warn("[ReactTable] getIsRowExpanded: no row found with id " + rowId);
2858
+ console.warn("[Table] getIsRowExpanded: no row found with id " + rowId);
2871
2859
  }
2872
2860
 
2873
2861
  throw new Error();
@@ -2883,7 +2871,7 @@ var Expanding = {
2883
2871
 
2884
2872
  if (!row) {
2885
2873
  if (process.env.NODE_ENV !== 'production') {
2886
- console.warn("[ReactTable] getRowCanExpand: no row found with id " + rowId);
2874
+ console.warn("[Table] getRowCanExpand: no row found with id " + rowId);
2887
2875
  }
2888
2876
 
2889
2877
  throw new Error();
@@ -3677,7 +3665,7 @@ function createTableInstance(options) {
3677
3665
  var _options$initialState;
3678
3666
 
3679
3667
  if (options.debugAll || options.debugTable) {
3680
- console.info('Creating React Table Instance...');
3668
+ console.info('Creating Table Instance...');
3681
3669
  }
3682
3670
 
3683
3671
  var instance = {};
@@ -3705,6 +3693,17 @@ function createTableInstance(options) {
3705
3693
  setOptions: function setOptions(updater) {
3706
3694
  instance.options = buildOptions(functionalUpdate(updater, instance.options));
3707
3695
  },
3696
+ render: function render(template, props) {
3697
+ if (typeof instance.options.render === 'function') {
3698
+ return instance.options.render(template, props);
3699
+ }
3700
+
3701
+ if (typeof template === 'function') {
3702
+ return template(props);
3703
+ }
3704
+
3705
+ return template;
3706
+ },
3708
3707
  getRowId: function getRowId(_, index, parent) {
3709
3708
  return "" + (parent ? [parent.id, index].join('.') : index);
3710
3709
  },
@@ -3897,7 +3896,7 @@ function createTableInstance(options) {
3897
3896
 
3898
3897
  if (!column) {
3899
3898
  if (process.env.NODE_ENV !== 'production') {
3900
- console.warn("[React Table] Column with id " + columnId + " does not exist.");
3899
+ console.warn("[Table] Column with id " + columnId + " does not exist.");
3901
3900
  }
3902
3901
 
3903
3902
  throw new Error();
@@ -3929,13 +3928,13 @@ function createTableInstance(options) {
3929
3928
  return instance.getCellProps(row.id, column.id, userProps);
3930
3929
  },
3931
3930
  renderCell: function renderCell() {
3932
- return flexRender(column.cell, {
3931
+ return column.cell ? instance.render(column.cell, {
3933
3932
  instance: instance,
3934
3933
  column: column,
3935
3934
  row: row,
3936
3935
  cell: cell,
3937
3936
  value: value
3938
- });
3937
+ }) : null;
3939
3938
  }
3940
3939
  };
3941
3940
  features.forEach(function (feature) {
@@ -4101,7 +4100,7 @@ function createTableInstance(options) {
4101
4100
 
4102
4101
  if (!row) {
4103
4102
  if (process.env.NODE_ENV !== 'production') {
4104
- throw new Error("[React Table] could not find row with id " + rowId);
4103
+ throw new Error("[Table] could not find row with id " + rowId);
4105
4104
  }
4106
4105
 
4107
4106
  throw new Error();
@@ -4111,7 +4110,7 @@ function createTableInstance(options) {
4111
4110
 
4112
4111
  if (!cell) {
4113
4112
  if (process.env.NODE_ENV !== 'production') {
4114
- throw new Error("[React Table] could not find cell " + columnId + " in row " + rowId);
4113
+ throw new Error("[Table] could not find cell " + columnId + " in row " + rowId);
4115
4114
  }
4116
4115
 
4117
4116
  throw new Error();
@@ -4187,18 +4186,27 @@ function createTableInstance(options) {
4187
4186
  return instance;
4188
4187
  }
4189
4188
 
4190
- function createTableFactory(opts) {
4191
- return function () {
4192
- return _createTable(undefined, undefined, opts);
4189
+ //
4190
+ function init(opts) {
4191
+ return {
4192
+ createTableFactory: function createTableFactory(options) {
4193
+ return function () {
4194
+ return _createTable(undefined, undefined, _extends({}, options, opts));
4195
+ };
4196
+ },
4197
+ createTable: function createTable() {
4198
+ return _createTable(undefined, undefined, opts);
4199
+ }
4193
4200
  };
4194
4201
  }
4195
- function createTable() {
4196
- return _createTable();
4197
- }
4198
4202
 
4199
4203
  function _createTable(_, __, __options) {
4200
4204
  return {
4201
- __options: __options || {},
4205
+ __options: __options != null ? __options : {
4206
+ render: function render() {
4207
+ throw new Error();
4208
+ }
4209
+ },
4202
4210
  createColumns: function createColumns(columns) {
4203
4211
  return columns;
4204
4212
  },
@@ -4248,7 +4256,7 @@ function columnFilterRowsFn(instance, rowModel) {
4248
4256
 
4249
4257
  if (!column) {
4250
4258
  if (process.env.NODE_ENV !== 'production') {
4251
- console.warn("React-Table: Could not find a column with id: " + columnId);
4259
+ console.warn("Table: Could not find a column with id: " + columnId);
4252
4260
  }
4253
4261
 
4254
4262
  throw new Error();
@@ -4551,7 +4559,7 @@ function groupRowsFn(instance, sortedRowModel) {
4551
4559
  console.info({
4552
4560
  column: column
4553
4561
  });
4554
- throw new Error(process.env.NODE_ENV !== 'production' ? "React Table: Invalid column.aggregateType option for column listed above" : '');
4562
+ throw new Error(process.env.NODE_ENV !== 'production' ? "Table: Invalid column.aggregateType option for column listed above" : '');
4555
4563
  } else {
4556
4564
  values[column.id] = null;
4557
4565
  }
@@ -4696,5 +4704,5 @@ function paginateRowsFn(instance, rowModel) {
4696
4704
  };
4697
4705
  }
4698
4706
 
4699
- export { ColumnSizing, Expanding, Filters, Grouping, Headers, Ordering, Pagination, Pinning, Please_use_the_create_table_column_utilities_to_define_columns, RowSelection, Sorting, Visibility, buildHeaderGroups, columnFilterRowsFn, createTable, createTableFactory, createTableInstance, defaultColumnSizing, expandRowsFn, flattenBy, flexRender, functionalUpdate, getDefaultColumn, globalFilterRowsFn, groupRowsFn, isFunction, isRowSelected, makeStateUpdater, memo, noop, paginateRowsFn, passiveEventSupported, propGetter, selectRowsFn, shouldAutoRemoveFilter, sortRowsFn };
4707
+ export { ColumnSizing, Expanding, Filters, Grouping, Headers, Ordering, Pagination, Pinning, Please_use_the_create_table_column_utilities_to_define_columns, RowSelection, Sorting, Visibility, buildHeaderGroups, columnFilterRowsFn, createTableInstance, defaultColumnSizing, expandRowsFn, flattenBy, functionalUpdate, getDefaultColumn, globalFilterRowsFn, groupRowsFn, init, isFunction, isRowSelected, makeStateUpdater, memo, noop, paginateRowsFn, passiveEventSupported, propGetter, selectRowsFn, shouldAutoRemoveFilter, sortRowsFn };
4700
4708
  //# sourceMappingURL=index.js.map