UNPKG

petals-ui

Version:
40 lines (39 loc) 1.19 kB
function resolveTreeProps(props) { const resolved = {}; [ // Keys from `IFormControl` 'name', 'value', 'disabled', 'readonly', // Keys from `ITreeComponent` 'checkable', 'expanded', 'expandedKeys', 'selectedKeys', 'nodeField', 'nodeRenderer', 'emptyText', ].forEach(k => (resolved[k] = props[k])); resolved.className = props.treeClassName; return resolved; } function resolveTreeData(dataSource, childrenName, keyword, filter) { if (keyword === '') { return dataSource; } const resolved = []; dataSource.forEach(nodeData => { if (filter(keyword, nodeData)) { resolved.push(nodeData); } else if ((nodeData[childrenName] || []).length > 0) { const filteredChildren = resolveTreeData(nodeData[childrenName], childrenName, keyword, filter); if (filteredChildren.length > 0) { resolved.push(Object.assign(Object.assign({}, nodeData), { [childrenName]: filteredChildren })); } } }); return resolved; } export { resolveTreeProps, resolveTreeData };