export const NODE_KEY = '$treeNodeId'; export const markNodeData = function(node, data) { if (!data || data[NODE_KEY]) return; Object.defineProperty(data, NODE_KEY, { value: node.id, enumerable: false, configurable: false, writable: false }); }; export const getNodeKey = function(key, data) { if (!key) return data[NODE_KEY]; return data[key]; }; export const findNearestComponent = (element, componentName) => { let target = element; while (target && target.tagName !== 'BODY') { if (target.__vue__ && target.__vue__.$options.name === componentName) { return target.__vue__; } target = target.parentNode; } return null; };