frontend/.pnpm-store/v3/files/60/04e70e0e63d1cb2603dcd15b8c7577d4d648357ce20a091f8d1715ad144247e73b3169db1996d4d865e3734324a48c951283a7a98636b53de98f5a171f3392

31 lines
932 B
Plaintext

export default class Filters {
filters;
constructor(context) {
this.filters = context.filters;
}
set(value, filterBy) {
const parsed = this.parse(filterBy);
this.filters.update(store => {
const filter = { filterBy: parsed.fn, value: value, identifier: parsed.identifier };
store = store.filter(item => { return item.identifier !== parsed.identifier && item.value.length > 0; });
store.push(filter);
return store;
});
}
remove() {
this.filters.update(store => store = []);
}
parse(filterBy) {
if (typeof (filterBy) === 'string') {
return {
fn: (row) => row[filterBy],
identifier: filterBy.toString()
};
}
return {
fn: filterBy,
identifier: filterBy.toString()
};
}
}