helper.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. var zrUtil = require("zrender/lib/core/util");
  2. function retrieveTargetInfo(payload, seriesModel) {
  3. if (payload && (payload.type === 'treemapZoomToNode' || payload.type === 'treemapRootToNode')) {
  4. var root = seriesModel.getData().tree.root;
  5. var targetNode = payload.targetNode;
  6. if (targetNode && root.contains(targetNode)) {
  7. return {
  8. node: targetNode
  9. };
  10. }
  11. var targetNodeId = payload.targetNodeId;
  12. if (targetNodeId != null && (targetNode = root.getNodeById(targetNodeId))) {
  13. return {
  14. node: targetNode
  15. };
  16. }
  17. }
  18. } // Not includes the given node at the last item.
  19. function getPathToRoot(node) {
  20. var path = [];
  21. while (node) {
  22. node = node.parentNode;
  23. node && path.push(node);
  24. }
  25. return path.reverse();
  26. }
  27. function aboveViewRoot(viewRoot, node) {
  28. var viewPath = getPathToRoot(viewRoot);
  29. return zrUtil.indexOf(viewPath, node) >= 0;
  30. } // From root to the input node (the input node will be included).
  31. function wrapTreePathInfo(node, seriesModel) {
  32. var treePathInfo = [];
  33. while (node) {
  34. var nodeDataIndex = node.dataIndex;
  35. treePathInfo.push({
  36. name: node.name,
  37. dataIndex: nodeDataIndex,
  38. value: seriesModel.getRawValue(nodeDataIndex)
  39. });
  40. node = node.parentNode;
  41. }
  42. treePathInfo.reverse();
  43. return treePathInfo;
  44. }
  45. exports.retrieveTargetInfo = retrieveTargetInfo;
  46. exports.getPathToRoot = getPathToRoot;
  47. exports.aboveViewRoot = aboveViewRoot;
  48. exports.wrapTreePathInfo = wrapTreePathInfo;