devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
147 lines (142 loc) • 5.39 kB
JavaScript
/**
* DevExtreme (cjs/viz/series/bubble_series.js)
* Version: 22.1.9
* Build date: Tue Apr 18 2023
*
* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
;
exports.chart = void 0;
var _line_series = require("./line_series");
var _scatter_series = require("./scatter_series");
var _area_series = require("./area_series");
var _bar_series = require("./bar_series");
var _extend2 = require("../../core/utils/extend");
var _iterator = require("../../core/utils/iterator");
var _common = require("../../core/utils/common");
function _typeof(obj) {
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
return typeof obj
} : function(obj) {
return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj
}, _typeof(obj)
}
function _defineProperty(obj, key, value) {
key = _toPropertyKey(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
})
} else {
obj[key] = value
}
return obj
}
function _toPropertyKey(arg) {
var key = _toPrimitive(arg, "string");
return "symbol" === _typeof(key) ? key : String(key)
}
function _toPrimitive(input, hint) {
if ("object" !== _typeof(input) || null === input) {
return input
}
var prim = input[Symbol.toPrimitive];
if (void 0 !== prim) {
var res = prim.call(input, hint || "default");
if ("object" !== _typeof(res)) {
return res
}
throw new TypeError("@@toPrimitive must return a primitive value.")
}
return ("string" === hint ? String : Number)(input)
}
var lineSeries = _line_series.chart.line;
var areaSeries = _area_series.chart.area;
var chartBarSeries = _bar_series.chart.bar;
var polarBarSeries = _bar_series.polar.bar;
var _extend = _extend2.extend;
var _each = _iterator.each;
var _noop = _common.noop;
var chart = {};
exports.chart = chart;
chart.bubble = _extend({}, _scatter_series.chart, {
_calculateErrorBars: _noop,
_getMainColor: chartBarSeries._getMainColor,
_createPointStyles: chartBarSeries._createPointStyles,
_updatePointsVisibility: chartBarSeries._updatePointsVisibility,
_getOptionsForPoint: chartBarSeries._getOptionsForPoint,
_applyMarkerClipRect: lineSeries._applyElementsClipRect,
_parsePointStyle: polarBarSeries._parsePointStyle,
_createLegendState: areaSeries._createLegendState,
_setMarkerGroupSettings: polarBarSeries._setMarkerGroupSettings,
areErrorBarsVisible: _noop,
_createErrorBarGroup: _noop,
_checkData: function(data, skippedFields) {
return _scatter_series.chart._checkData.call(this, data, skippedFields, {
value: this.getValueFields()[0],
size: this.getSizeField()
})
},
_getPointDataSelector: function(data, options) {
var sizeField = this.getSizeField();
var baseGetter = _scatter_series.chart._getPointDataSelector.call(this);
return function(data) {
var pointData = baseGetter(data);
pointData.size = data[sizeField];
return pointData
}
},
_aggregators: {
avg: function(_ref, series) {
var _ref2;
var data = _ref.data,
intervalStart = _ref.intervalStart,
intervalEnd = _ref.intervalEnd;
if (!data.length) {
return
}
var valueField = series.getValueFields()[0];
var sizeField = series.getSizeField();
var aggregate = data.reduce((function(result, item) {
result[0] += item[valueField];
result[1] += item[sizeField];
result[2]++;
return result
}), [0, 0, 0]);
return _ref2 = {}, _defineProperty(_ref2, valueField, aggregate[0] / aggregate[2]), _defineProperty(_ref2, sizeField, aggregate[1] / aggregate[2]), _defineProperty(_ref2, series.getArgumentField(), series._getIntervalCenter(intervalStart, intervalEnd)), _ref2
}
},
getValueFields: function() {
return [this._options.valueField || "val"]
},
getSizeField: function() {
return this._options.sizeField || "size"
},
_animate: function() {
var that = this;
var lastPointIndex = that._drawnPoints.length - 1;
var labelsGroup = that._labelsGroup;
var labelAnimFunc = function() {
labelsGroup && labelsGroup.animate({
opacity: 1
}, {
duration: that._defaultDuration
})
};
_each(that._drawnPoints || [], (function(i, p) {
p.animate(i === lastPointIndex ? labelAnimFunc : void 0, {
r: p.bubbleSize,
translateX: p.x,
translateY: p.y
})
}))
},
_patchMarginOptions: function(options) {
options.processBubbleSize = true;
return options
}
});