@grid_z/filter
v1.1.30
Published
A filtering function for complex filtering data of data object.
Readme
@grid_z/Filter – A Filter function for complex filtering
Filter is a lightweight and flexible data utility for React that setup complex filtering of data objects.
- Added new filter type - Added <> and != filter types
- Fixed minor bugs - fixed minor configuration bug
- Fixed initial deployment bugs - Removed configurations that were part of data_store to turn this into is own library.
- Fixed simple text - removed more references to data_store
- Updated logic for null vs undefined
- isNull - When using isNull, rows with a undefined value will be returned since they are considered as null
const x = [ {x:1,y:2,z:3}, {x:1,y:2}, {x:1,y:2,z:null}, ] const filter = {column:"z",filter:"isNull"} //This will return 2 rows. - isNotNull - When using isNotNull, rows with a undefined value will be filtered out.
const x = [ {x:1,y:2,z:3}, {x:1,y:2}, ] const filter = {column:"z",filter:"isNotNull"} //This will filter out the second row
- Simple Filter - Basic filter function
const x = [
{ a: 7, b: 100 },
{ a: 5, b: 6 },
{ a: 4, b: 4 },
{ a: 3, b: 3 },
{ a: 3, b: 1 },
];
const filter: FilterObjectProps = {column:a,filter:'=',value:'5'}
console.log(Filter(filter, x))
/*
[
{ a: 5, b: 6 },
]
*/Or Statement - This will handle or functions.
const x = [ { a: 7, b: 100 }, { a: 5, b: 6 }, { a: 4, b: 4 }, { a: 3, b: 3 }, { a: 3, b: 1 }, ]; const filter: FilterObjectProps = { logic: 'or', filters: [ { column: 'a', filter: '>', value: 3 }, { column: 'b', filter: '<', value: 6 }, ], }, console.log(Filter(filter, x)) /* [ { a: 7, b: 100 }, { a: 5, b: 6 }, { a: 4, b: 4 }, { a: 3, b: 3 }, { a: 3, b: 1 } ] */and Statement - This will handle and statements
const x = [ { a: 7, b: 100 }, { a: 5, b: 6 }, { a: 4, b: 4 }, { a: 3, b: 3 }, { a: 3, b: 1 }, ]; const filter: FilterObjectProps = { logic: 'and', filters: [ { column: 'a', filter: '>', value: 3 }, { column: 'b', filter: '<', value: 6 }, ], }, console.log(Filter(filter, x)) /* [ { a: 4, b: 4 } ] */nested capability - Filter can filter objects with some deep nested filter condigurations
const filter: FilterObjectProps = { logic: 'and', filters: [ { column: 'a', filter: '>', value: 3 }, { column: 'b', filter: '<', value: 6 }, { logic: 'or', filters: [ { column: 'c', filter: 'isNull' }, { column: 'd', filter: 'isNotNull' }, ], }, { logic: 'or', filters: [ { column: 'e', filter: 'contains', value: 'foo' }, { column: 'e', filter: 'doesNotContain', value: 'boo' }, { logic: 'and', filters: [ { column: 'f', filter: 'isNotNull' }, { column: 'g', filter: 'isNotNull' }, ], }, ], }, ], };
