/// import _ from "lodash"; import coreModule from "app/core/core_module"; import Drop from "tether-drop"; export function infoPopover() { return { restrict: "E", template: '', transclude: true, link: function(scope, elem, attrs, ctrl, transclude) { var offset = attrs.offset || "0 -10px"; var position = attrs.position || "right middle"; var classes = "drop-help drop-hide-out-of-bounds"; var openOn = "hover"; elem.addClass("gf-form-help-icon"); if (attrs.wide) { classes += " drop-wide"; } if (attrs.mode) { elem.addClass("gf-form-help-icon--" + attrs.mode); } transclude(function(clone, newScope) { var content = document.createElement("div"); content.className = "markdown-html"; _.each(clone, node => { content.appendChild(node); }); var drop = new Drop({ target: elem[0], content: content, position: position, classes: classes, openOn: openOn, hoverOpenDelay: 400, tetherOptions: { offset: offset, constraints: [ { to: "window", attachment: "together", pin: true } ] } }); var unbind = scope.$on("$destroy", function() { drop.destroy(); unbind(); }); }); } }; } coreModule.directive("infoPopover", infoPopover);