@tanstack/table-core 8.5.30 → 8.6.0

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.
@@ -37,6 +37,7 @@ const Filters = {
37
37
  onColumnFiltersChange: utils.makeStateUpdater('columnFilters', table),
38
38
  onGlobalFilterChange: utils.makeStateUpdater('globalFilter', table),
39
39
  filterFromLeafRows: false,
40
+ maxLeafRowFilterDepth: 100,
40
41
  globalFilterFn: 'auto',
41
42
  getColumnCanGlobalFilter: column => {
42
43
  var _table$getCoreRowMode, _table$getCoreRowMode2;
@@ -1 +1 @@
1
- {"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n FilterMeta,\n FilterFns,\n} from '../types'\nimport { functionalUpdate, isFunction, makeStateUpdater } from '../utils'\n\nexport interface FiltersTableState {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport interface ColumnFilter {\n id: string\n value: unknown\n}\n\nexport interface ResolvedColumnFilter<TData extends RowData> {\n id: string\n resolvedValue: unknown\n filterFn: FilterFn<TData>\n}\n\nexport interface FilterFn<TData extends RowData> {\n (\n row: Row<TData>,\n columnId: string,\n filterValue: any,\n addMeta: (meta: FilterMeta) => void\n ): boolean\n\n resolveFilterValue?: TransformFilterValueFn<TData>\n autoRemove?: ColumnFilterAutoRemoveTestFn<TData>\n}\n\nexport type TransformFilterValueFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => unknown\n\nexport type ColumnFilterAutoRemoveTestFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => boolean\n\nexport type CustomFilterFns<TData extends RowData> = Record<\n string,\n FilterFn<TData>\n>\n\nexport type FilterFnOption<TData extends RowData> =\n | 'auto'\n | BuiltInFilterFn\n | keyof FilterFns\n | FilterFn<TData>\n\nexport interface FiltersColumnDef<TData extends RowData> {\n filterFn?: FilterFnOption<TData>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n}\n\nexport interface FiltersColumn<TData extends RowData> {\n getAutoFilterFn: () => FilterFn<TData> | undefined\n getFilterFn: () => FilterFn<TData> | undefined\n setFilterValue: (updater: Updater<any>) => void\n getCanFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getFacetedRowModel: () => RowModel<TData>\n _getFacetedRowModel?: () => RowModel<TData>\n getIsFiltered: () => boolean\n getFilterValue: () => unknown\n getFilterIndex: () => number\n getFacetedUniqueValues: () => Map<any, number>\n _getFacetedUniqueValues?: () => Map<any, number>\n getFacetedMinMaxValues: () => undefined | [number, number]\n _getFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\nexport interface FiltersRow<TData extends RowData> {\n columnFilters: Record<string, boolean>\n columnFiltersMeta: Record<string, FilterMeta>\n}\n\ninterface FiltersOptionsBase<TData extends RowData> {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\n getFilteredRowModel?: (table: Table<any>) => () => RowModel<any>\n\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n enableColumnFilters?: boolean\n\n // Global\n globalFilterFn?: FilterFnOption<TData>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilter?: boolean\n getColumnCanGlobalFilter?: (column: Column<TData, unknown>) => boolean\n\n // Faceting\n getFacetedRowModel?: (\n table: Table<TData>,\n columnId: string\n ) => () => RowModel<TData>\n getFacetedUniqueValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => Map<any, number>\n getFacetedMinMaxValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => undefined | [number, number]\n}\n\ntype ResolvedFilterFns = keyof FilterFns extends never\n ? {\n filterFns?: Record<string, FilterFn<any>>\n }\n : {\n filterFns: Record<keyof FilterFns, FilterFn<any>>\n }\n\nexport interface FiltersOptions<TData extends RowData>\n extends FiltersOptionsBase<TData>,\n ResolvedFilterFns {}\n\nexport interface FiltersInstance<TData extends RowData> {\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n\n resetColumnFilters: (defaultState?: boolean) => void\n\n // Column Filters\n getPreFilteredRowModel: () => RowModel<TData>\n getFilteredRowModel: () => RowModel<TData>\n _getFilteredRowModel?: () => RowModel<TData>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: (defaultState?: boolean) => void\n getGlobalAutoFilterFn: () => FilterFn<TData> | undefined\n getGlobalFilterFn: () => FilterFn<TData> | undefined\n getGlobalFacetedRowModel: () => RowModel<TData>\n _getGlobalFacetedRowModel?: () => RowModel<TData>\n getGlobalFacetedUniqueValues: () => Map<any, number>\n _getGlobalFacetedUniqueValues?: () => Map<any, number>\n getGlobalFacetedMinMaxValues: () => undefined | [number, number]\n _getGlobalFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\n//\n\nexport const Filters: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): FiltersColumnDef<TData> => {\n return {\n filterFn: 'auto',\n }\n },\n\n getInitialState: (state): FiltersTableState => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): FiltersOptions<TData> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n filterFromLeafRows: false,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n const value = table\n .getCoreRowModel()\n .flatRows[0]?._getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string' || typeof value === 'number'\n },\n }\n },\n\n createColumn: <TData extends RowData>(\n column: Column<TData, unknown>,\n table: Table<TData>\n ): FiltersColumn<TData> => {\n return {\n getAutoFilterFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return filterFns.includesString\n }\n\n if (typeof value === 'number') {\n return filterFns.inNumberRange\n }\n\n if (typeof value === 'boolean') {\n return filterFns.equals\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns.equals\n }\n\n if (Array.isArray(value)) {\n return filterFns.arrIncludes\n }\n\n return filterFns.weakEquals\n },\n getFilterFn: () => {\n return isFunction(column.columnDef.filterFn)\n ? column.columnDef.filterFn\n : column.columnDef.filterFn === 'auto'\n ? column.getAutoFilterFn()\n : table.options.filterFns?.[column.columnDef.filterFn as string] ??\n filterFns[column.columnDef.filterFn as BuiltInFilterFn]\n },\n getCanFilter: () => {\n return (\n (column.columnDef.enableColumnFilter ?? true) &&\n (table.options.enableColumnFilters ?? true) &&\n (table.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanGlobalFilter: () => {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (table.options.enableGlobalFilter ?? true) &&\n (table.options.enableFilters ?? true) &&\n (table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n },\n\n getIsFiltered: () => column.getFilterIndex() > -1,\n\n getFilterValue: () =>\n table.getState().columnFilters?.find(d => d.id === column.id)?.value,\n\n getFilterIndex: () =>\n table.getState().columnFilters?.findIndex(d => d.id === column.id) ??\n -1,\n\n setFilterValue: value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn()\n const previousfilter = old?.find(d => d.id === column.id)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<TData>,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== column.id) ?? []\n }\n\n const newFilterObj = { id: column.id, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === column.id) {\n return newFilterObj\n }\n return d\n }) ?? []\n )\n }\n\n if (old?.length) {\n return [...old, newFilterObj]\n }\n\n return [newFilterObj]\n })\n },\n _getFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return column._getFacetedRowModel()\n },\n _getFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map()\n }\n\n return column._getFacetedUniqueValues()\n },\n _getFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined\n }\n\n return column._getFacetedMinMaxValues()\n },\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): FiltersRow<TData> => {\n return {\n columnFilters: {},\n columnFiltersMeta: {},\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): FiltersInstance<TData> => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString\n },\n\n getGlobalFilterFn: () => {\n const { globalFilterFn: globalFilterFn } = table.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table.getGlobalAutoFilterFn()\n : table.options.filterFns?.[globalFilterFn as string] ??\n filterFns[globalFilterFn as BuiltInFilterFn]\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = table.getAllLeafColumns()\n\n const updateFn = (old: ColumnFiltersState) => {\n return functionalUpdate(updater, old)?.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id)\n\n if (column) {\n const filterFn = column.getFilterFn()\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n table.options.onColumnFiltersChange?.(updateFn)\n },\n\n setGlobalFilter: updater => {\n table.options.onGlobalFilterChange?.(updater)\n },\n\n resetGlobalFilter: defaultState => {\n table.setGlobalFilter(\n defaultState ? undefined : table.initialState.globalFilter\n )\n },\n\n resetColumnFilters: defaultState => {\n table.setColumnFilters(\n defaultState ? [] : table.initialState?.columnFilters ?? []\n )\n },\n\n getPreFilteredRowModel: () => table.getCoreRowModel(),\n getFilteredRowModel: () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table)\n }\n\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getFilteredRowModel()\n },\n\n _getGlobalFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, '__global__'),\n\n getGlobalFacetedRowModel: () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getGlobalFacetedRowModel()\n },\n\n _getGlobalFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map()\n }\n\n return table._getGlobalFacetedUniqueValues()\n },\n\n _getGlobalFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return\n }\n\n return table._getGlobalFacetedMinMaxValues()\n },\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TData extends RowData>(\n filterFn?: FilterFn<TData>,\n value?: any,\n column?: Column<TData, unknown>\n) {\n return (\n (filterFn && filterFn.autoRemove\n ? filterFn.autoRemove(value, column)\n : false) ||\n typeof value === 'undefined' ||\n (typeof value === 'string' && !value)\n )\n}\n"],"names":["Filters","getDefaultColumnDef","filterFn","getInitialState","state","columnFilters","globalFilter","undefined","getDefaultOptions","table","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","filterFromLeafRows","globalFilterFn","getColumnCanGlobalFilter","column","value","getCoreRowModel","flatRows","_getAllCellsByColumnId","id","getValue","createColumn","getAutoFilterFn","firstRow","filterFns","includesString","inNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getFilterFn","isFunction","columnDef","options","getCanFilter","enableColumnFilter","enableColumnFilters","enableFilters","accessorFn","getCanGlobalFilter","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","getState","find","d","findIndex","setFilterValue","setColumnFilters","old","previousfilter","newFilter","functionalUpdate","shouldAutoRemoveFilter","filter","newFilterObj","map","length","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","createRow","row","columnFiltersMeta","createTable","getGlobalAutoFilterFn","getGlobalFilterFn","updater","leafColumns","getAllLeafColumns","updateFn","setGlobalFilter","resetGlobalFilter","defaultState","initialState","resetColumnFilters","getFilteredRowModel","_getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","autoRemove"],"mappings":"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"}
1
+ {"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n FilterMeta,\n FilterFns,\n} from '../types'\nimport { functionalUpdate, isFunction, makeStateUpdater } from '../utils'\n\nexport interface FiltersTableState {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport interface ColumnFilter {\n id: string\n value: unknown\n}\n\nexport interface ResolvedColumnFilter<TData extends RowData> {\n id: string\n resolvedValue: unknown\n filterFn: FilterFn<TData>\n}\n\nexport interface FilterFn<TData extends RowData> {\n (\n row: Row<TData>,\n columnId: string,\n filterValue: any,\n addMeta: (meta: FilterMeta) => void\n ): boolean\n\n resolveFilterValue?: TransformFilterValueFn<TData>\n autoRemove?: ColumnFilterAutoRemoveTestFn<TData>\n}\n\nexport type TransformFilterValueFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => unknown\n\nexport type ColumnFilterAutoRemoveTestFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => boolean\n\nexport type CustomFilterFns<TData extends RowData> = Record<\n string,\n FilterFn<TData>\n>\n\nexport type FilterFnOption<TData extends RowData> =\n | 'auto'\n | BuiltInFilterFn\n | keyof FilterFns\n | FilterFn<TData>\n\nexport interface FiltersColumnDef<TData extends RowData> {\n filterFn?: FilterFnOption<TData>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n}\n\nexport interface FiltersColumn<TData extends RowData> {\n getAutoFilterFn: () => FilterFn<TData> | undefined\n getFilterFn: () => FilterFn<TData> | undefined\n setFilterValue: (updater: Updater<any>) => void\n getCanFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getFacetedRowModel: () => RowModel<TData>\n _getFacetedRowModel?: () => RowModel<TData>\n getIsFiltered: () => boolean\n getFilterValue: () => unknown\n getFilterIndex: () => number\n getFacetedUniqueValues: () => Map<any, number>\n _getFacetedUniqueValues?: () => Map<any, number>\n getFacetedMinMaxValues: () => undefined | [number, number]\n _getFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\nexport interface FiltersRow<TData extends RowData> {\n columnFilters: Record<string, boolean>\n columnFiltersMeta: Record<string, FilterMeta>\n}\n\ninterface FiltersOptionsBase<TData extends RowData> {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\n maxLeafRowFilterDepth?: number\n getFilteredRowModel?: (table: Table<any>) => () => RowModel<any>\n\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n enableColumnFilters?: boolean\n\n // Global\n globalFilterFn?: FilterFnOption<TData>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilter?: boolean\n getColumnCanGlobalFilter?: (column: Column<TData, unknown>) => boolean\n\n // Faceting\n getFacetedRowModel?: (\n table: Table<TData>,\n columnId: string\n ) => () => RowModel<TData>\n getFacetedUniqueValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => Map<any, number>\n getFacetedMinMaxValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => undefined | [number, number]\n}\n\ntype ResolvedFilterFns = keyof FilterFns extends never\n ? {\n filterFns?: Record<string, FilterFn<any>>\n }\n : {\n filterFns: Record<keyof FilterFns, FilterFn<any>>\n }\n\nexport interface FiltersOptions<TData extends RowData>\n extends FiltersOptionsBase<TData>,\n ResolvedFilterFns {}\n\nexport interface FiltersInstance<TData extends RowData> {\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n\n resetColumnFilters: (defaultState?: boolean) => void\n\n // Column Filters\n getPreFilteredRowModel: () => RowModel<TData>\n getFilteredRowModel: () => RowModel<TData>\n _getFilteredRowModel?: () => RowModel<TData>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: (defaultState?: boolean) => void\n getGlobalAutoFilterFn: () => FilterFn<TData> | undefined\n getGlobalFilterFn: () => FilterFn<TData> | undefined\n getGlobalFacetedRowModel: () => RowModel<TData>\n _getGlobalFacetedRowModel?: () => RowModel<TData>\n getGlobalFacetedUniqueValues: () => Map<any, number>\n _getGlobalFacetedUniqueValues?: () => Map<any, number>\n getGlobalFacetedMinMaxValues: () => undefined | [number, number]\n _getGlobalFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\n//\n\nexport const Filters: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): FiltersColumnDef<TData> => {\n return {\n filterFn: 'auto',\n }\n },\n\n getInitialState: (state): FiltersTableState => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): FiltersOptions<TData> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n const value = table\n .getCoreRowModel()\n .flatRows[0]?._getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string' || typeof value === 'number'\n },\n }\n },\n\n createColumn: <TData extends RowData>(\n column: Column<TData, unknown>,\n table: Table<TData>\n ): FiltersColumn<TData> => {\n return {\n getAutoFilterFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return filterFns.includesString\n }\n\n if (typeof value === 'number') {\n return filterFns.inNumberRange\n }\n\n if (typeof value === 'boolean') {\n return filterFns.equals\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns.equals\n }\n\n if (Array.isArray(value)) {\n return filterFns.arrIncludes\n }\n\n return filterFns.weakEquals\n },\n getFilterFn: () => {\n return isFunction(column.columnDef.filterFn)\n ? column.columnDef.filterFn\n : column.columnDef.filterFn === 'auto'\n ? column.getAutoFilterFn()\n : table.options.filterFns?.[column.columnDef.filterFn as string] ??\n filterFns[column.columnDef.filterFn as BuiltInFilterFn]\n },\n getCanFilter: () => {\n return (\n (column.columnDef.enableColumnFilter ?? true) &&\n (table.options.enableColumnFilters ?? true) &&\n (table.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanGlobalFilter: () => {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (table.options.enableGlobalFilter ?? true) &&\n (table.options.enableFilters ?? true) &&\n (table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n },\n\n getIsFiltered: () => column.getFilterIndex() > -1,\n\n getFilterValue: () =>\n table.getState().columnFilters?.find(d => d.id === column.id)?.value,\n\n getFilterIndex: () =>\n table.getState().columnFilters?.findIndex(d => d.id === column.id) ??\n -1,\n\n setFilterValue: value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn()\n const previousfilter = old?.find(d => d.id === column.id)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<TData>,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== column.id) ?? []\n }\n\n const newFilterObj = { id: column.id, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === column.id) {\n return newFilterObj\n }\n return d\n }) ?? []\n )\n }\n\n if (old?.length) {\n return [...old, newFilterObj]\n }\n\n return [newFilterObj]\n })\n },\n _getFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return column._getFacetedRowModel()\n },\n _getFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map()\n }\n\n return column._getFacetedUniqueValues()\n },\n _getFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined\n }\n\n return column._getFacetedMinMaxValues()\n },\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): FiltersRow<TData> => {\n return {\n columnFilters: {},\n columnFiltersMeta: {},\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): FiltersInstance<TData> => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString\n },\n\n getGlobalFilterFn: () => {\n const { globalFilterFn: globalFilterFn } = table.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table.getGlobalAutoFilterFn()\n : table.options.filterFns?.[globalFilterFn as string] ??\n filterFns[globalFilterFn as BuiltInFilterFn]\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = table.getAllLeafColumns()\n\n const updateFn = (old: ColumnFiltersState) => {\n return functionalUpdate(updater, old)?.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id)\n\n if (column) {\n const filterFn = column.getFilterFn()\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n table.options.onColumnFiltersChange?.(updateFn)\n },\n\n setGlobalFilter: updater => {\n table.options.onGlobalFilterChange?.(updater)\n },\n\n resetGlobalFilter: defaultState => {\n table.setGlobalFilter(\n defaultState ? undefined : table.initialState.globalFilter\n )\n },\n\n resetColumnFilters: defaultState => {\n table.setColumnFilters(\n defaultState ? [] : table.initialState?.columnFilters ?? []\n )\n },\n\n getPreFilteredRowModel: () => table.getCoreRowModel(),\n getFilteredRowModel: () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table)\n }\n\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getFilteredRowModel()\n },\n\n _getGlobalFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, '__global__'),\n\n getGlobalFacetedRowModel: () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getGlobalFacetedRowModel()\n },\n\n _getGlobalFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map()\n }\n\n return table._getGlobalFacetedUniqueValues()\n },\n\n _getGlobalFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return\n }\n\n return table._getGlobalFacetedMinMaxValues()\n },\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TData extends RowData>(\n filterFn?: FilterFn<TData>,\n value?: any,\n column?: Column<TData, unknown>\n) {\n return (\n (filterFn && filterFn.autoRemove\n ? filterFn.autoRemove(value, column)\n : false) ||\n typeof value === 'undefined' ||\n (typeof value === 'string' && !value)\n )\n}\n"],"names":["Filters","getDefaultColumnDef","filterFn","getInitialState","state","columnFilters","globalFilter","undefined","getDefaultOptions","table","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","filterFromLeafRows","maxLeafRowFilterDepth","globalFilterFn","getColumnCanGlobalFilter","column","value","getCoreRowModel","flatRows","_getAllCellsByColumnId","id","getValue","createColumn","getAutoFilterFn","firstRow","filterFns","includesString","inNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getFilterFn","isFunction","columnDef","options","getCanFilter","enableColumnFilter","enableColumnFilters","enableFilters","accessorFn","getCanGlobalFilter","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","getState","find","d","findIndex","setFilterValue","setColumnFilters","old","previousfilter","newFilter","functionalUpdate","shouldAutoRemoveFilter","filter","newFilterObj","map","length","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","createRow","row","columnFiltersMeta","createTable","getGlobalAutoFilterFn","getGlobalFilterFn","updater","leafColumns","getAllLeafColumns","updateFn","setGlobalFilter","resetGlobalFilter","defaultState","initialState","resetColumnFilters","getFilteredRowModel","_getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","autoRemove"],"mappings":"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"}
@@ -23,7 +23,11 @@ function filterRows(rows, filterRowImpl, table) {
23
23
  function filterRowModelFromLeafs(rowsToFilter, filterRow, table) {
24
24
  const newFilteredFlatRows = [];
25
25
  const newFilteredRowsById = {};
26
+ const maxDepth = table.options.maxLeafRowFilterDepth ?? 100;
26
27
  const recurseFilterRows = function (rowsToFilter, depth) {
28
+ if (depth === void 0) {
29
+ depth = 0;
30
+ }
27
31
  const rows = [];
28
32
 
29
33
  // Filter from children up first
@@ -32,8 +36,8 @@ function filterRowModelFromLeafs(rowsToFilter, filterRow, table) {
32
36
  let row$1 = rowsToFilter[i];
33
37
  const newRow = row.createRow(table, row$1.id, row$1.original, row$1.index, row$1.depth);
34
38
  newRow.columnFilters = row$1.columnFilters;
35
- if ((_row$subRows = row$1.subRows) != null && _row$subRows.length) {
36
- newRow.subRows = recurseFilterRows(row$1.subRows);
39
+ if ((_row$subRows = row$1.subRows) != null && _row$subRows.length && depth < maxDepth) {
40
+ newRow.subRows = recurseFilterRows(row$1.subRows, depth + 1);
37
41
  row$1 = newRow;
38
42
  if (filterRow(row$1) && !newRow.subRows.length) {
39
43
  rows.push(row$1);
@@ -67,9 +71,13 @@ function filterRowModelFromLeafs(rowsToFilter, filterRow, table) {
67
71
  function filterRowModelFromRoot(rowsToFilter, filterRow, table) {
68
72
  const newFilteredFlatRows = [];
69
73
  const newFilteredRowsById = {};
74
+ const maxDepth = table.options.maxLeafRowFilterDepth ?? 100;
70
75
 
71
76
  // Filters top level and nested rows
72
77
  const recurseFilterRows = function (rowsToFilter, depth) {
78
+ if (depth === void 0) {
79
+ depth = 0;
80
+ }
73
81
  // Filter from parents downward first
74
82
 
75
83
  const rows = [];
@@ -80,9 +88,9 @@ function filterRowModelFromRoot(rowsToFilter, filterRow, table) {
80
88
  const pass = filterRow(row$1);
81
89
  if (pass) {
82
90
  var _row$subRows2;
83
- if ((_row$subRows2 = row$1.subRows) != null && _row$subRows2.length) {
91
+ if ((_row$subRows2 = row$1.subRows) != null && _row$subRows2.length && depth < maxDepth) {
84
92
  const newRow = row.createRow(table, row$1.id, row$1.original, row$1.index, row$1.depth);
85
- newRow.subRows = recurseFilterRows(row$1.subRows);
93
+ newRow.subRows = recurseFilterRows(row$1.subRows, depth + 1);
86
94
  row$1 = newRow;
87
95
  }
88
96
  rows.push(row$1);
@@ -1 +1 @@
1
- {"version":3,"file":"filterRowsUtils.js","sources":["../../../src/utils/filterRowsUtils.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Row, RowModel, Table, RowData } from '../types'\n\nexport function filterRows<TData extends RowData>(\n rows: Row<TData>[],\n filterRowImpl: (row: Row<TData>) => any,\n table: Table<TData>\n) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table)\n }\n\n return filterRowModelFromRoot(rows, filterRowImpl, table)\n}\n\nexport function filterRowModelFromLeafs<TData extends RowData>(\n rowsToFilter: Row<TData>[],\n filterRow: (row: Row<TData>) => Row<TData>[],\n table: Table<TData>\n): RowModel<TData> {\n const newFilteredFlatRows: Row<TData>[] = []\n const newFilteredRowsById: Record<string, Row<TData>> = {}\n\n const recurseFilterRows = (rowsToFilter: Row<TData>[], depth = 0) => {\n const rows: Row<TData>[] = []\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i]!\n\n const newRow = createRow(\n table,\n row.id,\n row.original,\n row.index,\n row.depth\n )\n newRow.columnFilters = row.columnFilters\n\n if (row.subRows?.length) {\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1)\n row = newRow\n\n if (filterRow(row) && !newRow.subRows.length) {\n rows.push(row)\n newFilteredRowsById[row.id] = row\n newFilteredRowsById[i] = row\n continue\n }\n\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row)\n newFilteredRowsById[row.id] = row\n newFilteredRowsById[i] = row\n continue\n }\n } else {\n row = newRow\n if (filterRow(row)) {\n rows.push(row)\n newFilteredRowsById[row.id] = row\n newFilteredRowsById[i] = row\n }\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<TData extends RowData>(\n rowsToFilter: Row<TData>[],\n filterRow: (row: Row<TData>) => any,\n table: Table<TData>\n): RowModel<TData> {\n const newFilteredFlatRows: Row<TData>[] = []\n const newFilteredRowsById: Record<string, Row<TData>> = {}\n\n // Filters top level and nested rows\n const recurseFilterRows = (rowsToFilter: Row<TData>[], 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 table,\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","table","options","filterFromLeafRows","filterRowModelFromLeafs","filterRowModelFromRoot","rowsToFilter","filterRow","newFilteredFlatRows","newFilteredRowsById","recurseFilterRows","depth","i","length","row","newRow","createRow","id","original","index","columnFilters","subRows","push","flatRows","rowsById","pass"],"mappings":"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"}
1
+ {"version":3,"file":"filterRowsUtils.js","sources":["../../../src/utils/filterRowsUtils.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Row, RowModel, Table, RowData } from '../types'\n\nexport function filterRows<TData extends RowData>(\n rows: Row<TData>[],\n filterRowImpl: (row: Row<TData>) => any,\n table: Table<TData>\n) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table)\n }\n\n return filterRowModelFromRoot(rows, filterRowImpl, table)\n}\n\nexport function filterRowModelFromLeafs<TData extends RowData>(\n rowsToFilter: Row<TData>[],\n filterRow: (row: Row<TData>) => Row<TData>[],\n table: Table<TData>\n): RowModel<TData> {\n const newFilteredFlatRows: Row<TData>[] = []\n const newFilteredRowsById: Record<string, Row<TData>> = {}\n const maxDepth = table.options.maxLeafRowFilterDepth ?? 100\n\n const recurseFilterRows = (rowsToFilter: Row<TData>[], depth = 0) => {\n const rows: Row<TData>[] = []\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i]!\n\n const newRow = createRow(\n table,\n row.id,\n row.original,\n row.index,\n row.depth\n )\n newRow.columnFilters = row.columnFilters\n\n if (row.subRows?.length && depth < maxDepth) {\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1)\n row = newRow\n\n if (filterRow(row) && !newRow.subRows.length) {\n rows.push(row)\n newFilteredRowsById[row.id] = row\n newFilteredRowsById[i] = row\n continue\n }\n\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row)\n newFilteredRowsById[row.id] = row\n newFilteredRowsById[i] = row\n continue\n }\n } else {\n row = newRow\n if (filterRow(row)) {\n rows.push(row)\n newFilteredRowsById[row.id] = row\n newFilteredRowsById[i] = row\n }\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<TData extends RowData>(\n rowsToFilter: Row<TData>[],\n filterRow: (row: Row<TData>) => any,\n table: Table<TData>\n): RowModel<TData> {\n const newFilteredFlatRows: Row<TData>[] = []\n const newFilteredRowsById: Record<string, Row<TData>> = {}\n const maxDepth = table.options.maxLeafRowFilterDepth ?? 100\n\n // Filters top level and nested rows\n const recurseFilterRows = (rowsToFilter: Row<TData>[], 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 && depth < maxDepth) {\n const newRow = createRow(\n table,\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","table","options","filterFromLeafRows","filterRowModelFromLeafs","filterRowModelFromRoot","rowsToFilter","filterRow","newFilteredFlatRows","newFilteredRowsById","maxDepth","maxLeafRowFilterDepth","recurseFilterRows","depth","i","length","row","newRow","createRow","id","original","index","columnFilters","subRows","push","flatRows","rowsById","pass"],"mappings":"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"}
@@ -954,6 +954,7 @@ const Filters = {
954
954
  onColumnFiltersChange: makeStateUpdater('columnFilters', table),
955
955
  onGlobalFilterChange: makeStateUpdater('globalFilter', table),
956
956
  filterFromLeafRows: false,
957
+ maxLeafRowFilterDepth: 100,
957
958
  globalFilterFn: 'auto',
958
959
  getColumnCanGlobalFilter: column => {
959
960
  var _table$getCoreRowMode, _table$getCoreRowMode2;
@@ -2835,7 +2836,11 @@ function filterRows(rows, filterRowImpl, table) {
2835
2836
  function filterRowModelFromLeafs(rowsToFilter, filterRow, table) {
2836
2837
  const newFilteredFlatRows = [];
2837
2838
  const newFilteredRowsById = {};
2839
+ const maxDepth = table.options.maxLeafRowFilterDepth ?? 100;
2838
2840
  const recurseFilterRows = function (rowsToFilter, depth) {
2841
+ if (depth === void 0) {
2842
+ depth = 0;
2843
+ }
2839
2844
  const rows = [];
2840
2845
 
2841
2846
  // Filter from children up first
@@ -2844,8 +2849,8 @@ function filterRowModelFromLeafs(rowsToFilter, filterRow, table) {
2844
2849
  let row = rowsToFilter[i];
2845
2850
  const newRow = createRow(table, row.id, row.original, row.index, row.depth);
2846
2851
  newRow.columnFilters = row.columnFilters;
2847
- if ((_row$subRows = row.subRows) != null && _row$subRows.length) {
2848
- newRow.subRows = recurseFilterRows(row.subRows);
2852
+ if ((_row$subRows = row.subRows) != null && _row$subRows.length && depth < maxDepth) {
2853
+ newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
2849
2854
  row = newRow;
2850
2855
  if (filterRow(row) && !newRow.subRows.length) {
2851
2856
  rows.push(row);
@@ -2879,9 +2884,13 @@ function filterRowModelFromLeafs(rowsToFilter, filterRow, table) {
2879
2884
  function filterRowModelFromRoot(rowsToFilter, filterRow, table) {
2880
2885
  const newFilteredFlatRows = [];
2881
2886
  const newFilteredRowsById = {};
2887
+ const maxDepth = table.options.maxLeafRowFilterDepth ?? 100;
2882
2888
 
2883
2889
  // Filters top level and nested rows
2884
2890
  const recurseFilterRows = function (rowsToFilter, depth) {
2891
+ if (depth === void 0) {
2892
+ depth = 0;
2893
+ }
2885
2894
  // Filter from parents downward first
2886
2895
 
2887
2896
  const rows = [];
@@ -2892,9 +2901,9 @@ function filterRowModelFromRoot(rowsToFilter, filterRow, table) {
2892
2901
  const pass = filterRow(row);
2893
2902
  if (pass) {
2894
2903
  var _row$subRows2;
2895
- if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {
2904
+ if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length && depth < maxDepth) {
2896
2905
  const newRow = createRow(table, row.id, row.original, row.index, row.depth);
2897
- newRow.subRows = recurseFilterRows(row.subRows);
2906
+ newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
2898
2907
  row = newRow;
2899
2908
  }
2900
2909
  rows.push(row);