@nodeject/ui-components
Version:
UI library for non-trivial components
80 lines (79 loc) • 2.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.onDrop = exports.onDragEnter = void 0;
var helper_1 = require("./helper");
var onDragEnter = function (info) {
// console.log('onDragEnter info', info)
// expandedKeys
// setState({
// expandedKeys: info.expandedKeys,
// })
};
exports.onDragEnter = onDragEnter;
var onDrop = function (info, treeData, moveNodeTo) {
console.log('info', info.node);
var dropKey = info.node.props.eventKey;
var dragKey = info.dragNode.props.eventKey;
var dropPos = info.node.props.pos.split('-');
var dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]);
var dragNodeKey;
var moveI;
var parentKey;
// Find dragObject
var dragNode;
helper_1.getNodeInfo(treeData, dragKey, function (node, index, nodes) {
nodes.splice(index, 1);
dragNode = node;
});
if (!info.dropToGap) {
// Drop on the content
helper_1.getNodeInfo(treeData, dropKey, function (dropNode) {
dropNode.children = dropNode.children || [];
// where to insert
dropNode.children.push(dragNode);
dragNodeKey = dragNode.nodeKey;
moveI = dropNode.children.length - 1;
parentKey = dropNode.nodeKey;
});
}
else if (info.node.props.children !== undefined &&
info.node.props.expanded && // Is expanded
dropPosition === 1 // On the bottom gap
) {
helper_1.getNodeInfo(treeData, dropKey, function (dropNode) {
dropNode.children = dropNode.children || [];
// where to insert
dropNode.children.unshift(dragNode);
dragNodeKey = dragNode.nodeKey;
moveI = 0;
parentKey = dropNode.nodeKey;
});
}
else {
var ar_1;
var i_1;
var d_1;
var moveIndex = void 0;
helper_1.getNodeInfo(treeData, dropKey, function (dropNode, index, nodes) {
ar_1 = nodes;
i_1 = index;
d_1 = dropNode;
});
dropPosition === -1 ? (moveIndex = i_1) : (moveIndex = i_1 + 1);
ar_1.splice(moveIndex, 0, dragNode);
dragNodeKey = dragNode.nodeKey;
moveI = moveIndex;
parentKey = d_1.parentKey;
}
console.log(dragNodeKey, moveI, parentKey);
if (!moveNodeTo) {
console.log('please pass a props.moveNodeTo for server implementation');
}
return {
index: moveI,
nodeId: dragNodeKey,
parentId: parentKey
};
// moveNodeTo ? moveNodeTo(dragNodeKey, moveI, parentKey) :
};
exports.onDrop = onDrop;