UNPKG

dtable-utils

Version:

dtable common utils

101 lines (95 loc) 3.64 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var cellValue = require('../../cell-value-get/cell-value.js'); var number = require('../../column/number.js'); var checkbox = require('./checkbox.js'); var collaborator = require('./collaborator.js'); var date = require('./date.js'); var text = require('./text.js'); var multipleSelect = require('./multiple-select.js'); var departmentMultipleSelect = require('./department-multiple-select.js'); var number$1 = require('./number.js'); var cellType = require('../../constants/cell-type.js'); var column = require('../../constants/column.js'); var filterPredicate = require('../../constants/filter/filter-predicate.js'); var TRUE_VALUE = [true, 'true']; /** * Filter by array type * @param {array} array e.g. [ cellValue, ... ] * @param {object} filter e.g. { filter_predicate, column, ... } * @param {string} username * @param {string} userId * @returns bool */ var filterByArrayType = function filterByArrayType(array, filter, _ref) { var username = _ref.username, userId = _ref.userId, userDepartmentIdsMap = _ref.userDepartmentIdsMap; var column$1 = filter.column, linked_column = filter.linked_column; var filter_predicate = filter.filter_predicate; if (Array.isArray(array)) { if (filter_predicate === filterPredicate.FILTER_PREDICATE_TYPE.EMPTY) { return array.length === 0; } if (filter_predicate === filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY) { return array.length > 0; } } if (!linked_column) { return text.textFilter('', filter, userId); } var linkedColumnType = linked_column.type; if (linkedColumnType === cellType.CellType.BOOL || linkedColumnType === cellType.CellType.CHECKBOX) { var normalizedArray = array; if (Array.isArray(array)) { normalizedArray = array[0]; } normalizedArray = TRUE_VALUE.includes(normalizedArray); return checkbox.checkboxFilter(normalizedArray, filter); } if (linkedColumnType === cellType.CellType.SINGLE_SELECT) { var _normalizedArray = array; if (array && !Array.isArray(array)) { _normalizedArray = [array]; } return multipleSelect.multipleSelectFilter(_normalizedArray, filter); } if (linkedColumnType === cellType.CellType.MULTIPLE_SELECT) { return multipleSelect.multipleSelectFilter(array, filter); } if (linkedColumnType === cellType.CellType.DEPARTMENT_SINGLE_SELECT) { var _normalizedArray2 = array; if (array && !Array.isArray(array)) { _normalizedArray2 = [array]; } return departmentMultipleSelect.departmentMultipleSelectFilter(_normalizedArray2, filter, userDepartmentIdsMap); } if (number.isNumericColumn({ type: linkedColumnType })) { var _normalizedArray3 = array; if (Array.isArray(array)) { var cellValueLength = array.length; if (cellValueLength === 0) { _normalizedArray3 = ''; } else if (cellValueLength === 1) { _normalizedArray3 = array[0]; } } return number$1.numberFilter(_normalizedArray3, filter); } if (column.DATE_COLUMN_OPTIONS.includes(linkedColumnType)) { var newCellValue = array; if (Array.isArray(array)) { newCellValue = String(array); } return date.dateFilter(newCellValue, filter); } if (column.COLLABORATOR_COLUMN_TYPES.includes(linkedColumnType)) { return collaborator.collaboratorFilter(array, filter, username); } var displayString = cellValue.getFormulaDisplayString(array, column$1.data) || ''; return text.textFilter(displayString, filter, userId); }; exports.filterByArrayType = filterByArrayType;