| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- ///<reference path="../../headers/common.d.ts" />
- import _ from "lodash";
- import coreModule from "app/core/core_module";
- import Drop from "tether-drop";
- export function infoPopover() {
- return {
- restrict: "E",
- template: '<i class="fa fa-info-circle"></i>',
- 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);
|