UNPKG

dtable-utils

Version:

dtable common utils

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