AxisPointerView.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. var echarts = require("../../echarts");
  2. var globalListener = require("./globalListener");
  3. var AxisPointerView = echarts.extendComponentView({
  4. type: 'axisPointer',
  5. render: function (globalAxisPointerModel, ecModel, api) {
  6. var globalTooltipModel = ecModel.getComponent('tooltip');
  7. var triggerOn = globalAxisPointerModel.get('triggerOn') || globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click'; // Register global listener in AxisPointerView to enable
  8. // AxisPointerView to be independent to Tooltip.
  9. globalListener.register('axisPointer', api, function (currTrigger, e, dispatchAction) {
  10. // If 'none', it is not controlled by mouse totally.
  11. if (triggerOn !== 'none' && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {
  12. dispatchAction({
  13. type: 'updateAxisPointer',
  14. currTrigger: currTrigger,
  15. x: e && e.offsetX,
  16. y: e && e.offsetY
  17. });
  18. }
  19. });
  20. },
  21. /**
  22. * @override
  23. */
  24. remove: function (ecModel, api) {
  25. globalListener.unregister(api.getZr(), 'axisPointer');
  26. AxisPointerView.superApply(this._model, 'remove', arguments);
  27. },
  28. /**
  29. * @override
  30. */
  31. dispose: function (ecModel, api) {
  32. globalListener.unregister('axisPointer', api);
  33. AxisPointerView.superApply(this._model, 'dispose', arguments);
  34. }
  35. });
  36. var _default = AxisPointerView;
  37. module.exports = _default;