UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

80 lines (79 loc) 2.69 kB
/** * DevExtreme (esm/viz/series/points/bubble_point.js) * Version: 21.1.4 * Build date: Mon Jun 21 2021 * * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import { extend } from "../../../core/utils/extend"; import symbolPoint from "./symbol_point"; var _extend = extend; var MIN_BUBBLE_HEIGHT = 20; export default _extend({}, symbolPoint, { correctCoordinates: function(diameter) { this.bubbleSize = diameter / 2 }, _drawMarker: function(renderer, group, animationEnabled) { var attr = _extend({ translateX: this.x, translateY: this.y }, this._getStyle()); this.graphic = renderer.circle(0, 0, animationEnabled ? 0 : this.bubbleSize).smartAttr(attr).data({ "chart-data-point": this }).append(group) }, getTooltipParams: function(location) { var graphic = this.graphic; if (!graphic) { return } var height = graphic.getBBox().height; return { x: this.x, y: this.y, offset: height < MIN_BUBBLE_HEIGHT || "edge" === location ? height / 2 : 0 } }, _getLabelFormatObject: function() { var formatObject = symbolPoint._getLabelFormatObject.call(this); formatObject.size = this.initialSize; return formatObject }, _updateData: function(data) { symbolPoint._updateData.call(this, data); this.size = this.initialSize = data.size }, _getGraphicBBox: function() { return this._getSymbolBBox(this.x, this.y, this.bubbleSize) }, _updateMarker: function(animationEnabled, style) { if (!animationEnabled) { style = _extend({ r: this.bubbleSize, translateX: this.x, translateY: this.y }, style) } this.graphic.smartAttr(style) }, _getFormatObject: function(tooltip) { var formatObject = symbolPoint._getFormatObject.call(this, tooltip); formatObject.sizeText = tooltip.formatValue(this.initialSize); return formatObject }, _storeTrackerR: function() { return this.bubbleSize }, _getLabelCoords: function(label) { var coords; if ("inside" === label.getLayoutOptions().position) { coords = this._getLabelCoordOfPosition(label, "inside") } else { coords = symbolPoint._getLabelCoords.call(this, label) } return coords } });