@coreui/react-pro
Version:
UI Components Library for React.js
254 lines (251 loc) • 10.6 kB
JavaScript
import { __spreadArray, __rest, __assign } from '../../node_modules/tslib/tslib.es6.js';
var filterColumns = function (items, columnFilter, columnFilterState, itemsDataColumns) {
if (columnFilter && typeof columnFilter === 'object' && columnFilter.external) {
return items;
}
if (Object.entries(columnFilterState).length === 0) {
return items;
}
var filteredItems = __spreadArray([], items, true);
var _loop_1 = function (key, value) {
if (typeof value === 'function') {
filteredItems = filteredItems.filter(function (item) { return value(item[key]); });
}
else {
var columnFilterValue_1 = String(value).toLowerCase();
if (columnFilterValue_1 && itemsDataColumns.includes(key)) {
filteredItems = filteredItems.filter(function (item) {
return String(item[key]).toLowerCase().includes(columnFilterValue_1);
});
}
}
};
for (var _i = 0, _a = Object.entries(columnFilterState); _i < _a.length; _i++) {
var _b = _a[_i], key = _b[0], value = _b[1];
_loop_1(key, value);
}
return filteredItems;
};
var filterTable = function (items, tableFilter, tableFilterState, itemsDataColumns) {
if (!tableFilterState ||
(tableFilter && typeof tableFilter === 'object' && tableFilter.external)) {
return items;
}
var filter = tableFilterState.toLowerCase();
return items.filter(function (item) {
return itemsDataColumns.some(function (key) { return String(item[key]).toLowerCase().includes(filter); });
});
};
var getClickedColumnName = function (target, columnNames, selectable) {
var clickedCell = target.closest('td');
if (!clickedCell) {
return '';
}
var row = clickedCell.closest('tr');
if (!row) {
return '';
}
var cells = Array.from(row.children);
var index = cells.indexOf(clickedCell);
if (selectable) {
index -= 1;
}
return columnNames[index] || '';
};
var getColumnKey = function (column) {
return typeof column === 'object' ? column.key : column;
};
var getColumnLabel = function (column) { var _a; return typeof column === 'object' ? ((_a = column.label) !== null && _a !== void 0 ? _a : pretifyName(column.key)) : pretifyName(column); };
var getColumnName = function (column) {
return typeof column === 'object' ? column.key : column;
};
var getColumnNames = function (columns, items) {
if (columns) {
var _columns = [];
for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {
var column = columns_1[_i];
if (typeof column === 'object' && column.children) {
_columns.push.apply(_columns, getColumnNames(column.children, []));
continue;
}
typeof column === 'object' ? _columns.push(column.key) : _columns.push(column);
}
return _columns;
}
return getColumnNamesFromItems(items);
};
var getColumns = function (_columns) {
var columns = [];
for (var _i = 0, _columns_1 = _columns; _i < _columns_1.length; _i++) {
var column = _columns_1[_i];
if (typeof column === 'object' && column.group && column.children) {
columns.push.apply(columns, getColumns(column.children));
continue;
}
if (typeof column === 'object' && column.children) {
columns.push.apply(columns, getColumns(column.children));
}
columns.push(column);
}
return columns;
};
var countColumns = function (columns) {
var count = 0;
for (var _i = 0, columns_2 = columns; _i < columns_2.length; _i++) {
var column = columns_2[_i];
if (!column.children || column.children.length === 0) {
count++;
}
else {
count += countColumns(column.children);
}
}
return count;
};
var getColumnGroups = function (columns) {
var groups = [];
var traverseColumns = function (column, deep, colSpan) {
if (deep === void 0) { deep = 0; }
var groups = [];
if (column.children) {
for (var _i = 0, _a = column.children; _i < _a.length; _i++) {
var _column = _a[_i];
if (!_column.group) ;
groups.push.apply(groups, traverseColumns(_column, deep + 1));
}
}
if (typeof column === 'object' && column.group) {
var children = column.children, group = column.group, rest = __rest(column, ["children", "group"]);
groups.push(__assign(__assign({ deep: deep, label: group }, (children && { colspan: countColumns(children) })), rest));
}
return groups;
};
if (columns) {
for (var _i = 0, columns_3 = columns; _i < columns_3.length; _i++) {
var column = columns_3[_i];
if (typeof column === 'object' && column.group) {
var objects = traverseColumns(column);
if (objects) {
for (var _a = 0, objects_1 = objects; _a < objects_1.length; _a++) {
var object = objects_1[_a];
var deep = object.deep, rest = __rest(object, ["deep"]);
if (deep === undefined) {
continue;
}
for (var i = 0; i < deep; i++) {
if (groups[i]) {
continue;
}
groups.push([]);
}
if (groups[deep]) {
groups[deep].push(rest);
}
else {
groups.push([rest]);
}
}
}
}
}
}
return groups;
};
var getColumnNamesFromItems = function (items) {
return Object.keys(items[0] || {}).filter(function (el) { return el.charAt(0) !== '_'; });
};
var getColumnSorterFunction = function (column) {
if (column &&
typeof column === 'object' &&
column.sorter &&
typeof column.sorter === 'function') {
return column.sorter;
}
return;
};
var getColumnSorterState = function (key, sorterState) {
var state = sorterState && sorterState.find(function (el) { return el.column === key; });
return state ? state.state : 0;
};
var getColumnValues = function (items, key) { return items.map(function (item) { return item[key]; }); };
var getTableDataCellProps = function (column, item, colName) {
var _a, _b;
var props = __assign(__assign(__assign({}, (typeof column === 'object' && column._colProps)), (_a = item._cellProps) === null || _a === void 0 ? void 0 : _a.all), (_b = item._cellProps) === null || _b === void 0 ? void 0 : _b[colName]);
return props;
};
var getTableDataCellStyles = function (column, item, colName) {
var _a, _b;
var styles = __assign(__assign(__assign({}, (typeof column === 'object' && column._colStyle)), (_a = item._cellStyle) === null || _a === void 0 ? void 0 : _a.all), (_b = item._cellStyle) === null || _b === void 0 ? void 0 : _b[colName]);
return styles;
};
var getTableHeaderCellProps = function (column) {
return typeof column === 'object' && column._props ? column._props : {};
};
var getTableHeaderCellStyles = function (column, columnSorter) {
var style = {};
var isSortable = columnSorter &&
(typeof column !== 'object' ||
(typeof column === 'object' && (column.sorter === undefined || column.sorter)));
if (isSortable) {
style.cursor = 'pointer';
}
if (typeof column === 'object' && column._style) {
Object.assign(style, column._style);
}
return style;
};
var isSortable = function (index, columns, columnSorter, itemsDataColumns, columnNames) {
var key = columnNames[index];
var isDataColumn = itemsDataColumns.includes(key);
var column = columns ? columns[index] : undefined;
return (!!columnSorter &&
(!columns ||
typeof column !== 'object' ||
(typeof column === 'object' && (column.sorter === undefined || column.sorter))) &&
isDataColumn);
};
var pretifyName = function (name) {
return name
.replace(/[-_.]/g, ' ')
.replace(/ +/g, ' ')
.replace(/([a-z0-9])([A-Z])/g, '$1 $2')
.split(' ')
.map(function (word) { return word.charAt(0).toUpperCase() + word.slice(1); })
.join(' ');
};
var sortBy = function (column, items, key, order) {
var sorterFunction = getColumnSorterFunction(column);
var sortedItems = __spreadArray([], items, true).sort(sorterFunction ||
(function (a, b) {
var valA = a[key];
var valB = b[key];
var aValue = typeof valA === 'number' ? valA : String(valA).toLowerCase();
var bValue = typeof valB === 'number' ? valB : String(valB).toLowerCase();
return aValue > bValue ? 1 : bValue > aValue ? -1 : 0;
}));
return order === 'desc' ? sortedItems.reverse() : sortedItems;
};
var sortItems = function (columns, columnSorter, items, itemsDataColumns, sorterState) {
if ((columnSorter && typeof columnSorter === 'object' && columnSorter.external) ||
sorterState.length === 0) {
return items;
}
var sortedItems = __spreadArray([], items, true);
var _loop_2 = function (sorter) {
var key = sorter.column;
var order = sorter.state;
var column = columns &&
columns.find(function (column) { return typeof column === 'object' && column.key === key; });
if (!key || !itemsDataColumns.includes(key)) {
return "continue";
}
sortedItems = sortBy(column, sortedItems, key, order);
};
for (var _i = 0, _a = __spreadArray([], sorterState, true).reverse(); _i < _a.length; _i++) {
var sorter = _a[_i];
_loop_2(sorter);
}
return sortedItems;
};
export { countColumns, filterColumns, filterTable, getClickedColumnName, getColumnGroups, getColumnKey, getColumnLabel, getColumnName, getColumnNames, getColumnNamesFromItems, getColumnSorterFunction, getColumnSorterState, getColumnValues, getColumns, getTableDataCellProps, getTableDataCellStyles, getTableHeaderCellProps, getTableHeaderCellStyles, isSortable, pretifyName, sortBy, sortItems };
//# sourceMappingURL=utils.js.map