@tanstack/table-core 8.5.16 → 8.5.18
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/column.js +3 -0
- package/build/cjs/core/column.js.map +1 -1
- package/build/cjs/core/row.js +16 -0
- package/build/cjs/core/row.js.map +1 -1
- package/build/cjs/utils/getFacetedMinMaxValues.js +9 -6
- package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
- package/build/cjs/utils/getFacetedUniqueValues.js +8 -6
- package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -1
- package/build/esm/index.js +36 -12
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +316 -316
- package/build/types/index.d.ts +3 -0
- package/build/umd/index.development.js +36 -12
- 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/core/column.ts +5 -0
- package/src/core/row.ts +26 -0
- package/src/types.ts +1 -0
- package/src/utils/getFacetedMinMaxValues.ts +12 -6
- package/src/utils/getFacetedUniqueValues.ts +13 -8
package/build/cjs/core/column.js
CHANGED
|
@@ -32,6 +32,9 @@ function createColumn(table, columnDef, depth, parent) {
|
|
|
32
32
|
let result = originalRow;
|
|
33
33
|
for (const key of accessorKey.split('.')) {
|
|
34
34
|
result = result[key];
|
|
35
|
+
if (process.env.NODE_ENV !== 'production' && result === undefined) {
|
|
36
|
+
throw new Error(`"${key}" in deeply nested key "${accessorKey}" returned undefined.`);
|
|
37
|
+
}
|
|
35
38
|
}
|
|
36
39
|
return result;
|
|
37
40
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.js","sources":["../../../src/core/column.ts"],"sourcesContent":["import { TaggedTemplateExpression } from '@babel/types'\nimport {\n Column,\n Table,\n AccessorFn,\n ColumnDef,\n ColumnDefTemplate,\n RowData,\n ColumnMeta,\n ColumnDefResolved,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type CoreColumn<TData extends RowData, TValue> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TData, TValue>\n columnDef: ColumnDef<TData, TValue>\n columns: Column<TData, TValue>[]\n parent?: Column<TData, TValue>\n getFlatColumns: () => Column<TData, TValue>[]\n getLeafColumns: () => Column<TData, TValue>[]\n}\n\nexport function createColumn<TData extends RowData, TValue>(\n table: Table<TData>,\n columnDef: ColumnDef<TData, TValue>,\n depth: number,\n parent?: Column<TData, TValue>\n) {\n const defaultColumn = table._getDefaultColumnDef()\n\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef,\n } as ColumnDefResolved<TData>\n\n const accessorKey = resolvedColumnDef.accessorKey\n\n let id =\n resolvedColumnDef.id ??\n (accessorKey ? accessorKey.replace('.', '_') : undefined) ??\n (typeof resolvedColumnDef.header === 'string'\n ? resolvedColumnDef.header\n : undefined)\n\n let accessorFn: AccessorFn<TData> | undefined\n\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = (originalRow: TData) => {\n let result = originalRow as Record<string, any>\n\n for (const key of accessorKey.split('.')) {\n result = result[key]\n }\n\n return result\n }\n } else {\n accessorFn = (originalRow: TData) =>\n (originalRow as any)[resolvedColumnDef.accessorKey]\n }\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n resolvedColumnDef.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<TData, any> = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef: resolvedColumnDef as ColumnDef<TData, any>,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TData, TValue>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [table._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<TData, TValue>]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n\n column = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, table))\n }, column)\n\n // Yes, we have to convert table to uknown, because we know more than the compiler here.\n return column as Column<TData, TValue>\n}\n"],"names":["createColumn","table","columnDef","depth","parent","defaultColumn","_getDefaultColumnDef","resolvedColumnDef","accessorKey","id","replace","undefined","header","accessorFn","includes","originalRow","result","key","split","process","env","NODE_ENV","Error","column","String","columns","getFlatColumns","memo","flatMap","d","debug","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","_features","reduce","obj","feature","Object","assign"],"mappings":";;;;;;;;;;;;;;;;AAwBO,SAASA,YAAY,CAC1BC,KAAmB,EACnBC,SAAmC,EACnCC,KAAa,EACbC,MAA8B,EAC9B;AACA,EAAA,MAAMC,aAAa,GAAGJ,KAAK,CAACK,oBAAoB,EAAE,CAAA;AAElD,EAAA,MAAMC,iBAAiB,GAAG;AACxB,IAAA,GAAGF,aAAa;IAChB,GAAGH,SAAAA;GACwB,CAAA;AAE7B,EAAA,MAAMM,WAAW,GAAGD,iBAAiB,CAACC,WAAW,CAAA;AAEjD,EAAA,IAAIC,EAAE,GACJF,iBAAiB,CAACE,EAAE,KACnBD,WAAW,GAAGA,WAAW,CAACE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAGC,SAAS,CAAC,KACxD,OAAOJ,iBAAiB,CAACK,MAAM,KAAK,QAAQ,GACzCL,iBAAiB,CAACK,MAAM,GACxBD,SAAS,CAAC,CAAA;AAEhB,EAAA,IAAIE,UAAyC,CAAA;EAE7C,IAAIN,iBAAiB,CAACM,UAAU,EAAE;IAChCA,UAAU,GAAGN,iBAAiB,CAACM,UAAU,CAAA;GAC1C,MAAM,IAAIL,WAAW,EAAE;AACtB;AACA,IAAA,IAAIA,WAAW,CAACM,QAAQ,CAAC,GAAG,CAAC,EAAE;MAC7BD,UAAU,GAAIE,WAAkB,IAAK;QACnC,IAAIC,MAAM,GAAGD,WAAkC,CAAA;QAE/C,KAAK,MAAME,GAAG,IAAIT,WAAW,CAACU,KAAK,CAAC,GAAG,CAAC,EAAE;AACxCF,UAAAA,MAAM,GAAGA,MAAM,CAACC,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"column.js","sources":["../../../src/core/column.ts"],"sourcesContent":["import { TaggedTemplateExpression } from '@babel/types'\nimport {\n Column,\n Table,\n AccessorFn,\n ColumnDef,\n ColumnDefTemplate,\n RowData,\n ColumnMeta,\n ColumnDefResolved,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type CoreColumn<TData extends RowData, TValue> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TData, TValue>\n columnDef: ColumnDef<TData, TValue>\n columns: Column<TData, TValue>[]\n parent?: Column<TData, TValue>\n getFlatColumns: () => Column<TData, TValue>[]\n getLeafColumns: () => Column<TData, TValue>[]\n}\n\nexport function createColumn<TData extends RowData, TValue>(\n table: Table<TData>,\n columnDef: ColumnDef<TData, TValue>,\n depth: number,\n parent?: Column<TData, TValue>\n) {\n const defaultColumn = table._getDefaultColumnDef()\n\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef,\n } as ColumnDefResolved<TData>\n\n const accessorKey = resolvedColumnDef.accessorKey\n\n let id =\n resolvedColumnDef.id ??\n (accessorKey ? accessorKey.replace('.', '_') : undefined) ??\n (typeof resolvedColumnDef.header === 'string'\n ? resolvedColumnDef.header\n : undefined)\n\n let accessorFn: AccessorFn<TData> | undefined\n\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = (originalRow: TData) => {\n let result = originalRow as Record<string, any>\n\n for (const key of accessorKey.split('.')) {\n result = result[key]\n if (process.env.NODE_ENV !== 'production' && result === undefined) {\n throw new Error(\n `\"${key}\" in deeply nested key \"${accessorKey}\" returned undefined.`\n )\n }\n }\n\n return result\n }\n } else {\n accessorFn = (originalRow: TData) =>\n (originalRow as any)[resolvedColumnDef.accessorKey]\n }\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n resolvedColumnDef.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<TData, any> = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef: resolvedColumnDef as ColumnDef<TData, any>,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TData, TValue>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [table._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<TData, TValue>]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n\n column = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, table))\n }, column)\n\n // Yes, we have to convert table to uknown, because we know more than the compiler here.\n return column as Column<TData, TValue>\n}\n"],"names":["createColumn","table","columnDef","depth","parent","defaultColumn","_getDefaultColumnDef","resolvedColumnDef","accessorKey","id","replace","undefined","header","accessorFn","includes","originalRow","result","key","split","process","env","NODE_ENV","Error","column","String","columns","getFlatColumns","memo","flatMap","d","debug","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","_features","reduce","obj","feature","Object","assign"],"mappings":"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"}
|
package/build/cjs/core/row.js
CHANGED
|
@@ -22,6 +22,7 @@ const createRow = (table, id, original, rowIndex, depth, subRows) => {
|
|
|
22
22
|
original,
|
|
23
23
|
depth,
|
|
24
24
|
_valuesCache: {},
|
|
25
|
+
_uniqueValuesCache: {},
|
|
25
26
|
getValue: columnId => {
|
|
26
27
|
if (row._valuesCache.hasOwnProperty(columnId)) {
|
|
27
28
|
return row._valuesCache[columnId];
|
|
@@ -33,6 +34,21 @@ const createRow = (table, id, original, rowIndex, depth, subRows) => {
|
|
|
33
34
|
row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);
|
|
34
35
|
return row._valuesCache[columnId];
|
|
35
36
|
},
|
|
37
|
+
getUniqueValues: columnId => {
|
|
38
|
+
if (row._uniqueValuesCache.hasOwnProperty(columnId)) {
|
|
39
|
+
return row._uniqueValuesCache[columnId];
|
|
40
|
+
}
|
|
41
|
+
const column = table.getColumn(columnId);
|
|
42
|
+
if (!column.accessorFn) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
if (!column.columnDef.getUniqueValues) {
|
|
46
|
+
row._uniqueValuesCache[columnId] = [row.getValue(columnId)];
|
|
47
|
+
return row._uniqueValuesCache[columnId];
|
|
48
|
+
}
|
|
49
|
+
row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, rowIndex);
|
|
50
|
+
return row._uniqueValuesCache[columnId];
|
|
51
|
+
},
|
|
36
52
|
renderValue: columnId => row.getValue(columnId) ?? table.options.renderFallbackValue,
|
|
37
53
|
subRows: subRows ?? [],
|
|
38
54
|
getLeafRows: () => utils.flattenBy(row.subRows, d => d.subRows),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row.js","sources":["../../../src/core/row.ts"],"sourcesContent":["import { RowData, Cell, Row, Table } from '../types'\nimport { flattenBy, memo } from '../utils'\nimport { createCell } from './cell'\n\nexport type CoreRow<TData extends RowData> = {\n id: string\n index: number\n original: TData\n depth: number\n _valuesCache: Record<string, unknown>\n getValue: <TValue>(columnId: string) => TValue\n renderValue: <TValue>(columnId: string) => TValue\n subRows: Row<TData>[]\n getLeafRows: () => Row<TData>[]\n originalSubRows?: TData[]\n getAllCells: () => Cell<TData, unknown>[]\n _getAllCellsByColumnId: () => Record<string, Cell<TData, unknown>>\n}\n\nexport const createRow = <TData extends RowData>(\n table: Table<TData>,\n id: string,\n original: TData,\n rowIndex: number,\n depth: number,\n subRows?: Row<TData>[]\n): Row<TData> => {\n let row: CoreRow<TData> = {\n id,\n index: rowIndex,\n original,\n depth,\n _valuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n const column = table.getColumn(columnId)\n\n if (!column.accessorFn) {\n return undefined\n }\n\n row._valuesCache[columnId] = column.accessorFn(\n row.original as TData,\n rowIndex\n )\n\n return row._valuesCache[columnId] as any\n },\n renderValue: columnId =>\n row.getValue(columnId) ?? table.options.renderFallbackValue,\n subRows: subRows ?? [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getAllCells: memo(\n () => [table.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row as Row<TData>, column, column.id)\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n\n _getAllCellsByColumnId: memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell\n return acc\n }, {} as Record<string, Cell<TData, unknown>>)\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i]\n Object.assign(row, feature?.createRow?.(row, table))\n }\n\n return row as Row<TData>\n}\n"],"names":["createRow","table","id","original","rowIndex","depth","subRows","row","index","_valuesCache","getValue","columnId","hasOwnProperty","column","getColumn","accessorFn","undefined","renderValue","options","renderFallbackValue","getLeafRows","flattenBy","d","getAllCells","memo","getAllLeafColumns","leafColumns","map","createCell","key","process","env","NODE_ENV","debug","debugAll","debugRows","_getAllCellsByColumnId","allCells","reduce","acc","cell","i","_features","length","feature","Object","assign"],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"row.js","sources":["../../../src/core/row.ts"],"sourcesContent":["import { RowData, Cell, Row, Table } from '../types'\nimport { flattenBy, memo } from '../utils'\nimport { createCell } from './cell'\n\nexport type CoreRow<TData extends RowData> = {\n id: string\n index: number\n original: TData\n depth: number\n _valuesCache: Record<string, unknown>\n _uniqueValuesCache: Record<string, unknown>\n getValue: <TValue>(columnId: string) => TValue\n getUniqueValues: <TValue>(columnId: string) => TValue[]\n renderValue: <TValue>(columnId: string) => TValue\n subRows: Row<TData>[]\n getLeafRows: () => Row<TData>[]\n originalSubRows?: TData[]\n getAllCells: () => Cell<TData, unknown>[]\n _getAllCellsByColumnId: () => Record<string, Cell<TData, unknown>>\n}\n\nexport const createRow = <TData extends RowData>(\n table: Table<TData>,\n id: string,\n original: TData,\n rowIndex: number,\n depth: number,\n subRows?: Row<TData>[]\n): Row<TData> => {\n let row: CoreRow<TData> = {\n id,\n index: rowIndex,\n original,\n depth,\n _valuesCache: {},\n _uniqueValuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n const column = table.getColumn(columnId)\n\n if (!column.accessorFn) {\n return undefined\n }\n\n row._valuesCache[columnId] = column.accessorFn(\n row.original as TData,\n rowIndex\n )\n\n return row._valuesCache[columnId] as any\n },\n getUniqueValues: columnId => {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId]\n }\n\n const column = table.getColumn(columnId)\n\n if (!column.accessorFn) {\n return undefined\n }\n\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)]\n return row._uniqueValuesCache[columnId]\n }\n\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(\n row.original as TData,\n rowIndex\n )\n\n return row._uniqueValuesCache[columnId] as any\n },\n renderValue: columnId =>\n row.getValue(columnId) ?? table.options.renderFallbackValue,\n subRows: subRows ?? [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getAllCells: memo(\n () => [table.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row as Row<TData>, column, column.id)\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n\n _getAllCellsByColumnId: memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell\n return acc\n }, {} as Record<string, Cell<TData, unknown>>)\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i]\n Object.assign(row, feature?.createRow?.(row, table))\n }\n\n return row as Row<TData>\n}\n"],"names":["createRow","table","id","original","rowIndex","depth","subRows","row","index","_valuesCache","_uniqueValuesCache","getValue","columnId","hasOwnProperty","column","getColumn","accessorFn","undefined","getUniqueValues","columnDef","renderValue","options","renderFallbackValue","getLeafRows","flattenBy","d","getAllCells","memo","getAllLeafColumns","leafColumns","map","createCell","key","process","env","NODE_ENV","debug","debugAll","debugRows","_getAllCellsByColumnId","allCells","reduce","acc","cell","i","_features","length","feature","Object","assign"],"mappings":"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"}
|
|
@@ -17,17 +17,20 @@ var utils = require('../utils.js');
|
|
|
17
17
|
function getFacetedMinMaxValues() {
|
|
18
18
|
return (table, columnId) => utils.memo(() => [table.getColumn(columnId).getFacetedRowModel()], facetedRowModel => {
|
|
19
19
|
var _facetedRowModel$flat;
|
|
20
|
-
const firstValue = (_facetedRowModel$flat = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat.
|
|
20
|
+
const firstValue = (_facetedRowModel$flat = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat.getUniqueValues(columnId);
|
|
21
21
|
if (typeof firstValue === 'undefined') {
|
|
22
22
|
return undefined;
|
|
23
23
|
}
|
|
24
24
|
let facetedMinMaxValues = [firstValue, firstValue];
|
|
25
25
|
for (let i = 0; i < facetedRowModel.flatRows.length; i++) {
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);
|
|
27
|
+
for (let j = 0; j < values.length; j++) {
|
|
28
|
+
const value = values[j];
|
|
29
|
+
if (value < facetedMinMaxValues[0]) {
|
|
30
|
+
facetedMinMaxValues[0] = value;
|
|
31
|
+
} else if (value > facetedMinMaxValues[1]) {
|
|
32
|
+
facetedMinMaxValues[1] = value;
|
|
33
|
+
}
|
|
31
34
|
}
|
|
32
35
|
}
|
|
33
36
|
return facetedMinMaxValues;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFacetedMinMaxValues.js","sources":["../../../src/utils/getFacetedMinMaxValues.ts"],"sourcesContent":["import { Table, RowData } from '../types'\nimport { memo } from '../utils'\n\nexport function getFacetedMinMaxValues<TData extends RowData>(): (\n table: Table<TData>,\n columnId: string\n) => () => undefined | [number, number] {\n return (table, columnId) =>\n memo(\n () => [table.getColumn(columnId).getFacetedRowModel()],\n facetedRowModel => {\n const firstValue
|
|
1
|
+
{"version":3,"file":"getFacetedMinMaxValues.js","sources":["../../../src/utils/getFacetedMinMaxValues.ts"],"sourcesContent":["import { Table, RowData } from '../types'\nimport { memo } from '../utils'\n\nexport function getFacetedMinMaxValues<TData extends RowData>(): (\n table: Table<TData>,\n columnId: string\n) => () => undefined | [number, number] {\n return (table, columnId) =>\n memo(\n () => [table.getColumn(columnId).getFacetedRowModel()],\n facetedRowModel => {\n const firstValue =\n facetedRowModel.flatRows[0]?.getUniqueValues(columnId)\n\n if (typeof firstValue === 'undefined') {\n return undefined\n }\n\n let facetedMinMaxValues: [any, any] = [firstValue, firstValue]\n\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const values =\n facetedRowModel.flatRows[i]!.getUniqueValues<number>(columnId)\n\n for (let j = 0; j < values.length; j++) {\n const value = values[j]!\n\n if (value < facetedMinMaxValues[0]) {\n facetedMinMaxValues[0] = value\n } else if (value > facetedMinMaxValues[1]) {\n facetedMinMaxValues[1] = value\n }\n }\n }\n\n return facetedMinMaxValues\n },\n {\n key:\n process.env.NODE_ENV === 'development' &&\n 'getFacetedMinMaxValues_' + columnId,\n debug: () => table.options.debugAll ?? table.options.debugTable,\n onChange: () => {},\n }\n )\n}\n"],"names":["getFacetedMinMaxValues","table","columnId","memo","getColumn","getFacetedRowModel","facetedRowModel","firstValue","flatRows","getUniqueValues","undefined","facetedMinMaxValues","i","length","values","j","value","key","process","env","NODE_ENV","debug","options","debugAll","debugTable","onChange"],"mappings":";;;;;;;;;;;;;;;;AAGO,SAASA,sBAAsB,GAGE;EACtC,OAAO,CAACC,KAAK,EAAEC,QAAQ,KACrBC,UAAI,CACF,MAAM,CAACF,KAAK,CAACG,SAAS,CAACF,QAAQ,CAAC,CAACG,kBAAkB,EAAE,CAAC,EACtDC,eAAe,IAAI;AAAA,IAAA,IAAA,qBAAA,CAAA;AACjB,IAAA,MAAMC,UAAU,GAAA,CAAA,qBAAA,GACdD,eAAe,CAACE,QAAQ,CAAC,CAAC,CAAC,KAA3B,IAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAA6BC,eAAe,CAACP,QAAQ,CAAC,CAAA;AAExD,IAAA,IAAI,OAAOK,UAAU,KAAK,WAAW,EAAE;AACrC,MAAA,OAAOG,SAAS,CAAA;AAClB,KAAA;AAEA,IAAA,IAAIC,mBAA+B,GAAG,CAACJ,UAAU,EAAEA,UAAU,CAAC,CAAA;AAE9D,IAAA,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,eAAe,CAACE,QAAQ,CAACK,MAAM,EAAED,CAAC,EAAE,EAAE;AACxD,MAAA,MAAME,MAAM,GACVR,eAAe,CAACE,QAAQ,CAACI,CAAC,CAAC,CAAEH,eAAe,CAASP,QAAQ,CAAC,CAAA;AAEhE,MAAA,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,MAAM,CAACD,MAAM,EAAEE,CAAC,EAAE,EAAE;AACtC,QAAA,MAAMC,KAAK,GAAGF,MAAM,CAACC,CAAC,CAAE,CAAA;AAExB,QAAA,IAAIC,KAAK,GAAGL,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAClCA,UAAAA,mBAAmB,CAAC,CAAC,CAAC,GAAGK,KAAK,CAAA;SAC/B,MAAM,IAAIA,KAAK,GAAGL,mBAAmB,CAAC,CAAC,CAAC,EAAE;AACzCA,UAAAA,mBAAmB,CAAC,CAAC,CAAC,GAAGK,KAAK,CAAA;AAChC,SAAA;AACF,OAAA;AACF,KAAA;AAEA,IAAA,OAAOL,mBAAmB,CAAA;AAC5B,GAAC,EACD;IACEM,GAAG,EACDC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IACtC,yBAAyB,GAAGlB,QAAQ;AACtCmB,IAAAA,KAAK,EAAE,MAAMpB,KAAK,CAACqB,OAAO,CAACC,QAAQ,IAAItB,KAAK,CAACqB,OAAO,CAACE,UAAU;IAC/DC,QAAQ,EAAE,MAAM,EAAC;AACnB,GAAC,CACF,CAAA;AACL;;;;"}
|
|
@@ -18,12 +18,14 @@ function getFacetedUniqueValues() {
|
|
|
18
18
|
return (table, columnId) => utils.memo(() => [table.getColumn(columnId).getFacetedRowModel()], facetedRowModel => {
|
|
19
19
|
let facetedUniqueValues = new Map();
|
|
20
20
|
for (let i = 0; i < facetedRowModel.flatRows.length; i++) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);
|
|
22
|
+
for (let j = 0; j < values.length; j++) {
|
|
23
|
+
const value = values[j];
|
|
24
|
+
if (facetedUniqueValues.has(value)) {
|
|
25
|
+
facetedUniqueValues.set(value, (facetedUniqueValues.get(value) ?? 0) + 1);
|
|
26
|
+
} else {
|
|
27
|
+
facetedUniqueValues.set(value, 1);
|
|
28
|
+
}
|
|
27
29
|
}
|
|
28
30
|
}
|
|
29
31
|
return facetedUniqueValues;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFacetedUniqueValues.js","sources":["../../../src/utils/getFacetedUniqueValues.ts"],"sourcesContent":["import { Table, RowData } from '../types'\nimport { memo } from '../utils'\n\nexport function getFacetedUniqueValues<TData extends RowData>(): (\n table: Table<TData>,\n columnId: string\n) => () => Map<any, number> {\n return (table, columnId) =>\n memo(\n () => [table.getColumn(columnId).getFacetedRowModel()],\n facetedRowModel => {\n let facetedUniqueValues = new Map<any, number>()\n\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const
|
|
1
|
+
{"version":3,"file":"getFacetedUniqueValues.js","sources":["../../../src/utils/getFacetedUniqueValues.ts"],"sourcesContent":["import { Table, RowData } from '../types'\nimport { memo } from '../utils'\n\nexport function getFacetedUniqueValues<TData extends RowData>(): (\n table: Table<TData>,\n columnId: string\n) => () => Map<any, number> {\n return (table, columnId) =>\n memo(\n () => [table.getColumn(columnId).getFacetedRowModel()],\n facetedRowModel => {\n let facetedUniqueValues = new Map<any, number>()\n\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const values =\n facetedRowModel.flatRows[i]!.getUniqueValues<number>(columnId)\n\n for (let j = 0; j < values.length; j++) {\n const value = values[j]!\n\n if (facetedUniqueValues.has(value)) {\n facetedUniqueValues.set(\n value,\n (facetedUniqueValues.get(value) ?? 0) + 1\n )\n } else {\n facetedUniqueValues.set(value, 1)\n }\n }\n }\n\n return facetedUniqueValues\n },\n {\n key:\n process.env.NODE_ENV === 'development' &&\n 'getFacetedUniqueValues_' + columnId,\n debug: () => table.options.debugAll ?? table.options.debugTable,\n onChange: () => {},\n }\n )\n}\n"],"names":["getFacetedUniqueValues","table","columnId","memo","getColumn","getFacetedRowModel","facetedRowModel","facetedUniqueValues","Map","i","flatRows","length","values","getUniqueValues","j","value","has","set","get","key","process","env","NODE_ENV","debug","options","debugAll","debugTable","onChange"],"mappings":";;;;;;;;;;;;;;;;AAGO,SAASA,sBAAsB,GAGV;EAC1B,OAAO,CAACC,KAAK,EAAEC,QAAQ,KACrBC,UAAI,CACF,MAAM,CAACF,KAAK,CAACG,SAAS,CAACF,QAAQ,CAAC,CAACG,kBAAkB,EAAE,CAAC,EACtDC,eAAe,IAAI;AACjB,IAAA,IAAIC,mBAAmB,GAAG,IAAIC,GAAG,EAAe,CAAA;AAEhD,IAAA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,eAAe,CAACI,QAAQ,CAACC,MAAM,EAAEF,CAAC,EAAE,EAAE;AACxD,MAAA,MAAMG,MAAM,GACVN,eAAe,CAACI,QAAQ,CAACD,CAAC,CAAC,CAAEI,eAAe,CAASX,QAAQ,CAAC,CAAA;AAEhE,MAAA,KAAK,IAAIY,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACD,MAAM,EAAEG,CAAC,EAAE,EAAE;AACtC,QAAA,MAAMC,KAAK,GAAGH,MAAM,CAACE,CAAC,CAAE,CAAA;AAExB,QAAA,IAAIP,mBAAmB,CAACS,GAAG,CAACD,KAAK,CAAC,EAAE;AAClCR,UAAAA,mBAAmB,CAACU,GAAG,CACrBF,KAAK,EACL,CAACR,mBAAmB,CAACW,GAAG,CAACH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1C,CAAA;AACH,SAAC,MAAM;AACLR,UAAAA,mBAAmB,CAACU,GAAG,CAACF,KAAK,EAAE,CAAC,CAAC,CAAA;AACnC,SAAA;AACF,OAAA;AACF,KAAA;AAEA,IAAA,OAAOR,mBAAmB,CAAA;AAC5B,GAAC,EACD;IACEY,GAAG,EACDC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IACtC,yBAAyB,GAAGpB,QAAQ;AACtCqB,IAAAA,KAAK,EAAE,MAAMtB,KAAK,CAACuB,OAAO,CAACC,QAAQ,IAAIxB,KAAK,CAACuB,OAAO,CAACE,UAAU;IAC/DC,QAAQ,EAAE,MAAM,EAAC;AACnB,GAAC,CACF,CAAA;AACL;;;;"}
|
package/build/esm/index.js
CHANGED
|
@@ -103,6 +103,9 @@ function createColumn(table, columnDef, depth, parent) {
|
|
|
103
103
|
let result = originalRow;
|
|
104
104
|
for (const key of accessorKey.split('.')) {
|
|
105
105
|
result = result[key];
|
|
106
|
+
if (process.env.NODE_ENV !== 'production' && result === undefined) {
|
|
107
|
+
throw new Error(`"${key}" in deeply nested key "${accessorKey}" returned undefined.`);
|
|
108
|
+
}
|
|
106
109
|
}
|
|
107
110
|
return result;
|
|
108
111
|
};
|
|
@@ -2657,6 +2660,7 @@ const createRow = (table, id, original, rowIndex, depth, subRows) => {
|
|
|
2657
2660
|
original,
|
|
2658
2661
|
depth,
|
|
2659
2662
|
_valuesCache: {},
|
|
2663
|
+
_uniqueValuesCache: {},
|
|
2660
2664
|
getValue: columnId => {
|
|
2661
2665
|
if (row._valuesCache.hasOwnProperty(columnId)) {
|
|
2662
2666
|
return row._valuesCache[columnId];
|
|
@@ -2668,6 +2672,21 @@ const createRow = (table, id, original, rowIndex, depth, subRows) => {
|
|
|
2668
2672
|
row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);
|
|
2669
2673
|
return row._valuesCache[columnId];
|
|
2670
2674
|
},
|
|
2675
|
+
getUniqueValues: columnId => {
|
|
2676
|
+
if (row._uniqueValuesCache.hasOwnProperty(columnId)) {
|
|
2677
|
+
return row._uniqueValuesCache[columnId];
|
|
2678
|
+
}
|
|
2679
|
+
const column = table.getColumn(columnId);
|
|
2680
|
+
if (!column.accessorFn) {
|
|
2681
|
+
return undefined;
|
|
2682
|
+
}
|
|
2683
|
+
if (!column.columnDef.getUniqueValues) {
|
|
2684
|
+
row._uniqueValuesCache[columnId] = [row.getValue(columnId)];
|
|
2685
|
+
return row._uniqueValuesCache[columnId];
|
|
2686
|
+
}
|
|
2687
|
+
row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, rowIndex);
|
|
2688
|
+
return row._uniqueValuesCache[columnId];
|
|
2689
|
+
},
|
|
2671
2690
|
renderValue: columnId => row.getValue(columnId) ?? table.options.renderFallbackValue,
|
|
2672
2691
|
subRows: subRows ?? [],
|
|
2673
2692
|
getLeafRows: () => flattenBy(row.subRows, d => d.subRows),
|
|
@@ -3008,12 +3027,14 @@ function getFacetedUniqueValues() {
|
|
|
3008
3027
|
return (table, columnId) => memo(() => [table.getColumn(columnId).getFacetedRowModel()], facetedRowModel => {
|
|
3009
3028
|
let facetedUniqueValues = new Map();
|
|
3010
3029
|
for (let i = 0; i < facetedRowModel.flatRows.length; i++) {
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3030
|
+
const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);
|
|
3031
|
+
for (let j = 0; j < values.length; j++) {
|
|
3032
|
+
const value = values[j];
|
|
3033
|
+
if (facetedUniqueValues.has(value)) {
|
|
3034
|
+
facetedUniqueValues.set(value, (facetedUniqueValues.get(value) ?? 0) + 1);
|
|
3035
|
+
} else {
|
|
3036
|
+
facetedUniqueValues.set(value, 1);
|
|
3037
|
+
}
|
|
3017
3038
|
}
|
|
3018
3039
|
}
|
|
3019
3040
|
return facetedUniqueValues;
|
|
@@ -3027,17 +3048,20 @@ function getFacetedUniqueValues() {
|
|
|
3027
3048
|
function getFacetedMinMaxValues() {
|
|
3028
3049
|
return (table, columnId) => memo(() => [table.getColumn(columnId).getFacetedRowModel()], facetedRowModel => {
|
|
3029
3050
|
var _facetedRowModel$flat;
|
|
3030
|
-
const firstValue = (_facetedRowModel$flat = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat.
|
|
3051
|
+
const firstValue = (_facetedRowModel$flat = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat.getUniqueValues(columnId);
|
|
3031
3052
|
if (typeof firstValue === 'undefined') {
|
|
3032
3053
|
return undefined;
|
|
3033
3054
|
}
|
|
3034
3055
|
let facetedMinMaxValues = [firstValue, firstValue];
|
|
3035
3056
|
for (let i = 0; i < facetedRowModel.flatRows.length; i++) {
|
|
3036
|
-
const
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3057
|
+
const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);
|
|
3058
|
+
for (let j = 0; j < values.length; j++) {
|
|
3059
|
+
const value = values[j];
|
|
3060
|
+
if (value < facetedMinMaxValues[0]) {
|
|
3061
|
+
facetedMinMaxValues[0] = value;
|
|
3062
|
+
} else if (value > facetedMinMaxValues[1]) {
|
|
3063
|
+
facetedMinMaxValues[1] = value;
|
|
3064
|
+
}
|
|
3041
3065
|
}
|
|
3042
3066
|
}
|
|
3043
3067
|
return facetedMinMaxValues;
|