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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/cjs/core.js CHANGED
@@ -62,7 +62,7 @@ function createTableInstance(options) {
62
62
  }, {}));
63
63
 
64
64
  var queued = [];
65
- var queuedTimeout;
65
+ var queuedTimeout = false;
66
66
 
67
67
  var finalInstance = _rollupPluginBabelHelpers["extends"]({}, instance, instance._features.reduce(function (obj, feature) {
68
68
  return Object.assign(obj, feature.createInstance == null ? void 0 : feature.createInstance(instance));
@@ -71,20 +71,25 @@ function createTableInstance(options) {
71
71
  queued.push(cb);
72
72
 
73
73
  if (!queuedTimeout) {
74
- queuedTimeout = setTimeout(function () {
75
- instance.setState(function (old) {
76
- return _rollupPluginBabelHelpers["extends"]({}, old);
74
+ queuedTimeout = true; // Schedule a microtask to run the queued callbacks after
75
+ // the current call stack (render, etc) has finished.
76
+
77
+ Promise.resolve().then(function () {
78
+ console.log(queued);
79
+
80
+ while (queued.length) {
81
+ queued.shift()();
82
+ }
83
+
84
+ queuedTimeout = false;
85
+ })["catch"](function (error) {
86
+ return setTimeout(function () {
87
+ throw error;
77
88
  });
78
89
  });
79
90
  }
80
91
  },
81
- willUpdate: function willUpdate() {
82
- clearTimeout(queuedTimeout);
83
-
84
- while (queued.length) {
85
- queued.shift()();
86
- }
87
- },
92
+ // willUpdate: () => {},
88
93
  initialState: initialState,
89
94
  reset: function reset() {
90
95
  instance.setState(instance.initialState);
@@ -1 +1 @@
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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"}
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 = false\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\n if (!queuedTimeout) {\n queuedTimeout = true\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve()\n .then(() => {\n console.log(queued)\n while (queued.length) {\n queued.shift()!()\n }\n queuedTimeout = false\n })\n .catch(error =>\n setTimeout(() => {\n throw error\n })\n )\n }\n },\n // willUpdate: () => {},\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","Promise","resolve","then","log","length","shift","error","setTimeout","reset","setState","setOptions","updater","newOptions","functionalUpdate","render","template","props","getState","state","onStateChange","getOverallProgress","columnFiltersProgress","globalFilterProgress","mean","filter","d"],"mappings":"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"}
@@ -4085,7 +4085,7 @@ function createTableInstance(options) {
4085
4085
  }, {}));
4086
4086
 
4087
4087
  var queued = [];
4088
- var queuedTimeout;
4088
+ var queuedTimeout = false;
4089
4089
 
4090
4090
  var finalInstance = _extends({}, instance, instance._features.reduce(function (obj, feature) {
4091
4091
  return Object.assign(obj, feature.createInstance == null ? void 0 : feature.createInstance(instance));
@@ -4094,20 +4094,25 @@ function createTableInstance(options) {
4094
4094
  queued.push(cb);
4095
4095
 
4096
4096
  if (!queuedTimeout) {
4097
- queuedTimeout = setTimeout(function () {
4098
- instance.setState(function (old) {
4099
- return _extends({}, old);
4097
+ queuedTimeout = true; // Schedule a microtask to run the queued callbacks after
4098
+ // the current call stack (render, etc) has finished.
4099
+
4100
+ Promise.resolve().then(function () {
4101
+ console.log(queued);
4102
+
4103
+ while (queued.length) {
4104
+ queued.shift()();
4105
+ }
4106
+
4107
+ queuedTimeout = false;
4108
+ })["catch"](function (error) {
4109
+ return setTimeout(function () {
4110
+ throw error;
4100
4111
  });
4101
4112
  });
4102
4113
  }
4103
4114
  },
4104
- willUpdate: function willUpdate() {
4105
- clearTimeout(queuedTimeout);
4106
-
4107
- while (queued.length) {
4108
- queued.shift()();
4109
- }
4110
- },
4115
+ // willUpdate: () => {},
4111
4116
  initialState: initialState,
4112
4117
  reset: function reset() {
4113
4118
  instance.setState(instance.initialState);