All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.resources.butterfaces-js.butterfaces-tooltip.jquery.js Maven / Gradle / Ivy

(function ($) {

    $.fn._butterTooltip = function (/* object */ data) {
        var root = $(this);

        //console.log(data);

        var content = jQuery('[name=' + data.contentByName + ']');

        var newData = {
            forElement: data.forElement,
            trigger: data.trigger,
            title: data.title,
            placement: data.placement,
            placementFunction: data.placementFunction,
            minVerticalOffset: data.minVerticalOffset,
            minHorizontalOffset : data.minHorizontalOffset,
            content: content.html().trim()
        };

        //console.log(newData);

        content.remove();

        root.butterTooltip(newData);
    };

    $.fn.butterTooltip = function (/* object */ data) {
        return this.each(function () {
            var root = $(this);
            var placement = data.placement ? data.placement : (data.placementFunction ? data.placementFunction : butter.tooltip.calculateTooltipPosition);
            var trigger = data.trigger ? data.trigger : 'hover';

            //console.log(data);
            //console.log('placement: ' + placement);
            //console.log('trigger: ' + trigger);
            console.log(data.forElement);

            if (data.minVerticalOffset) {
                root.attr('data-tooltip-min-vertical-offset', data.minVerticalOffset);
            }
            if (data.minHorizontalOffset) {
                root.attr('data-tooltip-min-horizontal-offset', data.minHorizontalOffset);
            }

            jQuery(data.forElement).popover({
                trigger: trigger,
                placement: placement,
                title: data.title,
                html: 'true',
                content: data.content,
                viewport: 'html'
            });
        });
    };

    $.fn.butterTooltipDeprecated = function () {
        return this.each(function () {
            //console.log("initializing tooltip");
            var root = $(this);
            var valueElement = root.find(".butter-component-value");
            var tooltip = root.find(".butter-component-tooltip");

            if (tooltip.length > 0) {
                //console.log("found tooltip element");

                var _positionTooltip = function () {
                    var tooltipWidth = tooltip.outerWidth();
                    var winWidth = $(window).width();

                    if (root.offset().left + root.outerWidth() + tooltipWidth < winWidth) {
                        // try position right
                        tooltip
                            .removeClass("butter-component-tooltip-up")
                            .addClass("butter-component-tooltip-right")
                            .css({
                                position: "absolute",
                                top: 0,
                                left: root.outerWidth(),
                                zIndex: 1000
                            });
                    } else {
                        // try position at bottom
                        tooltip
                            .removeClass("butter-component-tooltip-right")
                            .addClass("butter-component-tooltip-up")
                            .css({
                                position: "absolute",
                                bottom: (tooltip.outerHeight() + 18) * -1,
                                right: 0,
                                zIndex: 1000
                            });
                    }

                };

                var _hideTooltip = function () {
                    //console.log("hiding tooltip");
                    tooltip.addClass("butter-component-tooltip-hidden");
                    tooltip.removeClass("butter-component-tooltip-shown");
                    tooltip.data("tooltip-visible", false);
                    tooltip.attr("style", null);
                    //$(window).off("resize");
                };

                var _showTooltip = function () {
                    //console.log("showing tooltip");
                    if (!tooltip.data("tooltip-visible")) {
                        tooltip.removeClass("butter-component-tooltip-hidden");
                        tooltip.addClass("butter-component-tooltip-shown");
                        _positionTooltip();
                        tooltip.data("tooltip-visible", true);
                        //$(window).on("resize", _positionTooltip);
                    }
                };

                valueElement
                    .mouseenter(function () {
                        _showTooltip();
                    })
                    .mouseleave(function () {
                        if (!tooltip.data("tooltip-permanent")) {
                            _hideTooltip();
                        }
                    })
                    .focus(function () {
                        tooltip.data("tooltip-permanent", true);
                        _showTooltip();
                    })
                    .blur(function () {
                        tooltip.data("tooltip-permanent", false);
                        _hideTooltip();
                    });
            }
        });
    };
}(jQuery));




© 2015 - 2025 Weber Informatics LLC | Privacy Policy