graphdb-workbench
Version:
The web application for GraphDB APIs
1 lines • 1.4 kB
JavaScript
import{OntoTooltipConfiguration}from"../components/onto-tooltip/models/onto-tooltip-configuration";import tippy from"tippy.js";export class TooltipUtil{static getTooltipInstance(t){return t._tippy}static createTooltip(t){return t.classList.add(TooltipUtil.TOOLTIP_CLASS),tippy(t,TooltipUtil.getConfig(t))}static getOrCreateTooltipInstance(t){return TooltipUtil.getTooltipInstance(t)||TooltipUtil.createTooltip(t)}static getConfig(t){return(new OntoTooltipConfiguration).setContent(t.getAttribute(TooltipUtil.ATTR_CONTENT)).setTheme(t.getAttribute(TooltipUtil.ATTR_THEME)).setPlacement(t.getAttribute(TooltipUtil.ATTR_PLACEMENT)).setTrigger(t.getAttribute(TooltipUtil.ATTR_TRIGGER)).setAppendTo(t.getAttribute(TooltipUtil.ATTR_APPEND_TO))}static updateTooltipContent(t,o){const i=TooltipUtil.getTooltipInstance(t);i&&""!==o&&i.setContent(o)}static destroyTooltip(t){var o;const i=TooltipUtil.getTooltipInstance(t);t.classList.contains(TooltipUtil.TOOLTIP_CLASS)&&i&&!(null===(o=i.state)||void 0===o?void 0:o.isDestroyed)&&i.destroy()}static getTooltipTarget(t){for(;t&&!t.getAttribute(TooltipUtil.ATTR_CONTENT);)t=t.parentElement;return t}}TooltipUtil.ATTR_CONTENT="tooltip-content",TooltipUtil.ATTR_THEME="tooltip-theme",TooltipUtil.ATTR_PLACEMENT="tooltip-placement",TooltipUtil.ATTR_TRIGGER="tooltip-trigger",TooltipUtil.ATTR_APPEND_TO="tooltip-append-to",TooltipUtil.TOOLTIP_CLASS="onto-tooltip";