UNPKG

@progress/kendo-charts

Version:

Kendo UI platform-independent Charts library

93 lines (72 loc) 3.03 kB
import { Color } from '@progress/kendo-drawing'; import { Class, defined, deepExtend, setDefaultOptions, valueOrDefault, getSpacing, styleValue } from '../../common'; import { SHOW_TOOLTIP, HIDE_TOOLTIP } from '../constants'; var BaseTooltip = (function (Class) { function BaseTooltip(chartService, options) { Class.call(this); this.chartService = chartService; this.options = deepExtend({}, this.options, options); } if ( Class ) BaseTooltip.__proto__ = Class; BaseTooltip.prototype = Object.create( Class && Class.prototype ); BaseTooltip.prototype.constructor = BaseTooltip; BaseTooltip.prototype.getStyle = function getStyle (options, point) { var background = options.background; var border = options.border.color; if (point) { var pointColor = point.color || point.options.color; background = valueOrDefault(background, pointColor); border = valueOrDefault(border, pointColor); } var padding = options.padding !== undefined ? getSpacing(options.padding) : {}; if (typeof options.padding === "object") { padding.top = options.padding.top !== undefined ? padding.top : undefined; padding.right = options.padding.right !== undefined ? padding.right : undefined; padding.bottom = options.padding.bottom !== undefined ? padding.bottom : undefined; padding.left = options.padding.left !== undefined ? padding.left : undefined; } return { backgroundColor: background, borderColor: border, font: options.font, color: options.color, opacity: options.opacity, borderWidth: styleValue(options.border.width), paddingTop: styleValue(padding.top), paddingBottom: styleValue(padding.bottom), paddingLeft: styleValue(padding.left), paddingRight: styleValue(padding.right) }; }; BaseTooltip.prototype.show = function show (options, tooltipOptions, point) { if (!this.chartService) { return; } options.format = tooltipOptions.format; var style = this.getStyle(tooltipOptions, point); options.style = style; var background = new Color(style.backgroundColor); if (!defined(tooltipOptions.color) && !background.isDark()) { options.className = "k-chart-tooltip-inverse"; } this.chartService.notify(SHOW_TOOLTIP, options); this.visible = true; }; BaseTooltip.prototype.hide = function hide () { if (this.chartService) { this.chartService.notify(HIDE_TOOLTIP); } this.visible = false; }; BaseTooltip.prototype.destroy = function destroy () { delete this.chartService; }; return BaseTooltip; }(Class)); setDefaultOptions(BaseTooltip, { border: { width: 1 }, opacity: 1 }); export default BaseTooltip;