|
|
|
import * as filterTypes from './filterTypes';
|
|
|
|
|
|
|
|
const filterTypePredicates = {
|
|
|
|
[filterTypes.CONTAINS]: function(itemValue, filterValue) {
|
|
|
|
if (Array.isArray(itemValue)) {
|
|
|
|
return itemValue.some((v) => v === filterValue);
|
|
|
|
}
|
|
|
|
|
|
|
|
return itemValue.toLowerCase().contains(filterValue.toLowerCase());
|
|
|
|
},
|
|
|
|
|
|
|
|
[filterTypes.EQUAL]: function(itemValue, filterValue) {
|
|
|
|
return itemValue === filterValue;
|
|
|
|
},
|
|
|
|
|
|
|
|
[filterTypes.GREATER_THAN]: function(itemValue, filterValue) {
|
|
|
|
return itemValue > filterValue;
|
|
|
|
},
|
|
|
|
|
|
|
|
[filterTypes.GREATER_THAN_OR_EQUAL]: function(itemValue, filterValue) {
|
|
|
|
return itemValue >= filterValue;
|
|
|
|
},
|
|
|
|
|
|
|
|
[filterTypes.LESS_THAN]: function(itemValue, filterValue) {
|
|
|
|
return itemValue < filterValue;
|
|
|
|
},
|
|
|
|
|
|
|
|
[filterTypes.LESS_THAN_OR_EQUAL]: function(itemValue, filterValue) {
|
|
|
|
return itemValue <= filterValue;
|
|
|
|
},
|
|
|
|
|
|
|
|
[filterTypes.NOT_CONTAINS]: function(itemValue, filterValue) {
|
|
|
|
if (Array.isArray(itemValue)) {
|
|
|
|
return !itemValue.some((v) => v === filterValue);
|
|
|
|
}
|
|
|
|
|
|
|
|
return !itemValue.toLowerCase().contains(filterValue.toLowerCase());
|
|
|
|
},
|
|
|
|
|
|
|
|
[filterTypes.NOT_EQUAL]: function(itemValue, filterValue) {
|
|
|
|
return itemValue !== filterValue;
|
|
|
|
},
|
|
|
|
|
|
|
|
[filterTypes.STARTS_WITH]: function(itemValue, filterValue) {
|
|
|
|
return itemValue.toLowerCase().startsWith(filterValue.toLowerCase());
|
|
|
|
},
|
|
|
|
|
|
|
|
[filterTypes.NOT_STARTS_WITH]: function(itemValue, filterValue) {
|
|
|
|
return !itemValue.toLowerCase().startsWith(filterValue.toLowerCase());
|
|
|
|
},
|
|
|
|
|
|
|
|
[filterTypes.ENDS_WITH]: function(itemValue, filterValue) {
|
|
|
|
return itemValue.toLowerCase().endsWith(filterValue.toLowerCase());
|
|
|
|
},
|
|
|
|
|
|
|
|
[filterTypes.NOT_ENDS_WITH]: function(itemValue, filterValue) {
|
|
|
|
return !itemValue.toLowerCase().endsWith(filterValue.toLowerCase());
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
export default filterTypePredicates;
|