tracker.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /**
  2. * DevExtreme (viz/tree_map/tracker.js)
  3. * Version: 19.1.16
  4. * Build date: Tue Oct 18 2022
  5. *
  6. * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
  7. * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
  8. */
  9. "use strict";
  10. var proto = require("./tree_map.base").prototype;
  11. var Tracker = require("../components/tracker").Tracker;
  12. var expand = require("../core/helpers").expand;
  13. var _parseScalar = require("../core/utils").parseScalar;
  14. var DATA_KEY_BASE = "__treemap_data_";
  15. var dataKeyModifier = 0;
  16. require("./api");
  17. require("./hover");
  18. require("./tooltip");
  19. proto._eventsMap.onClick = {
  20. name: "click"
  21. };
  22. expand(proto, "_initCore", function() {
  23. var that = this;
  24. var dataKey = DATA_KEY_BASE + dataKeyModifier++;
  25. var getProxy = function(index) {
  26. return that._nodes[index].proxy
  27. };
  28. that._tracker = new Tracker({
  29. widget: that,
  30. root: that._renderer.root,
  31. getNode: function(id) {
  32. var proxy = getProxy(id);
  33. var interactWithGroup = _parseScalar(that._getOption("interactWithGroup", true));
  34. return interactWithGroup && proxy.isLeaf() && proxy.getParent().isActive() ? proxy.getParent() : proxy
  35. },
  36. getData: function(e) {
  37. var target = e.target;
  38. return ("tspan" === target.tagName ? target.parentNode : target)[dataKey]
  39. },
  40. getProxy: getProxy,
  41. click: function(e) {
  42. that._eventTrigger("click", e)
  43. }
  44. });
  45. that._handlers.setTrackerData = function(node, element) {
  46. element.data(dataKey, node._id)
  47. }
  48. });
  49. expand(proto, "_disposeCore", function() {
  50. this._tracker.dispose()
  51. });