@tanstack/react-table 8.0.0-alpha.84 → 8.0.0-alpha.87
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/react-table/src/index.js +0 -1
- package/build/cjs/react-table/src/index.js.map +1 -1
- package/build/cjs/table-core/build/esm/index.js +117 -131
- package/build/cjs/table-core/build/esm/index.js.map +1 -1
- package/build/esm/index.js +118 -131
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +17 -17
- package/build/umd/index.development.js +117 -131
- 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 +2 -2
|
@@ -125,7 +125,6 @@ exports.getSortedRowModel = index.getSortedRowModel;
|
|
|
125
125
|
exports.isFunction = index.isFunction;
|
|
126
126
|
exports.isRowSelected = index.isRowSelected;
|
|
127
127
|
exports.makeStateUpdater = index.makeStateUpdater;
|
|
128
|
-
exports.mean = index.mean;
|
|
129
128
|
exports.memo = index.memo;
|
|
130
129
|
exports.noop = index.noop;
|
|
131
130
|
exports.orderColumns = index.orderColumns;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\nexport * from '@tanstack/table-core'\n\nimport {\n createTableInstance,\n TableOptions,\n TableInstance,\n Table,\n TableGenerics,\n createTableFactory,\n Overwrite,\n PartialKeys,\n TableOptionsResolved,\n} from '@tanstack/table-core'\n\nexport type Renderable<TProps> =\n | React.ReactNode\n | React.FunctionComponent<TProps>\n | React.Component<TProps>\n\nexport type Render = <TProps extends {}>(\n Comp: Renderable<TProps>,\n props: TProps\n) => React.ReactNode | JSX.Element\n\nexport type ReactTableGenerics = Overwrite<\n TableGenerics,\n { Renderer: Render; Rendered: ReturnType<Render> }\n>\n\n//\n\nexport const render: Render = (Comp, props) =>\n !Comp ? null : isReactComponent(Comp) ? <Comp {...props} /> : Comp\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\nexport const createTable = createTableFactory({ render })\n\n// const useIsomorphicLayoutEffect =\n// typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\nexport type UseTableInstanceOptions<TGenerics extends ReactTableGenerics> =\n TableOptions<TGenerics>\n\nexport function useTableInstance<TGenerics extends ReactTableGenerics>(\n table: Table<TGenerics>,\n options: UseTableInstanceOptions<TGenerics>\n): TableInstance<TGenerics> {\n // Compose in the generic options to the user options\n const resolvedOptions: TableOptionsResolved<TGenerics> = {\n ...table.options,\n state: {}, // Dummy state\n onStateChange: () => {}, // noop\n render,\n ...options,\n }\n\n // Create a new table instance and store it in state\n const [instanceRef] = React.useState(() => ({\n current: createTableInstance<TGenerics>(resolvedOptions),\n }))\n\n // By default, manage table state here using the instance's initial state\n const [state, setState] = React.useState(\n () => instanceRef.current.initialState\n )\n\n // Compose the default state above with any user state. This will allow the user\n // to only control a subset of the state if desired.\n instanceRef.current.setOptions(prev => ({\n ...prev,\n ...options,\n state: {\n ...state,\n ...options.state,\n },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n setState(updater)\n options.onStateChange?.(updater)\n },\n }))\n\n return instanceRef.current\n}\n"],"names":["render","Comp","props","isReactComponent","React","component","isClassComponent","isExoticComponent","proto","Object","getPrototypeOf","prototype","$$typeof","includes","description","createTable","createTableFactory","useTableInstance","table","options","resolvedOptions","state","onStateChange","instanceRef","useState","current","createTableInstance","setState","initialState","setOptions","prev","updater"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA;AAEO,MAAMA,MAAc,GAAG,CAACC,IAAD,EAAOC,KAAP,KAC5B,CAACD,IAAD,GAAQ,IAAR,GAAeE,gBAAgB,CAACF,IAAD,CAAhB,gBAAyBG,gBAAA,CAAA,aAAA,CAAC,IAAD,EAAUF,KAAV,CAAzB,GAA+CD,KADzD;;AAGP,SAASE,gBAAT,CAA0BE,SAA1B,EAAqE;AACnE,EAAA,OACEC,gBAAgB,CAACD,SAAD,CAAhB,IACA,OAAOA,SAAP,KAAqB,UADrB,IAEAE,iBAAiB,CAACF,SAAD,CAHnB,CAAA;AAKD,CAAA;;AAED,SAASC,gBAAT,CAA0BD,SAA1B,EAA0C;AACxC,EAAA,OACE,OAAOA,SAAP,KAAqB,UAArB,IACA,CAAC,MAAM;AACL,IAAA,MAAMG,KAAK,GAAGC,MAAM,CAACC,cAAP,CAAsBL,SAAtB,CAAd,CAAA;AACA,IAAOG,OAAAA,KAAK,CAACG,SAAN,IAAmBH,KAAK,CAACG,SAAN,CAAgBR,gBAA1C,CAAA;AACD,GAHD,GAFF,CAAA;AAOD,CAAA;;AAED,SAASI,iBAAT,CAA2BF,SAA3B,EAA2C;AACzC,EACE,OAAA,OAAOA,SAAP,KAAqB,QAArB,IACA,OAAOA,SAAS,CAACO,QAAjB,KAA8B,QAD9B,IAEA,CAAC,YAAD,EAAe,mBAAf,CAAA,CAAoCC,QAApC,CAA6CR,SAAS,CAACO,QAAV,CAAmBE,WAAhE,CAHF,CAAA;AAKD,CAAA;;AAEYC,MAAAA,WAAW,GAAGC,wBAAkB,CAAC;AAAEhB,EAAAA,MAAAA;AAAF,CAAD;AAG7C;;AAKO,SAASiB,gBAAT,CACLC,KADK,EAELC,OAFK,EAGqB;AAC1B;AACA,EAAA,MAAMC,eAAgD,GAAG,EACvD,GAAGF,KAAK,CAACC,OAD8C;AAEvDE,IAAAA,KAAK,EAAE,EAFgD;AAE5C;AACXC,IAAAA,aAAa,EAAE,MAAM,EAHkC;AAG9B;AACzBtB,IAAAA,MAJuD;AAKvD,IAAGmB,GAAAA,OAAAA;AALoD,GAAzD,CAF0B;;AAW1B,EAAA,MAAM,CAACI,WAAD,CAAA,GAAgBnB,gBAAK,CAACoB,QAAN,CAAe,OAAO;AAC1CC,IAAAA,OAAO,EAAEC,yBAAmB,CAAYN,eAAZ,CAAA;AADc,GAAP,CAAf,CAAtB,CAX0B;;AAgB1B,EAAA,MAAM,CAACC,KAAD,EAAQM,QAAR,CAAA,GAAoBvB,gBAAK,CAACoB,QAAN,CACxB,MAAMD,WAAW,CAACE,OAAZ,CAAoBG,YADF,CAA1B,CAhB0B;AAqB1B;;AACAL,EAAAA,WAAW,CAACE,OAAZ,CAAoBI,UAApB,CAA+BC,IAAI,KAAK,EACtC,GAAGA,IADmC;AAEtC,IAAA,GAAGX,OAFmC;AAGtCE,IAAAA,KAAK,EAAE,EACL,GAAGA,KADE;AAEL,MAAA,GAAGF,OAAO,CAACE,KAAAA;AAFN,KAH+B;AAOtC;AACA;AACAC,IAAAA,aAAa,EAAES,OAAO,IAAI;AACxBJ,MAAAA,QAAQ,CAACI,OAAD,CAAR,CAAA;AACAZ,MAAAA,OAAO,CAACG,aAAR,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAH,OAAO,CAACG,aAAR,CAAwBS,OAAxB,CAAA,CAAA;AACD,KAAA;AAZqC,GAAL,CAAnC,CAAA,CAAA;AAeA,EAAOR,OAAAA,WAAW,CAACE,OAAnB,CAAA;AACD
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\nexport * from '@tanstack/table-core'\n\nimport {\n createTableInstance,\n TableOptions,\n TableInstance,\n Table,\n TableGenerics,\n createTableFactory,\n Overwrite,\n PartialKeys,\n TableOptionsResolved,\n} from '@tanstack/table-core'\n\nexport type Renderable<TProps> =\n | React.ReactNode\n | React.FunctionComponent<TProps>\n | React.Component<TProps>\n\nexport type Render = <TProps extends {}>(\n Comp: Renderable<TProps>,\n props: TProps\n) => React.ReactNode | JSX.Element\n\nexport type ReactTableGenerics = Overwrite<\n TableGenerics,\n { Renderer: Render; Rendered: ReturnType<Render> }\n>\n\n//\n\nexport const render: Render = (Comp, props) =>\n !Comp ? null : isReactComponent(Comp) ? <Comp {...props} /> : Comp\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\nexport const createTable = createTableFactory({ render })\n\n// const useIsomorphicLayoutEffect =\n// typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\nexport type UseTableInstanceOptions<TGenerics extends ReactTableGenerics> =\n TableOptions<TGenerics>\n\nexport function useTableInstance<TGenerics extends ReactTableGenerics>(\n table: Table<TGenerics>,\n options: UseTableInstanceOptions<TGenerics>\n): TableInstance<TGenerics> {\n // Compose in the generic options to the user options\n const resolvedOptions: TableOptionsResolved<TGenerics> = {\n ...table.options,\n state: {}, // Dummy state\n onStateChange: () => {}, // noop\n render,\n ...options,\n }\n\n // Create a new table instance and store it in state\n const [instanceRef] = React.useState(() => ({\n current: createTableInstance<TGenerics>(resolvedOptions),\n }))\n\n // By default, manage table state here using the instance's initial state\n const [state, setState] = React.useState(\n () => instanceRef.current.initialState\n )\n\n // Compose the default state above with any user state. This will allow the user\n // to only control a subset of the state if desired.\n instanceRef.current.setOptions(prev => ({\n ...prev,\n ...options,\n state: {\n ...state,\n ...options.state,\n },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n setState(updater)\n options.onStateChange?.(updater)\n },\n }))\n\n return instanceRef.current\n}\n"],"names":["render","Comp","props","isReactComponent","React","component","isClassComponent","isExoticComponent","proto","Object","getPrototypeOf","prototype","$$typeof","includes","description","createTable","createTableFactory","useTableInstance","table","options","resolvedOptions","state","onStateChange","instanceRef","useState","current","createTableInstance","setState","initialState","setOptions","prev","updater"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA;AAEO,MAAMA,MAAc,GAAG,CAACC,IAAD,EAAOC,KAAP,KAC5B,CAACD,IAAD,GAAQ,IAAR,GAAeE,gBAAgB,CAACF,IAAD,CAAhB,gBAAyBG,gBAAA,CAAA,aAAA,CAAC,IAAD,EAAUF,KAAV,CAAzB,GAA+CD,KADzD;;AAGP,SAASE,gBAAT,CAA0BE,SAA1B,EAAqE;AACnE,EAAA,OACEC,gBAAgB,CAACD,SAAD,CAAhB,IACA,OAAOA,SAAP,KAAqB,UADrB,IAEAE,iBAAiB,CAACF,SAAD,CAHnB,CAAA;AAKD,CAAA;;AAED,SAASC,gBAAT,CAA0BD,SAA1B,EAA0C;AACxC,EAAA,OACE,OAAOA,SAAP,KAAqB,UAArB,IACA,CAAC,MAAM;AACL,IAAA,MAAMG,KAAK,GAAGC,MAAM,CAACC,cAAP,CAAsBL,SAAtB,CAAd,CAAA;AACA,IAAOG,OAAAA,KAAK,CAACG,SAAN,IAAmBH,KAAK,CAACG,SAAN,CAAgBR,gBAA1C,CAAA;AACD,GAHD,GAFF,CAAA;AAOD,CAAA;;AAED,SAASI,iBAAT,CAA2BF,SAA3B,EAA2C;AACzC,EACE,OAAA,OAAOA,SAAP,KAAqB,QAArB,IACA,OAAOA,SAAS,CAACO,QAAjB,KAA8B,QAD9B,IAEA,CAAC,YAAD,EAAe,mBAAf,CAAA,CAAoCC,QAApC,CAA6CR,SAAS,CAACO,QAAV,CAAmBE,WAAhE,CAHF,CAAA;AAKD,CAAA;;AAEYC,MAAAA,WAAW,GAAGC,wBAAkB,CAAC;AAAEhB,EAAAA,MAAAA;AAAF,CAAD;AAG7C;;AAKO,SAASiB,gBAAT,CACLC,KADK,EAELC,OAFK,EAGqB;AAC1B;AACA,EAAA,MAAMC,eAAgD,GAAG,EACvD,GAAGF,KAAK,CAACC,OAD8C;AAEvDE,IAAAA,KAAK,EAAE,EAFgD;AAE5C;AACXC,IAAAA,aAAa,EAAE,MAAM,EAHkC;AAG9B;AACzBtB,IAAAA,MAJuD;AAKvD,IAAGmB,GAAAA,OAAAA;AALoD,GAAzD,CAF0B;;AAW1B,EAAA,MAAM,CAACI,WAAD,CAAA,GAAgBnB,gBAAK,CAACoB,QAAN,CAAe,OAAO;AAC1CC,IAAAA,OAAO,EAAEC,yBAAmB,CAAYN,eAAZ,CAAA;AADc,GAAP,CAAf,CAAtB,CAX0B;;AAgB1B,EAAA,MAAM,CAACC,KAAD,EAAQM,QAAR,CAAA,GAAoBvB,gBAAK,CAACoB,QAAN,CACxB,MAAMD,WAAW,CAACE,OAAZ,CAAoBG,YADF,CAA1B,CAhB0B;AAqB1B;;AACAL,EAAAA,WAAW,CAACE,OAAZ,CAAoBI,UAApB,CAA+BC,IAAI,KAAK,EACtC,GAAGA,IADmC;AAEtC,IAAA,GAAGX,OAFmC;AAGtCE,IAAAA,KAAK,EAAE,EACL,GAAGA,KADE;AAEL,MAAA,GAAGF,OAAO,CAACE,KAAAA;AAFN,KAH+B;AAOtC;AACA;AACAC,IAAAA,aAAa,EAAES,OAAO,IAAI;AACxBJ,MAAAA,QAAQ,CAACI,OAAD,CAAR,CAAA;AACAZ,MAAAA,OAAO,CAACG,aAAR,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAH,OAAO,CAACG,aAAR,CAAwBS,OAAxB,CAAA,CAAA;AACD,KAAA;AAZqC,GAAL,CAAnC,CAAA,CAAA;AAeA,EAAOR,OAAAA,WAAW,CAACE,OAAnB,CAAA;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -829,7 +829,6 @@ const Expanding = {
|
|
|
829
829
|
return {
|
|
830
830
|
onExpandedChange: makeStateUpdater('expanded', instance),
|
|
831
831
|
autoResetExpanded: true,
|
|
832
|
-
expandSubRows: true,
|
|
833
832
|
paginateExpandedRows: true
|
|
834
833
|
};
|
|
835
834
|
},
|
|
@@ -1226,8 +1225,7 @@ const Filters = {
|
|
|
1226
1225
|
createRow: (row, instance) => {
|
|
1227
1226
|
return {
|
|
1228
1227
|
columnFilters: {},
|
|
1229
|
-
columnFiltersMeta: {}
|
|
1230
|
-
subRowsByFacetId: {}
|
|
1228
|
+
columnFiltersMeta: {}
|
|
1231
1229
|
};
|
|
1232
1230
|
},
|
|
1233
1231
|
createInstance: instance => {
|
|
@@ -1318,53 +1316,42 @@ function shouldAutoRemoveFilter(filterFn, value, column) {
|
|
|
1318
1316
|
return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;
|
|
1319
1317
|
}
|
|
1320
1318
|
|
|
1321
|
-
const
|
|
1322
|
-
sum,
|
|
1323
|
-
min,
|
|
1324
|
-
max,
|
|
1325
|
-
extent,
|
|
1326
|
-
mean,
|
|
1327
|
-
median,
|
|
1328
|
-
unique,
|
|
1329
|
-
uniqueCount,
|
|
1330
|
-
count
|
|
1331
|
-
};
|
|
1332
|
-
|
|
1333
|
-
function sum(_getLeafValues, getChildValues) {
|
|
1319
|
+
const sum = (columnId, _leafRows, childRows) => {
|
|
1334
1320
|
// It's faster to just add the aggregations together instead of
|
|
1335
1321
|
// process leaf nodes individually
|
|
1336
|
-
return
|
|
1337
|
-
}
|
|
1322
|
+
return childRows.reduce((sum, next) => sum + (typeof next === 'number' ? next : 0), 0);
|
|
1323
|
+
};
|
|
1338
1324
|
|
|
1339
|
-
|
|
1325
|
+
const min = (columnId, _leafRows, childRows) => {
|
|
1340
1326
|
let min;
|
|
1327
|
+
childRows.forEach(row => {
|
|
1328
|
+
const value = row.getValue(columnId);
|
|
1341
1329
|
|
|
1342
|
-
for (const value of getChildValues()) {
|
|
1343
1330
|
if (value != null && (min > value || min === undefined && value >= value)) {
|
|
1344
1331
|
min = value;
|
|
1345
1332
|
}
|
|
1346
|
-
}
|
|
1347
|
-
|
|
1333
|
+
});
|
|
1348
1334
|
return min;
|
|
1349
|
-
}
|
|
1335
|
+
};
|
|
1350
1336
|
|
|
1351
|
-
|
|
1337
|
+
const max = (columnId, _leafRows, childRows) => {
|
|
1352
1338
|
let max;
|
|
1339
|
+
childRows.forEach(row => {
|
|
1340
|
+
const value = row.getValue(columnId);
|
|
1353
1341
|
|
|
1354
|
-
for (const value of getChildValues()) {
|
|
1355
1342
|
if (value != null && (max < value || max === undefined && value >= value)) {
|
|
1356
1343
|
max = value;
|
|
1357
1344
|
}
|
|
1358
|
-
}
|
|
1359
|
-
|
|
1345
|
+
});
|
|
1360
1346
|
return max;
|
|
1361
|
-
}
|
|
1347
|
+
};
|
|
1362
1348
|
|
|
1363
|
-
|
|
1349
|
+
const extent = (columnId, _leafRows, childRows) => {
|
|
1364
1350
|
let min;
|
|
1365
1351
|
let max;
|
|
1352
|
+
childRows.forEach(row => {
|
|
1353
|
+
const value = row.getValue(columnId);
|
|
1366
1354
|
|
|
1367
|
-
for (const value of getChildValues()) {
|
|
1368
1355
|
if (value != null) {
|
|
1369
1356
|
if (min === undefined) {
|
|
1370
1357
|
if (value >= value) min = max = value;
|
|
@@ -1373,54 +1360,65 @@ function extent(_getLeafValues, getChildValues) {
|
|
|
1373
1360
|
if (max < value) max = value;
|
|
1374
1361
|
}
|
|
1375
1362
|
}
|
|
1376
|
-
}
|
|
1377
|
-
|
|
1363
|
+
});
|
|
1378
1364
|
return [min, max];
|
|
1379
|
-
}
|
|
1365
|
+
};
|
|
1380
1366
|
|
|
1381
|
-
|
|
1367
|
+
const mean = (columnId, leafRows) => {
|
|
1382
1368
|
let count = 0;
|
|
1383
1369
|
let sum = 0;
|
|
1370
|
+
leafRows.forEach(row => {
|
|
1371
|
+
let value = row.getValue(columnId);
|
|
1384
1372
|
|
|
1385
|
-
for (let value of getLeafValues()) {
|
|
1386
1373
|
if (value != null && (value = +value) >= value) {
|
|
1387
1374
|
++count, sum += value;
|
|
1388
1375
|
}
|
|
1389
|
-
}
|
|
1390
|
-
|
|
1376
|
+
});
|
|
1391
1377
|
if (count) return sum / count;
|
|
1392
1378
|
return;
|
|
1393
|
-
}
|
|
1394
|
-
|
|
1395
|
-
function median(getLeafValues) {
|
|
1396
|
-
const leafValues = getLeafValues();
|
|
1379
|
+
};
|
|
1397
1380
|
|
|
1398
|
-
|
|
1381
|
+
const median = (columnId, leafRows) => {
|
|
1382
|
+
if (!leafRows.length) {
|
|
1399
1383
|
return;
|
|
1400
1384
|
}
|
|
1401
1385
|
|
|
1402
1386
|
let min = 0;
|
|
1403
1387
|
let max = 0;
|
|
1404
|
-
|
|
1388
|
+
leafRows.forEach(row => {
|
|
1389
|
+
let value = row.getValue(columnId);
|
|
1390
|
+
|
|
1405
1391
|
if (typeof value === 'number') {
|
|
1406
1392
|
min = Math.min(min, value);
|
|
1407
1393
|
max = Math.max(max, value);
|
|
1408
1394
|
}
|
|
1409
1395
|
});
|
|
1410
1396
|
return (min + max) / 2;
|
|
1411
|
-
}
|
|
1397
|
+
};
|
|
1412
1398
|
|
|
1413
|
-
|
|
1414
|
-
return Array.from(new Set(
|
|
1415
|
-
}
|
|
1399
|
+
const unique = (columnId, leafRows) => {
|
|
1400
|
+
return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());
|
|
1401
|
+
};
|
|
1416
1402
|
|
|
1417
|
-
|
|
1418
|
-
return new Set(
|
|
1419
|
-
}
|
|
1403
|
+
const uniqueCount = (columnId, leafRows) => {
|
|
1404
|
+
return new Set(leafRows.map(d => d.getValue(columnId))).size;
|
|
1405
|
+
};
|
|
1420
1406
|
|
|
1421
|
-
|
|
1422
|
-
return
|
|
1423
|
-
}
|
|
1407
|
+
const count = (_columnId, leafRows) => {
|
|
1408
|
+
return leafRows.length;
|
|
1409
|
+
};
|
|
1410
|
+
|
|
1411
|
+
const aggregationFns = {
|
|
1412
|
+
sum,
|
|
1413
|
+
min,
|
|
1414
|
+
max,
|
|
1415
|
+
extent,
|
|
1416
|
+
mean,
|
|
1417
|
+
median,
|
|
1418
|
+
unique,
|
|
1419
|
+
uniqueCount,
|
|
1420
|
+
count
|
|
1421
|
+
};
|
|
1424
1422
|
|
|
1425
1423
|
//
|
|
1426
1424
|
const Grouping = {
|
|
@@ -1475,7 +1473,7 @@ const Grouping = {
|
|
|
1475
1473
|
column.toggleGrouping();
|
|
1476
1474
|
};
|
|
1477
1475
|
},
|
|
1478
|
-
|
|
1476
|
+
getAutoAggregationFn: () => {
|
|
1479
1477
|
const firstRow = instance.getCoreRowModel().flatRows[0];
|
|
1480
1478
|
const value = firstRow == null ? void 0 : firstRow.getValue(column.id);
|
|
1481
1479
|
|
|
@@ -1489,7 +1487,7 @@ const Grouping = {
|
|
|
1489
1487
|
|
|
1490
1488
|
return aggregationFns.count;
|
|
1491
1489
|
},
|
|
1492
|
-
|
|
1490
|
+
getAggregationFn: () => {
|
|
1493
1491
|
var _ref4;
|
|
1494
1492
|
|
|
1495
1493
|
const userAggregationFns = instance.options.aggregationFns;
|
|
@@ -1498,7 +1496,7 @@ const Grouping = {
|
|
|
1498
1496
|
throw new Error();
|
|
1499
1497
|
}
|
|
1500
1498
|
|
|
1501
|
-
return isFunction(column.aggregationFn) ? column.aggregationFn : column.aggregationFn === 'auto' ? column.
|
|
1499
|
+
return isFunction(column.aggregationFn) ? column.aggregationFn : column.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_ref4 = userAggregationFns == null ? void 0 : userAggregationFns[column.aggregationFn]) != null ? _ref4 : aggregationFns[column.aggregationFn];
|
|
1502
1500
|
}
|
|
1503
1501
|
};
|
|
1504
1502
|
},
|
|
@@ -1524,10 +1522,10 @@ const Grouping = {
|
|
|
1524
1522
|
}
|
|
1525
1523
|
};
|
|
1526
1524
|
},
|
|
1527
|
-
createRow:
|
|
1525
|
+
createRow: row => {
|
|
1528
1526
|
return {
|
|
1529
1527
|
getIsGrouped: () => !!row.groupingColumnId,
|
|
1530
|
-
|
|
1528
|
+
_groupingValuesCache: {}
|
|
1531
1529
|
};
|
|
1532
1530
|
},
|
|
1533
1531
|
createCell: (cell, column, row, instance) => {
|
|
@@ -2346,21 +2344,54 @@ function isRowSelected(row, selection, instance) {
|
|
|
2346
2344
|
}
|
|
2347
2345
|
|
|
2348
2346
|
const reSplitAlphaNumeric = /([0-9]+)/gm;
|
|
2349
|
-
const sortingFns = {
|
|
2350
|
-
alphanumeric,
|
|
2351
|
-
alphanumericCaseSensitive,
|
|
2352
|
-
text,
|
|
2353
|
-
textCaseSensitive,
|
|
2354
|
-
datetime,
|
|
2355
|
-
basic
|
|
2356
|
-
};
|
|
2357
2347
|
|
|
2358
|
-
|
|
2348
|
+
const alphanumeric = (rowA, rowB, columnId) => {
|
|
2359
2349
|
return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());
|
|
2360
|
-
}
|
|
2350
|
+
};
|
|
2361
2351
|
|
|
2362
|
-
|
|
2352
|
+
const alphanumericCaseSensitive = (rowA, rowB, columnId) => {
|
|
2363
2353
|
return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));
|
|
2354
|
+
}; // The text filter is more basic (less numeric support)
|
|
2355
|
+
// but is much faster
|
|
2356
|
+
|
|
2357
|
+
|
|
2358
|
+
const text = (rowA, rowB, columnId) => {
|
|
2359
|
+
return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());
|
|
2360
|
+
}; // The text filter is more basic (less numeric support)
|
|
2361
|
+
// but is much faster
|
|
2362
|
+
|
|
2363
|
+
|
|
2364
|
+
const textCaseSensitive = (rowA, rowB, columnId) => {
|
|
2365
|
+
return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));
|
|
2366
|
+
};
|
|
2367
|
+
|
|
2368
|
+
const datetime = (rowA, rowB, columnId) => {
|
|
2369
|
+
return compareBasic(rowA.getValue(columnId).getTime(), rowB.getValue(columnId).getTime());
|
|
2370
|
+
};
|
|
2371
|
+
|
|
2372
|
+
const basic = (rowA, rowB, columnId) => {
|
|
2373
|
+
return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));
|
|
2374
|
+
}; // Utils
|
|
2375
|
+
|
|
2376
|
+
|
|
2377
|
+
function compareBasic(a, b) {
|
|
2378
|
+
return a === b ? 0 : a > b ? 1 : -1;
|
|
2379
|
+
}
|
|
2380
|
+
|
|
2381
|
+
function toString(a) {
|
|
2382
|
+
if (typeof a === 'number') {
|
|
2383
|
+
if (isNaN(a) || a === Infinity || a === -Infinity) {
|
|
2384
|
+
return '';
|
|
2385
|
+
}
|
|
2386
|
+
|
|
2387
|
+
return String(a);
|
|
2388
|
+
}
|
|
2389
|
+
|
|
2390
|
+
if (typeof a === 'string') {
|
|
2391
|
+
return a;
|
|
2392
|
+
}
|
|
2393
|
+
|
|
2394
|
+
return '';
|
|
2364
2395
|
} // Mixed sorting is slow, but very inclusive of many edge cases.
|
|
2365
2396
|
// It handles numbers, mixed alphanumeric combinations, and even
|
|
2366
2397
|
// null, undefined, and Infinity
|
|
@@ -2407,48 +2438,17 @@ function compareAlphanumeric(aStr, bStr) {
|
|
|
2407
2438
|
}
|
|
2408
2439
|
|
|
2409
2440
|
return a.length - b.length;
|
|
2410
|
-
} //
|
|
2411
|
-
// but is much faster
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
function text(rowA, rowB, columnId) {
|
|
2415
|
-
return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());
|
|
2416
|
-
} // The text filter is more basic (less numeric support)
|
|
2417
|
-
// but is much faster
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
function textCaseSensitive(rowA, rowB, columnId) {
|
|
2421
|
-
return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));
|
|
2422
|
-
}
|
|
2423
|
-
|
|
2424
|
-
function datetime(rowA, rowB, columnId) {
|
|
2425
|
-
return compareBasic(rowA.getValue(columnId).getTime(), rowB.getValue(columnId).getTime());
|
|
2426
|
-
}
|
|
2427
|
-
|
|
2428
|
-
function basic(rowA, rowB, columnId) {
|
|
2429
|
-
return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));
|
|
2430
|
-
} // Utils
|
|
2441
|
+
} // Exports
|
|
2431
2442
|
|
|
2432
2443
|
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
}
|
|
2442
|
-
|
|
2443
|
-
return String(a);
|
|
2444
|
-
}
|
|
2445
|
-
|
|
2446
|
-
if (typeof a === 'string') {
|
|
2447
|
-
return a;
|
|
2448
|
-
}
|
|
2449
|
-
|
|
2450
|
-
return '';
|
|
2451
|
-
}
|
|
2444
|
+
const sortingFns = {
|
|
2445
|
+
alphanumeric,
|
|
2446
|
+
alphanumericCaseSensitive,
|
|
2447
|
+
text,
|
|
2448
|
+
textCaseSensitive,
|
|
2449
|
+
datetime,
|
|
2450
|
+
basic
|
|
2451
|
+
};
|
|
2452
2452
|
|
|
2453
2453
|
//
|
|
2454
2454
|
const Sorting = {
|
|
@@ -2672,11 +2672,6 @@ const Visibility = {
|
|
|
2672
2672
|
onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance)
|
|
2673
2673
|
};
|
|
2674
2674
|
},
|
|
2675
|
-
getDefaultColumnDef: () => {
|
|
2676
|
-
return {
|
|
2677
|
-
defaultIsVisible: true
|
|
2678
|
-
};
|
|
2679
|
-
},
|
|
2680
2675
|
createColumn: (column, instance) => {
|
|
2681
2676
|
return {
|
|
2682
2677
|
toggleVisibility: value => {
|
|
@@ -3662,25 +3657,17 @@ function getGroupedRowModel() {
|
|
|
3662
3657
|
return row._valuesCache[columnId];
|
|
3663
3658
|
}
|
|
3664
3659
|
|
|
3665
|
-
if (row.
|
|
3666
|
-
return row.
|
|
3660
|
+
if (row._groupingValuesCache.hasOwnProperty(columnId)) {
|
|
3661
|
+
return row._groupingValuesCache[columnId];
|
|
3667
3662
|
} // Aggregate the values
|
|
3668
3663
|
|
|
3669
3664
|
|
|
3670
3665
|
const column = instance.getColumn(columnId);
|
|
3671
|
-
const aggregateFn = column.
|
|
3666
|
+
const aggregateFn = column.getAggregationFn();
|
|
3672
3667
|
|
|
3673
3668
|
if (aggregateFn) {
|
|
3674
|
-
row.
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
if (!depth && column.columnDef.aggregateValue) {
|
|
3678
|
-
columnValue = column.columnDef.aggregateValue(columnValue);
|
|
3679
|
-
}
|
|
3680
|
-
|
|
3681
|
-
return columnValue;
|
|
3682
|
-
}), () => groupedRows.map(row => row.getValue(columnId)));
|
|
3683
|
-
return row.groupingValuesCache[columnId];
|
|
3669
|
+
row._groupingValuesCache[columnId] = aggregateFn(columnId, leafRows, groupedRows);
|
|
3670
|
+
return row._groupingValuesCache[columnId];
|
|
3684
3671
|
} else if (column.aggregationFn) {
|
|
3685
3672
|
console.info({
|
|
3686
3673
|
column
|
|
@@ -3760,7 +3747,7 @@ function getExpandedRowModel() {
|
|
|
3760
3747
|
return rowModel;
|
|
3761
3748
|
}
|
|
3762
3749
|
|
|
3763
|
-
return expandRows(rowModel
|
|
3750
|
+
return expandRows(rowModel);
|
|
3764
3751
|
}, {
|
|
3765
3752
|
key: process.env.NODE_ENV === 'development' && 'getExpandedRowModel',
|
|
3766
3753
|
debug: () => {
|
|
@@ -3778,7 +3765,7 @@ function expandRows(rowModel, instance) {
|
|
|
3778
3765
|
|
|
3779
3766
|
expandedRows.push(row);
|
|
3780
3767
|
|
|
3781
|
-
if (
|
|
3768
|
+
if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {
|
|
3782
3769
|
row.subRows.forEach(handleRow);
|
|
3783
3770
|
}
|
|
3784
3771
|
};
|
|
@@ -3815,7 +3802,7 @@ function getPaginationRowModel(opts) {
|
|
|
3815
3802
|
rows,
|
|
3816
3803
|
flatRows,
|
|
3817
3804
|
rowsById
|
|
3818
|
-
}
|
|
3805
|
+
});
|
|
3819
3806
|
}
|
|
3820
3807
|
|
|
3821
3808
|
return {
|
|
@@ -3867,7 +3854,6 @@ exports.getSortedRowModel = getSortedRowModel;
|
|
|
3867
3854
|
exports.isFunction = isFunction;
|
|
3868
3855
|
exports.isRowSelected = isRowSelected;
|
|
3869
3856
|
exports.makeStateUpdater = makeStateUpdater;
|
|
3870
|
-
exports.mean = mean;
|
|
3871
3857
|
exports.memo = memo;
|
|
3872
3858
|
exports.noop = noop;
|
|
3873
3859
|
exports.orderColumns = orderColumns;
|