UNPKG

3.33 kBJavaScriptView Raw
1import _typeof from "@babel/runtime/helpers/typeof";
2import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3import _objectSpread from "@babel/runtime/helpers/objectSpread2";
4import { Children, isValidElement } from 'react';
5export function flatArray() {
6 var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
7 var childrenName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'children';
8 var result = [];
9
10 var loop = function loop(array) {
11 array.forEach(function (item) {
12 if (item[childrenName]) {
13 var newItem = _objectSpread({}, item);
14
15 delete newItem[childrenName];
16 result.push(newItem);
17
18 if (item[childrenName].length > 0) {
19 loop(item[childrenName]);
20 }
21 } else {
22 result.push(item);
23 }
24 });
25 };
26
27 loop(data);
28 return result;
29}
30export function treeMap(tree, mapper) {
31 var childrenName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'children';
32 return tree.map(function (node, index) {
33 var extra = {};
34
35 if (node[childrenName]) {
36 extra[childrenName] = treeMap(node[childrenName], mapper, childrenName);
37 }
38
39 return _objectSpread({}, mapper(node, index), {}, extra);
40 });
41}
42export function flatFilter(tree, callback) {
43 return tree.reduce(function (acc, node) {
44 if (callback(node)) {
45 acc.push(node);
46 }
47
48 if (node.children) {
49 var children = flatFilter(node.children, callback);
50 acc.push.apply(acc, _toConsumableArray(children));
51 }
52
53 return acc;
54 }, []);
55}
56export function normalizeColumns(elements) {
57 var columns = [];
58 Children.forEach(elements, function (element) {
59 if (!isValidElement(element)) {
60 return;
61 }
62
63 var column = _objectSpread({}, element.props);
64
65 if (element.key) {
66 column.key = element.key;
67 }
68
69 if (element.type && element.type.__C7N_TABLE_COLUMN_GROUP) {
70 column.children = normalizeColumns(column.children);
71 }
72
73 columns.push(column);
74 });
75 return columns;
76}
77export function getLeafColumns(columns) {
78 return flatFilter(columns, function (c) {
79 return !c.children;
80 });
81}
82export function getColumnKey(column, index) {
83 return column.key || column.dataIndex || index;
84}
85export function findColumnByFilterValue(record, columns, inputValue) {
86 return columns.find(function (col) {
87 var key = getColumnKey(col);
88
89 if (key) {
90 var value = record[key];
91
92 if (value && _typeof(value) !== 'object') {
93 value = value.toString();
94
95 if (value.toLowerCase().indexOf(inputValue.toLowerCase()) !== -1) {
96 return true;
97 }
98 }
99 }
100
101 return false;
102 });
103}
104export function filterByInputValue(dataSource, columns, inputValue, cb) {
105 dataSource.forEach(function (data) {
106 var column = findColumnByFilterValue(data, columns, inputValue);
107
108 if (column) {
109 cb(data, column);
110 }
111 });
112}
113export function removeHiddenColumns(columns) {
114 return columns.filter(function (c) {
115 if (c.hidden) {
116 return false;
117 }
118
119 if (c.children) {
120 var children = removeHiddenColumns(c.children);
121
122 if (children.length) {
123 c.children = children;
124 } else {
125 return false;
126 }
127 }
128
129 return true;
130 });
131}
132//# sourceMappingURL=util.js.map