epn-ui
Version:
Дизайн система кабинета ВМ
42 lines (39 loc) • 1.89 kB
JavaScript
import { __assign } from '../../../_virtual/_tslib.js';
import React from 'react';
import TableFilters from '../filters/index.js';
import { getFilterValue, pickUndefined } from './index.js';
function getColumnsList(columns, options) {
if (!Array.isArray(columns))
return [];
var tableColumns = [];
tableColumns = columns.map(function (item) { return (__assign({}, item)); });
var result = tableColumns
.map(function (column) {
var tempColumns = __assign({}, column);
if (column.render === undefined && (options === null || options === void 0 ? void 0 : options.fillEmptyData)) {
tempColumns.render = function (value) {
if (typeof value !== 'boolean' && !value)
return (options === null || options === void 0 ? void 0 : options.fillEmptyData) || '-';
return value;
};
}
if (column.filters !== undefined) {
tempColumns.filterDropdown = function (props) { return (React.createElement(TableFilters, __assign({}, props, { dataIndex: column.dataIndex, filterMultiple: column.filterMultiple, locale: "ru" }))); };
}
if (typeof column.onFilter === 'boolean' && column.onFilter) {
tempColumns.onFilter = function () { return true; };
}
if (column.onFilter === undefined && column.filters) {
tempColumns.onFilter = function (rawValue, record) {
var _a = getFilterValue(rawValue), dataIndex = _a.dataIndex, value = _a.value;
if (!dataIndex)
return true;
return record[dataIndex].indexOf(value) === 0;
};
}
return pickUndefined(tempColumns);
})
.filter(function (item) { return !item.hidden; });
return result;
}
export { getColumnsList as default };