import { c3_chart_fn } from './core'; c3_chart_fn.tooltip = function () {}; c3_chart_fn.tooltip.show = function (args) { var $$ = this.internal, targets, data, mouse = {}; // determine mouse position on the chart if (args.mouse) { mouse = args.mouse; } else { // determine focus data if (args.data) { data = args.data; } else if (typeof args.x !== 'undefined') { if (args.id) { targets = $$.data.targets.filter(function(t){ return t.id === args.id; }); } else { targets = $$.data.targets; } data = $$.filterByX(targets, args.x).slice(0,1)[0]; } mouse = data ? $$.getMousePosition(data) : null; } // emulate mouse events to show $$.dispatchEvent('mousemove', mouse); $$.config.tooltip_onshow.call($$, data); }; c3_chart_fn.tooltip.hide = function () { // TODO: get target data by checking the state of focus this.internal.dispatchEvent('mouseout', 0); this.internal.config.tooltip_onhide.call(this); };