treemapAction.js 960 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. var echarts = require("../../echarts");
  2. var helper = require("./helper");
  3. /**
  4. * @file Treemap action
  5. */
  6. var noop = function () {};
  7. var actionTypes = ['treemapZoomToNode', 'treemapRender', 'treemapMove'];
  8. for (var i = 0; i < actionTypes.length; i++) {
  9. echarts.registerAction({
  10. type: actionTypes[i],
  11. update: 'updateView'
  12. }, noop);
  13. }
  14. echarts.registerAction({
  15. type: 'treemapRootToNode',
  16. update: 'updateView'
  17. }, function (payload, ecModel) {
  18. ecModel.eachComponent({
  19. mainType: 'series',
  20. subType: 'treemap',
  21. query: payload
  22. }, handleRootToNode);
  23. function handleRootToNode(model, index) {
  24. var targetInfo = helper.retrieveTargetInfo(payload, model);
  25. if (targetInfo) {
  26. var originViewRoot = model.getViewRoot();
  27. if (originViewRoot) {
  28. payload.direction = helper.aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';
  29. }
  30. model.resetViewRoot(targetInfo.node);
  31. }
  32. }
  33. });