import{OntoTooltipConfiguration}from"../components/onto-tooltip/models/onto-tooltip-configuration";import{TooltipInstance}from"./tooltip-instance";export class TooltipUtil{static getTooltipInstance(t){return t._tooltipInstance}static createTooltip(t){t.classList.add(TooltipUtil.TOOLTIP_CLASS);const o=new TooltipInstance(t,TooltipUtil.getConfig(t));return t._tooltipInstance=o,o}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)).setAppendTo(t.getAttribute(TooltipUtil.ATTR_APPEND_TO))}static updateTooltipContent(t,o){const i=TooltipUtil.getTooltipInstance(t);i&&""!==o&&i.setContent(o)}static destroyTooltip(t){const o=TooltipUtil.getTooltipInstance(t);t.classList.contains(TooltipUtil.TOOLTIP_CLASS)&&o&&o.destroy()}static getTooltipTarget(t){for(;t&&!t.getAttribute(TooltipUtil.ATTR_CONTENT);)t=t.parentElement;return t}static getTooltip(t){for(;t&&!t.classList.contains("tooltip-box");)t=t.parentElement;return t}}TooltipUtil.ATTR_CONTENT="tooltip-content",TooltipUtil.ATTR_THEME="tooltip-theme",TooltipUtil.ATTR_PLACEMENT="tooltip-placement",TooltipUtil.ATTR_APPEND_TO="tooltip-append-to",TooltipUtil.TOOLTIP_CLASS="onto-tooltip";