devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
109 lines (81 loc) • 3.73 kB
JavaScript
;
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var lineSeries = require("./line_series").chart.line,
scatterSeries = require("./scatter_series").chart,
areaSeries = require("./area_series").chart.area,
barSeries = require("./bar_series"),
chartBarSeries = barSeries.chart.bar,
polarBarSeries = barSeries.polar.bar,
extend = require("../../core/utils/extend").extend,
each = require("../../core/utils/iterator").each,
_isDefined = require("../../core/utils/type").isDefined,
_extend = extend,
_each = each,
_noop = require("../../core/utils/common").noop;
exports.chart = {};
exports.chart.bubble = _extend({}, scatterSeries, {
getErrorBarRangeCorrector: _noop,
_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 _checkData(data) {
return _isDefined(data.argument) && _isDefined(data.size) && data.value !== undefined;
},
_getPointDataSelector: function _getPointDataSelector(data, options) {
var sizeField = this.getSizeField();
var baseGetter = scatterSeries._getPointDataSelector.call(this);
return function (data) {
var pointData = baseGetter(data);
pointData.size = data[sizeField];
return pointData;
};
},
_aggregators: {
avg: function avg(_ref, series) {
var _ref2;
var data = _ref.data,
intervalStart = _ref.intervalStart;
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(), intervalStart), _ref2;
}
},
getValueFields: function getValueFields() {
return [this._options.valueField || "val"];
},
getSizeField: function getSizeField() {
return this._options.sizeField || "size";
},
_animate: function _animate() {
var that = this,
lastPointIndex = that._drawnPoints.length - 1,
labelsGroup = that._labelsGroup,
labelAnimFunc = function labelAnimFunc() {
labelsGroup && labelsGroup.animate({ opacity: 1 }, { duration: that._defaultDuration });
};
_each(that._drawnPoints || [], function (i, p) {
p.animate(i === lastPointIndex ? labelAnimFunc : undefined, { r: p.bubbleSize, translateX: p.x, translateY: p.y });
});
},
_patchMarginOptions: function _patchMarginOptions(options) {
options.processBubbleSize = true;
return options;
}
});