dtable-utils
Version:
dtable common utils
107 lines (102 loc) • 3.73 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var date = require('../../date.js');
var filterPredicate = require('../../constants/filter/filter-predicate.js');
var filterModifier = require('../../constants/filter/filter-modifier.js');
/**
* Filter date
* @param {string} date
* @param {string} filter_predicate
* @param {string} filter_term_modifier
* @param {any} filter_term date string or number etc.
* @param {string|object} other_date date string or { startDate, endDate }
* @returns bool
*/
var dateFilter = function dateFilter(date$1, _ref) {
var filter_predicate = _ref.filter_predicate,
filter_term_modifier = _ref.filter_term_modifier,
filter_term = _ref.filter_term,
other_date = _ref.other_date;
switch (filter_predicate) {
case filterPredicate.FILTER_PREDICATE_TYPE.IS:
{
return filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term || date.DateUtils.format(date$1) === other_date;
}
case filterPredicate.FILTER_PREDICATE_TYPE.IS_WITHIN:
{
if (filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term) {
return true;
}
if (!date$1) {
return false;
}
var startDate = other_date.startDate,
endDate = other_date.endDate;
var currentDate = date.DateUtils.format(date$1);
return currentDate >= startDate && currentDate <= endDate;
}
case filterPredicate.FILTER_PREDICATE_TYPE.IS_BEFORE:
{
if (filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term) {
return true;
}
if (!date$1 || !date.DateUtils.getValidDate(date$1)) {
return false;
}
return date.DateUtils.format(date$1) < other_date;
}
case filterPredicate.FILTER_PREDICATE_TYPE.IS_AFTER:
{
if (filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term) {
return true;
}
if (!date$1 || !date.DateUtils.getValidDate(date$1)) {
return false;
}
return date.DateUtils.format(date$1) > other_date;
}
case filterPredicate.FILTER_PREDICATE_TYPE.IS_ON_OR_BEFORE:
{
if (filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term) {
return true;
}
if (!date$1 || !date.DateUtils.getValidDate(date$1)) {
return false;
}
return date.DateUtils.format(date$1) <= other_date;
}
case filterPredicate.FILTER_PREDICATE_TYPE.IS_ON_OR_AFTER:
{
if (filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term) {
return true;
}
if (!date$1 || !date.DateUtils.getValidDate(date$1)) {
return false;
}
return date.DateUtils.format(date$1) >= other_date;
}
case filterPredicate.FILTER_PREDICATE_TYPE.IS_NOT:
{
if (filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term) {
return true;
}
if (!date$1 || !date.DateUtils.getValidDate(date$1)) {
return false;
}
return date.DateUtils.format(date$1) !== other_date;
}
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
{
return !(date$1 && date.DateUtils.getValidDate(date$1));
}
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
{
return !!(date$1 && date.DateUtils.getValidDate(date$1));
}
default:
{
return false;
}
}
};
exports.dateFilter = dateFilter;