react-bootstrap-table-next
Version:
Next generation of react-bootstrap-table
72 lines (58 loc) • 2.29 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.nextOrder = exports.sort = undefined;
var _utils = require('../utils');
var _utils2 = _interopRequireDefault(_utils);
var _const = require('../const');
var _const2 = _interopRequireDefault(_const);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } /* eslint no-nested-ternary: 0 */
/* eslint no-lonely-if: 0 */
/* eslint no-underscore-dangle: 0 */
function comparator(a, b) {
var result = void 0;
if (typeof b === 'string') {
result = b.localeCompare(a);
} else {
result = a > b ? -1 : a < b ? 1 : 0;
}
return result;
}
var sort = exports.sort = function sort(data, sortOrder, _ref) {
var dataField = _ref.dataField,
sortFunc = _ref.sortFunc,
sortValue = _ref.sortValue;
var _data = [].concat(_toConsumableArray(data));
_data.sort(function (a, b) {
var result = void 0;
var valueA = _utils2.default.get(a, dataField);
var valueB = _utils2.default.get(b, dataField);
if (sortValue) {
valueA = sortValue(valueA, a);
valueB = sortValue(valueB, b);
} else {
valueA = _utils2.default.isDefined(valueA) ? valueA : '';
valueB = _utils2.default.isDefined(valueB) ? valueB : '';
}
if (sortFunc) {
result = sortFunc(valueA, valueB, sortOrder, dataField, a, b);
} else {
if (sortOrder === _const2.default.SORT_DESC) {
result = comparator(valueA, valueB);
} else {
result = comparator(valueB, valueA);
}
}
return result;
});
return _data;
};
var nextOrder = exports.nextOrder = function nextOrder(currentSortColumn, _ref2) {
var sortOrder = _ref2.sortOrder,
sortColumn = _ref2.sortColumn;
var defaultOrder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _const2.default.SORT_DESC;
if (!sortColumn || currentSortColumn.dataField !== sortColumn.dataField) return defaultOrder;
return sortOrder === _const2.default.SORT_DESC ? _const2.default.SORT_ASC : _const2.default.SORT_DESC;
};
;