UNPKG

dtable-utils

Version:

dtable common utils

64 lines (59 loc) 1.96 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var number = require('./number.js'); var date = require('./date.js'); var checkbox = require('./checkbox.js'); var text = require('./text.js'); var array = require('./array.js'); var cellValue = require('../../cell-value-get/cell-value.js'); var formula = require('../../constants/formula.js'); /** * Filter formula * @param {any} computedValue cell value from formulaRow * @param {object} filter e.g. { filter_predicate, column, ... } * @param {string} username * @param {string} userId * @returns bool */ var formulaFilter = function formulaFilter(computedValue, filter, _ref) { var username = _ref.username, userId = _ref.userId, userDepartmentIdsMap = _ref.userDepartmentIdsMap; var data = filter.column.data; var _ref2 = data || {}, result_type = _ref2.result_type; switch (result_type) { case formula.FORMULA_RESULT_TYPE.NUMBER: { return number.numberFilter(computedValue, filter); } case formula.FORMULA_RESULT_TYPE.DATE: { return date.dateFilter(computedValue, filter); } case formula.FORMULA_RESULT_TYPE.BOOL: { var normalizedCellValue = computedValue; if (computedValue === 'true') { normalizedCellValue = true; } else if (computedValue === 'false') { normalizedCellValue = false; } return checkbox.checkboxFilter(normalizedCellValue, filter); } case formula.FORMULA_RESULT_TYPE.ARRAY: { return array.filterByArrayType(computedValue, filter, { username: username, userId: userId, userDepartmentIdsMap: userDepartmentIdsMap }); } default: { // FORMULA_RESULT_TYPE.STRING return text.textFilter(cellValue.getFormulaDisplayString(computedValue, data) || '', filter, userId); } } }; exports.formulaFilter = formulaFilter;