UNPKG

dtable-utils

Version:

dtable common utils

102 lines (97 loc) 2.88 kB
'use strict'; 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;