"use strict";
module JQueryTimeline {
export class Tooltip {
static $: JQuery;
public static init() {
Tooltip.$ = $("
", {
"class": "jquery-timeline-tooltip"
}).appendTo("body");
$("body").click((e) => {
if ($(e.target).is(".event")
|| $(e.target).is(".jquery-timeline-tooltip")
|| $(e.target).parents(".event, .jquery-timeline-tooltip").length > 0) {
return;
}
Tooltip.hide(true);
});
return Tooltip.$;
}
public static show(options: TooltipOptions): JQuery {
var $tooltip = Tooltip.$ || Tooltip.init();
if (!$tooltip.is(".fixed") || options.fixed) {
if (typeof options.content !== "undefined") {
$tooltip.html(options.content);
}
if (typeof options.x !== "undefined") {
var width = $tooltip.width();
$tooltip.css("left", options.x - (width / 2));
}
if (typeof options.y !== "undefined") {
$tooltip.css("top", options.y + 15);
}
if (options.fixed) {
$tooltip.addClass("fixed");
}
}
return $tooltip.show();
}
public static hide(force = false) {
if (Tooltip.$.is(".fixed") && !force) {
return;
}
return Tooltip.$.removeClass("fixed").hide();
}
}
}