dtable-utils
Version:
dtable common utils
54 lines (49 loc) • 2.19 kB
JavaScript
;
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;