dtable-utils
Version:
dtable common utils
81 lines (76 loc) • 3.59 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var column = require('../../constants/column.js');
var filterPredicate = require('../../constants/filter/filter-predicate.js');
var core = require('../core.js');
/**
* Filter department-single-select
* @param {number} departmentId
* @param {string} filter_predicate
* @param {number|array} filter_term department id or department ids
* @param {object} userDepartmentIdsMap
* @returns bool
*/
var departmentSingleSelectFilter = function departmentSingleSelectFilter(departmentId, _ref, userDepartmentIdsMap) {
var filter_predicate = _ref.filter_predicate,
filter_term = _ref.filter_term;
switch (filter_predicate) {
case filterPredicate.FILTER_PREDICATE_TYPE.IS:
{
if (!filter_term) return true;
if (filter_term === column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT) {
return core.isCurrentUserDepartment(departmentId, userDepartmentIdsMap);
}
if (filter_term === column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT_AND_SUB) {
return core.isCurrentUserDepartmentAndSub(departmentId, userDepartmentIdsMap);
}
return departmentId === filter_term;
}
case filterPredicate.FILTER_PREDICATE_TYPE.IS_NOT:
{
if (!filter_term) return true;
if (filter_term === column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT) {
return !core.isCurrentUserDepartment(departmentId, userDepartmentIdsMap);
}
if (filter_term === column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT_AND_SUB) {
return !core.isCurrentUserDepartmentAndSub(departmentId, userDepartmentIdsMap);
}
return departmentId !== filter_term;
}
case filterPredicate.FILTER_PREDICATE_TYPE.IS_ANY_OF:
{
if (filter_term.length === 0) return true;
if (filter_term.includes(column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT_AND_SUB)) {
return core.isCurrentUserDepartmentAndSub(departmentId, userDepartmentIdsMap) || core.isSpecificDepartment(departmentId, filter_term);
}
if (filter_term.includes(column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT)) {
return core.isCurrentUserDepartment(departmentId, userDepartmentIdsMap) || core.isSpecificDepartment(departmentId, filter_term);
}
return core.isSpecificDepartment(departmentId, filter_term);
}
case filterPredicate.FILTER_PREDICATE_TYPE.IS_NONE_OF:
{
if (filter_term.length === 0) return true;
if (filter_term.includes(column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT_AND_SUB)) {
return !core.isCurrentUserDepartmentAndSub(departmentId, userDepartmentIdsMap) && !core.isSpecificDepartment(departmentId, filter_term);
}
if (filter_term.includes(column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT)) {
return !core.isCurrentUserDepartment(departmentId, userDepartmentIdsMap) && !core.isSpecificDepartment(departmentId, filter_term);
}
return !core.isSpecificDepartment(departmentId, filter_term);
}
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
{
return !departmentId || typeof departmentId !== 'number';
}
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
{
return !!(departmentId && typeof departmentId === 'number');
}
default:
{
return false;
}
}
};
exports.departmentSingleSelectFilter = departmentSingleSelectFilter;