You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.8 KiB
62 lines
1.8 KiB
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;
|