acud
Version:
acg react 组件库
130 lines (129 loc) • 3.82 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.saveNode = exports.getParentKey = exports.editNode = exports.deleteNode = exports.changeNode = exports.addNode = void 0;
var _immutabilityHelper = _interopRequireDefault(require("immutability-helper"));
var _guid = _interopRequireDefault(require("rc-util/lib/guid"));
var _getParentKey = exports.getParentKey = function getParentKey(key, tree) {
var parentKey;
for (var i = 0; i < tree.length; i++) {
var node = tree[i];
if (node.children) {
if (node.children.some(function (item) {
return item.key === key;
})) {
parentKey = node.key;
} else if (_getParentKey(key, node.children)) {
parentKey = _getParentKey(key, node.children);
}
}
}
return parentKey;
};
var _editNode = exports.editNode = function editNode(node, data) {
return data === null || data === void 0 ? void 0 : data.map(function (item) {
if (item.key === node.key) {
return (0, _immutabilityHelper["default"])(item, {
$merge: {
isEditable: true,
title: item.title
}
});
}
var _children = item.children;
if (_children) {
return (0, _immutabilityHelper["default"])(item, {
children: function children() {
return _editNode(node, _children);
}
});
}
return item;
});
};
var _saveNode = exports.saveNode = function saveNode(node, data) {
return data.map(function (item) {
if (item.key === node.key) {
return (0, _immutabilityHelper["default"])(item, {
$merge: {
title: item.title,
isEditable: false,
disabled: false
}
});
}
var _children2 = item.children;
if (_children2) {
return (0, _immutabilityHelper["default"])(item, {
children: function children() {
return _saveNode(node, _children2);
}
});
}
return item;
});
};
var _deleteNode = exports.deleteNode = function deleteNode(node, data) {
return data.map(function (item) {
if (item.key === node.key) {
return null;
}
var _children3 = item.children;
if (_children3) {
return (0, _immutabilityHelper["default"])(item, {
children: function children() {
return _deleteNode(node, _children3).filter(function (x) {
return x !== null;
});
}
});
}
return item;
});
};
var _changeNode = exports.changeNode = function changeNode(node, newNodeObj, data) {
return data.map(function (item) {
if (item.key === node.key) {
return (0, _immutabilityHelper["default"])(item, {
$merge: newNodeObj
});
}
var _children4 = item.children;
if (_children4) {
return (0, _immutabilityHelper["default"])(item, {
children: function children() {
return _changeNode(node, newNodeObj, _children4);
}
});
}
return item;
});
};
var _addNode = exports.addNode = function addNode(node, data) {
return data.map(function (item) {
if (item.key === node.key) {
var dataNode = {
key: "".concat(node.key).concat((0, _guid["default"])()),
title: '',
isEditable: true
};
return (0, _immutabilityHelper["default"])(item, {
children: function children(_children5) {
return (0, _immutabilityHelper["default"])(_children5 || [], {
$push: [dataNode]
});
}
});
}
if (item.children) {
return (0, _immutabilityHelper["default"])(item, {
children: function children() {
return _addNode(node, item.children);
}
});
}
return item;
});
};