define(function (require) { var zrUtil = require('zrender/core/util'); var helper = { retrieveTargetInfo: function (payload, seriesModel) { if (payload && ( payload.type === 'treemapZoomToNode' || payload.type === 'treemapRootToNode' ) ) { var root = seriesModel.getData().tree.root; var targetNode = payload.targetNode; if (targetNode && root.contains(targetNode)) { return {node: targetNode}; } var targetNodeId = payload.targetNodeId; if (targetNodeId != null && (targetNode = root.getNodeById(targetNodeId))) { return {node: targetNode}; } } }, // Not includes the given node at the last item. getPathToRoot: function (node) { var path = []; while (node) { node = node.parentNode; node && path.push(node); } return path.reverse(); }, aboveViewRoot: function (viewRoot, node) { var viewPath = helper.getPathToRoot(viewRoot); return zrUtil.indexOf(viewPath, node) >= 0; } }; return helper; });