UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

65 lines (54 loc) 1.98 kB
"use strict"; var noop = require("../../core/utils/common").noop; function getCoords(figureCoords, renderer) { var offset = renderer.getRootOffset(); return [(figureCoords[0] + figureCoords[2]) / 2 + offset.left, (figureCoords[1] + figureCoords[5]) / 2 + offset.top]; } exports.plugin = { name: "funnel-tooltip", init: noop, dispose: noop, extenders: { _buildNodes: function _buildNodes() { this.hideTooltip(); }, _change_TILING: function _change_TILING() { if (this._tooltipIndex >= 0) { this._moveTooltip(this._items[this._tooltipIndex]); } } }, members: { hideTooltip: function hideTooltip() { if (this._tooltipIndex >= 0) { this._tooltipIndex = -1; this._tooltip.hide(); } }, _moveTooltip: function _moveTooltip(item, coords) { var xy = coords || item.coords && getCoords(item.coords, this._renderer) || [-1000, -1000]; this._tooltip.move(xy[0], xy[1], 0); }, _showTooltip: function _showTooltip(index, coords) { var that = this, tooltip = that._tooltip, item = that._items[index], state = that._tooltipIndex === index || tooltip.show({ value: item.value, valueText: tooltip.formatValue(item.value), percentText: tooltip.formatValue(item.percent, "percent"), percent: item.percent, item: item }, { x: 0, y: 0, offset: 0 }, { item: item }); if (state) { that._moveTooltip(item, coords); } else { tooltip.hide(); } that._tooltipIndex = state ? index : -1; } }, customize: function customize(constructor) { constructor.addPlugin(require("../core/tooltip").plugin); } };