Skip to content

Commit 557f716

Browse files
committed
add serverSide option to addColumnFilters
1 parent 8836e0f commit 557f716

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

src/lib/plugins/addColumnFilters.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ import { derived, writable, type Readable, type Writable } from 'svelte/store';
66
import type { PluginInitTableState } from '../createViewModel';
77
import type { DataBodyCell } from '../bodyCells';
88

9+
export interface ColumnFiltersConfig {
10+
serverSide?: boolean;
11+
}
12+
913
export interface ColumnFiltersState<Item> {
1014
filterValues: Writable<Record<string, unknown>>;
1115
preFilteredRows: Readable<BodyRow<Item>[]>;
@@ -89,7 +93,7 @@ const getFilteredRows = <Item, Row extends BodyRow<Item>>(
8993
};
9094

9195
export const addColumnFilters =
92-
<Item>(): TablePlugin<
96+
<Item>({ serverSide = false }: ColumnFiltersConfig = {}): TablePlugin<
9397
Item,
9498
ColumnFiltersState<Item>,
9599
ColumnFiltersColumnOptions<Item>,
@@ -105,9 +109,14 @@ export const addColumnFilters =
105109
const deriveRows: DeriveRowsFn<Item> = (rows) => {
106110
return derived([rows, filterValues], ([$rows, $filterValues]) => {
107111
preFilteredRows.set($rows);
108-
const _filteredRows = getFilteredRows($rows, $filterValues, columnOptions);
109-
filteredRows.set(_filteredRows);
110-
return _filteredRows;
112+
if (!serverSide) {
113+
const _filteredRows = getFilteredRows($rows, $filterValues, columnOptions);
114+
filteredRows.set(_filteredRows);
115+
return _filteredRows;
116+
} else {
117+
filteredRows.set($rows);
118+
return $rows;
119+
}
111120
});
112121
};
113122

0 commit comments

Comments
 (0)