choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
141 lines (120 loc) • 3.63 kB
JavaScript
import _typeof from "@babel/runtime/helpers/typeof";
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
import { Children, isValidElement } from 'react';
import RcTableRowContext from '../rc-components/table/TableRowContext';
export var TableRowContext = RcTableRowContext;
export function flatArray() {
var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var childrenName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'children';
var result = [];
var loop = function loop(array) {
array.forEach(function (item) {
if (item[childrenName]) {
var newItem = _objectSpread({}, item);
delete newItem[childrenName];
result.push(newItem);
if (item[childrenName].length > 0) {
loop(item[childrenName]);
}
} else {
result.push(item);
}
});
};
loop(data);
return result;
}
export function treeMap(tree, mapper) {
var childrenName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'children';
return tree.map(function (node, index) {
var extra = {};
if (node[childrenName]) {
extra[childrenName] = treeMap(node[childrenName], mapper, childrenName);
}
return _objectSpread(_objectSpread({}, mapper(node, index)), extra);
});
}
export function flatFilter(tree, callback) {
return tree.reduce(function (acc, node) {
if (callback(node)) {
acc.push(node);
}
if (node.children) {
var children = flatFilter(node.children, callback);
acc.push.apply(acc, _toConsumableArray(children));
}
return acc;
}, []);
}
export function normalizeColumns(elements) {
var columns = [];
Children.forEach(elements, function (element) {
if (! /*#__PURE__*/isValidElement(element)) {
return;
}
var column = _objectSpread({}, element.props);
if (element.key) {
column.key = element.key;
}
if (element.type && element.type.__C7N_TABLE_COLUMN_GROUP) {
column.children = normalizeColumns(column.children);
}
columns.push(column);
});
return columns;
}
export function getLeafColumns(columns) {
return flatFilter(columns, function (c) {
return !c.children;
});
}
export function getColumnKey(column, index) {
return column.key || column.dataIndex || index;
}
export function findColumnByFilterValue(record, columns, inputValue) {
return columns.find(function (col) {
var key = getColumnKey(col);
if (key) {
var value = record[key];
if (value && _typeof(value) !== 'object') {
value = value.toString();
if (value.toLowerCase().indexOf(inputValue.toLowerCase()) !== -1) {
return true;
}
}
}
return false;
});
}
export function filterByInputValue(dataSource, columns, inputValue, cb) {
dataSource.forEach(function (data) {
var column = findColumnByFilterValue(data, columns, inputValue);
if (column) {
cb(data, column);
}
});
}
export function removeHiddenColumns(columns) {
return columns.filter(function (c) {
if (c.hidden) {
return false;
}
if (c.children) {
var children = removeHiddenColumns(c.children);
if (children.length) {
c.children = children;
} else {
return false;
}
}
return true;
});
}
export function getHeight(el) {
return el.getBoundingClientRect().height;
}
export function isNumber(obj) {
return typeof obj === 'number' && !isNaN(obj);
}
//# sourceMappingURL=util.js.map