UNPKG

dtable-utils

Version:

dtable common utils

54 lines (49 loc) 2.19 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var cellValue = require('../../cell-value-get/cell-value.js'); var array = require('./array.js'); var checkbox = require('./checkbox.js'); var date = require('./date.js'); var number = require('./number.js'); var text = require('./text.js'); var column = require('../../constants/column.js'); var formula = require('../../constants/formula.js'); var sort = require('../../constants/sort.js'); /** * Sort formula * @param {any} leftComputedValue compute value from formula row * @param {any} rightComputedValue * @param {string} sortType e.g. 'up' | 'down * @param {object} columnData e.g. { result_type, array_type, array_data, ... } * @param {object} value e.g. { collaborators, ... } * @returns number */ var sortFormula = function sortFormula(leftComputedValue, rightComputedValue, sortType, _ref) { var columnData = _ref.columnData, value = _ref.value; var _ref2 = columnData || {}, result_type = _ref2.result_type; if (sort.NUMBER_SORTER_COLUMN_TYPES.includes(result_type)) { var leftNumber = leftComputedValue || leftComputedValue === 0 ? leftComputedValue - 0 : null; var rightNumber = rightComputedValue || rightComputedValue === 0 ? rightComputedValue - 0 : null; return number.sortNumber(leftNumber, rightNumber, sortType); } if (column.DATE_COLUMN_OPTIONS.includes(result_type)) { return date.sortDate(leftComputedValue, rightComputedValue, sortType); } if (result_type === formula.FORMULA_RESULT_TYPE.BOOL) { var leftBoolean = leftComputedValue || false; var rightBoolean = rightComputedValue || false; return checkbox.sortCheckbox(leftBoolean, rightBoolean, sortType); } if (result_type === formula.FORMULA_RESULT_TYPE.ARRAY) { return array.sortByArrayType(leftComputedValue, rightComputedValue, sortType, { columnData: columnData, value: value }); } var leftText = cellValue.getFormulaDisplayString(leftComputedValue, columnData); var rightText = cellValue.getFormulaDisplayString(rightComputedValue, columnData); return text.sortText(leftText, rightText, sortType); }; exports.sortFormula = sortFormula;