bubble_series.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. /**
  2. * DevExtreme (viz/series/bubble_series.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. function _defineProperty(obj, key, value) {
  11. if (key in obj) {
  12. Object.defineProperty(obj, key, {
  13. value: value,
  14. enumerable: true,
  15. configurable: true,
  16. writable: true
  17. })
  18. } else {
  19. obj[key] = value
  20. }
  21. return obj
  22. }
  23. var lineSeries = require("./line_series").chart.line;
  24. var scatterSeries = require("./scatter_series").chart;
  25. var areaSeries = require("./area_series").chart.area;
  26. var barSeries = require("./bar_series");
  27. var chartBarSeries = barSeries.chart.bar;
  28. var polarBarSeries = barSeries.polar.bar;
  29. var extend = require("../../core/utils/extend").extend;
  30. var each = require("../../core/utils/iterator").each;
  31. var _extend = extend;
  32. var _each = each;
  33. var _noop = require("../../core/utils/common").noop;
  34. exports.chart = {};
  35. exports.chart.bubble = _extend({}, scatterSeries, {
  36. _calculateErrorBars: _noop,
  37. _getMainColor: chartBarSeries._getMainColor,
  38. _createPointStyles: chartBarSeries._createPointStyles,
  39. _updatePointsVisibility: chartBarSeries._updatePointsVisibility,
  40. _getOptionsForPoint: chartBarSeries._getOptionsForPoint,
  41. _applyMarkerClipRect: lineSeries._applyElementsClipRect,
  42. _parsePointStyle: polarBarSeries._parsePointStyle,
  43. _createLegendState: areaSeries._createLegendState,
  44. _setMarkerGroupSettings: polarBarSeries._setMarkerGroupSettings,
  45. areErrorBarsVisible: _noop,
  46. _createErrorBarGroup: _noop,
  47. _checkData: function(data, skippedFields) {
  48. return scatterSeries._checkData.call(this, data, skippedFields, {
  49. value: this.getValueFields()[0],
  50. size: this.getSizeField()
  51. })
  52. },
  53. _getPointDataSelector: function(data, options) {
  54. var sizeField = this.getSizeField();
  55. var baseGetter = scatterSeries._getPointDataSelector.call(this);
  56. return function(data) {
  57. var pointData = baseGetter(data);
  58. pointData.size = data[sizeField];
  59. return pointData
  60. }
  61. },
  62. _aggregators: {
  63. avg: function(_ref, series) {
  64. var _ref2;
  65. var data = _ref.data,
  66. intervalStart = _ref.intervalStart;
  67. if (!data.length) {
  68. return
  69. }
  70. var valueField = series.getValueFields()[0];
  71. var sizeField = series.getSizeField();
  72. var aggregate = data.reduce(function(result, item) {
  73. result[0] += item[valueField];
  74. result[1] += item[sizeField];
  75. result[2]++;
  76. return result
  77. }, [0, 0, 0]);
  78. return _ref2 = {}, _defineProperty(_ref2, valueField, aggregate[0] / aggregate[2]), _defineProperty(_ref2, sizeField, aggregate[1] / aggregate[2]), _defineProperty(_ref2, series.getArgumentField(), intervalStart), _ref2
  79. }
  80. },
  81. getValueFields: function() {
  82. return [this._options.valueField || "val"]
  83. },
  84. getSizeField: function() {
  85. return this._options.sizeField || "size"
  86. },
  87. _animate: function() {
  88. var that = this;
  89. var lastPointIndex = that._drawnPoints.length - 1;
  90. var labelsGroup = that._labelsGroup;
  91. var labelAnimFunc = function() {
  92. labelsGroup && labelsGroup.animate({
  93. opacity: 1
  94. }, {
  95. duration: that._defaultDuration
  96. })
  97. };
  98. _each(that._drawnPoints || [], function(i, p) {
  99. p.animate(i === lastPointIndex ? labelAnimFunc : void 0, {
  100. r: p.bubbleSize,
  101. translateX: p.x,
  102. translateY: p.y
  103. })
  104. })
  105. },
  106. _patchMarginOptions: function(options) {
  107. options.processBubbleSize = true;
  108. return options
  109. }
  110. });