UNPKG

acud

Version:

acg react 组件库

130 lines (129 loc) • 3.82 kB
"use strict"; 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; }); };