@tanstack/table-core 8.0.0-beta.6 → 8.0.0-beta.9
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/features/Grouping.js +1 -1
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Pagination.js +6 -12
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/filterFns.js +22 -6
- package/build/cjs/filterFns.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js +6 -11
- package/build/cjs/utils/filterRowsUtils.js.map +1 -1
- package/build/esm/index.js +35 -30
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +314 -314
- package/build/types/features/Pagination.d.ts +1 -1
- package/build/umd/index.development.js +35 -30
- 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/features/Grouping.ts +1 -1
- package/src/features/Pagination.ts +15 -18
- package/src/filterFns.ts +6 -6
- package/src/utils/filterRowsUtils.ts +5 -11
|
@@ -139,7 +139,7 @@ const Grouping = {
|
|
|
139
139
|
getIsAggregated: () => {
|
|
140
140
|
var _row$subRows;
|
|
141
141
|
|
|
142
|
-
return !cell.getIsGrouped() && !cell.getIsPlaceholder() && ((_row$subRows = row.subRows)
|
|
142
|
+
return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);
|
|
143
143
|
},
|
|
144
144
|
renderAggregatedCell: () => {
|
|
145
145
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport { TableFeature } from '../core/instance'\nimport {\n Cell,\n Column,\n OnChangeFn,\n TableInstance,\n Row,\n Updater,\n Renderable,\n TableGenerics,\n} from '../types'\nimport { isFunction, makeStateUpdater, Overwrite } from '../utils'\n\nexport type GroupingState = string[]\n\nexport type GroupingTableState = {\n grouping: GroupingState\n}\n\nexport type AggregationFn<TGenerics extends TableGenerics> = (\n columnId: string,\n leafRows: Row<TGenerics>[],\n childRows: Row<TGenerics>[]\n) => any\n\nexport type CustomAggregationFns<TGenerics extends TableGenerics> = Record<\n string,\n AggregationFn<TGenerics>\n>\n\nexport type AggregationFnOption<TGenerics extends TableGenerics> =\n | 'auto'\n | BuiltInAggregationFn\n | keyof TGenerics['AggregationFns']\n | AggregationFn<TGenerics>\n\nexport type GroupingColumnDef<TGenerics extends TableGenerics> = {\n aggregationFn?: AggregationFnOption<Overwrite<TGenerics, { Value: any }>>\n aggregatedCell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n getValue: () => TGenerics['Value']\n }\n >\n enableGrouping?: boolean\n}\n\nexport type GroupingColumn<TGenerics extends TableGenerics> = {\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingHandler: () => () => void\n getAutoAggregationFn: () => AggregationFn<TGenerics> | undefined\n getAggregationFn: () => AggregationFn<TGenerics> | undefined\n}\n\nexport type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: any\n getIsGrouped: () => boolean\n _groupingValuesCache: Record<string, any>\n}\n\nexport type GroupingCell<TGenerics extends TableGenerics> = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n renderAggregatedCell: () => string | null | TGenerics['Rendered']\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\nexport type GroupingOptions<TGenerics extends TableGenerics> = {\n manualGrouping?: boolean\n aggregationFns?: TGenerics['AggregationFns']\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n getGroupedRowModel?: (instance: TableInstance<any>) => () => RowModel<any>\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type GroupingInstance<TGenerics extends TableGenerics> = {\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: (defaultState?: boolean) => void\n getPreGroupedRowModel: () => RowModel<TGenerics>\n getGroupedRowModel: () => RowModel<TGenerics>\n _getGroupedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Grouping: TableFeature = {\n getDefaultColumnDef: <\n TGenerics extends TableGenerics\n >(): GroupingColumnDef<TGenerics> => {\n return {\n aggregatedCell: props => props.getValue()?.toString?.() ?? null,\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (state): GroupingTableState => {\n return {\n grouping: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingOptions<TGenerics> => {\n return {\n onGroupingChange: makeStateUpdater('grouping', instance),\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingColumn<TGenerics> => {\n return {\n toggleGrouping: () => {\n instance.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(column.id)) {\n return old.filter(d => d !== column.id)\n }\n\n return [...(old ?? []), column.id]\n })\n },\n\n getCanGroup: () => {\n return (\n column.columnDef.enableGrouping ??\n true ??\n instance.options.enableGrouping ??\n true ??\n !!column.accessorFn\n )\n },\n\n getIsGrouped: () => {\n return instance.getState().grouping?.includes(column.id)\n },\n\n getGroupedIndex: () => instance.getState().grouping?.indexOf(column.id),\n\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup()\n\n return () => {\n if (!canGroup) return\n column.toggleGrouping()\n }\n },\n getAutoAggregationFn: () => {\n const firstRow = instance.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n },\n getAggregationFn: () => {\n const userAggregationFns = instance.options.aggregationFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.aggregationFn)\n ? column.columnDef.aggregationFn\n : column.columnDef.aggregationFn === 'auto'\n ? column.getAutoAggregationFn()\n : (userAggregationFns as Record<string, any>)?.[\n column.columnDef.aggregationFn as string\n ] ??\n (aggregationFns[\n column.columnDef.aggregationFn as BuiltInAggregationFn\n ] as AggregationFn<TGenerics>)\n },\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingInstance<TGenerics> => {\n return {\n setGrouping: updater => instance.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n instance.setGrouping(\n defaultState ? [] : instance.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => instance.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (\n !instance._getGroupedRowModel &&\n instance.options.getGroupedRowModel\n ) {\n instance._getGroupedRowModel =\n instance.options.getGroupedRowModel(instance)\n }\n\n if (instance.options.manualGrouping || !instance._getGroupedRowModel) {\n return instance.getPreGroupedRowModel()\n }\n\n return instance._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>\n ): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {},\n }\n },\n\n createCell: <TGenerics extends TableGenerics>(\n cell: Cell<TGenerics>,\n column: Column<TGenerics>,\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingCell<TGenerics> => {\n const getRenderValue = () =>\n cell.getValue() ?? instance.options.renderFallbackValue\n\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n row.subRows?.length > 1,\n renderAggregatedCell: () => {\n if (process.env.NODE_ENV === 'development') {\n if (!column.columnDef.aggregatedCell) {\n console.warn(\n 'A columnDef.aggregatedCell template is recommended for displaying aggregated values.'\n )\n }\n }\n\n const template =\n column.columnDef.aggregatedCell || column.columnDef.cell\n\n return template\n ? instance._render(template, {\n instance,\n column,\n row,\n cell,\n getValue: getRenderValue,\n })\n : null\n },\n }\n },\n}\n\nexport function orderColumns<TGenerics extends TableGenerics>(\n leafColumns: Column<TGenerics>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumnDef","aggregatedCell","props","getValue","toString","aggregationFn","getInitialState","state","grouping","getDefaultOptions","instance","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","columnDef","enableGrouping","options","accessorFn","getIsGrouped","getState","getGroupedIndex","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","aggregationFns","sum","Object","prototype","call","extent","getAggregationFn","userAggregationFns","Error","isFunction","createInstance","updater","resetGrouping","defaultState","initialState","getPreGroupedRowModel","getFilteredRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","_groupingValuesCache","createCell","cell","getRenderValue","renderFallbackValue","getIsPlaceholder","getIsAggregated","subRows","length","renderAggregatedCell","process","env","NODE_ENV","console","warn","template","_render","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport { TableFeature } from '../core/instance'\nimport {\n Cell,\n Column,\n OnChangeFn,\n TableInstance,\n Row,\n Updater,\n Renderable,\n TableGenerics,\n} from '../types'\nimport { isFunction, makeStateUpdater, Overwrite } from '../utils'\n\nexport type GroupingState = string[]\n\nexport type GroupingTableState = {\n grouping: GroupingState\n}\n\nexport type AggregationFn<TGenerics extends TableGenerics> = (\n columnId: string,\n leafRows: Row<TGenerics>[],\n childRows: Row<TGenerics>[]\n) => any\n\nexport type CustomAggregationFns<TGenerics extends TableGenerics> = Record<\n string,\n AggregationFn<TGenerics>\n>\n\nexport type AggregationFnOption<TGenerics extends TableGenerics> =\n | 'auto'\n | BuiltInAggregationFn\n | keyof TGenerics['AggregationFns']\n | AggregationFn<TGenerics>\n\nexport type GroupingColumnDef<TGenerics extends TableGenerics> = {\n aggregationFn?: AggregationFnOption<Overwrite<TGenerics, { Value: any }>>\n aggregatedCell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n getValue: () => TGenerics['Value']\n }\n >\n enableGrouping?: boolean\n}\n\nexport type GroupingColumn<TGenerics extends TableGenerics> = {\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingHandler: () => () => void\n getAutoAggregationFn: () => AggregationFn<TGenerics> | undefined\n getAggregationFn: () => AggregationFn<TGenerics> | undefined\n}\n\nexport type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: any\n getIsGrouped: () => boolean\n _groupingValuesCache: Record<string, any>\n}\n\nexport type GroupingCell<TGenerics extends TableGenerics> = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n renderAggregatedCell: () => string | null | TGenerics['Rendered']\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\nexport type GroupingOptions<TGenerics extends TableGenerics> = {\n manualGrouping?: boolean\n aggregationFns?: TGenerics['AggregationFns']\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n getGroupedRowModel?: (instance: TableInstance<any>) => () => RowModel<any>\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type GroupingInstance<TGenerics extends TableGenerics> = {\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: (defaultState?: boolean) => void\n getPreGroupedRowModel: () => RowModel<TGenerics>\n getGroupedRowModel: () => RowModel<TGenerics>\n _getGroupedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Grouping: TableFeature = {\n getDefaultColumnDef: <\n TGenerics extends TableGenerics\n >(): GroupingColumnDef<TGenerics> => {\n return {\n aggregatedCell: props => props.getValue()?.toString?.() ?? null,\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (state): GroupingTableState => {\n return {\n grouping: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingOptions<TGenerics> => {\n return {\n onGroupingChange: makeStateUpdater('grouping', instance),\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingColumn<TGenerics> => {\n return {\n toggleGrouping: () => {\n instance.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(column.id)) {\n return old.filter(d => d !== column.id)\n }\n\n return [...(old ?? []), column.id]\n })\n },\n\n getCanGroup: () => {\n return (\n column.columnDef.enableGrouping ??\n true ??\n instance.options.enableGrouping ??\n true ??\n !!column.accessorFn\n )\n },\n\n getIsGrouped: () => {\n return instance.getState().grouping?.includes(column.id)\n },\n\n getGroupedIndex: () => instance.getState().grouping?.indexOf(column.id),\n\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup()\n\n return () => {\n if (!canGroup) return\n column.toggleGrouping()\n }\n },\n getAutoAggregationFn: () => {\n const firstRow = instance.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n },\n getAggregationFn: () => {\n const userAggregationFns = instance.options.aggregationFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.aggregationFn)\n ? column.columnDef.aggregationFn\n : column.columnDef.aggregationFn === 'auto'\n ? column.getAutoAggregationFn()\n : (userAggregationFns as Record<string, any>)?.[\n column.columnDef.aggregationFn as string\n ] ??\n (aggregationFns[\n column.columnDef.aggregationFn as BuiltInAggregationFn\n ] as AggregationFn<TGenerics>)\n },\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingInstance<TGenerics> => {\n return {\n setGrouping: updater => instance.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n instance.setGrouping(\n defaultState ? [] : instance.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => instance.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (\n !instance._getGroupedRowModel &&\n instance.options.getGroupedRowModel\n ) {\n instance._getGroupedRowModel =\n instance.options.getGroupedRowModel(instance)\n }\n\n if (instance.options.manualGrouping || !instance._getGroupedRowModel) {\n return instance.getPreGroupedRowModel()\n }\n\n return instance._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>\n ): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {},\n }\n },\n\n createCell: <TGenerics extends TableGenerics>(\n cell: Cell<TGenerics>,\n column: Column<TGenerics>,\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingCell<TGenerics> => {\n const getRenderValue = () =>\n cell.getValue() ?? instance.options.renderFallbackValue\n\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n !!row.subRows?.length,\n renderAggregatedCell: () => {\n if (process.env.NODE_ENV === 'development') {\n if (!column.columnDef.aggregatedCell) {\n console.warn(\n 'A columnDef.aggregatedCell template is recommended for displaying aggregated values.'\n )\n }\n }\n\n const template =\n column.columnDef.aggregatedCell || column.columnDef.cell\n\n return template\n ? instance._render(template, {\n instance,\n column,\n row,\n cell,\n getValue: getRenderValue,\n })\n : null\n },\n }\n },\n}\n\nexport function orderColumns<TGenerics extends TableGenerics>(\n leafColumns: Column<TGenerics>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumnDef","aggregatedCell","props","getValue","toString","aggregationFn","getInitialState","state","grouping","getDefaultOptions","instance","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","columnDef","enableGrouping","options","accessorFn","getIsGrouped","getState","getGroupedIndex","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","aggregationFns","sum","Object","prototype","call","extent","getAggregationFn","userAggregationFns","Error","isFunction","createInstance","updater","resetGrouping","defaultState","initialState","getPreGroupedRowModel","getFilteredRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","_groupingValuesCache","createCell","cell","getRenderValue","renderFallbackValue","getIsPlaceholder","getIsAggregated","subRows","length","renderAggregatedCell","process","env","NODE_ENV","console","warn","template","_render","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
|
|
@@ -77,7 +77,7 @@ const Pagination = {
|
|
|
77
77
|
setPageIndex: updater => {
|
|
78
78
|
instance.setPagination(old => {
|
|
79
79
|
let pageIndex = utils.functionalUpdate(updater, old.pageIndex);
|
|
80
|
-
const maxPageIndex = typeof
|
|
80
|
+
const maxPageIndex = typeof instance.options.pageCount === 'undefined' || instance.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : instance.options.pageCount - 1;
|
|
81
81
|
pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex);
|
|
82
82
|
return { ...old,
|
|
83
83
|
pageIndex
|
|
@@ -106,9 +106,9 @@ const Pagination = {
|
|
|
106
106
|
});
|
|
107
107
|
},
|
|
108
108
|
setPageCount: updater => instance.setPagination(old => {
|
|
109
|
-
var
|
|
109
|
+
var _instance$options$pag;
|
|
110
110
|
|
|
111
|
-
let newPageCount = utils.functionalUpdate(updater, (
|
|
111
|
+
let newPageCount = utils.functionalUpdate(updater, (_instance$options$pag = instance.options.pageCount) != null ? _instance$options$pag : -1);
|
|
112
112
|
|
|
113
113
|
if (typeof newPageCount === 'number') {
|
|
114
114
|
newPageCount = Math.max(-1, newPageCount);
|
|
@@ -118,7 +118,7 @@ const Pagination = {
|
|
|
118
118
|
pageCount: newPageCount
|
|
119
119
|
};
|
|
120
120
|
}),
|
|
121
|
-
getPageOptions: utils.memo(() => [instance.
|
|
121
|
+
getPageOptions: utils.memo(() => [instance.getPageCount()], pageCount => {
|
|
122
122
|
let pageOptions = [];
|
|
123
123
|
|
|
124
124
|
if (pageCount && pageCount > 0) {
|
|
@@ -172,15 +172,9 @@ const Pagination = {
|
|
|
172
172
|
return instance._getPaginationRowModel();
|
|
173
173
|
},
|
|
174
174
|
getPageCount: () => {
|
|
175
|
-
|
|
176
|
-
pageCount
|
|
177
|
-
} = instance.getState().pagination;
|
|
178
|
-
|
|
179
|
-
if (typeof pageCount !== 'undefined') {
|
|
180
|
-
return pageCount;
|
|
181
|
-
}
|
|
175
|
+
var _instance$options$pag2;
|
|
182
176
|
|
|
183
|
-
return Math.ceil(instance.getPrePaginationRowModel().rows.length / instance.getState().pagination.pageSize);
|
|
177
|
+
return (_instance$options$pag2 = instance.options.pageCount) != null ? _instance$options$pag2 : Math.ceil(instance.getPrePaginationRowModel().rows.length / instance.getState().pagination.pageSize);
|
|
184
178
|
}
|
|
185
179
|
};
|
|
186
180
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import { TableFeature } from '../core/instance'\nimport {\n OnChangeFn,\n TableGenerics,\n TableInstance,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport type PaginationState = {\n pageIndex: number\n pageSize: number\n pageCount?: number\n}\n\nexport type PaginationTableState = {\n pagination: PaginationState\n}\n\nexport type PaginationInitialTableState = {\n pagination?: Partial<PaginationState>\n}\n\nexport type PaginationOptions<TGenerics extends TableGenerics> = {\n manualPagination?: boolean\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (instance: TableInstance<any>) => () => RowModel<any>\n}\n\nexport type PaginationDefaultOptions = {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport type PaginationInstance<TGenerics extends TableGenerics> = {\n _autoResetPageIndex: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: (defaultState?: boolean) => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: (defaultState?: boolean) => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: (defaultState?: boolean) => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TGenerics>\n getPaginationRowModel: () => RowModel<TGenerics>\n _getPaginationRowModel?: () => RowModel<TGenerics>\n getPageCount: () => number\n}\n\n//\n\nconst defaultPageIndex = 0\nconst defaultPageSize = 10\n\nconst getDefaultPaginationState = (): PaginationState => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize,\n})\n\nexport const Pagination: TableFeature = {\n getInitialState: (state): PaginationTableState => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...state?.pagination,\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', instance),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationInstance<TGenerics> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetPageIndex: () => {\n if (!registered) {\n instance._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n instance.options.autoResetAll ??\n instance.options.autoResetPageIndex ??\n !instance.options.manualPagination\n ) {\n if (queued) return\n queued = true\n instance._queue(() => {\n instance.resetPageIndex()\n queued = false\n })\n }\n },\n setPagination: updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return instance.options.onPaginationChange?.(safeUpdater)\n },\n resetPagination: defaultState => {\n instance.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : instance.initialState.pagination ?? getDefaultPaginationState()\n )\n },\n setPageIndex: updater => {\n instance.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n typeof old.pageCount !== 'undefined'\n ? old.pageCount - 1\n : Number.MAX_SAFE_INTEGER\n\n pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex)\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: defaultState => {\n instance.setPageIndex(\n defaultState\n ? defaultPageIndex\n : instance.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n },\n resetPageSize: defaultState => {\n instance.setPageSize(\n defaultState\n ? defaultPageSize\n : instance.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n },\n setPageSize: updater => {\n instance.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n },\n setPageCount: updater =>\n instance.setPagination(old => {\n let newPageCount = functionalUpdate(updater, old.pageCount ?? -1)\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n }),\n\n getPageOptions: memo(\n () => [\n instance.getState().pagination.pageSize,\n instance.getState().pagination.pageCount,\n ],\n (pageSize, pageCount) => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => instance.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex } = instance.getState().pagination\n\n const pageCount = instance.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return pageIndex < pageCount - 1\n },\n\n previousPage: () => {\n return instance.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return instance.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => instance.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (\n !instance._getPaginationRowModel &&\n instance.options.getPaginationRowModel\n ) {\n instance._getPaginationRowModel =\n instance.options.getPaginationRowModel(instance)\n }\n\n if (\n instance.options.manualPagination ||\n !instance._getPaginationRowModel\n ) {\n return instance.getPrePaginationRowModel()\n }\n\n return instance._getPaginationRowModel()\n },\n\n getPageCount: () => {\n const { pageCount } = instance.getState().pagination\n\n if (typeof pageCount !== 'undefined') {\n return pageCount\n }\n\n return Math.ceil(\n instance.getPrePaginationRowModel().rows.length /\n instance.getState().pagination.pageSize\n )\n },\n }\n },\n}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","instance","onPaginationChange","makeStateUpdater","createInstance","registered","queued","_autoResetPageIndex","_queue","options","autoResetAll","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","resetPagination","defaultState","initialState","setPageIndex","maxPageIndex","pageCount","Number","MAX_SAFE_INTEGER","Math","min","max","resetPageSize","setPageSize","topRowIndex","floor","setPageCount","newPageCount","getPageOptions","memo","getState","pageOptions","Array","fill","map","_","i","key","process","env","NODE_ENV","debug","debugAll","debugTable","getCanPreviousPage","getCanNextPage","getPageCount","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","ceil","rows","length"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import { TableFeature } from '../core/instance'\nimport {\n OnChangeFn,\n TableGenerics,\n TableInstance,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport type PaginationState = {\n pageIndex: number\n pageSize: number\n}\n\nexport type PaginationTableState = {\n pagination: PaginationState\n}\n\nexport type PaginationInitialTableState = {\n pagination?: Partial<PaginationState>\n}\n\nexport type PaginationOptions<TGenerics extends TableGenerics> = {\n pageCount?: number\n manualPagination?: boolean\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (instance: TableInstance<any>) => () => RowModel<any>\n}\n\nexport type PaginationDefaultOptions = {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport type PaginationInstance<TGenerics extends TableGenerics> = {\n _autoResetPageIndex: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: (defaultState?: boolean) => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: (defaultState?: boolean) => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: (defaultState?: boolean) => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TGenerics>\n getPaginationRowModel: () => RowModel<TGenerics>\n _getPaginationRowModel?: () => RowModel<TGenerics>\n getPageCount: () => number\n}\n\n//\n\nconst defaultPageIndex = 0\nconst defaultPageSize = 10\n\nconst getDefaultPaginationState = (): PaginationState => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize,\n})\n\nexport const Pagination: TableFeature = {\n getInitialState: (state): PaginationTableState => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...state?.pagination,\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', instance),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationInstance<TGenerics> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetPageIndex: () => {\n if (!registered) {\n instance._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n instance.options.autoResetAll ??\n instance.options.autoResetPageIndex ??\n !instance.options.manualPagination\n ) {\n if (queued) return\n queued = true\n instance._queue(() => {\n instance.resetPageIndex()\n queued = false\n })\n }\n },\n setPagination: updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return instance.options.onPaginationChange?.(safeUpdater)\n },\n resetPagination: defaultState => {\n instance.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : instance.initialState.pagination ?? getDefaultPaginationState()\n )\n },\n setPageIndex: updater => {\n instance.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n (typeof instance.options.pageCount === 'undefined' || instance.options.pageCount === -1) ?\n Number.MAX_SAFE_INTEGER\n : instance.options.pageCount - 1\n\n pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex)\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: defaultState => {\n instance.setPageIndex(\n defaultState\n ? defaultPageIndex\n : instance.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n },\n resetPageSize: defaultState => {\n instance.setPageSize(\n defaultState\n ? defaultPageSize\n : instance.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n },\n setPageSize: updater => {\n instance.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n },\n setPageCount: updater =>\n instance.setPagination(old => {\n let newPageCount = functionalUpdate(\n updater,\n instance.options.pageCount ?? -1\n )\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n }),\n\n getPageOptions: memo(\n () => [instance.getPageCount()],\n pageCount => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => instance.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex } = instance.getState().pagination\n\n const pageCount = instance.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return pageIndex < pageCount - 1\n },\n\n previousPage: () => {\n return instance.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return instance.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => instance.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (\n !instance._getPaginationRowModel &&\n instance.options.getPaginationRowModel\n ) {\n instance._getPaginationRowModel =\n instance.options.getPaginationRowModel(instance)\n }\n\n if (\n instance.options.manualPagination ||\n !instance._getPaginationRowModel\n ) {\n return instance.getPrePaginationRowModel()\n }\n\n return instance._getPaginationRowModel()\n },\n\n getPageCount: () => {\n return (\n instance.options.pageCount ??\n Math.ceil(\n instance.getPrePaginationRowModel().rows.length /\n instance.getState().pagination.pageSize\n )\n )\n },\n }\n },\n}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","instance","onPaginationChange","makeStateUpdater","createInstance","registered","queued","_autoResetPageIndex","_queue","options","autoResetAll","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","resetPagination","defaultState","initialState","setPageIndex","maxPageIndex","pageCount","Number","MAX_SAFE_INTEGER","Math","min","max","resetPageSize","setPageSize","topRowIndex","floor","setPageCount","newPageCount","getPageOptions","memo","getPageCount","pageOptions","Array","fill","map","_","i","key","process","env","NODE_ENV","debug","debugAll","debugTable","getCanPreviousPage","getState","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","ceil","rows","length"],"mappings":";;;;;;;;;;;;;;;;AAuDA;AAEA,MAAMA,gBAAgB,GAAG,CAAzB,CAAA;AACA,MAAMC,eAAe,GAAG,EAAxB,CAAA;;AAEA,MAAMC,yBAAyB,GAAG,OAAwB;AACxDC,EAAAA,SAAS,EAAEH,gBAD6C;AAExDI,EAAAA,QAAQ,EAAEH,eAAAA;AAF8C,CAAxB,CAAlC,CAAA;;AAKO,MAAMI,UAAwB,GAAG;AACtCC,EAAAA,eAAe,EAAGC,KAAD,IAAiC;AAChD,IAAO,OAAA,EACL,GAAGA,KADE;AAELC,MAAAA,UAAU,EAAE,EACV,GAAGN,yBAAyB,EADlB;AAEV,QAAA,IAAGK,KAAH,IAAA,IAAA,GAAA,KAAA,CAAA,GAAGA,KAAK,CAAEC,UAAV,CAAA;AAFU,OAAA;AAFP,KAAP,CAAA;AAOD,GATqC;AAWtCC,EAAAA,iBAAiB,EACfC,QADiB,IAEY;AAC7B,IAAO,OAAA;AACLC,MAAAA,kBAAkB,EAAEC,sBAAgB,CAAC,YAAD,EAAeF,QAAf,CAAA;AAD/B,KAAP,CAAA;AAGD,GAjBqC;AAmBtCG,EAAAA,cAAc,EACZH,QADc,IAEoB;AAClC,IAAII,IAAAA,UAAU,GAAG,KAAjB,CAAA;AACA,IAAIC,IAAAA,MAAM,GAAG,KAAb,CAAA;AAEA,IAAO,OAAA;AACLC,MAAAA,mBAAmB,EAAE,MAAM;AAAA,QAAA,IAAA,IAAA,EAAA,qBAAA,CAAA;;AACzB,QAAI,IAAA,CAACF,UAAL,EAAiB;AACfJ,UAAAA,QAAQ,CAACO,MAAT,CAAgB,MAAM;AACpBH,YAAAA,UAAU,GAAG,IAAb,CAAA;AACD,WAFD,CAAA,CAAA;;AAGA,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IAAA,CAAA,IAAA,GAAA,CAAA,qBAAA,GACEJ,QAAQ,CAACQ,OAAT,CAAiBC,YADnB,KAAA,IAAA,GAAA,qBAAA,GAEET,QAAQ,CAACQ,OAAT,CAAiBE,kBAFnB,mBAGE,CAACV,QAAQ,CAACQ,OAAT,CAAiBG,gBAHpB,EAIE;AACA,UAAA,IAAIN,MAAJ,EAAY,OAAA;AACZA,UAAAA,MAAM,GAAG,IAAT,CAAA;;AACAL,UAAAA,QAAQ,CAACO,MAAT,CAAgB,MAAM;AACpBP,YAAAA,QAAQ,CAACY,cAAT,EAAA,CAAA;AACAP,YAAAA,MAAM,GAAG,KAAT,CAAA;AACD,WAHD,CAAA,CAAA;AAID,SAAA;AACF,OArBI;AAsBLQ,MAAAA,aAAa,EAAEC,OAAO,IAAI;AACxB,QAAMC,MAAAA,WAAqC,GAAGC,GAAG,IAAI;AACnD,UAAA,IAAIC,QAAQ,GAAGC,sBAAgB,CAACJ,OAAD,EAAUE,GAAV,CAA/B,CAAA;AAEA,UAAA,OAAOC,QAAP,CAAA;AACD,SAJD,CAAA;;AAMA,QAAA,OAAOjB,QAAQ,CAACQ,OAAT,CAAiBP,kBAAxB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAOD,QAAQ,CAACQ,OAAT,CAAiBP,kBAAjB,CAAsCc,WAAtC,CAAP,CAAA;AACD,OA9BI;AA+BLI,MAAAA,eAAe,EAAEC,YAAY,IAAI;AAAA,QAAA,IAAA,qBAAA,CAAA;;AAC/BpB,QAAAA,QAAQ,CAACa,aAAT,CACEO,YAAY,GACR5B,yBAAyB,EADjB,GAERQ,CAAAA,qBAAAA,GAAAA,QAAQ,CAACqB,YAAT,CAAsBvB,UAFd,KAAA,IAAA,GAAA,qBAAA,GAE4BN,yBAAyB,EAHnE,CAAA,CAAA;AAKD,OArCI;AAsCL8B,MAAAA,YAAY,EAAER,OAAO,IAAI;AACvBd,QAAAA,QAAQ,CAACa,aAAT,CAAuBG,GAAG,IAAI;AAC5B,UAAIvB,IAAAA,SAAS,GAAGyB,sBAAgB,CAACJ,OAAD,EAAUE,GAAG,CAACvB,SAAd,CAAhC,CAAA;AAEA,UAAA,MAAM8B,YAAY,GACf,OAAOvB,QAAQ,CAACQ,OAAT,CAAiBgB,SAAxB,KAAsC,WAAtC,IAAqDxB,QAAQ,CAACQ,OAAT,CAAiBgB,SAAjB,KAA+B,CAAC,CAAtF,GACEC,MAAM,CAACC,gBADT,GAEI1B,QAAQ,CAACQ,OAAT,CAAiBgB,SAAjB,GAA6B,CAHnC,CAAA;AAKA/B,UAAAA,SAAS,GAAGkC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAAS,CAAT,EAAYpC,SAAZ,CAAT,EAAiC8B,YAAjC,CAAZ,CAAA;AAEA,UAAO,OAAA,EACL,GAAGP,GADE;AAELvB,YAAAA,SAAAA;AAFK,WAAP,CAAA;AAID,SAdD,CAAA,CAAA;AAeD,OAtDI;AAuDLmB,MAAAA,cAAc,EAAEQ,YAAY,IAAI;AAAA,QAAA,IAAA,sBAAA,EAAA,sBAAA,EAAA,sBAAA,CAAA;;AAC9BpB,QAAAA,QAAQ,CAACsB,YAAT,CACEF,YAAY,GACR9B,gBADQ,GAERU,CAAAA,sBAAAA,GAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACqB,YAFD,+CAER,sBAAuBvB,CAAAA,UAFf,qBAER,sBAAmCL,CAAAA,SAF3B,qCAEwCH,gBAHtD,CAAA,CAAA;AAKD,OA7DI;AA8DLwC,MAAAA,aAAa,EAAEV,YAAY,IAAI;AAAA,QAAA,IAAA,sBAAA,EAAA,sBAAA,EAAA,sBAAA,CAAA;;AAC7BpB,QAAAA,QAAQ,CAAC+B,WAAT,CACEX,YAAY,GACR7B,eADQ,GAERS,CAAAA,sBAAAA,GAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACqB,YAFD,+CAER,sBAAuBvB,CAAAA,UAFf,qBAER,sBAAmCJ,CAAAA,QAF3B,qCAEuCH,eAHrD,CAAA,CAAA;AAKD,OApEI;AAqELwC,MAAAA,WAAW,EAAEjB,OAAO,IAAI;AACtBd,QAAAA,QAAQ,CAACa,aAAT,CAAuBG,GAAG,IAAI;AAC5B,UAAA,MAAMtB,QAAQ,GAAGiC,IAAI,CAACE,GAAL,CAAS,CAAT,EAAYX,sBAAgB,CAACJ,OAAD,EAAUE,GAAG,CAACtB,QAAd,CAA5B,CAAjB,CAAA;AACA,UAAMsC,MAAAA,WAAW,GAAGhB,GAAG,CAACtB,QAAJ,GAAesB,GAAG,CAACvB,SAAvC,CAAA;AACA,UAAMA,MAAAA,SAAS,GAAGkC,IAAI,CAACM,KAAL,CAAWD,WAAW,GAAGtC,QAAzB,CAAlB,CAAA;AAEA,UAAO,OAAA,EACL,GAAGsB,GADE;AAELvB,YAAAA,SAFK;AAGLC,YAAAA,QAAAA;AAHK,WAAP,CAAA;AAKD,SAVD,CAAA,CAAA;AAWD,OAjFI;AAkFLwC,MAAAA,YAAY,EAAEpB,OAAO,IACnBd,QAAQ,CAACa,aAAT,CAAuBG,GAAG,IAAI;AAAA,QAAA,IAAA,qBAAA,CAAA;;AAC5B,QAAA,IAAImB,YAAY,GAAGjB,sBAAgB,CACjCJ,OADiC,EAEjCd,CAAAA,qBAAAA,GAAAA,QAAQ,CAACQ,OAAT,CAAiBgB,SAFgB,KAEH,IAAA,GAAA,qBAAA,GAAA,CAAC,CAFE,CAAnC,CAAA;;AAKA,QAAA,IAAI,OAAOW,YAAP,KAAwB,QAA5B,EAAsC;AACpCA,UAAAA,YAAY,GAAGR,IAAI,CAACE,GAAL,CAAS,CAAC,CAAV,EAAaM,YAAb,CAAf,CAAA;AACD,SAAA;;AAED,QAAO,OAAA,EACL,GAAGnB,GADE;AAELQ,UAAAA,SAAS,EAAEW,YAAAA;AAFN,SAAP,CAAA;AAID,OAdD,CAnFG;AAmGLC,MAAAA,cAAc,EAAEC,UAAI,CAClB,MAAM,CAACrC,QAAQ,CAACsC,YAAT,EAAD,CADY,EAElBd,SAAS,IAAI;AACX,QAAIe,IAAAA,WAAqB,GAAG,EAA5B,CAAA;;AACA,QAAA,IAAIf,SAAS,IAAIA,SAAS,GAAG,CAA7B,EAAgC;AAC9Be,UAAAA,WAAW,GAAG,CAAC,GAAG,IAAIC,KAAJ,CAAUhB,SAAV,CAAJ,CAA0BiB,CAAAA,IAA1B,CAA+B,IAA/B,CAAA,CAAqCC,GAArC,CAAyC,CAACC,CAAD,EAAIC,CAAJ,KAAUA,CAAnD,CAAd,CAAA;AACD,SAAA;;AACD,QAAA,OAAOL,WAAP,CAAA;AACD,OARiB,EASlB;AACEM,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,gBADjD;AAEEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,qBAAA,CAAA;;AAAA,UAAMjD,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACQ,OAAT,CAAiB0C,QAAvB,oCAAmClD,QAAQ,CAACQ,OAAT,CAAiB2C,UAApD,CAAA;AAAA,SAAA;AAFT,OATkB,CAnGf;AAkHLC,MAAAA,kBAAkB,EAAE,MAAMpD,QAAQ,CAACqD,QAAT,EAAA,CAAoBvD,UAApB,CAA+BL,SAA/B,GAA2C,CAlHhE;AAoHL6D,MAAAA,cAAc,EAAE,MAAM;AACpB,QAAM,MAAA;AAAE7D,UAAAA,SAAAA;AAAF,SAAA,GAAgBO,QAAQ,CAACqD,QAAT,EAAA,CAAoBvD,UAA1C,CAAA;AAEA,QAAA,MAAM0B,SAAS,GAAGxB,QAAQ,CAACsC,YAAT,EAAlB,CAAA;;AAEA,QAAA,IAAId,SAAS,KAAK,CAAC,CAAnB,EAAsB;AACpB,UAAA,OAAO,IAAP,CAAA;AACD,SAAA;;AAED,QAAIA,IAAAA,SAAS,KAAK,CAAlB,EAAqB;AACnB,UAAA,OAAO,KAAP,CAAA;AACD,SAAA;;AAED,QAAA,OAAO/B,SAAS,GAAG+B,SAAS,GAAG,CAA/B,CAAA;AACD,OAlII;AAoIL+B,MAAAA,YAAY,EAAE,MAAM;AAClB,QAAOvD,OAAAA,QAAQ,CAACsB,YAAT,CAAsBN,GAAG,IAAIA,GAAG,GAAG,CAAnC,CAAP,CAAA;AACD,OAtII;AAwILwC,MAAAA,QAAQ,EAAE,MAAM;AACd,QAAA,OAAOxD,QAAQ,CAACsB,YAAT,CAAsBN,GAAG,IAAI;AAClC,UAAOA,OAAAA,GAAG,GAAG,CAAb,CAAA;AACD,SAFM,CAAP,CAAA;AAGD,OA5II;AA8ILyC,MAAAA,wBAAwB,EAAE,MAAMzD,QAAQ,CAAC0D,mBAAT,EA9I3B;AA+ILC,MAAAA,qBAAqB,EAAE,MAAM;AAC3B,QACE,IAAA,CAAC3D,QAAQ,CAAC4D,sBAAV,IACA5D,QAAQ,CAACQ,OAAT,CAAiBmD,qBAFnB,EAGE;AACA3D,UAAAA,QAAQ,CAAC4D,sBAAT,GACE5D,QAAQ,CAACQ,OAAT,CAAiBmD,qBAAjB,CAAuC3D,QAAvC,CADF,CAAA;AAED,SAAA;;AAED,QACEA,IAAAA,QAAQ,CAACQ,OAAT,CAAiBG,gBAAjB,IACA,CAACX,QAAQ,CAAC4D,sBAFZ,EAGE;AACA,UAAO5D,OAAAA,QAAQ,CAACyD,wBAAT,EAAP,CAAA;AACD,SAAA;;AAED,QAAOzD,OAAAA,QAAQ,CAAC4D,sBAAT,EAAP,CAAA;AACD,OAhKI;AAkKLtB,MAAAA,YAAY,EAAE,MAAM;AAAA,QAAA,IAAA,sBAAA,CAAA;;AAClB,QACEtC,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACQ,OAAT,CAAiBgB,SADnB,qCAEEG,IAAI,CAACkC,IAAL,CACE7D,QAAQ,CAACyD,wBAAT,EAAoCK,CAAAA,IAApC,CAAyCC,MAAzC,GACA/D,QAAQ,CAACqD,QAAT,EAAoBvD,CAAAA,UAApB,CAA+BJ,QAFjC,CAFF,CAAA;AAOD,OAAA;AA1KI,KAAP,CAAA;AA4KD,GAAA;AArMqC;;;;"}
|
package/build/cjs/filterFns.js
CHANGED
|
@@ -13,38 +13,54 @@
|
|
|
13
13
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
14
|
|
|
15
15
|
const includesString = (row, columnId, filterValue) => {
|
|
16
|
+
var _row$getValue;
|
|
17
|
+
|
|
16
18
|
const search = filterValue.toLowerCase();
|
|
17
|
-
return row.getValue(columnId).toLowerCase().includes(search);
|
|
19
|
+
return (_row$getValue = row.getValue(columnId)) == null ? void 0 : _row$getValue.toLowerCase().includes(search);
|
|
18
20
|
};
|
|
19
21
|
|
|
20
22
|
includesString.autoRemove = val => testFalsey(val);
|
|
21
23
|
|
|
22
24
|
const includesStringSensitive = (row, columnId, filterValue) => {
|
|
23
|
-
|
|
25
|
+
var _row$getValue2;
|
|
26
|
+
|
|
27
|
+
return (_row$getValue2 = row.getValue(columnId)) == null ? void 0 : _row$getValue2.includes(filterValue);
|
|
24
28
|
};
|
|
25
29
|
|
|
26
30
|
includesStringSensitive.autoRemove = val => testFalsey(val);
|
|
27
31
|
|
|
28
32
|
const equalsString = (row, columnId, filterValue) => {
|
|
29
|
-
|
|
33
|
+
var _row$getValue3;
|
|
34
|
+
|
|
35
|
+
return ((_row$getValue3 = row.getValue(columnId)) == null ? void 0 : _row$getValue3.toLowerCase()) === filterValue.toLowerCase();
|
|
30
36
|
};
|
|
31
37
|
|
|
32
38
|
equalsString.autoRemove = val => testFalsey(val);
|
|
33
39
|
|
|
34
40
|
const arrIncludes = (row, columnId, filterValue) => {
|
|
35
|
-
|
|
41
|
+
var _row$getValue4;
|
|
42
|
+
|
|
43
|
+
return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);
|
|
36
44
|
};
|
|
37
45
|
|
|
38
46
|
arrIncludes.autoRemove = val => testFalsey(val) || !(val != null && val.length);
|
|
39
47
|
|
|
40
48
|
const arrIncludesAll = (row, columnId, filterValue) => {
|
|
41
|
-
return !filterValue.some(val =>
|
|
49
|
+
return !filterValue.some(val => {
|
|
50
|
+
var _row$getValue5;
|
|
51
|
+
|
|
52
|
+
return !((_row$getValue5 = row.getValue(columnId)) != null && _row$getValue5.includes(val));
|
|
53
|
+
});
|
|
42
54
|
};
|
|
43
55
|
|
|
44
56
|
arrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);
|
|
45
57
|
|
|
46
58
|
const arrIncludesSome = (row, columnId, filterValue) => {
|
|
47
|
-
return filterValue.some(val =>
|
|
59
|
+
return filterValue.some(val => {
|
|
60
|
+
var _row$getValue6;
|
|
61
|
+
|
|
62
|
+
return (_row$getValue6 = row.getValue(columnId)) == null ? void 0 : _row$getValue6.includes(val);
|
|
63
|
+
});
|
|
48
64
|
};
|
|
49
65
|
|
|
50
66
|
arrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterFns.js","sources":["../../src/filterFns.ts"],"sourcesContent":["import { FilterFn } from './features/Filters'\n\nconst includesString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n const search = filterValue.toLowerCase()\n return row.getValue(columnId)
|
|
1
|
+
{"version":3,"file":"filterFns.js","sources":["../../src/filterFns.ts"],"sourcesContent":["import { FilterFn } from './features/Filters'\n\nconst includesString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n const search = filterValue.toLowerCase()\n return row.getValue(columnId)?.toLowerCase().includes(search)\n}\n\nincludesString.autoRemove = (val: any) => testFalsey(val)\n\nconst includesStringSensitive: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return row.getValue(columnId)?.includes(filterValue)\n}\n\nincludesStringSensitive.autoRemove = (val: any) => testFalsey(val)\n\nconst equalsString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return row.getValue(columnId)?.toLowerCase() === filterValue.toLowerCase()\n}\n\nequalsString.autoRemove = (val: any) => testFalsey(val)\n\nconst arrIncludes: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue(columnId)?.includes(filterValue)\n}\n\narrIncludes.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesAll: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return !filterValue.some(val => !row.getValue(columnId)?.includes(val))\n}\n\narrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesSome: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return filterValue.some(val => row.getValue(columnId)?.includes(val))\n}\n\narrIncludesSome.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst equals: FilterFn<any> = (row, columnId: string, filterValue: unknown) => {\n return row.getValue(columnId) === filterValue\n}\n\nequals.autoRemove = (val: any) => testFalsey(val)\n\nconst weakEquals: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue(columnId) == filterValue\n}\n\nweakEquals.autoRemove = (val: any) => testFalsey(val)\n\nconst inNumberRange: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: [number, number]\n) => {\n let [min, max] = filterValue\n\n const rowValue = row.getValue(columnId)\n return rowValue >= min && rowValue <= max\n}\n\ninNumberRange.resolveFilterValue = (val: [any, any]) => {\n let [unsafeMin, unsafeMax] = val\n\n let parsedMin =\n typeof unsafeMin !== 'number' ? parseFloat(unsafeMin as string) : unsafeMin\n let parsedMax =\n typeof unsafeMax !== 'number' ? parseFloat(unsafeMax as string) : unsafeMax\n\n let min =\n unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax\n\n if (min > max) {\n const temp = min\n min = max\n max = temp\n }\n\n return [min, max] as const\n}\n\ninNumberRange.autoRemove = (val: any) =>\n testFalsey(val) || (testFalsey(val[0]) && testFalsey(val[1]))\n\n// Export\n\nexport const filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange,\n}\n\nexport type BuiltInFilterFn = keyof typeof filterFns\n\n// Utils\n\nfunction testFalsey(val: any) {\n return val === undefined || val === null || val === ''\n}\n"],"names":["includesString","row","columnId","filterValue","search","toLowerCase","getValue","includes","autoRemove","val","testFalsey","includesStringSensitive","equalsString","arrIncludes","length","arrIncludesAll","some","arrIncludesSome","equals","weakEquals","inNumberRange","min","max","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","Number","isNaN","Infinity","temp","filterFns","undefined"],"mappings":"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"}
|
|
@@ -24,8 +24,6 @@ function filterRows(rows, filterRowImpl, instance) {
|
|
|
24
24
|
function filterRowModelFromLeafs(rowsToFilter, filterRow, instance) {
|
|
25
25
|
const newFilteredFlatRows = [];
|
|
26
26
|
const newFilteredRowsById = {};
|
|
27
|
-
let row$1;
|
|
28
|
-
let newRow;
|
|
29
27
|
|
|
30
28
|
const recurseFilterRows = function (rowsToFilter, depth) {
|
|
31
29
|
if (depth === void 0) {
|
|
@@ -37,10 +35,10 @@ function filterRowModelFromLeafs(rowsToFilter, filterRow, instance) {
|
|
|
37
35
|
for (let i = 0; i < rowsToFilter.length; i++) {
|
|
38
36
|
var _row$subRows;
|
|
39
37
|
|
|
40
|
-
row$1 = rowsToFilter[i];
|
|
38
|
+
let row$1 = rowsToFilter[i];
|
|
41
39
|
|
|
42
40
|
if ((_row$subRows = row$1.subRows) != null && _row$subRows.length) {
|
|
43
|
-
newRow = row.createRow(instance, row$1.id, row$1.original, row$1.index, row$1.depth);
|
|
41
|
+
const newRow = row.createRow(instance, row$1.id, row$1.original, row$1.index, row$1.depth);
|
|
44
42
|
newRow.columnFilters = row$1.columnFilters;
|
|
45
43
|
newRow.subRows = recurseFilterRows(row$1.subRows, depth + 1);
|
|
46
44
|
|
|
@@ -69,10 +67,7 @@ function filterRowModelFromLeafs(rowsToFilter, filterRow, instance) {
|
|
|
69
67
|
}
|
|
70
68
|
function filterRowModelFromRoot(rowsToFilter, filterRow, instance) {
|
|
71
69
|
const newFilteredFlatRows = [];
|
|
72
|
-
const newFilteredRowsById = {};
|
|
73
|
-
let rows;
|
|
74
|
-
let row$1;
|
|
75
|
-
let newRow; // Filters top level and nested rows
|
|
70
|
+
const newFilteredRowsById = {}; // Filters top level and nested rows
|
|
76
71
|
|
|
77
72
|
const recurseFilterRows = function (rowsToFilter, depth) {
|
|
78
73
|
if (depth === void 0) {
|
|
@@ -80,17 +75,17 @@ function filterRowModelFromRoot(rowsToFilter, filterRow, instance) {
|
|
|
80
75
|
}
|
|
81
76
|
|
|
82
77
|
// Filter from parents downward first
|
|
83
|
-
rows = []; // Apply the filter to any subRows
|
|
78
|
+
const rows = []; // Apply the filter to any subRows
|
|
84
79
|
|
|
85
80
|
for (let i = 0; i < rowsToFilter.length; i++) {
|
|
86
|
-
row$1 = rowsToFilter[i];
|
|
81
|
+
let row$1 = rowsToFilter[i];
|
|
87
82
|
const pass = filterRow(row$1);
|
|
88
83
|
|
|
89
84
|
if (pass) {
|
|
90
85
|
var _row$subRows2;
|
|
91
86
|
|
|
92
87
|
if ((_row$subRows2 = row$1.subRows) != null && _row$subRows2.length) {
|
|
93
|
-
newRow = row.createRow(instance, row$1.id, row$1.original, row$1.index, row$1.depth);
|
|
88
|
+
const newRow = row.createRow(instance, row$1.id, row$1.original, row$1.index, row$1.depth);
|
|
94
89
|
newRow.subRows = recurseFilterRows(row$1.subRows, depth + 1);
|
|
95
90
|
row$1 = newRow;
|
|
96
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterRowsUtils.js","sources":["../../../src/utils/filterRowsUtils.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { TableGenerics, Row, RowModel, TableInstance } from '../types'\n\nexport function filterRows<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n filterRowImpl: (row: Row<TGenerics>) => any,\n instance: TableInstance<TGenerics>\n) {\n if (instance.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, instance)\n }\n\n return filterRowModelFromRoot(rows, filterRowImpl, instance)\n}\n\nexport function filterRowModelFromLeafs<TGenerics extends TableGenerics>(\n rowsToFilter: Row<TGenerics>[],\n filterRow: (row: Row<TGenerics>) => Row<TGenerics>[],\n instance: TableInstance<TGenerics>\n): RowModel<TGenerics> {\n const newFilteredFlatRows: Row<TGenerics>[] = []\n const newFilteredRowsById: Record<string, Row<TGenerics>> = {}\n\n
|
|
1
|
+
{"version":3,"file":"filterRowsUtils.js","sources":["../../../src/utils/filterRowsUtils.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { TableGenerics, Row, RowModel, TableInstance } from '../types'\n\nexport function filterRows<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n filterRowImpl: (row: Row<TGenerics>) => any,\n instance: TableInstance<TGenerics>\n) {\n if (instance.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, instance)\n }\n\n return filterRowModelFromRoot(rows, filterRowImpl, instance)\n}\n\nexport function filterRowModelFromLeafs<TGenerics extends TableGenerics>(\n rowsToFilter: Row<TGenerics>[],\n filterRow: (row: Row<TGenerics>) => Row<TGenerics>[],\n instance: TableInstance<TGenerics>\n): RowModel<TGenerics> {\n const newFilteredFlatRows: Row<TGenerics>[] = []\n const newFilteredRowsById: Record<string, Row<TGenerics>> = {}\n\n\n const recurseFilterRows = (rowsToFilter: Row<TGenerics>[], depth = 0) => {\n const rows: Row<TGenerics>[] = []\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i]!\n\n if (row.subRows?.length) {\n const newRow = createRow(instance, row.id, row.original, row.index, row.depth)\n newRow.columnFilters = row.columnFilters\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1)\n if (!newRow.subRows.length) {\n continue\n }\n row = newRow\n }\n\n if (filterRow(row)) {\n rows.push(row)\n newFilteredRowsById[row.id] = row\n newFilteredRowsById[i] = row\n }\n }\n\n return rows\n }\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n}\n\nexport function filterRowModelFromRoot<TGenerics extends TableGenerics>(\n rowsToFilter: Row<TGenerics>[],\n filterRow: (row: Row<TGenerics>) => any,\n instance: TableInstance<TGenerics>\n): RowModel<TGenerics> {\n const newFilteredFlatRows: Row<TGenerics>[] = []\n const newFilteredRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseFilterRows = (rowsToFilter: Row<TGenerics>[], depth = 0) => {\n // Filter from parents downward first\n\n const rows = []\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i]!\n\n const pass = filterRow(row)\n\n if (pass) {\n if (row.subRows?.length) {\n const newRow = createRow(\n instance,\n row.id,\n row.original,\n row.index,\n row.depth\n )\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1)\n row = newRow\n }\n\n rows.push(row)\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n }\n }\n\n return rows\n }\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n}\n"],"names":["filterRows","rows","filterRowImpl","instance","options","filterFromLeafRows","filterRowModelFromLeafs","filterRowModelFromRoot","rowsToFilter","filterRow","newFilteredFlatRows","newFilteredRowsById","recurseFilterRows","depth","i","length","row","subRows","newRow","createRow","id","original","index","columnFilters","push","flatRows","rowsById","pass"],"mappings":"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"}
|
package/build/esm/index.js
CHANGED
|
@@ -969,38 +969,54 @@ const Expanding = {
|
|
|
969
969
|
};
|
|
970
970
|
|
|
971
971
|
const includesString = (row, columnId, filterValue) => {
|
|
972
|
+
var _row$getValue;
|
|
973
|
+
|
|
972
974
|
const search = filterValue.toLowerCase();
|
|
973
|
-
return row.getValue(columnId).toLowerCase().includes(search);
|
|
975
|
+
return (_row$getValue = row.getValue(columnId)) == null ? void 0 : _row$getValue.toLowerCase().includes(search);
|
|
974
976
|
};
|
|
975
977
|
|
|
976
978
|
includesString.autoRemove = val => testFalsey(val);
|
|
977
979
|
|
|
978
980
|
const includesStringSensitive = (row, columnId, filterValue) => {
|
|
979
|
-
|
|
981
|
+
var _row$getValue2;
|
|
982
|
+
|
|
983
|
+
return (_row$getValue2 = row.getValue(columnId)) == null ? void 0 : _row$getValue2.includes(filterValue);
|
|
980
984
|
};
|
|
981
985
|
|
|
982
986
|
includesStringSensitive.autoRemove = val => testFalsey(val);
|
|
983
987
|
|
|
984
988
|
const equalsString = (row, columnId, filterValue) => {
|
|
985
|
-
|
|
989
|
+
var _row$getValue3;
|
|
990
|
+
|
|
991
|
+
return ((_row$getValue3 = row.getValue(columnId)) == null ? void 0 : _row$getValue3.toLowerCase()) === filterValue.toLowerCase();
|
|
986
992
|
};
|
|
987
993
|
|
|
988
994
|
equalsString.autoRemove = val => testFalsey(val);
|
|
989
995
|
|
|
990
996
|
const arrIncludes = (row, columnId, filterValue) => {
|
|
991
|
-
|
|
997
|
+
var _row$getValue4;
|
|
998
|
+
|
|
999
|
+
return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);
|
|
992
1000
|
};
|
|
993
1001
|
|
|
994
1002
|
arrIncludes.autoRemove = val => testFalsey(val) || !(val != null && val.length);
|
|
995
1003
|
|
|
996
1004
|
const arrIncludesAll = (row, columnId, filterValue) => {
|
|
997
|
-
return !filterValue.some(val =>
|
|
1005
|
+
return !filterValue.some(val => {
|
|
1006
|
+
var _row$getValue5;
|
|
1007
|
+
|
|
1008
|
+
return !((_row$getValue5 = row.getValue(columnId)) != null && _row$getValue5.includes(val));
|
|
1009
|
+
});
|
|
998
1010
|
};
|
|
999
1011
|
|
|
1000
1012
|
arrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);
|
|
1001
1013
|
|
|
1002
1014
|
const arrIncludesSome = (row, columnId, filterValue) => {
|
|
1003
|
-
return filterValue.some(val =>
|
|
1015
|
+
return filterValue.some(val => {
|
|
1016
|
+
var _row$getValue6;
|
|
1017
|
+
|
|
1018
|
+
return (_row$getValue6 = row.getValue(columnId)) == null ? void 0 : _row$getValue6.includes(val);
|
|
1019
|
+
});
|
|
1004
1020
|
};
|
|
1005
1021
|
|
|
1006
1022
|
arrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);
|
|
@@ -1530,7 +1546,7 @@ const Grouping = {
|
|
|
1530
1546
|
getIsAggregated: () => {
|
|
1531
1547
|
var _row$subRows;
|
|
1532
1548
|
|
|
1533
|
-
return !cell.getIsGrouped() && !cell.getIsPlaceholder() && ((_row$subRows = row.subRows)
|
|
1549
|
+
return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);
|
|
1534
1550
|
},
|
|
1535
1551
|
renderAggregatedCell: () => {
|
|
1536
1552
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -1685,7 +1701,7 @@ const Pagination = {
|
|
|
1685
1701
|
setPageIndex: updater => {
|
|
1686
1702
|
instance.setPagination(old => {
|
|
1687
1703
|
let pageIndex = functionalUpdate(updater, old.pageIndex);
|
|
1688
|
-
const maxPageIndex = typeof
|
|
1704
|
+
const maxPageIndex = typeof instance.options.pageCount === 'undefined' || instance.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : instance.options.pageCount - 1;
|
|
1689
1705
|
pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex);
|
|
1690
1706
|
return { ...old,
|
|
1691
1707
|
pageIndex
|
|
@@ -1714,9 +1730,9 @@ const Pagination = {
|
|
|
1714
1730
|
});
|
|
1715
1731
|
},
|
|
1716
1732
|
setPageCount: updater => instance.setPagination(old => {
|
|
1717
|
-
var
|
|
1733
|
+
var _instance$options$pag;
|
|
1718
1734
|
|
|
1719
|
-
let newPageCount = functionalUpdate(updater, (
|
|
1735
|
+
let newPageCount = functionalUpdate(updater, (_instance$options$pag = instance.options.pageCount) != null ? _instance$options$pag : -1);
|
|
1720
1736
|
|
|
1721
1737
|
if (typeof newPageCount === 'number') {
|
|
1722
1738
|
newPageCount = Math.max(-1, newPageCount);
|
|
@@ -1726,7 +1742,7 @@ const Pagination = {
|
|
|
1726
1742
|
pageCount: newPageCount
|
|
1727
1743
|
};
|
|
1728
1744
|
}),
|
|
1729
|
-
getPageOptions: memo(() => [instance.
|
|
1745
|
+
getPageOptions: memo(() => [instance.getPageCount()], pageCount => {
|
|
1730
1746
|
let pageOptions = [];
|
|
1731
1747
|
|
|
1732
1748
|
if (pageCount && pageCount > 0) {
|
|
@@ -1780,15 +1796,9 @@ const Pagination = {
|
|
|
1780
1796
|
return instance._getPaginationRowModel();
|
|
1781
1797
|
},
|
|
1782
1798
|
getPageCount: () => {
|
|
1783
|
-
|
|
1784
|
-
pageCount
|
|
1785
|
-
} = instance.getState().pagination;
|
|
1799
|
+
var _instance$options$pag2;
|
|
1786
1800
|
|
|
1787
|
-
|
|
1788
|
-
return pageCount;
|
|
1789
|
-
}
|
|
1790
|
-
|
|
1791
|
-
return Math.ceil(instance.getPrePaginationRowModel().rows.length / instance.getState().pagination.pageSize);
|
|
1801
|
+
return (_instance$options$pag2 = instance.options.pageCount) != null ? _instance$options$pag2 : Math.ceil(instance.getPrePaginationRowModel().rows.length / instance.getState().pagination.pageSize);
|
|
1792
1802
|
}
|
|
1793
1803
|
};
|
|
1794
1804
|
}
|
|
@@ -3223,8 +3233,6 @@ function filterRows(rows, filterRowImpl, instance) {
|
|
|
3223
3233
|
function filterRowModelFromLeafs(rowsToFilter, filterRow, instance) {
|
|
3224
3234
|
const newFilteredFlatRows = [];
|
|
3225
3235
|
const newFilteredRowsById = {};
|
|
3226
|
-
let row;
|
|
3227
|
-
let newRow;
|
|
3228
3236
|
|
|
3229
3237
|
const recurseFilterRows = function (rowsToFilter, depth) {
|
|
3230
3238
|
if (depth === void 0) {
|
|
@@ -3236,10 +3244,10 @@ function filterRowModelFromLeafs(rowsToFilter, filterRow, instance) {
|
|
|
3236
3244
|
for (let i = 0; i < rowsToFilter.length; i++) {
|
|
3237
3245
|
var _row$subRows;
|
|
3238
3246
|
|
|
3239
|
-
row = rowsToFilter[i];
|
|
3247
|
+
let row = rowsToFilter[i];
|
|
3240
3248
|
|
|
3241
3249
|
if ((_row$subRows = row.subRows) != null && _row$subRows.length) {
|
|
3242
|
-
newRow = createRow(instance, row.id, row.original, row.index, row.depth);
|
|
3250
|
+
const newRow = createRow(instance, row.id, row.original, row.index, row.depth);
|
|
3243
3251
|
newRow.columnFilters = row.columnFilters;
|
|
3244
3252
|
newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
|
|
3245
3253
|
|
|
@@ -3268,10 +3276,7 @@ function filterRowModelFromLeafs(rowsToFilter, filterRow, instance) {
|
|
|
3268
3276
|
}
|
|
3269
3277
|
function filterRowModelFromRoot(rowsToFilter, filterRow, instance) {
|
|
3270
3278
|
const newFilteredFlatRows = [];
|
|
3271
|
-
const newFilteredRowsById = {};
|
|
3272
|
-
let rows;
|
|
3273
|
-
let row;
|
|
3274
|
-
let newRow; // Filters top level and nested rows
|
|
3279
|
+
const newFilteredRowsById = {}; // Filters top level and nested rows
|
|
3275
3280
|
|
|
3276
3281
|
const recurseFilterRows = function (rowsToFilter, depth) {
|
|
3277
3282
|
if (depth === void 0) {
|
|
@@ -3279,17 +3284,17 @@ function filterRowModelFromRoot(rowsToFilter, filterRow, instance) {
|
|
|
3279
3284
|
}
|
|
3280
3285
|
|
|
3281
3286
|
// Filter from parents downward first
|
|
3282
|
-
rows = []; // Apply the filter to any subRows
|
|
3287
|
+
const rows = []; // Apply the filter to any subRows
|
|
3283
3288
|
|
|
3284
3289
|
for (let i = 0; i < rowsToFilter.length; i++) {
|
|
3285
|
-
row = rowsToFilter[i];
|
|
3290
|
+
let row = rowsToFilter[i];
|
|
3286
3291
|
const pass = filterRow(row);
|
|
3287
3292
|
|
|
3288
3293
|
if (pass) {
|
|
3289
3294
|
var _row$subRows2;
|
|
3290
3295
|
|
|
3291
3296
|
if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {
|
|
3292
|
-
newRow = createRow(instance, row.id, row.original, row.index, row.depth);
|
|
3297
|
+
const newRow = createRow(instance, row.id, row.original, row.index, row.depth);
|
|
3293
3298
|
newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
|
|
3294
3299
|
row = newRow;
|
|
3295
3300
|
}
|