choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
70 lines (56 loc) • 2.39 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getKey = getKey;
exports.getTreeNodes = getTreeNodes;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _mobx = require("mobx");
function getKey(record, idField) {
return String(idField ? record.get(idField) : record.key);
}
function getTreeNode(record, children, idField, text, treeNodeProps, async, filterText) {
var key = getKey(record, idField);
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
title: text,
isLeaf: async ? undefined : filterText ? !children || !children.length : !record.children || !record.children.length,
children: children,
record: record
}, record.get('__treeNodeProps')), {}, {
selectable: record.dataSet.selection ? record.selectable : false,
eventKey: key,
key: key
}, treeNodeProps);
}
function getTreeNodes(dataSet, records, renderer, onTreeNode, async, titleField, optionsFilter, searchMatcher, filterText) {
var idField = dataSet.props.idField;
if (records) {
return records.reduce(function (array, record, index) {
if (record.status !== 'delete') {
var children = record.children ? getTreeNodes(dataSet, record.children, renderer, onTreeNode, async, titleField, optionsFilter, searchMatcher, filterText) : null;
if (!searchMatcher || !filterText || children && children.length || searchMatcher(record, filterText)) {
if (!optionsFilter || optionsFilter(record, index, records)) {
var node = getTreeNode(record, children, idField, renderer({
dataSet: dataSet,
record: record,
text: (0, _mobx.toJS)(record.get(titleField))
}), onTreeNode({
dataSet: dataSet,
record: record
}), async, filterText);
if (node) {
array.push(node);
}
} else if (children) {
array.push.apply(array, (0, _toConsumableArray2["default"])(children));
}
}
}
return array;
}, []);
}
return null;
}
//# sourceMappingURL=util.js.map
;