react-application-core
Version:
A react-based application core for the business applications.
64 lines • 2.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.asExpandedGridGroups = exports.filterAndSortGridOriginalDataSource = exports.getGridColumnSortDirection = void 0;
var R = require("ramda");
var util_1 = require("../../util");
/**
* @stable [12.02.2019]
* @param {IGridColumnProps} column
* @param {IGridProps} props
* @returns {SortDirectionsEnum}
*/
exports.getGridColumnSortDirection = function (column, props) {
return props.directions[column.name];
};
// TODO Refactoring
exports.filterAndSortGridOriginalDataSource = function (source, columns, props, state) {
if (R.isNil(source)) {
return source;
}
if (props.localSorting) {
var sorters = columns
.filter(function (column) { return util_1.TypeUtils.isFn(column.sorter) && !R.isNil(exports.getGridColumnSortDirection(column, props).direction); })
.map(function (column) { return function (entity1, entity2) {
return column.sorter(entity1, entity2) * (exports.getGridColumnSortDirection(column, props).direction === 0 ? 1 : -1);
}; });
if (sorters.length > 0) {
source = R.sortWith(sorters, source);
}
}
if (props.localFiltration) {
var filterChanges_1 = state.filterChanges;
var changedColumns_1 = Object.keys(filterChanges_1);
var defaultLocalFilter_1 = function (cfg) {
return util_1.FilterUtils.queryFilter(cfg.query, cfg.entity[cfg.columnName]);
};
if (changedColumns_1.length > 0) {
source = source.filter(function (entity) {
var result = true;
changedColumns_1.forEach(function (columnName) {
var query = filterChanges_1[columnName];
var column = columns.find(function (column0) { return column0.name === columnName; });
if (!R.isNil(column)) {
var localFilter = column.localFilter;
result = result && (util_1.TypeUtils.isFn(localFilter) ? localFilter : defaultLocalFilter_1)({ query: query, columnName: columnName, entity: entity });
}
});
return result;
});
}
}
return source;
};
/**
* @deprecated MultiFieldUtils.multiFieldValueEntitiesAsTrueValuesObject
*/
exports.asExpandedGridGroups = function (entity, groupValueAccessor) {
if (groupValueAccessor === void 0) { groupValueAccessor = function (item) { return item.id; }; }
return R.mergeAll((util_1.MultiFieldUtils.multiFieldValueAsEntities(entity) || [])
.map(function (item) {
var _a;
return (_a = {}, _a[groupValueAccessor(item)] = true, _a);
}));
};
//# sourceMappingURL=grid.support.js.map