@tanstack/table-core 8.0.0-alpha.26 → 8.0.0-alpha.27
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/utils.js +5 -4
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +2 -0
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +273 -259
- package/build/umd/index.development.js +8 -8
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/utils.tsx +1 -0
package/build/cjs/utils.js
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
14
|
|
|
15
15
|
var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
|
|
16
|
+
var perf_hooks = require('perf_hooks');
|
|
16
17
|
|
|
17
18
|
function functionalUpdate(updater, input) {
|
|
18
19
|
return typeof updater === 'function' ? updater(input) : updater;
|
|
@@ -61,7 +62,7 @@ function memo(getDeps, fn, opts) {
|
|
|
61
62
|
var result;
|
|
62
63
|
return function () {
|
|
63
64
|
var depTime;
|
|
64
|
-
if (opts.key && opts.debug) depTime = performance.now();
|
|
65
|
+
if (opts.key && opts.debug) depTime = perf_hooks.performance.now();
|
|
65
66
|
var newDeps = getDeps();
|
|
66
67
|
var depsChanged = newDeps.length !== deps.length || newDeps.some(function (dep, index) {
|
|
67
68
|
return deps[index] !== dep;
|
|
@@ -70,15 +71,15 @@ function memo(getDeps, fn, opts) {
|
|
|
70
71
|
if (depsChanged) {
|
|
71
72
|
var oldResult = result;
|
|
72
73
|
var resultTime;
|
|
73
|
-
if (opts.key && opts.debug) resultTime = performance.now();
|
|
74
|
+
if (opts.key && opts.debug) resultTime = perf_hooks.performance.now();
|
|
74
75
|
result = fn.apply(void 0, newDeps);
|
|
75
76
|
deps = newDeps;
|
|
76
77
|
opts == null ? void 0 : opts.onChange == null ? void 0 : opts.onChange(result, oldResult);
|
|
77
78
|
|
|
78
79
|
if (opts.key && opts.debug) {
|
|
79
80
|
if (opts != null && opts.debug()) {
|
|
80
|
-
var depEndTime = Math.round((performance.now() - depTime) * 100) / 100;
|
|
81
|
-
var resultEndTime = Math.round((performance.now() - resultTime) * 100) / 100;
|
|
81
|
+
var depEndTime = Math.round((perf_hooks.performance.now() - depTime) * 100) / 100;
|
|
82
|
+
var resultEndTime = Math.round((perf_hooks.performance.now() - resultTime) * 100) / 100;
|
|
82
83
|
var resultFpsPercentage = resultEndTime / 16;
|
|
83
84
|
|
|
84
85
|
var pad = function pad(str, num) {
|
package/build/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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":"
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../src/utils.tsx"],"sourcesContent":["import { performance } from 'perf_hooks' //needed until node 16 is more universal\nimport { 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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"}
|