UNPKG

@coreui/react-pro

Version:

UI Components Library for React.js

254 lines (251 loc) 10.6 kB
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