dtable-utils
Version:
dtable common utils
102 lines (97 loc) • 2.88 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var number = require('../../number.js');
var filterPredicate = require('../../constants/filter/filter-predicate.js');
/**
* Filter number
* @param {number} number
* @param {string} filter_predicate
* @param {number} filter_term
* @returns bool
*/
var numberFilter = function numberFilter(number$1, _ref) {
var filter_predicate = _ref.filter_predicate,
filter_term = _ref.filter_term;
switch (filter_predicate) {
case filterPredicate.FILTER_PREDICATE_TYPE.EQUAL:
{
if (!filter_term && filter_term !== 0) {
return true;
}
if (!number$1 && number$1 !== 0) {
return false;
}
return number.isNumberEqual(filter_term, number$1);
}
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EQUAL:
{
if (!filter_term && filter_term !== 0 || !number$1 && number$1 !== 0) {
return true;
}
return !number.isNumberEqual(filter_term, number$1);
}
case filterPredicate.FILTER_PREDICATE_TYPE.LESS:
{
if (!filter_term && filter_term !== 0) {
return true;
}
if (!number$1 && number$1 !== 0 || number.isNumberEqual(number$1, filter_term)) {
return false;
}
return number$1 < filter_term;
}
case filterPredicate.FILTER_PREDICATE_TYPE.GREATER:
{
if (!filter_term && filter_term !== 0) {
return true;
}
if (!number$1 && number$1 !== 0 || number.isNumberEqual(number$1, filter_term)) {
return false;
}
return number$1 > filter_term;
}
case filterPredicate.FILTER_PREDICATE_TYPE.LESS_OR_EQUAL:
{
if (!filter_term && filter_term !== 0) {
return true;
}
if (!number$1 && number$1 !== 0) {
return false;
}
if (number.isNumberEqual(number$1, filter_term)) {
return true;
}
return number$1 < filter_term;
}
case filterPredicate.FILTER_PREDICATE_TYPE.GREATER_OR_EQUAL:
{
if (!filter_term && filter_term !== 0) {
return true;
}
if (!number$1 && number$1 !== 0) {
return false;
}
return number.isNumberEqual(number$1, filter_term) || number$1 > filter_term;
}
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
{
if (number$1 === 0) {
return false;
}
return !number$1 || typeof number$1 !== 'number';
}
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
{
// must be a number
if (number$1 === 0) {
return true;
}
return !!(number$1 && typeof number$1 === 'number');
}
default:
{
return false;
}
}
};
exports.numberFilter = numberFilter;